cyrus-studio 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -0
- package/dist/assets/AuthDialog-DMFwGmtj.js +1 -0
- package/dist/assets/CanvaSaveModal-BqSV1mos.js +9 -0
- package/dist/assets/CodingWorkspace-DXrWaTKZ.js +6 -0
- package/dist/assets/CreateAppDialog-DrBGyMVl.js +1236 -0
- package/dist/assets/CreateProjectDialog-JxYrZUv2.js +1 -0
- package/dist/assets/HistoryTimelineDialog-CAe6Hwyd.js +1 -0
- package/dist/assets/ImportModal-Cqy4Yhch.js +83 -0
- package/dist/assets/KeyboardShortcutsDialog-DqFAVzC4.js +1 -0
- package/dist/assets/LiveRuntimeWorkspace-yO2gI0_O.js +1 -0
- package/dist/assets/ShareExportDialog-BKmEqa2s.js +1 -0
- package/dist/assets/UserProfileDialog-BbU1jbKF.js +1 -0
- package/dist/assets/WelcomeOnboardingModal-BhTkmyMT.js +1 -0
- package/dist/assets/index-BewtY0Hs.js +793 -0
- package/dist/assets/index-CLJJIBPe.css +2 -0
- package/dist/assets/reactTsGenerator-CkYUg1Bs.js +1330 -0
- package/dist/assets/rolldown-runtime-W7wSyTde.js +1 -0
- package/dist/assets/themes-CNabH9CH.js +1 -0
- package/dist/assets/typechecker-BbGTunMD.js +2 -0
- package/dist/assets/vendor-firebase-DHYCsgNh.js +32 -0
- package/dist/assets/vendor-icons-M_KBtuE-.js +13 -0
- package/dist/assets/vendor-jszip-Cv4gVObP.js +2 -0
- package/dist/assets/vendor-react-BTEcvIpc.js +227 -0
- package/dist/assets/vendor-utils-3OgY5Lif.js +1 -0
- package/dist/favicon.svg +1 -0
- package/dist/icons.svg +24 -0
- package/dist/index.html +50 -0
- package/dist/login-bg.png +0 -0
- package/dist/test-sdk-sandbox.html +125 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-W7wSyTde.js";import{Bn as t,J as n,Ln as r,Rt as i,X as a,_t as o,di as s,vn as c,zr as l}from"./vendor-icons-M_KBtuE-.js";import{t as u}from"./vendor-react-BTEcvIpc.js";import{c as d}from"./vendor-utils-3OgY5Lif.js";import{_ as f,a as p,p as m}from"./themes-CNabH9CH.js";import{f as h,l as g,m as _,p as v}from"./index-BewtY0Hs.js";var y=e(s(),1),b=u(),x=`C:/Users/Shadow/Desktop/cyrus/src/components/dialogs/CreateProjectDialog.tsx`,S=[{type:`dashboard`,title:`Dashboard & Analytics`,desc:`Metrics, graphs, tables and admin panels`,icon:(0,b.jsxDEV)(t,{className:`w-5 h-5`},void 0,!1,{fileName:x,lineNumber:40,columnNumber:11},void 0)},{type:`saas`,title:`SaaS Product`,desc:`Web application interfaces & subscription apps`,icon:(0,b.jsxDEV)(n,{className:`w-5 h-5`},void 0,!1,{fileName:x,lineNumber:46,columnNumber:11},void 0)},{type:`landing`,title:`Landing Page`,desc:`High-conversion product showcases & heroes`,icon:(0,b.jsxDEV)(o,{className:`w-5 h-5`},void 0,!1,{fileName:x,lineNumber:52,columnNumber:11},void 0)},{type:`webapp`,title:`Web Application`,desc:`Interactive workflows & complex web apps`,icon:(0,b.jsxDEV)(i,{className:`w-5 h-5`},void 0,!1,{fileName:x,lineNumber:58,columnNumber:11},void 0)},{type:`mobile`,title:`Mobile App`,desc:`iOS & Android responsive screens`,icon:(0,b.jsxDEV)(a,{className:`w-5 h-5`},void 0,!1,{fileName:x,lineNumber:64,columnNumber:11},void 0)},{type:`website`,title:`Marketing Website`,desc:`Multi-page websites & editorial layouts`,icon:(0,b.jsxDEV)(r,{className:`w-5 h-5`},void 0,!1,{fileName:x,lineNumber:70,columnNumber:11},void 0)},{type:`custom`,title:`Blank Canvas`,desc:`Start from scratch with complete freedom`,icon:(0,b.jsxDEV)(c,{className:`w-5 h-5`},void 0,!1,{fileName:x,lineNumber:76,columnNumber:11},void 0)}];function C({isOpen:e,onClose:t,onCreated:n}){let[i,o]=(0,y.useState)(`New Digital Product`),[s,c]=(0,y.useState)(`web`),[u,C]=(0,y.useState)(`dashboard`),[w,T]=(0,y.useState)(!1),{setProject:E}=g(),{addToast:D}=p(),O=async e=>{if(e.preventDefault(),i.trim()){T(!0);try{let e=f(`proj`),r=f(`page`),a=s===`mobile`||u===`mobile`,o={id:e,name:i.trim(),type:a?`mobile`:u,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{platformTarget:a?`mobile`:`web`,safeArea:a?{top:47,bottom:34,left:0,right:0}:void 0,canvasBackground:`#f5f5f7`,primaryColor:`#0071e3`,theme:`light`},pages:[{id:r,name:a?`Screen 1`:`Page 1`,slug:a?`screen-1`:`page-1`,elements:[],settings:{backgroundColor:`#f5f5f7`,padding:a?16:32,maxWidth:a?390:1200}}]};await m(o),E(o),D(`Project "${o.name}" created (${a?`Mobile`:`Web`})`,`success`),T(!1),t(),n(e)}catch(e){console.error(`Error creating project:`,e),T(!1)}}};return(0,b.jsxDEV)(h,{isOpen:e,onClose:t,title:`Create New Project`,subtitle:`Choose a product category and give your creation a name.`,maxWidth:`lg`,footer:(0,b.jsxDEV)(b.Fragment,{children:[(0,b.jsxDEV)(_,{variant:`secondary`,onClick:t,type:`button`,children:`Cancel`},void 0,!1,{fileName:x,lineNumber:152,columnNumber:11},this),(0,b.jsxDEV)(_,{variant:`primary`,onClick:O,isLoading:w,disabled:!i.trim(),children:`Create Project`},void 0,!1,{fileName:x,lineNumber:155,columnNumber:11},this)]},void 0,!0,{fileName:x,lineNumber:151,columnNumber:9},this),children:(0,b.jsxDEV)(`form`,{onSubmit:O,className:`flex flex-col gap-5`,children:[(0,b.jsxDEV)(`div`,{children:[(0,b.jsxDEV)(`label`,{className:`text-[13px] font-medium text-[#1d1d1f] block mb-1.5`,children:`Project Name`},void 0,!1,{fileName:x,lineNumber:169,columnNumber:11},this),(0,b.jsxDEV)(v,{value:i,onChange:e=>o(e.target.value),placeholder:`e.g. Orion SaaS Dashboard`,autoFocus:!0},void 0,!1,{fileName:x,lineNumber:172,columnNumber:11},this)]},void 0,!0,{fileName:x,lineNumber:168,columnNumber:9},this),(0,b.jsxDEV)(`div`,{children:[(0,b.jsxDEV)(`label`,{className:`text-[13px] font-medium text-[#1d1d1f] block mb-1.5`,children:`Platform Target`},void 0,!1,{fileName:x,lineNumber:182,columnNumber:11},this),(0,b.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,b.jsxDEV)(`button`,{type:`button`,onClick:()=>{c(`web`),u===`mobile`&&C(`dashboard`)},className:d(`p-2.5 rounded-xl border text-left flex items-center gap-2.5 transition-apple cursor-pointer`,s===`web`?`bg-[#e8f2fc] border-[#0071e3] text-[#0071e3] font-bold`:`bg-[#f5f5f7] border-[#e5e5ea] text-[#1d1d1f] hover:bg-[#e5e5ea]`),children:[(0,b.jsxDEV)(r,{className:`w-4 h-4 shrink-0`},void 0,!1,{fileName:x,lineNumber:199,columnNumber:15},this),(0,b.jsxDEV)(`div`,{children:[(0,b.jsxDEV)(`div`,{className:`text-[12px]`,children:`Web Application`},void 0,!1,{fileName:x,lineNumber:201,columnNumber:17},this),(0,b.jsxDEV)(`div`,{className:`text-[10px] text-[#86868b] font-normal`,children:`React / Next.js`},void 0,!1,{fileName:x,lineNumber:202,columnNumber:17},this)]},void 0,!0,{fileName:x,lineNumber:200,columnNumber:15},this)]},void 0,!0,{fileName:x,lineNumber:186,columnNumber:13},this),(0,b.jsxDEV)(`button`,{type:`button`,onClick:()=>{c(`mobile`),C(`mobile`)},className:d(`p-2.5 rounded-xl border text-left flex items-center gap-2.5 transition-apple cursor-pointer`,s===`mobile`?`bg-[#e8f2fc] border-[#0071e3] text-[#0071e3] font-bold`:`bg-[#f5f5f7] border-[#e5e5ea] text-[#1d1d1f] hover:bg-[#e5e5ea]`),children:[(0,b.jsxDEV)(a,{className:`w-4 h-4 shrink-0`},void 0,!1,{fileName:x,lineNumber:219,columnNumber:15},this),(0,b.jsxDEV)(`div`,{children:[(0,b.jsxDEV)(`div`,{className:`text-[12px]`,children:`Mobile App`},void 0,!1,{fileName:x,lineNumber:221,columnNumber:17},this),(0,b.jsxDEV)(`div`,{className:`text-[10px] text-[#86868b] font-normal`,children:`iOS & Android (React Native)`},void 0,!1,{fileName:x,lineNumber:222,columnNumber:17},this)]},void 0,!0,{fileName:x,lineNumber:220,columnNumber:15},this)]},void 0,!0,{fileName:x,lineNumber:206,columnNumber:13},this)]},void 0,!0,{fileName:x,lineNumber:185,columnNumber:11},this)]},void 0,!0,{fileName:x,lineNumber:181,columnNumber:9},this),(0,b.jsxDEV)(`div`,{children:[(0,b.jsxDEV)(`label`,{className:`text-[13px] font-medium text-[#1d1d1f] block mb-2`,children:`Preset Category`},void 0,!1,{fileName:x,lineNumber:230,columnNumber:11},this),(0,b.jsxDEV)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2.5 max-h-[280px] overflow-y-auto pr-1`,children:S.map(e=>{let t=u===e.type;return(0,b.jsxDEV)(`div`,{onClick:()=>C(e.type),className:d(`relative p-3 rounded-[12px] border transition-apple cursor-pointer flex items-start gap-3 select-none`,t?`bg-[#e8f2fc]/60 border-[#0071e3] ring-1 ring-[#0071e3]`:`bg-white border-[#e5e5ea] hover:bg-[#f4f4f6] hover:border-[#d1d1d6]`),children:[(0,b.jsxDEV)(`div`,{className:d(`p-2 rounded-[8px] shrink-0 transition-apple`,t?`bg-[#0071e3] text-white`:`bg-[#f4f4f6] text-[#6e6e73]`),children:e.icon},void 0,!1,{fileName:x,lineNumber:247,columnNumber:19},this),(0,b.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:[(0,b.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,b.jsxDEV)(`span`,{className:`text-[13px] font-semibold text-[#1d1d1f] truncate`,children:e.title},void 0,!1,{fileName:x,lineNumber:259,columnNumber:23},this),t&&(0,b.jsxDEV)(l,{className:`w-3.5 h-3.5 text-[#0071e3] shrink-0 ml-1`},void 0,!1,{fileName:x,lineNumber:263,columnNumber:25},this)]},void 0,!0,{fileName:x,lineNumber:258,columnNumber:21},this),(0,b.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b] leading-snug mt-0.5`,children:e.desc},void 0,!1,{fileName:x,lineNumber:266,columnNumber:21},this)]},void 0,!0,{fileName:x,lineNumber:257,columnNumber:19},this)]},e.type,!0,{fileName:x,lineNumber:237,columnNumber:17},this)})},void 0,!1,{fileName:x,lineNumber:233,columnNumber:11},this)]},void 0,!0,{fileName:x,lineNumber:229,columnNumber:9},this)]},void 0,!0,{fileName:x,lineNumber:166,columnNumber:7},this)},void 0,!1,{fileName:x,lineNumber:144,columnNumber:5},this)}export{C as CreateProjectDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-W7wSyTde.js";import{Dr as t,Tt as n,di as r,gt as i,ht as a}from"./vendor-icons-M_KBtuE-.js";import{t as o}from"./vendor-react-BTEcvIpc.js";import{c as s}from"./vendor-utils-3OgY5Lif.js";import{a as c}from"./themes-CNabH9CH.js";import{_ as l,f as u,h as d,l as f,m as p}from"./index-BewtY0Hs.js";var m=e(r(),1),h=o(),g=`C:/Users/Shadow/Desktop/cyrus/src/components/dialogs/HistoryTimelineDialog.tsx`;function _({isOpen:e,onClose:r}){let{activeProject:o,setProject:_}=f(),{session:v}=d(),{addToast:y}=c(),[b,x]=(0,m.useState)([]),[S,C]=(0,m.useState)(``),[w,T]=(0,m.useState)(!1),[E,D]=(0,m.useState)(null),O=async()=>{if(!o)return;let e=await l.getVersions(o.id);x(e),e.length>0&&!E&&D(e[0].id)};(0,m.useEffect)(()=>{e&&o&&O()},[e,o]);let k=async()=>{if(!(!o||!S.trim())){T(!0);try{await l.createVersion(o.id,S.trim(),o,v.user),C(``),await O(),y(`Created named version checkpoint`,`success`)}catch{y(`Failed to create version checkpoint`,`error`)}finally{T(!1)}}},A=async e=>{if(o)try{let t=await l.restoreVersion(o.id,e);_(t),await O(),y(`Restored version successfully`,`success`),r()}catch(e){console.error(`Restore error:`,e),y(`Failed to restore version`,`error`)}};if(!o)return null;let j=b.find(e=>e.id===E);return(0,h.jsxDEV)(u,{isOpen:e,onClose:r,title:`Project Version History`,subtitle:`Track and restore immutable historical snapshots for "${o.name}".`,maxWidth:`xl`,children:(0,h.jsxDEV)(`div`,{className:`flex flex-col gap-4`,children:[(0,h.jsxDEV)(`div`,{className:`p-3 bg-[#fafafc] rounded-[12px] border border-[#e5e5ea] flex items-center gap-2`,children:[(0,h.jsxDEV)(`input`,{type:`text`,value:S,onChange:e=>C(e.target.value),placeholder:`Name this version (e.g. 'Before pricing revamp', 'V2 Launch ready')...`,className:`flex-1 h-8 px-3 rounded-[6px] bg-white border border-[#e5e5ea] text-[12px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3]`},void 0,!1,{fileName:g,lineNumber:100,columnNumber:11},this),(0,h.jsxDEV)(p,{variant:`primary`,size:`xs`,disabled:!S.trim(),isLoading:w,onClick:k,icon:(0,h.jsxDEV)(n,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:g,lineNumber:113,columnNumber:19},this),children:`Create Version`},void 0,!1,{fileName:g,lineNumber:107,columnNumber:11},this)]},void 0,!0,{fileName:g,lineNumber:99,columnNumber:9},this),(0,h.jsxDEV)(`div`,{className:`grid grid-cols-5 gap-3 min-h-[300px] max-h-[400px]`,children:[(0,h.jsxDEV)(`div`,{className:`col-span-2 border border-[#e5e5ea] rounded-[10px] bg-white overflow-y-auto p-1.5 flex flex-col gap-1`,children:b.length===0?(0,h.jsxDEV)(`div`,{className:`p-6 text-center text-[12px] text-[#86868b]`,children:`No named versions saved yet.`},void 0,!1,{fileName:g,lineNumber:124,columnNumber:15},this):b.map((e,n)=>{let r=E===e.id,i=n===0;return(0,h.jsxDEV)(`button`,{type:`button`,onClick:()=>D(e.id),className:s(`p-2.5 rounded-[8px] text-left transition-apple cursor-pointer flex flex-col gap-1 select-none`,r?`bg-[#0071e3] text-white`:`hover:bg-[#f4f4f6] text-[#1d1d1f]`),children:[(0,h.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,h.jsxDEV)(`span`,{className:`font-semibold text-[12px] truncate`,children:e.description},void 0,!1,{fileName:g,lineNumber:144,columnNumber:23},this),i&&(0,h.jsxDEV)(`span`,{className:s(`text-[9.5px] px-1.5 py-0.2 rounded-full font-medium`,r?`bg-white/20 text-white`:`bg-[#34c759]/15 text-[#34c759]`),children:`Latest`},void 0,!1,{fileName:g,lineNumber:148,columnNumber:25},this)]},void 0,!0,{fileName:g,lineNumber:143,columnNumber:21},this),(0,h.jsxDEV)(`div`,{className:s(`flex items-center gap-2 text-[10.5px]`,r?`text-white/80`:`text-[#86868b]`),children:[(0,h.jsxDEV)(`span`,{className:`flex items-center gap-1`,children:[(0,h.jsxDEV)(t,{className:`w-3 h-3`},void 0,!1,{fileName:g,lineNumber:167,columnNumber:25},this),(0,h.jsxDEV)(`span`,{children:new Date(e.createdAt).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})},void 0,!1,{fileName:g,lineNumber:168,columnNumber:25},this)]},void 0,!0,{fileName:g,lineNumber:166,columnNumber:23},this),(0,h.jsxDEV)(`span`,{children:`•`},void 0,!1,{fileName:g,lineNumber:170,columnNumber:23},this),(0,h.jsxDEV)(`span`,{children:[e.snapshot.pages.length,` pages`]},void 0,!0,{fileName:g,lineNumber:171,columnNumber:23},this)]},void 0,!0,{fileName:g,lineNumber:160,columnNumber:21},this)]},e.id,!0,{fileName:g,lineNumber:132,columnNumber:19},this)})},void 0,!1,{fileName:g,lineNumber:122,columnNumber:11},this),(0,h.jsxDEV)(`div`,{className:`col-span-3 border border-[#e5e5ea] rounded-[10px] bg-[#fafafc] p-4 flex flex-col justify-between`,children:[j?(0,h.jsxDEV)(`div`,{className:`flex flex-col gap-3`,children:[(0,h.jsxDEV)(`div`,{children:[(0,h.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,h.jsxDEV)(i,{className:`w-4 h-4 text-[#0071e3]`},void 0,!1,{fileName:g,lineNumber:185,columnNumber:21},this),(0,h.jsxDEV)(`h4`,{className:`text-[14px] font-semibold text-[#1d1d1f]`,children:j.description},void 0,!1,{fileName:g,lineNumber:186,columnNumber:21},this)]},void 0,!0,{fileName:g,lineNumber:184,columnNumber:19},this),(0,h.jsxDEV)(`span`,{className:`text-[11px] text-[#86868b] mt-0.5 block`,children:[`Created on `,new Date(j.createdAt).toLocaleDateString(),` at`,` `,new Date(j.createdAt).toLocaleTimeString(),` by`,` `,(0,h.jsxDEV)(`strong`,{children:j.author.name},void 0,!1,{fileName:g,lineNumber:193,columnNumber:21},this)]},void 0,!0,{fileName:g,lineNumber:190,columnNumber:19},this)]},void 0,!0,{fileName:g,lineNumber:183,columnNumber:17},this),(0,h.jsxDEV)(`div`,{className:`p-3 bg-white rounded-[8px] border border-[#e5e5ea] flex flex-col gap-1.5 text-[12px] text-[#1d1d1f]`,children:[(0,h.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,h.jsxDEV)(`span`,{className:`text-[#86868b]`,children:`Pages in Snapshot:`},void 0,!1,{fileName:g,lineNumber:199,columnNumber:21},this),(0,h.jsxDEV)(`span`,{className:`font-semibold`,children:j.snapshot.pages.length},void 0,!1,{fileName:g,lineNumber:200,columnNumber:21},this)]},void 0,!0,{fileName:g,lineNumber:198,columnNumber:19},this),(0,h.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,h.jsxDEV)(`span`,{className:`text-[#86868b]`,children:`Total Elements:`},void 0,!1,{fileName:g,lineNumber:203,columnNumber:21},this),(0,h.jsxDEV)(`span`,{className:`font-semibold`,children:j.snapshot.pages.reduce((e,t)=>e+t.elements.length,0)},void 0,!1,{fileName:g,lineNumber:204,columnNumber:21},this)]},void 0,!0,{fileName:g,lineNumber:202,columnNumber:19},this),(0,h.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,h.jsxDEV)(`span`,{className:`text-[#86868b]`,children:`Theme Preset:`},void 0,!1,{fileName:g,lineNumber:209,columnNumber:21},this),(0,h.jsxDEV)(`span`,{className:`font-semibold capitalize`,children:j.snapshot.settings.theme||`light`},void 0,!1,{fileName:g,lineNumber:210,columnNumber:21},this)]},void 0,!0,{fileName:g,lineNumber:208,columnNumber:19},this)]},void 0,!0,{fileName:g,lineNumber:197,columnNumber:17},this),(0,h.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b]`,children:`Restoring will load this snapshot and automatically create a new version tracking the rollback non-destructively.`},void 0,!1,{fileName:g,lineNumber:216,columnNumber:17},this)]},void 0,!0,{fileName:g,lineNumber:182,columnNumber:15},this):(0,h.jsxDEV)(`div`,{className:`text-center text-[12px] text-[#86868b] my-auto`,children:`Select a version on the left to inspect details.`},void 0,!1,{fileName:g,lineNumber:221,columnNumber:15},this),j&&(0,h.jsxDEV)(`div`,{className:`pt-3 border-t border-[#e5e5ea] flex items-center justify-end`,children:(0,h.jsxDEV)(p,{variant:`primary`,size:`sm`,onClick:()=>A(j.id),icon:(0,h.jsxDEV)(a,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:g,lineNumber:232,columnNumber:25},this),children:`Restore this Version`},void 0,!1,{fileName:g,lineNumber:228,columnNumber:17},this)},void 0,!1,{fileName:g,lineNumber:227,columnNumber:15},this)]},void 0,!0,{fileName:g,lineNumber:180,columnNumber:11},this)]},void 0,!0,{fileName:g,lineNumber:120,columnNumber:9},this)]},void 0,!0,{fileName:g,lineNumber:97,columnNumber:7},this)},void 0,!1,{fileName:g,lineNumber:90,columnNumber:5},this)}export{_ as HistoryTimelineDialog};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-W7wSyTde.js";import{C as t,J as n,Ln as r,Nr as i,Pr as a,Rt as o,Vt as s,di as c,i as l,oi as u,rt as d,tr as f,un as p,v as m}from"./vendor-icons-M_KBtuE-.js";import{t as h}from"./vendor-react-BTEcvIpc.js";import{c as g}from"./vendor-utils-3OgY5Lif.js";import{_,a as v,i as y,p as b,t as x,u as S}from"./themes-CNabH9CH.js";var C=e(c(),1);function w(e,t=1){if(!e)return`transparent`;let n=Math.round(e.r*255),r=Math.round(e.g*255),i=Math.round(e.b*255),a=Math.round((e.a??1)*t*100)/100;if(a>=1){let e=e=>e.toString(16).padStart(2,`0`);return`#${e(n)}${e(r)}${e(i)}`}return`rgba(${n}, ${r}, ${i}, ${a})`}function T(e,t){let n={};if(e.fills&&e.fills.length>0){let r=e.fills.find(e=>e.visible!==!1);r&&(r.type===`SOLID`&&r.color?e.type===`TEXT`?n.textColor=w(r.color,r.opacity):n.backgroundColor=w(r.color,r.opacity):r.type.startsWith(`GRADIENT_`)&&(t.push({nodeName:e.name,property:`fills`,details:`Gradient fill (${r.type}) approximated to fallback solid color.`}),r.gradientStops&&r.gradientStops.length>0&&(n.backgroundColor=w(r.gradientStops[0].color))))}if(e.strokes&&e.strokes.length>0&&e.strokeWeight){let t=e.strokes.find(e=>e.visible!==!1);t&&t.color&&(n.borderWidth=e.strokeWeight,n.borderColor=w(t.color,t.opacity))}if(e.cornerRadius?n.borderRadius=e.cornerRadius:e.rectangleCornerRadii&&e.rectangleCornerRadii.length>0&&(n.borderRadius=e.rectangleCornerRadii[0]),e.effects&&e.effects.length>0){let t=e.effects.find(e=>e.visible!==!1&&(e.type===`DROP_SHADOW`||e.type===`INNER_SHADOW`));t&&(n.shadow=t.radius>16?`lg`:t.radius>8?`md`:t.radius>2?`sm`:`none`)}if(e.style){if(e.style.fontSize&&(n.fontSize=e.style.fontSize),e.style.fontWeight){let t=String(e.style.fontWeight);n.fontWeight=[`300`,`400`,`500`,`600`,`700`,`800`].includes(t)?t:e.style.fontWeight>=700?`700`:e.style.fontWeight>=600?`600`:e.style.fontWeight>=500?`500`:`400`}e.style.fontFamily&&(n.fontFamily=e.style.fontFamily),e.style.textAlignHorizontal&&(n.textAlign=e.style.textAlignHorizontal.toLowerCase())}return e.paddingLeft&&(n.paddingLeft=e.paddingLeft),e.paddingRight&&(n.paddingRight=e.paddingRight),e.paddingTop&&(n.paddingTop=e.paddingTop),e.paddingBottom&&(n.paddingBottom=e.paddingBottom),n}function E(e,t,n,r,i){if(e.type===`BOOLEAN_OPERATION`||e.type===`SLICE`)return r.push({nodeName:e.name,nodeType:e.type,reason:`Figma node type "${e.type}" is a destructive vector operation not supported in web HTML.`}),null;let a=e.absoluteBoundingBox||{x:0,y:0,width:200,height:100},o=Math.round(a.x-t.x),s=Math.round(a.y-t.y),c=Math.max(Math.round(a.width),20),l=Math.max(Math.round(a.height),20),u=T(e,n),d={},f=`container`,p=e.name.toLowerCase();e.type===`TEXT`?(d.text=e.characters||e.name,u.fontSize&&u.fontSize>=24?(f=`heading`,d.level=u.fontSize>=36?1:u.fontSize>=28?2:3):f=`paragraph`):e.type===`INSTANCE`?(e.componentId&&i.get(e.componentId),f=p.includes(`button`)?`button`:`card`,d.label=e.name):e.type===`COMPONENT`?(f=p.includes(`button`)?`button`:`card`,d.label=e.name):e.fills?.some(e=>e.type===`IMAGE`)?(f=`image`,d.src=`https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?w=800&q=80`,d.alt=e.name):e.type===`VECTOR`||e.type===`STAR`||e.type===`REGULAR_POLYGON`?(f=`svg`,d.name=e.name,n.push({nodeName:e.name,property:`type`,details:`Vector shape converted to responsive SVG container.`})):e.type===`ELLIPSE`?(f=`avatar`,u.borderRadius=9999):e.type===`FRAME`||e.type===`GROUP`||e.type===`SECTION`?p.includes(`nav`)||p.includes(`header`)?(f=`navbar`,d.brandName=`Brand`,d.links=[`Home`,`Features`,`Pricing`,`About`],d.ctaLabel=`Get Started`):p.includes(`button`)||p.includes(`btn`)||p.includes(`cta`)?(f=`button`,d.label=e.name,d.icon=`ArrowRight`):p.includes(`card`)||p.includes(`item`)||p.includes(`tile`)?(f=`card`,d.title=e.name,d.description=`Imported Figma container element`):f=`container`:e.type===`RECTANGLE`&&(p.includes(`button`)||p.includes(`btn`)?(f=`button`,d.label=`Button`):f=`card`);let m=e.type===`INSTANCE`,h=e.componentId?i.get(e.componentId):void 0;return{id:_(`el`),type:f,name:e.name||`Figma Element`,x:Math.max(o,0),y:Math.max(s,0),width:c,height:l,rotation:0,zIndex:1,styles:u,content:d,isComponentInstance:m,masterComponentId:h}}function D(e){let t=performance.now(),n=[],r=[],i=new Map,a=[],o=0,s=0;e.components&&Object.entries(e.components).forEach(([e,t])=>{let n=_(`comp`);i.set(e,n);let r={id:_(`el`),type:`button`,name:t.name,x:0,y:0,width:160,height:44,rotation:0,zIndex:1,styles:{backgroundColor:`#0071e3`,textColor:`#ffffff`,borderRadius:10},content:{label:t.name}};a.push({id:n,name:t.name,category:`buttons`,templateElement:r,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()})});let c=[];(e.document?.children||[]).forEach(e=>{if(o++,e.type!==`CANVAS`)return;let t=_(`page`),a=[];(e.children||[]).forEach(e=>{o++,e.absoluteBoundingBox;let t=E(e,{x:0,y:0},n,r,i);t&&(a.push(t),s++),(e.children||[]).forEach(e=>{o++;let t=E(e,{x:0,y:0},n,r,i);t&&(a.push(t),s++)})}),c.push({id:t,name:e.name||`Page 1`,slug:(e.name||`page-1`).toLowerCase().replace(/\s+/g,`-`),elements:a,settings:{backgroundColor:`#f5f5f7`,padding:40,maxWidth:1440}})}),c.length===0&&c.push({id:_(`page`),name:`Imported Canvas`,slug:`imported-canvas`,elements:[],settings:{backgroundColor:`#f5f5f7`}});let l=Math.round((performance.now()-t)*10)/10,u={totalNodesScanned:o,convertedElementsCount:s,createdPagesCount:c.length,createdComponentsCount:a.length,unsupportedElements:r,approximationWarnings:n,executionDurationMs:l};return{project:{id:_(`proj`),name:e.name?`Figma: ${e.name}`:`Imported Figma Design`,description:`Imported from official Figma document format.`,type:`website`,pages:c,components:a,designSystem:x,settings:{canvasBackground:`#f5f5f7`,primaryColor:`#0071e3`,theme:`light`},createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},report:u}}var O={name:`Cyrus SaaS Design System & App`,version:`128.4`,lastModified:new Date().toISOString(),schemaVersion:0,components:{"comp:btn-primary":{key:`btn-primary-key`,name:`Primary Button`,description:`Main action CTA button with Cupertino radius`},"comp:feature-card":{key:`feature-card-key`,name:`Feature Metric Card`,description:`Auto-layout feature card with icon container`}},document:{id:`0:0`,name:`Document`,type:`DOCUMENT`,children:[{id:`0:1`,name:`Landing & Dashboard`,type:`CANVAS`,children:[{id:`1:10`,name:`Navigation Bar Header`,type:`FRAME`,absoluteBoundingBox:{x:40,y:30,width:1120,height:60},fills:[{type:`SOLID`,color:{r:1,g:1,b:1,a:1}}],strokes:[{type:`SOLID`,color:{r:.9,g:.9,b:.92,a:1}}],strokeWeight:1,cornerRadius:12,children:[{id:`1:11`,name:`Brand Logo Title`,type:`TEXT`,absoluteBoundingBox:{x:60,y:48,width:140,height:24},characters:`Cyrus Studio Pro`,style:{fontFamily:`SF Pro Display`,fontWeight:700,fontSize:16},fills:[{type:`SOLID`,color:{r:.11,g:.11,b:.12,a:1}}]},{id:`1:12`,name:`Get Started CTA Button`,type:`INSTANCE`,componentId:`comp:btn-primary`,absoluteBoundingBox:{x:1e3,y:40,width:140,height:40},cornerRadius:10,fills:[{type:`SOLID`,color:{r:0,g:.44,b:.89,a:1}}]}]},{id:`1:20`,name:`Hero Section Frame`,type:`FRAME`,absoluteBoundingBox:{x:40,y:110,width:1120,height:300},fills:[{type:`SOLID`,color:{r:.98,g:.98,b:.99,a:1}}],cornerRadius:18,strokes:[{type:`SOLID`,color:{r:.9,g:.9,b:.92,a:1}}],strokeWeight:1,children:[{id:`1:21`,name:`Main Hero Headline`,type:`TEXT`,absoluteBoundingBox:{x:70,y:150,width:900,height:60},characters:`Next-Generation Design & Code IDE`,style:{fontFamily:`SF Pro Display`,fontWeight:800,fontSize:42},fills:[{type:`SOLID`,color:{r:.11,g:.11,b:.12,a:1}}]},{id:`1:22`,name:`Hero Subheadline`,type:`TEXT`,absoluteBoundingBox:{x:70,y:220,width:800,height:40},characters:`Direct document mutation, live multiplayer collaboration, and production React generation.`,style:{fontFamily:`SF Pro Text`,fontWeight:400,fontSize:18},fills:[{type:`SOLID`,color:{r:.43,g:.43,b:.45,a:1}}]},{id:`1:23`,name:`Explore Demo Button`,type:`INSTANCE`,componentId:`comp:btn-primary`,absoluteBoundingBox:{x:70,y:280,width:160,height:44},cornerRadius:12,fills:[{type:`SOLID`,color:{r:0,g:.44,b:.89,a:1}}]}]},{id:`1:30`,name:`Feature Card 1`,type:`FRAME`,absoluteBoundingBox:{x:40,y:440,width:354,height:180},fills:[{type:`SOLID`,color:{r:1,g:1,b:1,a:1}}],cornerRadius:16,strokes:[{type:`SOLID`,color:{r:.9,g:.9,b:.92,a:1}}],strokeWeight:1,effects:[{type:`DROP_SHADOW`,radius:8,visible:!0}],children:[{id:`1:31`,name:`Feature Card Title`,type:`TEXT`,absoluteBoundingBox:{x:60,y:470,width:300,height:28},characters:`Real-time Multiplayer`,style:{fontFamily:`SF Pro Display`,fontWeight:700,fontSize:18},fills:[{type:`SOLID`,color:{r:.11,g:.11,b:.12,a:1}}]},{id:`1:32`,name:`Feature Card Body`,type:`TEXT`,absoluteBoundingBox:{x:60,y:510,width:310,height:50},characters:`Collaborate live with cursors, selection highlights, and CRDT synchronization.`,style:{fontFamily:`SF Pro Text`,fontWeight:400,fontSize:13},fills:[{type:`SOLID`,color:{r:.43,g:.43,b:.45,a:1}}]}]},{id:`1:40`,name:`Feature Card 2`,type:`FRAME`,absoluteBoundingBox:{x:418,y:440,width:354,height:180},fills:[{type:`SOLID`,color:{r:1,g:1,b:1,a:1}}],cornerRadius:16,strokes:[{type:`SOLID`,color:{r:.9,g:.9,b:.92,a:1}}],strokeWeight:1,effects:[{type:`DROP_SHADOW`,radius:8,visible:!0}],children:[{id:`1:41`,name:`Feature Card 2 Title`,type:`TEXT`,absoluteBoundingBox:{x:438,y:470,width:300,height:28},characters:`3-Tier Theming Engine`,style:{fontFamily:`SF Pro Display`,fontWeight:700,fontSize:18},fills:[{type:`SOLID`,color:{r:.11,g:.11,b:.12,a:1}}]},{id:`1:42`,name:`Feature Card 2 Body`,type:`TEXT`,absoluteBoundingBox:{x:438,y:510,width:310,height:50},characters:`Primitives, semantic decisions, and component tokens with instant light/dark modes.`,style:{fontFamily:`SF Pro Text`,fontWeight:400,fontSize:13},fills:[{type:`SOLID`,color:{r:.43,g:.43,b:.45,a:1}}]}]},{id:`1:50`,name:`Feature Card 3`,type:`FRAME`,absoluteBoundingBox:{x:796,y:440,width:364,height:180},fills:[{type:`SOLID`,color:{r:1,g:1,b:1,a:1}}],cornerRadius:16,strokes:[{type:`SOLID`,color:{r:.9,g:.9,b:.92,a:1}}],strokeWeight:1,effects:[{type:`DROP_SHADOW`,radius:8,visible:!0}],children:[{id:`1:51`,name:`Feature Card 3 Title`,type:`TEXT`,absoluteBoundingBox:{x:816,y:470,width:300,height:28},characters:`React TypeScript Export`,style:{fontFamily:`SF Pro Display`,fontWeight:700,fontSize:18},fills:[{type:`SOLID`,color:{r:.11,g:.11,b:.12,a:1}}]},{id:`1:52`,name:`Feature Card 3 Body`,type:`TEXT`,absoluteBoundingBox:{x:816,y:510,width:310,height:50},characters:`Zero-lockin code generation with clean CSS variables and modular component tree.`,style:{fontFamily:`SF Pro Text`,fontWeight:400,fontSize:13},fills:[{type:`SOLID`,color:{r:.43,g:.43,b:.45,a:1}}]}]}]}]}},k=[/^127\.\d+\.\d+\.\d+$/,/^10\.\d+\.\d+\.\d+$/,/^172\.(1[6-9]|2\d|3[01])\.\d+\.\d+$/,/^192\.168\.\d+\.\d+$/,/^169\.254\.\d+\.\d+$/,/^0\.0\.0\.0$/,/^localhost$/i,/^::1$/,/^fe80:/i,/^fc00:/i],A=[`.local`,`.internal`,`.lan`,`.corp`,`.intranet`,`.home`,`.test`,`.example`,`.invalid`,`.cluster.local`,`instance-data`,`metadata.google.internal`,`169.254.169.254`];function j(e){if(!e||typeof e!=`string`)return{isValid:!1,error:`URL cannot be empty.`};let t=e.trim();/^https?:\/\//i.test(t)||(t=`https://${t}`);let n;try{n=new URL(t)}catch{return{isValid:!1,error:`Malformed or invalid URL format.`}}if(n.protocol!==`http:`&&n.protocol!==`https:`)return{isValid:!1,error:`Forbidden scheme "${n.protocol}". Only HTTP and HTTPS are permitted.`};let r=n.hostname.toLowerCase();for(let e of k)if(e.test(r))return{isValid:!1,error:`Security violation: Access to private/internal network IP (${r}) is blocked to prevent SSRF.`};for(let e of A)if(r.endsWith(e)||r===e)return{isValid:!1,error:`Security violation: Access to internal or cloud metadata domain (${r}) is blocked.`};return n.port&&n.port!==`80`&&n.port!==`443`?{isValid:!1,error:`Non-standard port "${n.port}" is restricted. Only standard web ports (80, 443) are allowed.`}:(n.username=``,n.password=``,n.hash=``,{isValid:!0,sanitizedUrl:n.toString(),domain:r})}var M=2097152,N=8e3;async function P(e){let t=j(e);if(!t.isValid||!t.sanitizedUrl||!t.domain)throw Error(t.error||`Invalid or forbidden URL.`);let n=t.sanitizedUrl,r=t.domain;try{let e=new AbortController,t=setTimeout(()=>e.abort(),N),i=await fetch(n,{signal:e.signal,headers:{Accept:`text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`}});if(clearTimeout(t),i.ok){let e=await i.text();if(e.length>M)throw Error(`Payload size exceeded limit (2MB).`);return{html:e,finalUrl:i.url||n,domain:r,sourceType:`direct_fetch`}}}catch(e){console.warn(`Direct fetch failed for "${n}", attempting safe public CORS fallback:`,e?.message)}try{let e=`https://api.allorigins.win/raw?url=${encodeURIComponent(n)}`,t=new AbortController,i=setTimeout(()=>t.abort(),N),a=await fetch(e,{signal:t.signal});if(clearTimeout(i),a.ok){let e=await a.text();if(e.length<=M&&e.includes(`<html`)||e.includes(`<body`)||e.includes(`<div`))return{html:e,finalUrl:n,domain:r,sourceType:`cors_proxy`}}}catch{console.warn(`CORS proxy fetch failed, generating semantic template for domain:`,r)}return{html:F(r,n),finalUrl:n,domain:r,sourceType:`synthetic_reconstruction`}}function F(e,t){let n=e.replace(/^www\./,``).split(`.`)[0].toUpperCase(),r=n.charAt(0)+n.slice(1).toLowerCase();return`
|
|
2
|
+
<!DOCTYPE html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<title>${r} - Next Generation Platform</title>
|
|
7
|
+
<meta name="description" content="Discover powerful solutions built with precision and speed at ${e}.">
|
|
8
|
+
</head>
|
|
9
|
+
<body style="background-color: #fbfbfd; color: #1d1d1f; font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', sans-serif;">
|
|
10
|
+
<header>
|
|
11
|
+
<nav style="background-color: rgba(255, 255, 255, 0.8); border-bottom: 1px solid #e5e5ea;">
|
|
12
|
+
<div class="logo">${r}</div>
|
|
13
|
+
<ul class="nav-links">
|
|
14
|
+
<li><a href="#features">Features</a></li>
|
|
15
|
+
<li><a href="#solutions">Solutions</a></li>
|
|
16
|
+
<li><a href="#pricing">Pricing</a></li>
|
|
17
|
+
<li><a href="#about">About</a></li>
|
|
18
|
+
</ul>
|
|
19
|
+
<button class="cta-button" style="background-color: #0071e3; color: #ffffff;">Get Started</button>
|
|
20
|
+
</nav>
|
|
21
|
+
</header>
|
|
22
|
+
|
|
23
|
+
<main>
|
|
24
|
+
<section class="hero-section" style="padding: 80px 20px; text-align: center;">
|
|
25
|
+
<h1 style="font-size: 52px; font-weight: 700; color: #1d1d1f;">The Modern Foundation for ${r}</h1>
|
|
26
|
+
<p style="font-size: 20px; color: #6e6e73; max-width: 680px; margin: 20px auto;">
|
|
27
|
+
Accelerate workflows, elevate team collaboration, and deliver exceptional experiences with modern cloud infrastructure.
|
|
28
|
+
</p>
|
|
29
|
+
<div class="hero-cta" style="margin-top: 30px;">
|
|
30
|
+
<button style="background-color: #0071e3; color: #ffffff; padding: 14px 28px; border-radius: 12px; font-weight: 600;">Start Free Trial</button>
|
|
31
|
+
<button style="background-color: #f5f5f7; color: #1d1d1f; padding: 14px 28px; border-radius: 12px; margin-left: 12px;">Watch Demo</button>
|
|
32
|
+
</div>
|
|
33
|
+
</section>
|
|
34
|
+
|
|
35
|
+
<section class="features-section" style="padding: 60px 20px;">
|
|
36
|
+
<h2 style="font-size: 32px; font-weight: 700; text-align: center;">Engineered for Performance</h2>
|
|
37
|
+
<div class="feature-grid" style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 1120px; margin: 40px auto;">
|
|
38
|
+
<div class="feature-card" style="background: #ffffff; padding: 28px; border-radius: 18px; border: 1px solid #e5e5ea;">
|
|
39
|
+
<h3>Real-time Analytics</h3>
|
|
40
|
+
<p>Gain immediate clarity into user engagement, revenue metrics, and system throughput.</p>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="feature-card" style="background: #ffffff; padding: 28px; border-radius: 18px; border: 1px solid #e5e5ea;">
|
|
43
|
+
<h3>Automated Workflows</h3>
|
|
44
|
+
<p>Eliminate manual operational overhead with zero-config pipeline triggers.</p>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="feature-card" style="background: #ffffff; padding: 28px; border-radius: 18px; border: 1px solid #e5e5ea;">
|
|
47
|
+
<h3>Enterprise Security</h3>
|
|
48
|
+
<p>Bank-grade encryption, automated compliance audit logs, and granular access controls.</p>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</section>
|
|
52
|
+
|
|
53
|
+
<section class="pricing-section" style="padding: 60px 20px; background: #ffffff;">
|
|
54
|
+
<h2 style="font-size: 32px; font-weight: 700; text-align: center;">Simple, Transparent Pricing</h2>
|
|
55
|
+
<div class="pricing-grid" style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 1080px; margin: 40px auto;">
|
|
56
|
+
<div class="pricing-card" style="padding: 32px; border-radius: 20px; border: 1px solid #e5e5ea;">
|
|
57
|
+
<h3>Starter</h3>
|
|
58
|
+
<div class="price" style="font-size: 36px; font-weight: 700;">$0<span style="font-size: 14px; color: #86868b;">/mo</span></div>
|
|
59
|
+
<p>Essential tools for individuals and solo developers.</p>
|
|
60
|
+
<button style="width: 100%; padding: 12px; border-radius: 10px; background: #f5f5f7;">Get Started</button>
|
|
61
|
+
</div>
|
|
62
|
+
<div class="pricing-card highlighted" style="padding: 32px; border-radius: 20px; border: 2px solid #0071e3; background: #f0f7ff;">
|
|
63
|
+
<h3>Pro Plan</h3>
|
|
64
|
+
<div class="price" style="font-size: 36px; font-weight: 700; color: #0071e3;">$29<span style="font-size: 14px; color: #86868b;">/mo</span></div>
|
|
65
|
+
<p>Unlimited projects, team collaboration, and high-speed cloud sync.</p>
|
|
66
|
+
<button style="width: 100%; padding: 12px; border-radius: 10px; background: #0071e3; color: white;">Upgrade to Pro</button>
|
|
67
|
+
</div>
|
|
68
|
+
<div class="pricing-card" style="padding: 32px; border-radius: 20px; border: 1px solid #e5e5ea;">
|
|
69
|
+
<h3>Enterprise</h3>
|
|
70
|
+
<div class="price" style="font-size: 36px; font-weight: 700;">$199<span style="font-size: 14px; color: #86868b;">/mo</span></div>
|
|
71
|
+
<p>Custom SLAs, dedicated account manager, and SSO security.</p>
|
|
72
|
+
<button style="width: 100%; padding: 12px; border-radius: 10px; background: #f5f5f7;">Contact Sales</button>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</section>
|
|
76
|
+
</main>
|
|
77
|
+
|
|
78
|
+
<footer style="background-color: #f5f5f7; border-top: 1px solid #e5e5ea; padding: 40px 20px; text-align: center;">
|
|
79
|
+
<p style="color: #86868b; font-size: 12px;">© ${new Date().getFullYear()} ${r}, Inc. All rights reserved.</p>
|
|
80
|
+
</footer>
|
|
81
|
+
</body>
|
|
82
|
+
</html>
|
|
83
|
+
`.trim()}function I(e,t){let n=new DOMParser().parseFromString(e,`text/html`),r=n.title?.trim()||new URL(t).hostname.replace(/^www\./,``),i=n.querySelector(`meta[name="description"]`)?.getAttribute(`content`)?.trim(),a=`#0071e3`;n.querySelectorAll(`*`).forEach(e=>{let t=e.getAttribute(`style`)||``;if(t.includes(`background-color`)||t.includes(`color`)){let e=t.match(/#(?:[0-9a-fA-F]{3}){1,2}\b/);e&&e[0]!==`#ffffff`&&e[0]!==`#000000`&&(a=e[0])}});let o,s=n.querySelector(`nav`)||n.querySelector(`header`);if(s){let e=[];s.querySelectorAll(`a`).forEach(t=>{let n=t.textContent?.trim();n&&n.length<30&&!e.includes(n)&&e.push(n)});let t=(s.querySelector(`.logo`)||s.querySelector(`strong`)||s.querySelector(`h1`)||s.querySelector(`a`))?.textContent?.trim()||r.split(` `)[0],n=(s.querySelector(`button`)||s.querySelector(`.cta-button`)||s.querySelector(`a.btn`))?.textContent?.trim()||`Get Started`;o={brandName:t||`Brand`,links:e.slice(0,5),ctaLabel:n}}let c,l=n.querySelector(`h1`);if(l){let e=l.textContent?.trim()||`Welcome to ${r}`,t=(l.nextElementSibling?.tagName===`P`?l.nextElementSibling:n.querySelector(`main p`)||n.querySelector(`p`))?.textContent?.trim()||`Accelerate workflows and build faster with our intuitive platform.`,i=n.querySelectorAll(`main button, .hero button, .hero-section button`);c={headline:e,subheadline:t,primaryCta:i[0]?.textContent?.trim()||`Start Free Trial`,secondaryCta:i[1]?.textContent?.trim()||`Watch Demo`}}let u=[];n.querySelectorAll(`h3, .feature-card h3, .feature h3, .card h3`).forEach(e=>{let t=e.textContent?.trim();if(t&&t.length<50&&!u.some(e=>e.title===t)){let n=(e.parentElement?.querySelector(`p`)||e.nextElementSibling)?.textContent?.trim()||`High-performance capability designed for modern workflows.`;u.push({title:t,description:n})}});let d=[];n.querySelectorAll(`.pricing-card, .price-card, [class*="pricing"]`).forEach(e=>{let t=e.querySelector(`h3`)?.textContent?.trim()||`Plan`,n=e.querySelector(`.price, [class*="price"]`)?.textContent?.trim()||`$29`,r=e.classList.contains(`highlighted`)||e.classList.contains(`popular`);d.some(e=>e.title===t)||d.push({title:t,price:n,period:`/mo`,description:`Includes all core platform capabilities and instant team sync.`,isHighlighted:r})});let f,p=n.querySelector(`footer`);if(p){let e=p.querySelector(`p`)?.textContent?.trim()||`© ${new Date().getFullYear()} ${r}. All rights reserved.`,t=[];p.querySelectorAll(`a`).forEach(e=>{let n=e.textContent?.trim();n&&n.length<25&&!t.includes(n)&&t.push(n)}),f={copyright:e,links:t.slice(0,6)}}let m=+!!o+ +!!c+u.length+d.length+ +!!f;return{pageTitle:r,metaDescription:i,colors:{primary:a,background:`#fbfbfd`,text:`#1d1d1f`,surface:`#ffffff`},typography:{headingFont:`SF Pro Display, -apple-system, sans-serif`,bodyFont:`SF Pro Text, -apple-system, sans-serif`},navbar:o,hero:c,features:u.slice(0,6),pricing:d.slice(0,4),metrics:[],footer:f,totalElementsCount:Math.max(m,4)}}function L(e,t){let n=_(`proj`),r=_(`page`),i=new Date().toISOString(),a=[],o=30;e.navbar&&(a.push({id:_(`el`),type:`navbar`,name:`${e.navbar.brandName} Navigation`,x:40,y:o,width:1120,height:60,rotation:0,zIndex:10,styles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`},content:{brandName:e.navbar.brandName,links:e.navbar.links.length>0?e.navbar.links:[`Features`,`Solutions`,`Pricing`,`Docs`],ctaLabel:e.navbar.ctaLabel||`Get Started`}}),o+=80),e.hero&&(a.push({id:_(`el`),type:`heroSection`,name:`Hero Section`,x:40,y:o,width:1120,height:320,rotation:0,zIndex:5,styles:{backgroundColor:e.colors.background||`#fbfbfd`,borderRadius:18,borderWidth:1,borderColor:`#e5e5ea`},content:{headline:e.hero.headline,subheadline:e.hero.subheadline,primaryCta:e.hero.primaryCta||`Start Free Trial`,secondaryCta:e.hero.secondaryCta||`Learn More`}}),o+=340),(e.features.length>0?e.features:[{title:`Fast Cloud Deployment`,description:`Zero configuration infrastructure designed for speed.`},{title:`Real-time Collaboration`,description:`Simultaneous multiplayer editing with presence and sync.`},{title:`Enterprise Compliance`,description:`Automated audit logs and WCAG AA accessibility verification.`}]).slice(0,3).forEach((e,t)=>{a.push({id:_(`el`),type:`featureCard`,name:`Feature: ${e.title}`,x:40+t*378,y:o,width:354,height:180,rotation:0,zIndex:5,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,paddingTop:20,paddingBottom:20,paddingLeft:20,paddingRight:20},content:{title:e.title,description:e.description,icon:t===0?`Zap`:t===1?`Layers`:`ShieldCheck`}})}),o+=210,(e.pricing.length>0?e.pricing:[{title:`Starter`,price:`$0`,isHighlighted:!1,description:`Essential tools for solo creators and hobbyists.`},{title:`Professional`,price:`$29`,isHighlighted:!0,description:`Unlimited workspaces and high-speed cloud sync.`},{title:`Enterprise`,price:`$199`,isHighlighted:!1,description:`Dedicated SLA, enterprise SSO, and 24/7 priority support.`}]).slice(0,3).forEach((t,n)=>{a.push({id:_(`el`),type:`pricingCard`,name:`Pricing Tier: ${t.title}`,x:40+n*378,y:o,width:354,height:340,rotation:0,zIndex:5,styles:{backgroundColor:t.isHighlighted?`#f0f7ff`:`#ffffff`,borderRadius:18,borderWidth:t.isHighlighted?2:1,borderColor:t.isHighlighted?e.colors.primary:`#e5e5ea`},content:{title:t.title,price:t.price,period:`/mo`,description:t.description,isHighlighted:t.isHighlighted,features:[`Full application generator`,`Custom design tokens`,`Instant React code export`]}})}),o+=370,a.push({id:_(`el`),type:`footer`,name:`Footer Section`,x:40,y:o,width:1120,height:120,rotation:0,zIndex:5,styles:{backgroundColor:`#f5f5f7`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`},content:{copyright:e.footer?.copyright||`© ${new Date().getFullYear()} ${e.pageTitle}. All rights reserved.`,links:e.footer?.links||[`Privacy Policy`,`Terms of Service`,`Security`,`Status`]}});let s={id:r,name:`Imported Landing`,slug:`imported-landing`,elements:a,settings:{backgroundColor:e.colors.background||`#fbfbfd`,padding:40,maxWidth:1200,metaTitle:e.pageTitle,metaDescription:e.metaDescription}},c=new URL(t).hostname.replace(/^www\./,``),l=`Imported: ${e.pageTitle||c}`,u=y(x,`colorPrimary`,e.colors.primary);return e.colors.background&&(u=y(u,`colorBackground`,e.colors.background)),{id:n,name:l,description:`Semantic reconstruction of ${t} generated by Cyrus Website Importer.`,type:`website`,pages:[s],settings:{canvasBackground:`#f5f5f7`,primaryColor:e.colors.primary,theme:`light`},designSystem:u,createdAt:i,updatedAt:i}}var R=h(),z=`C:/Users/Shadow/Desktop/cyrus/src/components/importer/ImportWebsiteModal.tsx`;function B({isOpen:e,onClose:t,onProjectCreated:c}){let{addToast:f}=v(),[m,h]=(0,C.useState)(``),[_,y]=(0,C.useState)(`input`),[x,S]=(0,C.useState)(0),[w,T]=(0,C.useState)(``),[E,D]=(0,C.useState)(null);if(!e)return null;let O=[{label:`Stripe SaaS`,url:`https://stripe.com`},{label:`Linear App`,url:`https://linear.app`},{label:`Apple Minimal`,url:`https://apple.com`},{label:`GitHub Docs`,url:`https://github.com`}],k=async e=>{let t=e||m;if(!t.trim())return;let n=j(t);if(!n.isValid||!n.sanitizedUrl){y(`error`),T(n.error||`Invalid URL or SSRF security restriction.`);return}y(`analyzing`),S(1),T(``);try{await new Promise(e=>setTimeout(e,250)),S(2);let e=await P(n.sanitizedUrl);S(3),await new Promise(e=>setTimeout(e,300));let t=I(e.html,e.finalUrl);S(4),await new Promise(e=>setTimeout(e,250)),D({structure:t,sourceUrl:e.finalUrl,sourceType:e.sourceType}),y(`preview`)}catch(e){console.error(`Website Import Analysis Failed:`,e),y(`error`),T(e?.message||`Failed to fetch or parse the requested website.`)}};return(0,R.jsxDEV)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/40 backdrop-blur-xs select-none`,children:(0,R.jsxDEV)(`div`,{className:`w-full max-w-[580px] bg-white rounded-2xl shadow-apple-2xl border border-[#e5e5ea] overflow-hidden flex flex-col animate-scale-in`,children:[(0,R.jsxDEV)(`div`,{className:`p-4 border-b border-[#e5e5ea] flex items-center justify-between bg-[#fbfbfd]`,children:[(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[(0,R.jsxDEV)(`div`,{className:`w-8 h-8 rounded-xl bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center`,children:(0,R.jsxDEV)(r,{className:`w-4 h-4`},void 0,!1,{fileName:z,lineNumber:143,columnNumber:15},this)},void 0,!1,{fileName:z,lineNumber:142,columnNumber:13},this),(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`h3`,{className:`text-[14px] font-bold text-[#1d1d1f]`,children:`Import Website to Cyrus`},void 0,!1,{fileName:z,lineNumber:146,columnNumber:15},this),(0,R.jsxDEV)(`p`,{className:`text-[10.5px] text-[#86868b]`,children:`Analyze URL and synthesize semantic editable elements`},void 0,!1,{fileName:z,lineNumber:147,columnNumber:15},this)]},void 0,!0,{fileName:z,lineNumber:145,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:141,columnNumber:11},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:t,className:`w-7 h-7 rounded-lg text-[#86868b] hover:text-[#1d1d1f] hover:bg-[#f5f5f7] flex items-center justify-center transition-apple cursor-pointer`,children:(0,R.jsxDEV)(l,{className:`w-4 h-4`},void 0,!1,{fileName:z,lineNumber:158,columnNumber:13},this)},void 0,!1,{fileName:z,lineNumber:153,columnNumber:11},this)]},void 0,!0,{fileName:z,lineNumber:140,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`p-5 space-y-4 max-h-[70vh] overflow-y-auto text-[12px]`,children:[_===`input`&&(0,R.jsxDEV)(`div`,{className:`space-y-4`,children:[(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`label`,{className:`block text-[11px] font-bold text-[#1d1d1f] mb-1.5 uppercase tracking-wider`,children:`Target Website URL`},void 0,!1,{fileName:z,lineNumber:168,columnNumber:17},this),(0,R.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,R.jsxDEV)(`div`,{className:`relative flex-1`,children:[(0,R.jsxDEV)(`input`,{type:`url`,value:m,onChange:e=>h(e.target.value),placeholder:`https://example.com`,onKeyDown:e=>e.key===`Enter`&&k(),className:`w-full h-10 px-3.5 pl-9 rounded-xl bg-[#f5f5f7] border border-[#e5e5ea] text-[13px] text-[#1d1d1f] focus:bg-white focus:outline-none focus:border-[#0071e3] transition-apple`},void 0,!1,{fileName:z,lineNumber:173,columnNumber:21},this),(0,R.jsxDEV)(r,{className:`w-4 h-4 text-[#86868b] absolute left-3 top-3`},void 0,!1,{fileName:z,lineNumber:181,columnNumber:21},this)]},void 0,!0,{fileName:z,lineNumber:172,columnNumber:19},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>k(),disabled:!m.trim(),className:g(`px-4 h-10 rounded-xl text-white text-[12px] font-semibold flex items-center gap-1.5 transition-apple shadow-2xs cursor-pointer`,m.trim()?`bg-[#0071e3] hover:bg-[#0077ed]`:`bg-[#d1d1d6] cursor-not-allowed`),children:[(0,R.jsxDEV)(`span`,{children:`Analyze`},void 0,!1,{fileName:z,lineNumber:192,columnNumber:21},this),(0,R.jsxDEV)(u,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:z,lineNumber:193,columnNumber:21},this)]},void 0,!0,{fileName:z,lineNumber:183,columnNumber:19},this)]},void 0,!0,{fileName:z,lineNumber:171,columnNumber:17},this)]},void 0,!0,{fileName:z,lineNumber:167,columnNumber:15},this),(0,R.jsxDEV)(`div`,{className:`space-y-1.5`,children:[(0,R.jsxDEV)(`div`,{className:`text-[10.5px] font-semibold text-[#86868b]`,children:`Quick Demo URLs:`},void 0,!1,{fileName:z,lineNumber:200,columnNumber:17},this),(0,R.jsxDEV)(`div`,{className:`flex flex-wrap gap-1.5`,children:O.map((e,t)=>(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>{h(e.url),k(e.url)},className:`px-2.5 py-1 rounded-lg bg-[#f5f5f7] hover:bg-[#e8f2fc] text-[#1d1d1f] hover:text-[#0071e3] border border-[#e5e5ea] text-[11px] font-medium transition-apple cursor-pointer`,children:e.label},t,!1,{fileName:z,lineNumber:203,columnNumber:21},this))},void 0,!1,{fileName:z,lineNumber:201,columnNumber:17},this)]},void 0,!0,{fileName:z,lineNumber:199,columnNumber:15},this),(0,R.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#f0fdf4] border border-[#dcfce7] flex items-start gap-2.5`,children:[(0,R.jsxDEV)(d,{className:`w-4 h-4 text-[#16a34a] shrink-0 mt-0.5`},void 0,!1,{fileName:z,lineNumber:220,columnNumber:17},this),(0,R.jsxDEV)(`div`,{className:`text-[11px] text-[#166534] leading-relaxed`,children:[(0,R.jsxDEV)(`span`,{className:`font-semibold`,children:`SSRF Protection & Privacy:`},void 0,!1,{fileName:z,lineNumber:222,columnNumber:19},this),` Internal/loopback addresses are strictly restricted. Imported websites create a new standalone editable project and will never overwrite your current work.`]},void 0,!0,{fileName:z,lineNumber:221,columnNumber:17},this)]},void 0,!0,{fileName:z,lineNumber:219,columnNumber:15},this)]},void 0,!0,{fileName:z,lineNumber:166,columnNumber:13},this),_===`analyzing`&&(0,R.jsxDEV)(`div`,{className:`py-6 space-y-4`,children:[(0,R.jsxDEV)(`div`,{className:`flex flex-col items-center justify-center text-center space-y-2`,children:[(0,R.jsxDEV)(`div`,{className:`w-12 h-12 rounded-2xl bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center shadow-apple-sm`,children:(0,R.jsxDEV)(n,{className:`w-6 h-6 animate-spin`},void 0,!1,{fileName:z,lineNumber:235,columnNumber:19},this)},void 0,!1,{fileName:z,lineNumber:234,columnNumber:17},this),(0,R.jsxDEV)(`h4`,{className:`text-[14px] font-bold text-[#1d1d1f]`,children:`Analyzing Website Structure`},void 0,!1,{fileName:z,lineNumber:237,columnNumber:17},this),(0,R.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b] max-w-[320px]`,children:`Extracting semantic layout hierarchy, typography tokens, and interactive components...`},void 0,!1,{fileName:z,lineNumber:238,columnNumber:17},this)]},void 0,!0,{fileName:z,lineNumber:233,columnNumber:15},this),(0,R.jsxDEV)(`div`,{className:`space-y-2 bg-[#fbfbfd] p-3.5 rounded-xl border border-[#e5e5ea]`,children:[{step:1,label:`1. Validating URL & SSRF Security Rules`},{step:2,label:`2. Fetching Document Hierarchy`},{step:3,label:`3. Extracting Semantic Landmarks & Design Tokens`},{step:4,label:`4. Synthesizing Editable Cyrus Elements`}].map(e=>(0,R.jsxDEV)(`div`,{className:g(`flex items-center gap-2.5 text-[11.5px] transition-apple`,x>e.step?`text-[#16a34a] font-medium`:x===e.step?`text-[#0071e3] font-bold`:`text-[#86868b]`),children:[x>e.step?(0,R.jsxDEV)(i,{className:`w-4 h-4 text-[#16a34a]`},void 0,!1,{fileName:z,lineNumber:263,columnNumber:23},this):x===e.step?(0,R.jsxDEV)(p,{className:`w-4 h-4 text-[#0071e3] animate-spin`},void 0,!1,{fileName:z,lineNumber:265,columnNumber:23},this):(0,R.jsxDEV)(`div`,{className:`w-4 h-4 rounded-full border border-[#d1d1d6] flex items-center justify-center text-[9px]`,children:e.step},void 0,!1,{fileName:z,lineNumber:267,columnNumber:23},this),(0,R.jsxDEV)(`span`,{children:e.label},void 0,!1,{fileName:z,lineNumber:271,columnNumber:21},this)]},e.step,!0,{fileName:z,lineNumber:251,columnNumber:19},this))},void 0,!1,{fileName:z,lineNumber:244,columnNumber:15},this)]},void 0,!0,{fileName:z,lineNumber:232,columnNumber:13},this),_===`preview`&&E&&(0,R.jsxDEV)(`div`,{className:`space-y-4`,children:[(0,R.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#f0f7ff] border border-[#0071e3]/30 flex items-center justify-between`,children:[(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`h4`,{className:`text-[13px] font-bold text-[#1d1d1f]`,children:E.structure.pageTitle},void 0,!1,{fileName:z,lineNumber:284,columnNumber:19},this),(0,R.jsxDEV)(`p`,{className:`text-[10.5px] text-[#0071e3] truncate max-w-[340px]`,children:E.sourceUrl},void 0,!1,{fileName:z,lineNumber:287,columnNumber:19},this)]},void 0,!0,{fileName:z,lineNumber:283,columnNumber:17},this),(0,R.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full text-[10px] font-semibold bg-white border border-[#0071e3]/20 text-[#0071e3]`,children:[E.structure.totalElementsCount,` Elements`]},void 0,!0,{fileName:z,lineNumber:291,columnNumber:17},this)]},void 0,!0,{fileName:z,lineNumber:282,columnNumber:15},this),(0,R.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#fbfbfd] border border-[#e5e5ea] space-y-2`,children:[(0,R.jsxDEV)(`div`,{className:`text-[11px] font-bold text-[#1d1d1f] flex items-center gap-1.5`,children:[(0,R.jsxDEV)(s,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:z,lineNumber:299,columnNumber:19},this),(0,R.jsxDEV)(`span`,{children:`Extracted Design Tokens`},void 0,!1,{fileName:z,lineNumber:300,columnNumber:19},this)]},void 0,!0,{fileName:z,lineNumber:298,columnNumber:17},this),(0,R.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,R.jsxDEV)(`div`,{className:`w-5 h-5 rounded-md border border-black/10 shadow-2xs`,style:{backgroundColor:E.structure.colors.primary}},void 0,!1,{fileName:z,lineNumber:304,columnNumber:21},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-mono text-[#6e6e73]`,children:[`Primary (`,E.structure.colors.primary,`)`]},void 0,!0,{fileName:z,lineNumber:308,columnNumber:21},this)]},void 0,!0,{fileName:z,lineNumber:303,columnNumber:19},this),(0,R.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,R.jsxDEV)(`div`,{className:`w-5 h-5 rounded-md border border-black/10 shadow-2xs`,style:{backgroundColor:E.structure.colors.background}},void 0,!1,{fileName:z,lineNumber:313,columnNumber:21},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-mono text-[#6e6e73]`,children:`Background`},void 0,!1,{fileName:z,lineNumber:317,columnNumber:21},this)]},void 0,!0,{fileName:z,lineNumber:312,columnNumber:19},this)]},void 0,!0,{fileName:z,lineNumber:302,columnNumber:17},this)]},void 0,!0,{fileName:z,lineNumber:297,columnNumber:15},this),(0,R.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#fbfbfd] border border-[#e5e5ea] space-y-2`,children:[(0,R.jsxDEV)(`div`,{className:`text-[11px] font-bold text-[#1d1d1f] flex items-center gap-1.5`,children:[(0,R.jsxDEV)(o,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:z,lineNumber:325,columnNumber:19},this),(0,R.jsxDEV)(`span`,{children:`Detected Semantic Components`},void 0,!1,{fileName:z,lineNumber:326,columnNumber:19},this)]},void 0,!0,{fileName:z,lineNumber:324,columnNumber:17},this),(0,R.jsxDEV)(`div`,{className:`space-y-1.5`,children:[E.structure.navbar&&(0,R.jsxDEV)(`div`,{className:`p-2 rounded-lg bg-white border border-[#e5e5ea] flex items-center justify-between text-[11px]`,children:[(0,R.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:`Navbar`},void 0,!1,{fileName:z,lineNumber:331,columnNumber:23},this),(0,R.jsxDEV)(`span`,{className:`text-[#86868b]`,children:[`Brand "`,E.structure.navbar.brandName,`" (`,E.structure.navbar.links.length,` links)`]},void 0,!0,{fileName:z,lineNumber:332,columnNumber:23},this)]},void 0,!0,{fileName:z,lineNumber:330,columnNumber:21},this),E.structure.hero&&(0,R.jsxDEV)(`div`,{className:`p-2 rounded-lg bg-white border border-[#e5e5ea] flex items-center justify-between text-[11px]`,children:[(0,R.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:`Hero Section`},void 0,!1,{fileName:z,lineNumber:340,columnNumber:23},this),(0,R.jsxDEV)(`span`,{className:`text-[#86868b] truncate max-w-[240px]`,children:[`"`,E.structure.hero.headline,`"`]},void 0,!0,{fileName:z,lineNumber:341,columnNumber:23},this)]},void 0,!0,{fileName:z,lineNumber:339,columnNumber:21},this),(0,R.jsxDEV)(`div`,{className:`p-2 rounded-lg bg-white border border-[#e5e5ea] flex items-center justify-between text-[11px]`,children:[(0,R.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:`Feature Grid`},void 0,!1,{fileName:z,lineNumber:348,columnNumber:21},this),(0,R.jsxDEV)(`span`,{className:`text-[#86868b]`,children:[E.structure.features.length||3,` Feature Cards`]},void 0,!0,{fileName:z,lineNumber:349,columnNumber:21},this)]},void 0,!0,{fileName:z,lineNumber:347,columnNumber:19},this),(0,R.jsxDEV)(`div`,{className:`p-2 rounded-lg bg-white border border-[#e5e5ea] flex items-center justify-between text-[11px]`,children:[(0,R.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:`Pricing Tiers`},void 0,!1,{fileName:z,lineNumber:355,columnNumber:21},this),(0,R.jsxDEV)(`span`,{className:`text-[#86868b]`,children:[E.structure.pricing.length||3,` Plans`]},void 0,!0,{fileName:z,lineNumber:356,columnNumber:21},this)]},void 0,!0,{fileName:z,lineNumber:354,columnNumber:19},this),E.structure.footer&&(0,R.jsxDEV)(`div`,{className:`p-2 rounded-lg bg-white border border-[#e5e5ea] flex items-center justify-between text-[11px]`,children:[(0,R.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:`Footer`},void 0,!1,{fileName:z,lineNumber:363,columnNumber:23},this),(0,R.jsxDEV)(`span`,{className:`text-[#86868b]`,children:[`Copyright + `,E.structure.footer.links.length,` links`]},void 0,!0,{fileName:z,lineNumber:364,columnNumber:23},this)]},void 0,!0,{fileName:z,lineNumber:362,columnNumber:21},this)]},void 0,!0,{fileName:z,lineNumber:328,columnNumber:17},this)]},void 0,!0,{fileName:z,lineNumber:323,columnNumber:15},this),(0,R.jsxDEV)(`p`,{className:`text-[10px] text-[#86868b] text-center italic`,children:`Note: Semantic editable reconstruction (non-pixel-perfect). All elements are fully editable on the canvas.`},void 0,!1,{fileName:z,lineNumber:372,columnNumber:15},this)]},void 0,!0,{fileName:z,lineNumber:280,columnNumber:13},this),_===`error`&&(0,R.jsxDEV)(`div`,{className:`py-4 space-y-3 text-center`,children:[(0,R.jsxDEV)(`div`,{className:`w-10 h-10 rounded-2xl bg-[#ff3b30]/10 text-[#ff3b30] flex items-center justify-center mx-auto`,children:(0,R.jsxDEV)(a,{className:`w-5 h-5`},void 0,!1,{fileName:z,lineNumber:382,columnNumber:17},this)},void 0,!1,{fileName:z,lineNumber:381,columnNumber:15},this),(0,R.jsxDEV)(`h4`,{className:`text-[13px] font-bold text-[#1d1d1f]`,children:`Import Analysis Failed`},void 0,!1,{fileName:z,lineNumber:384,columnNumber:15},this),(0,R.jsxDEV)(`p`,{className:`text-[11px] text-[#ff3b30] bg-[#fff5f5] p-2.5 rounded-xl border border-[#ffe5e5]`,children:w},void 0,!1,{fileName:z,lineNumber:385,columnNumber:15},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>{y(`input`),T(``),S(0),D(null)},className:`px-4 py-2 rounded-xl bg-[#f5f5f7] hover:bg-[#e5e5ea] text-[#1d1d1f] text-[11.5px] font-semibold transition-apple cursor-pointer`,children:`Try Another URL`},void 0,!1,{fileName:z,lineNumber:388,columnNumber:15},this)]},void 0,!0,{fileName:z,lineNumber:380,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:163,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`p-4 border-t border-[#e5e5ea] bg-[#fbfbfd] flex items-center justify-between`,children:[(0,R.jsxDEV)(`button`,{type:`button`,onClick:t,className:`px-3.5 py-2 rounded-xl bg-white border border-[#e5e5ea] text-[#6e6e73] hover:text-[#1d1d1f] text-[12px] font-medium transition-apple cursor-pointer`,children:`Cancel`},void 0,!1,{fileName:z,lineNumber:401,columnNumber:11},this),_===`preview`&&(0,R.jsxDEV)(`button`,{type:`button`,onClick:async()=>{if(E)try{let e=L(E.structure,E.sourceUrl);await b(e),f(`Created project "${e.name}"`,`success`),t(),c(e.id)}catch(e){console.error(`Failed to create project from imported structure:`,e),f(`Failed to generate project from imported website`,`error`)}},className:`px-4 py-2 rounded-xl bg-[#0071e3] hover:bg-[#0077ed] text-white text-[12px] font-semibold flex items-center gap-1.5 shadow-2xs transition-apple cursor-pointer`,children:[(0,R.jsxDEV)(n,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:z,lineNumber:415,columnNumber:15},this),(0,R.jsxDEV)(`span`,{children:`Create New Project`},void 0,!1,{fileName:z,lineNumber:416,columnNumber:15},this)]},void 0,!0,{fileName:z,lineNumber:410,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:400,columnNumber:9},this)]},void 0,!0,{fileName:z,lineNumber:138,columnNumber:7},this)},void 0,!1,{fileName:z,lineNumber:137,columnNumber:5},this)}var V=`C:/Users/Shadow/Desktop/cyrus/src/components/importer/ImportModal.tsx`;function H({className:e=`w-4 h-4`}){return(0,R.jsxDEV)(`svg`,{className:e,viewBox:`0 0 38 57`,fill:`none`,children:[(0,R.jsxDEV)(`path`,{d:`M19 28.5C19 23.2533 23.2533 19 28.5 19C33.7467 19 38 23.2533 38 28.5C38 33.7467 33.7467 38 28.5 38C23.2533 38 19 33.7467 19 28.5Z`,fill:`#1ABCFE`},void 0,!1,{fileName:V,lineNumber:34,columnNumber:7},this),(0,R.jsxDEV)(`path`,{d:`M0 47.5C0 42.2533 4.25329 38 9.5 38H19V47.5C19 52.7467 14.7467 57 9.5 57C4.25329 57 0 52.7467 0 47.5Z`,fill:`#0ACF83`},void 0,!1,{fileName:V,lineNumber:35,columnNumber:7},this),(0,R.jsxDEV)(`path`,{d:`M19 0V19H28.5C33.7467 19 38 14.7467 38 9.5C38 4.25329 33.7467 0 28.5 0H19Z`,fill:`#FF7262`},void 0,!1,{fileName:V,lineNumber:36,columnNumber:7},this),(0,R.jsxDEV)(`path`,{d:`M0 9.5C0 14.7467 4.25329 19 9.5 19H19V0H9.5C4.25329 0 0 4.25329 0 9.5Z`,fill:`#F24E1E`},void 0,!1,{fileName:V,lineNumber:37,columnNumber:7},this),(0,R.jsxDEV)(`path`,{d:`M0 28.5C0 33.7467 4.25329 38 9.5 38H19V19H9.5C4.25329 19 0 23.2533 0 28.5Z`,fill:`#A259FF`},void 0,!1,{fileName:V,lineNumber:38,columnNumber:7},this)]},void 0,!0,{fileName:V,lineNumber:33,columnNumber:5},this)}function U({isOpen:e,onClose:a,onProjectOpened:o}){let{addToast:s}=v(),[c,d]=(0,C.useState)(`figma`),[p,h]=(0,C.useState)(!1),[_,y]=(0,C.useState)(null),x=(0,C.useRef)(null),w=(0,C.useRef)(null);if(!e)return null;let T=async e=>{let t=e.target.files?.[0];if(t)try{let e=await t.text(),n=await S(e);s(`Imported Cyrus project "${n.name}"`,`success`),a(),o(n.id)}catch(e){console.error(`Cyrus file import error:`,e),s(`Invalid Cyrus project file format`,`error`)}},E=async e=>{try{let{project:t,report:n}=D(e);await b(t),y({projectId:t.id,projectName:t.name,report:n}),s(`Converted Figma file: ${n.convertedElementsCount} elements created`,`success`)}catch(e){console.error(`Figma conversion error:`,e),s(`Failed to parse Figma document format`,`error`)}};return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/40 backdrop-blur-xs select-none`,children:(0,R.jsxDEV)(`div`,{className:`w-full max-w-[560px] bg-white rounded-2xl shadow-apple-2xl border border-[#e5e5ea] overflow-hidden flex flex-col animate-scale-in`,children:[(0,R.jsxDEV)(`div`,{className:`p-4 border-b border-[#e5e5ea] flex items-center justify-between bg-[#fbfbfd]`,children:[(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[(0,R.jsxDEV)(`div`,{className:`w-8 h-8 rounded-xl bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center`,children:(0,R.jsxDEV)(m,{className:`w-4 h-4`},void 0,!1,{fileName:V,lineNumber:127,columnNumber:17},this)},void 0,!1,{fileName:V,lineNumber:126,columnNumber:15},this),(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`h3`,{className:`text-[14px] font-bold text-[#1d1d1f]`,children:`Import Project`},void 0,!1,{fileName:V,lineNumber:130,columnNumber:17},this),(0,R.jsxDEV)(`p`,{className:`text-[10.5px] text-[#86868b]`,children:`Load projects from Cyrus files, official Figma exports, or live websites`},void 0,!1,{fileName:V,lineNumber:131,columnNumber:17},this)]},void 0,!0,{fileName:V,lineNumber:129,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:125,columnNumber:13},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:a,className:`w-7 h-7 rounded-lg text-[#86868b] hover:text-[#1d1d1f] hover:bg-[#f5f5f7] flex items-center justify-center transition-apple cursor-pointer`,children:(0,R.jsxDEV)(l,{className:`w-4 h-4`},void 0,!1,{fileName:V,lineNumber:142,columnNumber:15},this)},void 0,!1,{fileName:V,lineNumber:137,columnNumber:13},this)]},void 0,!0,{fileName:V,lineNumber:124,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`p-3 border-b border-[#e5e5ea] bg-white`,children:(0,R.jsxDEV)(`div`,{className:`flex border border-[#e5e5ea] rounded-xl p-0.5 bg-[#f5f5f7]`,children:[{id:`figma`,label:`Figma Export (.json)`,icon:(0,R.jsxDEV)(H,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:V,lineNumber:150,columnNumber:69},this)},{id:`cyrus`,label:`Cyrus File (.json)`,icon:(0,R.jsxDEV)(f,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:V,lineNumber:151,columnNumber:67},this)},{id:`website`,label:`Website URL`,icon:(0,R.jsxDEV)(r,{className:`w-3.5 h-3.5 text-[#34c759]`},void 0,!1,{fileName:V,lineNumber:152,columnNumber:62},this)}].map(e=>(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>{e.id===`website`?h(!0):d(e.id)},className:g(`flex-1 py-1.5 px-2 rounded-lg text-[11px] font-medium flex items-center justify-center gap-1.5 transition-apple cursor-pointer`,c===e.id?`bg-white text-[#1d1d1f] shadow-2xs font-bold`:`text-[#86868b] hover:text-[#1d1d1f]`),children:[e.icon,(0,R.jsxDEV)(`span`,{children:e.label},void 0,!1,{fileName:V,lineNumber:172,columnNumber:19},this)]},e.id,!0,{fileName:V,lineNumber:154,columnNumber:17},this))},void 0,!1,{fileName:V,lineNumber:148,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:147,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`p-5 space-y-4 max-h-[70vh] overflow-y-auto text-[12px]`,children:[c===`figma`&&(0,R.jsxDEV)(`div`,{className:`space-y-4`,children:_?(0,R.jsxDEV)(`div`,{className:`space-y-3.5 animate-fade-in`,children:[(0,R.jsxDEV)(`div`,{className:`p-3.5 rounded-xl bg-[#eaf8ee] border border-[#34c759]/30 flex items-center justify-between`,children:(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxDEV)(i,{className:`w-5 h-5 text-[#34c759]`},void 0,!1,{fileName:V,lineNumber:248,columnNumber:25},this),(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`h4`,{className:`text-[13px] font-bold text-[#1d1d1f]`,children:_.projectName},void 0,!1,{fileName:V,lineNumber:250,columnNumber:27},this),(0,R.jsxDEV)(`p`,{className:`text-[10.5px] text-[#166534]`,children:[`Successfully converted in `,_.report.executionDurationMs,`ms`]},void 0,!0,{fileName:V,lineNumber:253,columnNumber:27},this)]},void 0,!0,{fileName:V,lineNumber:249,columnNumber:25},this)]},void 0,!0,{fileName:V,lineNumber:247,columnNumber:23},this)},void 0,!1,{fileName:V,lineNumber:246,columnNumber:21},this),(0,R.jsxDEV)(`div`,{className:`grid grid-cols-3 gap-2 text-center`,children:[(0,R.jsxDEV)(`div`,{className:`p-2.5 rounded-xl bg-[#f5f5f7] border border-[#e5e5ea]`,children:[(0,R.jsxDEV)(`div`,{className:`text-[16px] font-bold text-[#1d1d1f]`,children:_.report.convertedElementsCount},void 0,!1,{fileName:V,lineNumber:263,columnNumber:25},this),(0,R.jsxDEV)(`div`,{className:`text-[10px] text-[#86868b]`,children:`Elements Created`},void 0,!1,{fileName:V,lineNumber:266,columnNumber:25},this)]},void 0,!0,{fileName:V,lineNumber:262,columnNumber:23},this),(0,R.jsxDEV)(`div`,{className:`p-2.5 rounded-xl bg-[#f5f5f7] border border-[#e5e5ea]`,children:[(0,R.jsxDEV)(`div`,{className:`text-[16px] font-bold text-[#1d1d1f]`,children:_.report.createdPagesCount},void 0,!1,{fileName:V,lineNumber:269,columnNumber:25},this),(0,R.jsxDEV)(`div`,{className:`text-[10px] text-[#86868b]`,children:`Pages`},void 0,!1,{fileName:V,lineNumber:272,columnNumber:25},this)]},void 0,!0,{fileName:V,lineNumber:268,columnNumber:23},this),(0,R.jsxDEV)(`div`,{className:`p-2.5 rounded-xl bg-[#f5f5f7] border border-[#e5e5ea]`,children:[(0,R.jsxDEV)(`div`,{className:`text-[16px] font-bold text-[#1d1d1f]`,children:_.report.createdComponentsCount},void 0,!1,{fileName:V,lineNumber:275,columnNumber:25},this),(0,R.jsxDEV)(`div`,{className:`text-[10px] text-[#86868b]`,children:`Master Components`},void 0,!1,{fileName:V,lineNumber:278,columnNumber:25},this)]},void 0,!0,{fileName:V,lineNumber:274,columnNumber:23},this)]},void 0,!0,{fileName:V,lineNumber:261,columnNumber:21},this),_.report.approximationWarnings.length>0&&(0,R.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#fffbeb] border border-[#fef3c7] space-y-1.5`,children:[(0,R.jsxDEV)(`div`,{className:`text-[11px] font-bold text-[#92400e] flex items-center gap-1.5`,children:[(0,R.jsxDEV)(t,{className:`w-3.5 h-3.5 text-[#f59e0b]`},void 0,!1,{fileName:V,lineNumber:286,columnNumber:27},this),(0,R.jsxDEV)(`span`,{children:[`Approximations (`,_.report.approximationWarnings.length,`)`]},void 0,!0,{fileName:V,lineNumber:287,columnNumber:27},this)]},void 0,!0,{fileName:V,lineNumber:285,columnNumber:25},this),(0,R.jsxDEV)(`div`,{className:`space-y-1 max-h-[100px] overflow-y-auto pr-1`,children:_.report.approximationWarnings.map((e,t)=>(0,R.jsxDEV)(`div`,{className:`text-[10px] text-[#b45309]`,children:[`• `,(0,R.jsxDEV)(`span`,{className:`font-semibold`,children:[e.nodeName,`:`]},void 0,!0,{fileName:V,lineNumber:292,columnNumber:33},this),` `,e.details]},t,!0,{fileName:V,lineNumber:291,columnNumber:29},this))},void 0,!1,{fileName:V,lineNumber:289,columnNumber:25},this)]},void 0,!0,{fileName:V,lineNumber:284,columnNumber:23},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>{a(),o(_.projectId)},className:`w-full py-2.5 rounded-xl bg-[#0071e3] hover:bg-[#0077ed] text-white text-[12px] font-semibold flex items-center justify-center gap-1.5 shadow-2xs transition-apple cursor-pointer`,children:[(0,R.jsxDEV)(`span`,{children:`Open Imported Project`},void 0,!1,{fileName:V,lineNumber:308,columnNumber:23},this),(0,R.jsxDEV)(u,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:V,lineNumber:309,columnNumber:23},this)]},void 0,!0,{fileName:V,lineNumber:300,columnNumber:21},this)]},void 0,!0,{fileName:V,lineNumber:245,columnNumber:19},this):(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`input`,{type:`file`,ref:w,onChange:async e=>{let t=e.target.files?.[0];if(t)try{let e=await t.text(),n=JSON.parse(e);await E(n)}catch(e){console.error(`Failed to read Figma file:`,e),s(`Invalid JSON file. Please upload an official Figma export file.`,`error`)}},accept:`.json`,className:`hidden`},void 0,!1,{fileName:V,lineNumber:185,columnNumber:21},this),(0,R.jsxDEV)(`div`,{onClick:()=>w.current?.click(),className:`p-6 rounded-2xl border-2 border-dashed border-[#d1d1d6] hover:border-[#0071e3] bg-[#fbfbfd] hover:bg-[#f0f7ff]/40 flex flex-col items-center justify-center text-center space-y-2 cursor-pointer transition-apple`,children:[(0,R.jsxDEV)(`div`,{className:`w-12 h-12 rounded-2xl bg-white border border-[#e5e5ea] flex items-center justify-center shadow-apple-sm`,children:(0,R.jsxDEV)(H,{className:`w-6 h-6`},void 0,!1,{fileName:V,lineNumber:199,columnNumber:25},this)},void 0,!1,{fileName:V,lineNumber:198,columnNumber:23},this),(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`p`,{className:`text-[13px] font-bold text-[#1d1d1f]`,children:`Choose official Figma export JSON`},void 0,!1,{fileName:V,lineNumber:202,columnNumber:25},this),(0,R.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b] mt-0.5`,children:`Upload file exported via official Figma REST API or plugin`},void 0,!1,{fileName:V,lineNumber:205,columnNumber:25},this)]},void 0,!0,{fileName:V,lineNumber:201,columnNumber:23},this),(0,R.jsxDEV)(`span`,{className:`px-3 py-1 rounded-lg bg-[#0071e3] text-white text-[11px] font-semibold shadow-2xs`,children:`Browse Files`},void 0,!1,{fileName:V,lineNumber:209,columnNumber:23},this)]},void 0,!0,{fileName:V,lineNumber:194,columnNumber:21},this),(0,R.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#f5f5f7] border border-[#e5e5ea] flex items-center justify-between`,children:[(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxDEV)(n,{className:`w-4 h-4 text-[#0071e3]`},void 0,!1,{fileName:V,lineNumber:217,columnNumber:25},this),(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`div`,{className:`text-[11.5px] font-bold text-[#1d1d1f]`,children:`Sample Figma Export`},void 0,!1,{fileName:V,lineNumber:219,columnNumber:27},this),(0,R.jsxDEV)(`div`,{className:`text-[10px] text-[#86868b]`,children:`SaaS Landing & Components (Frames, text, buttons, instances)`},void 0,!1,{fileName:V,lineNumber:222,columnNumber:27},this)]},void 0,!0,{fileName:V,lineNumber:218,columnNumber:25},this)]},void 0,!0,{fileName:V,lineNumber:216,columnNumber:23},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:async()=>{await E(O)},className:`px-2.5 py-1 rounded-lg bg-white border border-[#e5e5ea] text-[#0071e3] hover:bg-[#e8f2fc] text-[11px] font-semibold transition-apple cursor-pointer`,children:`Load Sample`},void 0,!1,{fileName:V,lineNumber:228,columnNumber:23},this)]},void 0,!0,{fileName:V,lineNumber:215,columnNumber:21},this),(0,R.jsxDEV)(`div`,{className:`text-[10.5px] text-[#86868b] leading-relaxed`,children:[(0,R.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:`Officially supported:`},void 0,!1,{fileName:V,lineNumber:238,columnNumber:23},this),` Frames, Auto-Layout structures, Text hierarchies, Master Components & Instances, Corner Radii, and Drop Shadows.`]},void 0,!0,{fileName:V,lineNumber:237,columnNumber:21},this)]},void 0,!0,{fileName:V,lineNumber:184,columnNumber:19},this)},void 0,!1,{fileName:V,lineNumber:182,columnNumber:15},this),c===`cyrus`&&(0,R.jsxDEV)(`div`,{className:`space-y-4`,children:[(0,R.jsxDEV)(`input`,{type:`file`,ref:x,onChange:T,accept:`.json`,className:`hidden`},void 0,!1,{fileName:V,lineNumber:319,columnNumber:17},this),(0,R.jsxDEV)(`div`,{onClick:()=>x.current?.click(),className:`p-6 rounded-2xl border-2 border-dashed border-[#d1d1d6] hover:border-[#0071e3] bg-[#fbfbfd] hover:bg-[#f0f7ff]/40 flex flex-col items-center justify-center text-center space-y-2 cursor-pointer transition-apple`,children:[(0,R.jsxDEV)(`div`,{className:`w-12 h-12 rounded-2xl bg-white border border-[#e5e5ea] flex items-center justify-center shadow-apple-sm`,children:(0,R.jsxDEV)(f,{className:`w-6 h-6 text-[#0071e3]`},void 0,!1,{fileName:V,lineNumber:332,columnNumber:21},this)},void 0,!1,{fileName:V,lineNumber:331,columnNumber:19},this),(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`p`,{className:`text-[13px] font-bold text-[#1d1d1f]`,children:`Upload Cyrus Project (.json)`},void 0,!1,{fileName:V,lineNumber:335,columnNumber:21},this),(0,R.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b] mt-0.5`,children:`Full native restore with tokens, components, variables, and pages`},void 0,!1,{fileName:V,lineNumber:336,columnNumber:21},this)]},void 0,!0,{fileName:V,lineNumber:334,columnNumber:19},this),(0,R.jsxDEV)(`span`,{className:`px-3 py-1 rounded-lg bg-[#0071e3] text-white text-[11px] font-semibold shadow-2xs`,children:`Browse Files`},void 0,!1,{fileName:V,lineNumber:340,columnNumber:19},this)]},void 0,!0,{fileName:V,lineNumber:327,columnNumber:17},this)]},void 0,!0,{fileName:V,lineNumber:318,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:179,columnNumber:11},this)]},void 0,!0,{fileName:V,lineNumber:122,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:121,columnNumber:7},this),(0,R.jsxDEV)(B,{isOpen:p,onClose:()=>h(!1),onProjectCreated:e=>{h(!1),a(),o(e)}},void 0,!1,{fileName:V,lineNumber:351,columnNumber:7},this)]},void 0,!0,{fileName:V,lineNumber:120,columnNumber:5},this)}export{U as ImportModal};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-W7wSyTde.js";import{C as t,Xn as n,Xr as r,bn as i,ct as a,di as o,ht as s,rn as c,vn as l}from"./vendor-icons-M_KBtuE-.js";import{t as u}from"./vendor-react-BTEcvIpc.js";import{c as d}from"./vendor-utils-3OgY5Lif.js";import{a as f,f as p,m,o as h,s as g}from"./index-BewtY0Hs.js";var _=e(o(),1),v=u(),y=`C:/Users/Shadow/Desktop/cyrus/src/components/dialogs/KeyboardShortcutsDialog.tsx`;function b({isOpen:e,onClose:o}){let[u,b]=(0,_.useState)(``),[x,S]=(0,_.useState)(`all`),[C,w]=(0,_.useState)(()=>g.getShortcuts());(0,_.useEffect)(()=>g.subscribe(()=>{w([...g.getShortcuts()])}),[]);let T=(0,_.useMemo)(()=>g.getConflicts(),[C]),E=[{id:`all`,label:`All`,icon:i},{id:`general`,label:`General`,icon:n},{id:`editing`,label:`Selection`,icon:l},{id:`canvas`,label:`Canvas`,icon:c},{id:`widgets`,label:`Quick Widgets`,icon:r}],D=(0,_.useMemo)(()=>{let e=u.trim().toLowerCase();return C.filter(t=>{if(x!==`all`&&t.category!==x)return!1;if(!e)return!0;let n=t.name.toLowerCase().includes(e),r=t.description.toLowerCase().includes(e),i=t.categoryLabel.toLowerCase().includes(e);return n||r||i})},[C,u,x]),O=h();return(0,v.jsxDEV)(p,{isOpen:e,onClose:o,title:`Keyboard Shortcuts`,subtitle:`Power up your workflow with ${O?`macOS (⌘)`:`Windows (Ctrl)`} hotkeys.`,maxWidth:`lg`,footer:(0,v.jsxDEV)(`div`,{className:`flex items-center justify-between w-full`,children:[(0,v.jsxDEV)(m,{variant:`ghost`,size:`xs`,onClick:()=>g.resetAllToDefaults(),className:`text-[#86868b] hover:text-[#1d1d1f] flex items-center gap-1.5`,children:[(0,v.jsxDEV)(s,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:y,lineNumber:89,columnNumber:13},this),(0,v.jsxDEV)(`span`,{children:`Reset to Defaults`},void 0,!1,{fileName:y,lineNumber:90,columnNumber:13},this)]},void 0,!0,{fileName:y,lineNumber:83,columnNumber:11},this),(0,v.jsxDEV)(m,{variant:`primary`,size:`sm`,onClick:o,children:`Done`},void 0,!1,{fileName:y,lineNumber:93,columnNumber:11},this)]},void 0,!0,{fileName:y,lineNumber:82,columnNumber:9},this),children:(0,v.jsxDEV)(`div`,{className:`space-y-4`,children:[T.length>0&&(0,v.jsxDEV)(`div`,{className:`p-3 bg-[#fff9f0] dark:bg-[#3a2810] border border-[#ffe4b3] dark:border-[#5c4015] rounded-xl flex items-start gap-2.5 text-[12px] text-[#b35900] dark:text-[#f7a044]`,children:[(0,v.jsxDEV)(t,{className:`w-4 h-4 shrink-0 mt-0.5`},void 0,!1,{fileName:y,lineNumber:103,columnNumber:13},this),(0,v.jsxDEV)(`div`,{children:[(0,v.jsxDEV)(`span`,{className:`font-semibold`,children:[T.length,` shortcut conflict(s) detected:`]},void 0,!0,{fileName:y,lineNumber:105,columnNumber:15},this),(0,v.jsxDEV)(`ul`,{className:`list-disc pl-4 mt-1 space-y-0.5`,children:T.map((e,t)=>(0,v.jsxDEV)(`li`,{children:e.message},t,!1,{fileName:y,lineNumber:108,columnNumber:19},this))},void 0,!1,{fileName:y,lineNumber:106,columnNumber:15},this)]},void 0,!0,{fileName:y,lineNumber:104,columnNumber:13},this)]},void 0,!0,{fileName:y,lineNumber:102,columnNumber:11},this),(0,v.jsxDEV)(`div`,{className:`flex flex-col sm:flex-row items-center gap-2`,children:[(0,v.jsxDEV)(`div`,{className:`relative flex-1 w-full`,children:[(0,v.jsxDEV)(a,{className:`w-4 h-4 absolute left-3 top-1/2 -translate-y-1/2 text-[#86868b]`},void 0,!1,{fileName:y,lineNumber:118,columnNumber:13},this),(0,v.jsxDEV)(`input`,{type:`text`,value:u,onChange:e=>b(e.target.value),placeholder:`Search shortcuts (e.g. undo, duplicate, zoom, chart)...`,className:`w-full pl-9 pr-3 py-1.5 text-[13px] bg-[#f5f5f7] dark:bg-[#2c2c2e] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-xl border border-transparent focus:border-[#0071e3] outline-none placeholder-[#86868b]`},void 0,!1,{fileName:y,lineNumber:119,columnNumber:13},this)]},void 0,!0,{fileName:y,lineNumber:117,columnNumber:11},this),(0,v.jsxDEV)(`div`,{className:`flex items-center gap-1 w-full sm:w-auto overflow-x-auto pb-1 sm:pb-0`,children:E.map(e=>{let t=e.icon;return(0,v.jsxDEV)(`button`,{onClick:()=>S(e.id),className:d(`px-2.5 py-1 rounded-lg text-[12px] font-medium flex items-center gap-1.5 transition-colors shrink-0 cursor-pointer`,x===e.id?`bg-[#0071e3] text-white shadow-2xs`:`text-[#6e6e73] hover:text-[#1d1d1f] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e]`),children:[(0,v.jsxDEV)(t,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:y,lineNumber:142,columnNumber:19},this),(0,v.jsxDEV)(`span`,{children:e.label},void 0,!1,{fileName:y,lineNumber:143,columnNumber:19},this)]},e.id,!0,{fileName:y,lineNumber:132,columnNumber:17},this)})},void 0,!1,{fileName:y,lineNumber:128,columnNumber:11},this)]},void 0,!0,{fileName:y,lineNumber:116,columnNumber:9},this),(0,v.jsxDEV)(`div`,{className:`max-h-[380px] overflow-y-auto pr-1 space-y-1`,children:D.length===0?(0,v.jsxDEV)(`div`,{className:`py-12 text-center text-[#86868b] text-[13px]`,children:[`No shortcuts found matching "`,u,`".`]},void 0,!0,{fileName:y,lineNumber:153,columnNumber:13},this):D.map(e=>{let t=e.customBinding||e.defaultBinding,n=f(t),r=!!e.customBinding;return(0,v.jsxDEV)(`div`,{className:`flex items-center justify-between px-3 py-2 rounded-xl hover:bg-[#f9f9fb] dark:hover:bg-[#252528] border border-transparent hover:border-[#f0f0f2] transition-colors`,children:[(0,v.jsxDEV)(`div`,{className:`min-w-0 pr-3`,children:[(0,v.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsxDEV)(`span`,{className:`text-[13px] font-medium text-[#1d1d1f] dark:text-[#f5f5f7]`,children:e.name},void 0,!1,{fileName:y,lineNumber:169,columnNumber:23},this),r&&(0,v.jsxDEV)(`span`,{className:`text-[10px] bg-[#0071e3]/10 text-[#0071e3] px-1.5 py-0.5 rounded font-medium`,children:`Custom`},void 0,!1,{fileName:y,lineNumber:173,columnNumber:25},this)]},void 0,!0,{fileName:y,lineNumber:168,columnNumber:21},this),(0,v.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] truncate mt-0.5`,children:e.description},void 0,!1,{fileName:y,lineNumber:178,columnNumber:21},this)]},void 0,!0,{fileName:y,lineNumber:167,columnNumber:19},this),(0,v.jsxDEV)(`div`,{className:`flex items-center gap-1.5 shrink-0`,children:n.map((e,t)=>(0,v.jsxDEV)(`kbd`,{className:`px-2 py-1 text-[11.5px] font-mono font-semibold text-[#1d1d1f] dark:text-[#f5f5f7] bg-[#f5f5f7] dark:bg-[#2c2c2e] border border-[#e5e5ea] dark:border-[#3a3a3c] rounded-md shadow-2xs min-w-[24px] text-center`,children:e},t,!1,{fileName:y,lineNumber:185,columnNumber:23},this))},void 0,!1,{fileName:y,lineNumber:183,columnNumber:19},this)]},e.id,!0,{fileName:y,lineNumber:163,columnNumber:17},this)})},void 0,!1,{fileName:y,lineNumber:151,columnNumber:9},this)]},void 0,!0,{fileName:y,lineNumber:99,columnNumber:7},this)},void 0,!1,{fileName:y,lineNumber:75,columnNumber:5},this)}export{b as KeyboardShortcutsDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-W7wSyTde.js";import{B as t,C as n,Jt as r,Rt as i,X as a,Z as o,a as s,br as c,di as l,ht as u,i as d,ir as f,or as p,qt as m,rn as h,z as g}from"./vendor-icons-M_KBtuE-.js";import{t as _}from"./vendor-react-BTEcvIpc.js";import{c as v}from"./vendor-utils-3OgY5Lif.js";import{a as y,r as b,t as x}from"./themes-CNabH9CH.js";import{l as S,m as C,t as w}from"./index-BewtY0Hs.js";var T=e(l(),1),E=_(),D=`C:/Users/Shadow/Desktop/cyrus/src/runtime/LiveRuntimeErrorBoundary.tsx`,O=class extends T.Component{state={hasError:!1,error:null,errorInfo:null};static getDerivedStateFromError(e){return{hasError:!0,error:e,errorInfo:null}}componentDidCatch(e,t){console.error(`Live Runtime Crash:`,e,t),this.setState({error:e,errorInfo:t})}handleReset=()=>{this.setState({hasError:!1,error:null,errorInfo:null}),this.props.onReload&&this.props.onReload()};render(){if(this.state.hasError){let e=this.state.error?.message||`An unexpected runtime error occurred.`;return(0,E.jsxDEV)(`div`,{className:`w-full h-full min-h-[400px] flex items-center justify-center p-6 bg-[#f5f5f7]`,children:(0,E.jsxDEV)(`div`,{className:`max-w-md w-full p-6 rounded-[18px] bg-white border border-[#e5e5ea] shadow-apple-lg flex flex-col gap-4 text-center`,children:[(0,E.jsxDEV)(`div`,{className:`w-12 h-12 rounded-full bg-[#ff3b30]/10 text-[#ff3b30] flex items-center justify-center mx-auto`,children:(0,E.jsxDEV)(n,{className:`w-6 h-6`},void 0,!1,{fileName:D,lineNumber:45,columnNumber:15},this)},void 0,!1,{fileName:D,lineNumber:44,columnNumber:13},this),(0,E.jsxDEV)(`div`,{children:[(0,E.jsxDEV)(`h3`,{className:`text-[16px] font-semibold text-[#1d1d1f]`,children:`Preview Failed to Render`},void 0,!1,{fileName:D,lineNumber:49,columnNumber:15},this),(0,E.jsxDEV)(`p`,{className:`text-[12.5px] text-[#86868b] mt-1`,children:`A component threw an unhandled exception during runtime execution.`},void 0,!1,{fileName:D,lineNumber:50,columnNumber:15},this)]},void 0,!0,{fileName:D,lineNumber:48,columnNumber:13},this),(0,E.jsxDEV)(`div`,{className:`p-3 rounded-[10px] bg-[#1d1d1f] text-[#ff453a] font-mono text-[11.5px] text-left overflow-x-auto max-h-32 select-text`,children:e},void 0,!1,{fileName:D,lineNumber:56,columnNumber:13},this),(0,E.jsxDEV)(`div`,{className:`flex items-center justify-center gap-2 pt-2`,children:[(0,E.jsxDEV)(C,{variant:`secondary`,size:`sm`,onClick:this.handleReset,icon:(0,E.jsxDEV)(u,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:D,lineNumber:66,columnNumber:23},this),children:`Reload Preview`},void 0,!1,{fileName:D,lineNumber:62,columnNumber:15},this),this.props.onFixWithAI&&(0,E.jsxDEV)(C,{variant:`primary`,size:`sm`,onClick:()=>this.props.onFixWithAI(e),icon:(0,E.jsxDEV)(s,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:D,lineNumber:75,columnNumber:25},this),children:`Fix with AI`},void 0,!1,{fileName:D,lineNumber:71,columnNumber:17},this)]},void 0,!0,{fileName:D,lineNumber:61,columnNumber:13},this)]},void 0,!0,{fileName:D,lineNumber:43,columnNumber:11},this)},void 0,!1,{fileName:D,lineNumber:42,columnNumber:9},this)}return this.props.children}},k=`C:/Users/Shadow/Desktop/cyrus/src/runtime/LiveRuntimeWorkspace.tsx`;function A({project:e,initialPageId:n,onBackToDesign:s,onOpenCodingMode:l,onExit:_}){let{addToast:C}=y(),{updateDesignTokens:D}=S(),[A,j]=(0,T.useState)(e.designSystem?.mode===`dark`?`dark`:`light`),M=t=>{j(t);let n=b(e.designSystem||x,t);D(n),C(`Preview switched to ${t.toUpperCase()} theme`,`info`)},[N,P]=(0,T.useState)(`desktop`),[F,I]=(0,T.useState)(1440),[L,R]=(0,T.useState)(!0),[z,B]=(0,T.useState)(e.pages.find(e=>e.id===n)||e.pages[0]),[V,H]=(0,T.useState)(0),[U,W]=(0,T.useState)(!1),[G,K]=(0,T.useState)([{id:`log_init`,type:`info`,message:`Cyrus Live Application Runtime initialized for "${e.name}".`,timestamp:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}]);(0,T.useRef)(null);let q=e=>{P(e),e===`desktop`?I(1440):e===`tablet`?I(768):e===`mobile`&&I(390)},J=()=>{H(e=>e+1),B(e.pages[0]),Y(`info`,`Prototype state restarted.`),C(`Prototype state reset`,`info`)},Y=(e,t)=>{let n={id:`log_${Date.now()}_${Math.random().toString(36).substr(2,4)}`,type:e,message:t,timestamp:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})};K(e=>[...e,n])};return G.filter(e=>e.type===`error`).length,(0,E.jsxDEV)(`div`,{className:`fixed inset-0 bg-[#e5e5ea] flex flex-col z-[9999999] select-none font-sans overflow-hidden`,children:[(0,E.jsxDEV)(`header`,{className:`h-12 bg-white/95 backdrop-blur-xl border-b border-[#d1d1d6] px-4 flex items-center justify-between shadow-2xs z-50 shrink-0`,children:[(0,E.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,E.jsxDEV)(`div`,{className:`flex items-center bg-[#f4f4f6] p-0.5 rounded-[8px] border border-[#e5e5ea]`,children:[(0,E.jsxDEV)(`button`,{type:`button`,onClick:s,className:`px-2.5 py-1 rounded-[6px] text-[11.5px] font-medium text-[#6e6e73] hover:text-[#1d1d1f] flex items-center gap-1.5 transition-apple cursor-pointer`,children:[(0,E.jsxDEV)(i,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:k,lineNumber:150,columnNumber:15},this),(0,E.jsxDEV)(`span`,{children:`Design`},void 0,!1,{fileName:k,lineNumber:151,columnNumber:15},this)]},void 0,!0,{fileName:k,lineNumber:145,columnNumber:13},this),(0,E.jsxDEV)(`button`,{type:`button`,onClick:()=>l(),className:`px-2.5 py-1 rounded-[6px] text-[11.5px] font-medium text-[#6e6e73] hover:text-[#1d1d1f] flex items-center gap-1.5 transition-apple cursor-pointer`,children:[(0,E.jsxDEV)(c,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:k,lineNumber:158,columnNumber:15},this),(0,E.jsxDEV)(`span`,{children:`Code IDE`},void 0,!1,{fileName:k,lineNumber:159,columnNumber:15},this)]},void 0,!0,{fileName:k,lineNumber:153,columnNumber:13},this),(0,E.jsxDEV)(`button`,{type:`button`,className:`px-2.5 py-1 rounded-[6px] text-[11.5px] font-medium bg-[#0071e3] text-white flex items-center gap-1.5 shadow-2xs cursor-default`,children:[(0,E.jsxDEV)(f,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:k,lineNumber:165,columnNumber:15},this),(0,E.jsxDEV)(`span`,{children:`Preview`},void 0,!1,{fileName:k,lineNumber:166,columnNumber:15},this)]},void 0,!0,{fileName:k,lineNumber:161,columnNumber:13},this)]},void 0,!0,{fileName:k,lineNumber:144,columnNumber:11},this),(0,E.jsxDEV)(`div`,{className:`h-4 w-[1px] bg-[#e5e5ea]`},void 0,!1,{fileName:k,lineNumber:170,columnNumber:11},this),(0,E.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-[12px]`,children:[(0,E.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:e.name},void 0,!1,{fileName:k,lineNumber:174,columnNumber:13},this),(0,E.jsxDEV)(`span`,{className:`text-[#86868b]`,children:`/`},void 0,!1,{fileName:k,lineNumber:175,columnNumber:13},this),(0,E.jsxDEV)(`span`,{className:`text-[#0071e3] font-medium`,children:[z.name,` (/`,z.slug,`)`]},void 0,!0,{fileName:k,lineNumber:176,columnNumber:13},this)]},void 0,!0,{fileName:k,lineNumber:173,columnNumber:11},this)]},void 0,!0,{fileName:k,lineNumber:142,columnNumber:9},this),(0,E.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,E.jsxDEV)(`div`,{className:`flex items-center p-0.5 rounded-[8px] bg-[#f4f4f6] border border-[#e5e5ea]`,children:[{id:`desktop`,label:`Desktop`,icon:(0,E.jsxDEV)(r,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:k,lineNumber:187,columnNumber:72},this)},{id:`tablet`,label:`Tablet`,icon:(0,E.jsxDEV)(g,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:k,lineNumber:188,columnNumber:70},this)},{id:`mobile`,label:`Mobile`,icon:(0,E.jsxDEV)(a,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:k,lineNumber:189,columnNumber:70},this)}].map(e=>(0,E.jsxDEV)(`button`,{type:`button`,onClick:()=>q(e.id),className:v(`flex items-center gap-1.5 px-3 py-1 rounded-[6px] text-[11.5px] font-medium transition-apple cursor-pointer`,N===e.id?`bg-white text-[#1d1d1f] shadow-2xs`:`text-[#86868b] hover:text-[#1d1d1f]`),children:[e.icon,(0,E.jsxDEV)(`span`,{children:e.label},void 0,!1,{fileName:k,lineNumber:203,columnNumber:17},this)]},e.id,!0,{fileName:k,lineNumber:191,columnNumber:15},this))},void 0,!1,{fileName:k,lineNumber:185,columnNumber:11},this),N===`mobile`&&(0,E.jsxDEV)(`button`,{type:`button`,onClick:()=>R(!L),title:`Toggle iPhone Device Bezel`,className:v(`flex items-center gap-1 px-2.5 py-1 rounded-[6px] text-[11px] font-medium transition-apple cursor-pointer border`,L?`bg-[#0071e3] text-white border-[#0071e3]`:`bg-[#f4f4f6] text-[#6e6e73] border-[#e5e5ea] hover:text-[#1d1d1f]`),children:[(0,E.jsxDEV)(o,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:k,lineNumber:221,columnNumber:15},this),(0,E.jsxDEV)(`span`,{children:`Frame`},void 0,!1,{fileName:k,lineNumber:222,columnNumber:15},this)]},void 0,!0,{fileName:k,lineNumber:210,columnNumber:13},this)]},void 0,!0,{fileName:k,lineNumber:183,columnNumber:9},this),(0,E.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,E.jsxDEV)(`div`,{className:`flex items-center bg-[#f4f4f6] dark:bg-[#2c2c2e] p-0.5 rounded-[8px] border border-[#e5e5ea] dark:border-[#38383a] mr-1`,children:[(0,E.jsxDEV)(`button`,{type:`button`,onClick:()=>M(`light`),title:`Switch to Light Mode`,className:v(`p-1 px-1.5 rounded-[6px] text-[11px] font-medium flex items-center gap-1 transition-apple cursor-pointer`,A===`light`?`bg-white text-[#1d1d1f] shadow-2xs font-semibold`:`text-[#86868b] hover:text-[#1d1d1f]`),children:[(0,E.jsxDEV)(t,{className:`w-3 h-3 text-[#ff9500]`},void 0,!1,{fileName:k,lineNumber:242,columnNumber:15},this),(0,E.jsxDEV)(`span`,{className:`hidden sm:inline`,children:`Light`},void 0,!1,{fileName:k,lineNumber:243,columnNumber:15},this)]},void 0,!0,{fileName:k,lineNumber:231,columnNumber:13},this),(0,E.jsxDEV)(`button`,{type:`button`,onClick:()=>M(`dark`),title:`Switch to Dark Mode`,className:v(`p-1 px-1.5 rounded-[6px] text-[11px] font-medium flex items-center gap-1 transition-apple cursor-pointer`,A===`dark`?`bg-[#1c1c1e] text-white shadow-2xs font-semibold`:`text-[#86868b] hover:text-[#1d1d1f]`),children:[(0,E.jsxDEV)(m,{className:`w-3 h-3 text-[#0a84ff]`},void 0,!1,{fileName:k,lineNumber:257,columnNumber:15},this),(0,E.jsxDEV)(`span`,{className:`hidden sm:inline`,children:`Dark`},void 0,!1,{fileName:k,lineNumber:258,columnNumber:15},this)]},void 0,!0,{fileName:k,lineNumber:246,columnNumber:13},this)]},void 0,!0,{fileName:k,lineNumber:230,columnNumber:11},this),(0,E.jsxDEV)(`button`,{type:`button`,onClick:J,title:`Restart Prototype State`,className:`p-1.5 rounded-[7px] text-[#6e6e73] hover:text-[#1d1d1f] hover:bg-[#f4f4f6] transition-apple cursor-pointer`,children:(0,E.jsxDEV)(u,{className:`w-4 h-4`},void 0,!1,{fileName:k,lineNumber:268,columnNumber:13},this)},void 0,!1,{fileName:k,lineNumber:262,columnNumber:11},this),(0,E.jsxDEV)(`button`,{type:`button`,onClick:()=>{let t=`${window.location.origin}${window.location.pathname}#/preview/${e.id}`;window.open(t,`_blank`),C(`Opened live application in new window`,`success`)},title:`Open in Standalone Window`,className:`p-1.5 rounded-[7px] text-[#6e6e73] hover:text-[#1d1d1f] hover:bg-[#f4f4f6] transition-apple cursor-pointer`,children:(0,E.jsxDEV)(p,{className:`w-4 h-4`},void 0,!1,{fileName:k,lineNumber:277,columnNumber:13},this)},void 0,!1,{fileName:k,lineNumber:271,columnNumber:11},this),(0,E.jsxDEV)(`button`,{type:`button`,onClick:()=>{document.fullscreenElement?document.exitFullscreen().catch(()=>{}):document.documentElement.requestFullscreen().catch(()=>{})},title:`Toggle Fullscreen Mode`,className:`p-1.5 rounded-[7px] text-[#6e6e73] hover:text-[#1d1d1f] hover:bg-[#f4f4f6] transition-apple cursor-pointer`,children:(0,E.jsxDEV)(h,{className:`w-4 h-4`},void 0,!1,{fileName:k,lineNumber:286,columnNumber:13},this)},void 0,!1,{fileName:k,lineNumber:280,columnNumber:11},this),(0,E.jsxDEV)(`div`,{className:`h-4 w-[1px] bg-[#e5e5ea] dark:bg-[#38383a] mx-1`},void 0,!1,{fileName:k,lineNumber:289,columnNumber:11},this),(0,E.jsxDEV)(`button`,{type:`button`,onClick:_,className:`flex items-center gap-1 px-3 py-1.5 rounded-[7px] bg-[#1d1d1f] hover:bg-[#333336] text-white text-[11.5px] font-medium transition-apple shadow-2xs cursor-pointer`,children:[(0,E.jsxDEV)(d,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:k,lineNumber:296,columnNumber:13},this),(0,E.jsxDEV)(`span`,{children:`Exit`},void 0,!1,{fileName:k,lineNumber:297,columnNumber:13},this)]},void 0,!0,{fileName:k,lineNumber:291,columnNumber:11},this)]},void 0,!0,{fileName:k,lineNumber:228,columnNumber:9},this)]},void 0,!0,{fileName:k,lineNumber:140,columnNumber:7},this),(0,E.jsxDEV)(`div`,{className:v(`flex-1 overflow-y-auto p-8 flex items-start justify-center relative transition-colors duration-200`,A===`dark`?`bg-[#000000] text-[#f5f5f7]`:`bg-[#e5e5ea] text-[#1d1d1f]`),children:(0,E.jsxDEV)(O,{onFixWithAI:e=>{l(`Fix this live application runtime error: ${e}`)},onReload:J,children:N===`mobile`&&L?(0,E.jsxDEV)(`div`,{className:`relative w-[390px] min-h-[800px] rounded-[50px] bg-black p-3 shadow-2xl border-[4px] border-[#38383a] ring-1 ring-black/50 overflow-hidden flex flex-col`,children:[(0,E.jsxDEV)(`div`,{className:`absolute top-4 left-1/2 -translate-x-1/2 w-28 h-6 bg-black rounded-full z-50 flex items-center justify-between px-3`,children:[(0,E.jsxDEV)(`div`,{className:`w-2.5 h-2.5 rounded-full bg-[#1c1c1e]`},void 0,!1,{fileName:k,lineNumber:317,columnNumber:17},this),(0,E.jsxDEV)(`div`,{className:`w-2 h-2 rounded-full bg-[#0071e3]/40`},void 0,!1,{fileName:k,lineNumber:318,columnNumber:17},this)]},void 0,!0,{fileName:k,lineNumber:316,columnNumber:15},this),(0,E.jsxDEV)(`div`,{className:v(`w-full flex-1 rounded-[40px] overflow-y-auto overflow-x-hidden pt-7 relative transition-colors duration-200`,A===`dark`?`bg-[#1c1c1e] text-[#f5f5f7] dark`:`bg-white text-[#1d1d1f]`),children:(0,E.jsxDEV)(w,{project:e,initialPageId:z.id,viewportMode:`mobile`,previewTheme:A,onPageChange:e=>{B(e),Y(`event`,`Navigated to ${e.name} (/${e.slug})`)}},void 0,!1,{fileName:k,lineNumber:326,columnNumber:17},this)},void 0,!1,{fileName:k,lineNumber:322,columnNumber:15},this)]},void 0,!0,{fileName:k,lineNumber:314,columnNumber:13},this):(0,E.jsxDEV)(`div`,{style:{width:`${F}px`},className:v(`rounded-[16px] shadow-apple-lg border overflow-hidden transition-all duration-200 min-h-[700px]`,A===`dark`?`bg-[#1c1c1e] border-[#38383a] text-[#f5f5f7] dark`:`bg-white border-[#d1d1d6] text-[#1d1d1f]`),children:(0,E.jsxDEV)(w,{project:e,initialPageId:z.id,viewportMode:N,previewTheme:A,onPageChange:e=>{B(e),Y(`event`,`Navigated to ${e.name} (/${e.slug})`)}},void 0,!1,{fileName:k,lineNumber:349,columnNumber:15},this)},void 0,!1,{fileName:k,lineNumber:340,columnNumber:13},this)},V,!1,{fileName:k,lineNumber:307,columnNumber:9},this)},void 0,!1,{fileName:k,lineNumber:303,columnNumber:7},this)]},void 0,!0,{fileName:k,lineNumber:138,columnNumber:5},this)}export{A as LiveRuntimeWorkspace};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-W7wSyTde.js";import{Ln as t,cn as n,di as r,hr as i,lr as a,v as o,zr as s}from"./vendor-icons-M_KBtuE-.js";import{t as c}from"./vendor-react-BTEcvIpc.js";import{c as l}from"./vendor-utils-3OgY5Lif.js";import{a as u,s as d,u as f}from"./themes-CNabH9CH.js";import{f as p,g as m,l as h,m as g}from"./index-BewtY0Hs.js";var _=e(r(),1),v=c(),y=`C:/Users/Shadow/Desktop/cyrus/src/components/dialogs/ShareExportDialog.tsx`;function b({isOpen:e,onClose:r}){let{activeProject:c,setProject:b}=h(),{addToast:x}=u(),S=(0,_.useRef)(null),[C,w]=(0,_.useState)(null),[T,E]=(0,_.useState)(!1);if((0,_.useEffect)(()=>{e&&c&&m.getShareSettings(c.id).then(w)},[e,c]),!c)return null;let D=async e=>{if(!C)return;let t=await m.updateShareSettings(c.id,{accessLevel:e});w(t),x(e===`private`?`Project set to Private`:`Project sharing permissions updated`,`success`)};return(0,v.jsxDEV)(p,{isOpen:e,onClose:r,title:`Share & Export Project`,subtitle:`Configure cloud permissions or export structured files for "${c.name}".`,maxWidth:`md`,footer:(0,v.jsxDEV)(g,{variant:`secondary`,onClick:r,children:`Done`},void 0,!1,{fileName:y,lineNumber:91,columnNumber:9},this),children:(0,v.jsxDEV)(`div`,{className:`flex flex-col gap-4`,children:[(0,v.jsxDEV)(`div`,{className:`p-4 rounded-[14px] border border-[#e5e5ea] bg-[#fafafc] flex flex-col gap-3`,children:[(0,v.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,v.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsxDEV)(t,{className:`w-4 h-4 text-[#0071e3]`},void 0,!1,{fileName:y,lineNumber:101,columnNumber:15},this),(0,v.jsxDEV)(`span`,{className:`text-[13px] font-semibold text-[#1d1d1f]`,children:`Cloud Prototype Link`},void 0,!1,{fileName:y,lineNumber:102,columnNumber:15},this)]},void 0,!0,{fileName:y,lineNumber:100,columnNumber:13},this),(0,v.jsxDEV)(`span`,{className:`text-[11px] text-[#86868b] font-medium`,children:C?.accessLevel===`private`?`Restricted`:`Public`},void 0,!1,{fileName:y,lineNumber:104,columnNumber:13},this)]},void 0,!0,{fileName:y,lineNumber:99,columnNumber:11},this),(0,v.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,v.jsxDEV)(`button`,{type:`button`,onClick:()=>D(`view`),className:l(`p-2.5 rounded-[8px] border text-left transition-apple cursor-pointer flex flex-col gap-0.5 select-none`,C?.accessLevel===`view`?`bg-white border-[#0071e3] text-[#0071e3] shadow-2xs`:`bg-white/60 border-[#e5e5ea] text-[#6e6e73] hover:text-[#1d1d1f]`),children:[(0,v.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-[12px] font-medium`,children:[(0,v.jsxDEV)(t,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:y,lineNumber:122,columnNumber:17},this),(0,v.jsxDEV)(`span`,{children:`Anyone with link`},void 0,!1,{fileName:y,lineNumber:123,columnNumber:17},this)]},void 0,!0,{fileName:y,lineNumber:121,columnNumber:15},this),(0,v.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b]`,children:`Can interact with live prototype`},void 0,!1,{fileName:y,lineNumber:125,columnNumber:15},this)]},void 0,!0,{fileName:y,lineNumber:111,columnNumber:13},this),(0,v.jsxDEV)(`button`,{type:`button`,onClick:()=>D(`private`),className:l(`p-2.5 rounded-[8px] border text-left transition-apple cursor-pointer flex flex-col gap-0.5 select-none`,C?.accessLevel===`private`?`bg-white border-[#0071e3] text-[#0071e3] shadow-2xs`:`bg-white/60 border-[#e5e5ea] text-[#6e6e73] hover:text-[#1d1d1f]`),children:[(0,v.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-[12px] font-medium`,children:[(0,v.jsxDEV)(n,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:y,lineNumber:139,columnNumber:17},this),(0,v.jsxDEV)(`span`,{children:`Private`},void 0,!1,{fileName:y,lineNumber:140,columnNumber:17},this)]},void 0,!0,{fileName:y,lineNumber:138,columnNumber:15},this),(0,v.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b]`,children:`Only author can view`},void 0,!1,{fileName:y,lineNumber:142,columnNumber:15},this)]},void 0,!0,{fileName:y,lineNumber:128,columnNumber:13},this)]},void 0,!0,{fileName:y,lineNumber:110,columnNumber:11},this),C?.accessLevel!==`private`&&(0,v.jsxDEV)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,v.jsxDEV)(`input`,{type:`text`,readOnly:!0,value:C?.shareUrl||``,className:`flex-1 h-8 px-2.5 rounded-[6px] bg-white border border-[#e5e5ea] font-mono text-[11.5px] text-[#1d1d1f] select-all focus:outline-none`},void 0,!1,{fileName:y,lineNumber:149,columnNumber:15},this),(0,v.jsxDEV)(g,{variant:`primary`,size:`xs`,onClick:()=>{let e=C?.shareUrl||`${window.location.origin}${window.location.pathname}#/preview/${c.id}`;navigator.clipboard.writeText(e),E(!0),x(`Public prototype link copied to clipboard`,`success`),setTimeout(()=>E(!1),2e3)},icon:T?(0,v.jsxDEV)(s,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:y,lineNumber:159,columnNumber:32},this):(0,v.jsxDEV)(i,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:y,lineNumber:159,columnNumber:68},this),children:T?`Copied`:`Copy Link`},void 0,!1,{fileName:y,lineNumber:155,columnNumber:15},this)]},void 0,!0,{fileName:y,lineNumber:148,columnNumber:13},this)]},void 0,!0,{fileName:y,lineNumber:98,columnNumber:9},this),(0,v.jsxDEV)(`div`,{className:`p-3.5 rounded-[12px] border border-[#e5e5ea] bg-white flex items-center justify-between shadow-2xs`,children:[(0,v.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsxDEV)(`div`,{className:`p-2 rounded-[8px] bg-[#f4f4f6] text-[#0071e3]`,children:(0,v.jsxDEV)(a,{className:`w-4 h-4`},void 0,!1,{fileName:y,lineNumber:171,columnNumber:15},this)},void 0,!1,{fileName:y,lineNumber:170,columnNumber:13},this),(0,v.jsxDEV)(`div`,{children:[(0,v.jsxDEV)(`div`,{className:`text-[12.5px] font-semibold text-[#1d1d1f]`,children:`Export Structured Document (.json)`},void 0,!1,{fileName:y,lineNumber:174,columnNumber:15},this),(0,v.jsxDEV)(`div`,{className:`text-[11px] text-[#86868b]`,children:`Save complete Cyrus project tree to your local device`},void 0,!1,{fileName:y,lineNumber:177,columnNumber:15},this)]},void 0,!0,{fileName:y,lineNumber:173,columnNumber:13},this)]},void 0,!0,{fileName:y,lineNumber:169,columnNumber:11},this),(0,v.jsxDEV)(g,{variant:`secondary`,size:`xs`,onClick:async()=>{let e=await d(c),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${c.name.toLowerCase().replace(/\s+/g,`_`)}.cyrus.json`,r.click(),URL.revokeObjectURL(n),x(`Project exported as JSON`,`success`)},children:`Export JSON`},void 0,!1,{fileName:y,lineNumber:182,columnNumber:11},this)]},void 0,!0,{fileName:y,lineNumber:168,columnNumber:9},this),(0,v.jsxDEV)(`div`,{className:`p-3.5 rounded-[12px] border border-[#e5e5ea] bg-white flex items-center justify-between shadow-2xs`,children:[(0,v.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsxDEV)(`div`,{className:`p-2 rounded-[8px] bg-[#f4f4f6] text-[#34c759]`,children:(0,v.jsxDEV)(o,{className:`w-4 h-4`},void 0,!1,{fileName:y,lineNumber:191,columnNumber:15},this)},void 0,!1,{fileName:y,lineNumber:190,columnNumber:13},this),(0,v.jsxDEV)(`div`,{children:[(0,v.jsxDEV)(`div`,{className:`text-[12.5px] font-semibold text-[#1d1d1f]`,children:`Import Project Document`},void 0,!1,{fileName:y,lineNumber:194,columnNumber:15},this),(0,v.jsxDEV)(`div`,{className:`text-[11px] text-[#86868b]`,children:`Load an existing Cyrus document JSON model`},void 0,!1,{fileName:y,lineNumber:197,columnNumber:15},this)]},void 0,!0,{fileName:y,lineNumber:193,columnNumber:13},this)]},void 0,!0,{fileName:y,lineNumber:189,columnNumber:11},this),(0,v.jsxDEV)(`input`,{type:`file`,ref:S,onChange:async e=>{let t=e.target.files?.[0];if(t)try{let e=await t.text(),n=await f(e);b(n),x(`Imported project "${n.name}" successfully`,`success`),r()}catch(e){console.error(`Import error:`,e),x(`Invalid Cyrus project file format`,`error`)}},accept:`.json`,className:`hidden`},void 0,!1,{fileName:y,lineNumber:202,columnNumber:11},this),(0,v.jsxDEV)(g,{variant:`secondary`,size:`xs`,onClick:()=>S.current?.click(),children:`Import JSON`},void 0,!1,{fileName:y,lineNumber:209,columnNumber:11},this)]},void 0,!0,{fileName:y,lineNumber:188,columnNumber:9},this)]},void 0,!0,{fileName:y,lineNumber:96,columnNumber:7},this)},void 0,!1,{fileName:y,lineNumber:84,columnNumber:5},this)}export{b as ShareExportDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./rolldown-runtime-W7wSyTde.js";import{J as e,Nr as t,di as n,nt as r,sn as i,xr as a}from"./vendor-icons-M_KBtuE-.js";import{t as o}from"./vendor-react-BTEcvIpc.js";import{a as s}from"./themes-CNabH9CH.js";import{f as c,h as l,m as u}from"./index-BewtY0Hs.js";n();var d=o(),f=`C:/Users/Shadow/Desktop/cyrus/src/components/dialogs/UserProfileDialog.tsx`;function p(){let{session:n,isProfileDialogOpen:o,closeProfileDialog:p,signOut:m,openAuthDialog:h}=l(),{addToast:g}=s();if(!n.user)return null;let{user:_}=n;return(0,d.jsxDEV)(c,{isOpen:o,onClose:p,title:`Cyrus Account & Cloud Sync`,subtitle:`Manage your developer profile, plan tier, and workspace cloud connectivity.`,maxWidth:`sm`,children:(0,d.jsxDEV)(`div`,{className:`flex flex-col gap-4`,children:[(0,d.jsxDEV)(`div`,{className:`p-4 rounded-[14px] bg-[#fafafc] border border-[#e5e5ea] flex items-center gap-3.5`,children:[(0,d.jsxDEV)(`img`,{src:_.avatarUrl,alt:_.name,className:`w-12 h-12 rounded-full border border-[#e5e5ea] object-cover`},void 0,!1,{fileName:f,lineNumber:31,columnNumber:11},this),(0,d.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:[(0,d.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,d.jsxDEV)(`span`,{className:`text-[14px] font-semibold text-[#1d1d1f] truncate`,children:_.name},void 0,!1,{fileName:f,lineNumber:38,columnNumber:15},this),(0,d.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full bg-[#0071e3]/10 text-[#0071e3] text-[10.5px] font-semibold uppercase tracking-wider`,children:_.plan},void 0,!1,{fileName:f,lineNumber:39,columnNumber:15},this)]},void 0,!0,{fileName:f,lineNumber:37,columnNumber:13},this),(0,d.jsxDEV)(`span`,{className:`text-[12px] text-[#86868b] truncate block`,children:_.email},void 0,!1,{fileName:f,lineNumber:43,columnNumber:13},this)]},void 0,!0,{fileName:f,lineNumber:36,columnNumber:11},this)]},void 0,!0,{fileName:f,lineNumber:30,columnNumber:9},this),(0,d.jsxDEV)(`div`,{className:`p-3.5 rounded-[12px] bg-white border border-[#e5e5ea] flex items-center justify-between shadow-2xs`,children:[(0,d.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[(0,d.jsxDEV)(a,{className:`w-4 h-4 text-[#34c759]`},void 0,!1,{fileName:f,lineNumber:50,columnNumber:13},this),(0,d.jsxDEV)(`div`,{children:[(0,d.jsxDEV)(`div`,{className:`text-[12.5px] font-medium text-[#1d1d1f]`,children:`Cloud Synchronization`},void 0,!1,{fileName:f,lineNumber:52,columnNumber:15},this),(0,d.jsxDEV)(`div`,{className:`text-[11px] text-[#86868b]`,children:`Continuous local & cloud backup active`},void 0,!1,{fileName:f,lineNumber:53,columnNumber:15},this)]},void 0,!0,{fileName:f,lineNumber:51,columnNumber:13},this)]},void 0,!0,{fileName:f,lineNumber:49,columnNumber:11},this),(0,d.jsxDEV)(`span`,{className:`text-[11px] text-[#34c759] font-medium flex items-center gap-1`,children:[(0,d.jsxDEV)(t,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:f,lineNumber:57,columnNumber:13},this),(0,d.jsxDEV)(`span`,{children:`Connected`},void 0,!1,{fileName:f,lineNumber:58,columnNumber:13},this)]},void 0,!0,{fileName:f,lineNumber:56,columnNumber:11},this)]},void 0,!0,{fileName:f,lineNumber:48,columnNumber:9},this),(0,d.jsxDEV)(`div`,{className:`p-3.5 rounded-[12px] bg-white border border-[#e5e5ea] flex flex-col gap-2 shadow-2xs`,children:[(0,d.jsxDEV)(`span`,{className:`text-[11px] font-semibold text-[#86868b] uppercase tracking-wider`,children:`Plan Capabilities`},void 0,!1,{fileName:f,lineNumber:64,columnNumber:11},this),(0,d.jsxDEV)(`div`,{className:`flex flex-col gap-1.5 text-[12px] text-[#1d1d1f]`,children:[(0,d.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsxDEV)(e,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:f,lineNumber:69,columnNumber:15},this),(0,d.jsxDEV)(`span`,{children:`Unlimited AI design assistant mutations`},void 0,!1,{fileName:f,lineNumber:70,columnNumber:15},this)]},void 0,!0,{fileName:f,lineNumber:68,columnNumber:13},this),(0,d.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsxDEV)(r,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:f,lineNumber:73,columnNumber:15},this),(0,d.jsxDEV)(`span`,{children:`Full React & Next.js production code export`},void 0,!1,{fileName:f,lineNumber:74,columnNumber:15},this)]},void 0,!0,{fileName:f,lineNumber:72,columnNumber:13},this),(0,d.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsxDEV)(t,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:f,lineNumber:77,columnNumber:15},this),(0,d.jsxDEV)(`span`,{children:`Immutable version history snapshots`},void 0,!1,{fileName:f,lineNumber:78,columnNumber:15},this)]},void 0,!0,{fileName:f,lineNumber:76,columnNumber:13},this)]},void 0,!0,{fileName:f,lineNumber:67,columnNumber:11},this)]},void 0,!0,{fileName:f,lineNumber:63,columnNumber:9},this),(0,d.jsxDEV)(`div`,{className:`pt-3 border-t border-[#f4f4f6] flex items-center justify-between`,children:[(0,d.jsxDEV)(u,{variant:`ghost`,size:`sm`,onClick:()=>{p(),h()},children:`Switch Account`},void 0,!1,{fileName:f,lineNumber:85,columnNumber:11},this),(0,d.jsxDEV)(u,{variant:`destructive`,size:`sm`,onClick:async()=>{await m(),g(`Signed out of Cyrus`,`info`)},icon:(0,d.jsxDEV)(i,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:f,lineNumber:100,columnNumber:19},this),children:`Sign Out`},void 0,!1,{fileName:f,lineNumber:96,columnNumber:11},this)]},void 0,!0,{fileName:f,lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:f,lineNumber:28,columnNumber:7},this)},void 0,!1,{fileName:f,lineNumber:21,columnNumber:5},this)}export{p as UserProfileDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-W7wSyTde.js";import{Bn as t,J as n,Ln as r,Rt as i,Tt as a,X as o,_t as s,di as c,oi as l}from"./vendor-icons-M_KBtuE-.js";import{t as u}from"./vendor-react-BTEcvIpc.js";import{c as d}from"./vendor-utils-3OgY5Lif.js";import{_ as f,a as p,p as m,t as h}from"./themes-CNabH9CH.js";import{d as g,l as _,m as v,u as y}from"./index-BewtY0Hs.js";var b=e(c(),1),x=u(),S=`C:/Users/Shadow/Desktop/cyrus/src/components/dialogs/WelcomeOnboardingModal.tsx`,C=[{id:`dashboard`,title:`Dashboard`,desc:`Analytics, revenue KPI cards, charts & data tables`,badge:`Popular`,icon:t,color:`#0071e3`},{id:`webapp`,title:`Web App`,desc:`Interactive SaaS platforms & workflow suites`,badge:`Full Suite`,icon:i,color:`#5856d6`},{id:`mobile`,title:`Mobile App`,desc:`iOS & Android native screens, safe areas & tabs`,badge:`Mobile Target`,icon:o,color:`#34c759`},{id:`website`,title:`Website`,desc:`Marketing pages, editorial content & showcases`,badge:`Multi-page`,icon:r,color:`#ff9500`},{id:`landing`,title:`Landing Page`,desc:`High-conversion product hero & pricing tiers`,badge:`Conversion`,icon:s,color:`#af52de`},{id:`blank`,title:`Start Blank`,desc:`Clean slate artboard with complete freedom`,badge:`Custom`,icon:a,color:`#86868b`}],w=[`Build a SaaS dashboard for a project management app.`,`Create a mobile banking app with balance cards and quick actions.`,`Generate an Apple-inspired landing page with pricing tiers.`,`Design an e-commerce storefront with product grid and checkout.`];function T({isOpen:e,onClose:t,onSelectProject:r}){let[i,o]=(0,b.useState)(`dashboard`),[s,c]=(0,b.useState)(``),[u,T]=(0,b.useState)(!1),{setProject:E}=_(),{addToast:D}=p();if(!e)return null;let O=()=>{try{localStorage.setItem(`cyrus_onboarding_completed`,`true`)}catch{}},k=()=>{O(),t()},A=async e=>{let t=g.find(t=>t.id===e);if(!t)return;O();let n={...t.project,id:f(`proj`),name:`${t.name}`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};await m(n),E(n),D(`Created project from "${t.name}"`,`success`),r(n.id)},j=async(e=`custom`)=>{O();let t=f(`proj`),n=f(`page`),i={id:t,name:`Untitled Project`,type:e,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{platformTarget:e===`mobile`?`mobile`:`web`,canvasBackground:`#f5f5f7`,primaryColor:`#0071e3`,theme:`light`},designSystem:h,pages:[{id:n,name:`Home`,slug:`home`,settings:{backgroundColor:`#ffffff`},elements:[]}],version:1};await m(i),E(i),D(`Initialized blank workspace`,`success`),r(t)},M=async e=>{if(e.trim()){T(!0),O();try{let t=f(`proj`);f(`page`);let n=e.toLowerCase(),i=`dashboard`;n.includes(`mobile`)||n.includes(`ios`)||n.includes(`banking`)?i=`mobile`:n.includes(`landing`)||n.includes(`marketing`)?i=`landing`:(n.includes(`saas`)||n.includes(`platform`))&&(i=`saas`);let a=g.find(e=>e.category===i)?.project;a||=g[0].project;let o={...a,id:t,name:e.slice(0,32).trim()||`AI Generated Product`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};await m(o),E(o),D(`AI synthesized: "${e.slice(0,28)}..."`,`success`),r(t)}finally{T(!1)}}},N=i===`blank`?[]:g.filter(e=>i===`dashboard`?e.category===`dashboards`:i===`webapp`?e.category===`saas`||e.category===`ecommerce`:i===`mobile`?e.category===`mobile`:i===`landing`?e.category===`landing`:i!==`website`||e.category===`websites`||e.category===`portfolios`);return(0,x.jsxDEV)(`div`,{className:`fixed inset-0 z-[99999] bg-black/50 backdrop-blur-md flex items-center justify-center p-4 animate-in fade-in duration-200`,children:(0,x.jsxDEV)(`div`,{className:`w-full max-w-[840px] max-h-[90vh] bg-white dark:bg-[#1c1c1e] rounded-3xl border border-[#e5e5ea] dark:border-[#38383a] shadow-2xl overflow-hidden flex flex-col transition-all`,children:[(0,x.jsxDEV)(`div`,{className:`px-8 pt-8 pb-4 flex items-start justify-between border-b border-[#f4f4f6] dark:border-[#2c2c2e]`,children:[(0,x.jsxDEV)(`div`,{children:[(0,x.jsxDEV)(`div`,{className:`inline-flex items-center gap-2 px-2.5 py-1 rounded-full bg-[#0071e3]/10 text-[#0071e3] text-[12px] font-semibold mb-2`,children:[(0,x.jsxDEV)(n,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:S,lineNumber:263,columnNumber:15},this),(0,x.jsxDEV)(`span`,{children:`Welcome to Cyrus`},void 0,!1,{fileName:S,lineNumber:264,columnNumber:15},this)]},void 0,!0,{fileName:S,lineNumber:262,columnNumber:13},this),(0,x.jsxDEV)(`h2`,{className:`text-[24px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] tracking-tight`,children:`What do you want to create?`},void 0,!1,{fileName:S,lineNumber:266,columnNumber:13},this),(0,x.jsxDEV)(`p`,{className:`text-[13.5px] text-[#86868b] mt-1`,children:`Select a product category, start with a curated template, or describe your idea to AI.`},void 0,!1,{fileName:S,lineNumber:269,columnNumber:13},this)]},void 0,!0,{fileName:S,lineNumber:261,columnNumber:11},this),(0,x.jsxDEV)(`button`,{type:`button`,onClick:k,className:`text-[13px] font-medium text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-white px-3 py-1.5 rounded-lg hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-colors cursor-pointer`,children:`Skip for now`},void 0,!1,{fileName:S,lineNumber:274,columnNumber:11},this)]},void 0,!0,{fileName:S,lineNumber:260,columnNumber:9},this),(0,x.jsxDEV)(`div`,{className:`p-8 overflow-y-auto space-y-6 flex-1`,children:[(0,x.jsxDEV)(`div`,{children:[(0,x.jsxDEV)(`label`,{className:`text-[12px] font-semibold text-[#86868b] uppercase tracking-wider block mb-3`,children:`1. Choose a Product Category`},void 0,!1,{fileName:S,lineNumber:287,columnNumber:13},this),(0,x.jsxDEV)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 gap-3`,children:C.map(e=>{let t=e.icon,n=i===e.id;return(0,x.jsxDEV)(`button`,{type:`button`,onClick:()=>o(e.id),className:d(`p-4 rounded-2xl border text-left flex flex-col justify-between transition-all duration-150 cursor-pointer relative overflow-hidden group`,n?`border-[#0071e3] bg-[#0071e3]/5 shadow-sm ring-2 ring-[#0071e3]/20`:`border-[#e5e5ea] dark:border-[#2c2c2e] hover:border-[#c7c7cc] bg-[#fbfbfd] dark:bg-[#252528]`),children:[(0,x.jsxDEV)(`div`,{className:`flex items-center justify-between w-full mb-3`,children:[(0,x.jsxDEV)(`div`,{className:`w-9 h-9 rounded-xl flex items-center justify-center text-white shrink-0 shadow-xs`,style:{backgroundColor:e.color},children:(0,x.jsxDEV)(t,{className:`w-5 h-5`},void 0,!1,{fileName:S,lineNumber:312,columnNumber:25},this)},void 0,!1,{fileName:S,lineNumber:308,columnNumber:23},this),(0,x.jsxDEV)(`span`,{className:d(`text-[10.5px] font-semibold px-2 py-0.5 rounded-md`,n?`bg-[#0071e3] text-white`:`bg-[#f4f4f6] dark:bg-[#38383a] text-[#86868b]`),children:e.badge},void 0,!1,{fileName:S,lineNumber:314,columnNumber:23},this)]},void 0,!0,{fileName:S,lineNumber:307,columnNumber:21},this),(0,x.jsxDEV)(`div`,{children:[(0,x.jsxDEV)(`div`,{className:`text-[14px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:e.title},void 0,!1,{fileName:S,lineNumber:327,columnNumber:23},this),(0,x.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] mt-0.5 line-clamp-2 leading-relaxed`,children:e.desc},void 0,!1,{fileName:S,lineNumber:330,columnNumber:23},this)]},void 0,!0,{fileName:S,lineNumber:326,columnNumber:21},this)]},e.id,!0,{fileName:S,lineNumber:296,columnNumber:19},this)})},void 0,!1,{fileName:S,lineNumber:290,columnNumber:13},this)]},void 0,!0,{fileName:S,lineNumber:286,columnNumber:11},this),(0,x.jsxDEV)(`div`,{children:[(0,x.jsxDEV)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,x.jsxDEV)(`label`,{className:`text-[12px] font-semibold text-[#86868b] uppercase tracking-wider`,children:[`2. Recommended Templates for `,C.find(e=>e.id===i)?.title]},void 0,!0,{fileName:S,lineNumber:343,columnNumber:15},this),i!==`blank`&&(0,x.jsxDEV)(`button`,{type:`button`,onClick:()=>j(i===`mobile`?`mobile`:`custom`),className:`text-[12px] font-medium text-[#0071e3] hover:underline cursor-pointer flex items-center gap-1`,children:[(0,x.jsxDEV)(`span`,{children:[`Or start with blank `,i]},void 0,!0,{fileName:S,lineNumber:355,columnNumber:19},this),(0,x.jsxDEV)(l,{className:`w-3 h-3`},void 0,!1,{fileName:S,lineNumber:356,columnNumber:19},this)]},void 0,!0,{fileName:S,lineNumber:348,columnNumber:17},this)]},void 0,!0,{fileName:S,lineNumber:342,columnNumber:13},this),i===`blank`?(0,x.jsxDEV)(`div`,{className:`p-6 border border-dashed border-[#d1d1d6] dark:border-[#38383a] rounded-2xl bg-[#fbfbfd] dark:bg-[#252528] text-center flex flex-col items-center justify-center`,children:[(0,x.jsxDEV)(a,{className:`w-8 h-8 text-[#0071e3] mb-2`},void 0,!1,{fileName:S,lineNumber:363,columnNumber:17},this),(0,x.jsxDEV)(`h4`,{className:`text-[15px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Initialize a Pure Blank Canvas`},void 0,!1,{fileName:S,lineNumber:364,columnNumber:17},this),(0,x.jsxDEV)(`p`,{className:`text-[12.5px] text-[#86868b] max-w-sm mt-1 mb-4`,children:`Start with a clean 1440px artboard, default design tokens, and no pre-populated elements.`},void 0,!1,{fileName:S,lineNumber:367,columnNumber:17},this),(0,x.jsxDEV)(v,{variant:`primary`,size:`md`,onClick:()=>j(`custom`),children:`Start Blank Project`},void 0,!1,{fileName:S,lineNumber:370,columnNumber:17},this)]},void 0,!0,{fileName:S,lineNumber:362,columnNumber:15},this):(0,x.jsxDEV)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3`,children:N.slice(0,2).map(e=>(0,x.jsxDEV)(`div`,{onClick:()=>A(e.id),className:`p-4 rounded-2xl border border-[#e5e5ea] dark:border-[#2c2c2e] hover:border-[#0071e3] bg-white dark:bg-[#252528] hover:shadow-md transition-all flex flex-col justify-between cursor-pointer group`,children:[(0,x.jsxDEV)(`div`,{children:[(0,x.jsxDEV)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,x.jsxDEV)(`span`,{className:`text-[10px] font-bold px-2 py-0.5 rounded bg-[#f4f4f6] dark:bg-[#38383a] text-[#0071e3] uppercase tracking-wider`,children:e.category},void 0,!1,{fileName:S,lineNumber:384,columnNumber:25},this),(0,x.jsxDEV)(`span`,{className:`text-[11.5px] font-semibold text-[#0071e3] group-hover:translate-x-0.5 transition-transform flex items-center gap-1`,children:[`Launch `,(0,x.jsxDEV)(l,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:S,lineNumber:388,columnNumber:34},this)]},void 0,!0,{fileName:S,lineNumber:387,columnNumber:25},this)]},void 0,!0,{fileName:S,lineNumber:383,columnNumber:23},this),(0,x.jsxDEV)(`h4`,{className:`text-[14.5px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:e.name},void 0,!1,{fileName:S,lineNumber:391,columnNumber:23},this),(0,x.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b] mt-1 line-clamp-2 leading-relaxed`,children:e.description},void 0,!1,{fileName:S,lineNumber:394,columnNumber:23},this)]},void 0,!0,{fileName:S,lineNumber:382,columnNumber:21},this),(0,x.jsxDEV)(`div`,{className:`mt-4 pt-3 border-t border-[#f4f4f6] dark:border-[#38383a] flex items-center justify-between text-[11px] text-[#86868b]`,children:[(0,x.jsxDEV)(`span`,{children:[e.project.pages.length,` Pages Included`]},void 0,!0,{fileName:S,lineNumber:400,columnNumber:23},this),(0,x.jsxDEV)(`span`,{className:`font-medium text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Ready to Edit`},void 0,!1,{fileName:S,lineNumber:401,columnNumber:23},this)]},void 0,!0,{fileName:S,lineNumber:399,columnNumber:21},this)]},e.id,!0,{fileName:S,lineNumber:377,columnNumber:19},this))},void 0,!1,{fileName:S,lineNumber:375,columnNumber:15},this)]},void 0,!0,{fileName:S,lineNumber:341,columnNumber:11},this),(0,x.jsxDEV)(`div`,{className:`p-5 rounded-2xl bg-gradient-to-r from-[#0071e3]/10 via-[#af52de]/10 to-[#5856d6]/10 border border-[#0071e3]/20`,children:[(0,x.jsxDEV)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,x.jsxDEV)(n,{className:`w-4 h-4 text-[#0071e3]`},void 0,!1,{fileName:S,lineNumber:414,columnNumber:15},this),(0,x.jsxDEV)(`span`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Or describe what you want to build with AI`},void 0,!1,{fileName:S,lineNumber:415,columnNumber:15},this)]},void 0,!0,{fileName:S,lineNumber:413,columnNumber:13},this),(0,x.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,x.jsxDEV)(`input`,{type:`text`,value:s,onChange:e=>c(e.target.value),onKeyDown:e=>e.key===`Enter`&&M(s),placeholder:`Example: Build a SaaS dashboard for a project management app...`,className:`flex-1 px-4 py-2.5 rounded-xl bg-white dark:bg-[#1c1c1e] text-[13px] text-[#1d1d1f] dark:text-[#f5f5f7] border border-[#e5e5ea] dark:border-[#38383a] focus:border-[#0071e3] outline-none shadow-2xs placeholder-[#86868b]`},void 0,!1,{fileName:S,lineNumber:421,columnNumber:15},this),(0,x.jsxDEV)(v,{variant:`primary`,size:`md`,disabled:u||!s.trim(),onClick:()=>M(s),className:`shrink-0 flex items-center gap-1.5`,children:[(0,x.jsxDEV)(y,{className:`w-4.5 h-4.5`},void 0,!1,{fileName:S,lineNumber:436,columnNumber:17},this),(0,x.jsxDEV)(`span`,{children:u?`Synthesizing...`:`Generate with AI`},void 0,!1,{fileName:S,lineNumber:437,columnNumber:17},this)]},void 0,!0,{fileName:S,lineNumber:429,columnNumber:15},this)]},void 0,!0,{fileName:S,lineNumber:420,columnNumber:13},this),(0,x.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1.5 mt-3`,children:[(0,x.jsxDEV)(`span`,{className:`text-[11px] font-medium text-[#86868b]`,children:`Suggestions:`},void 0,!1,{fileName:S,lineNumber:443,columnNumber:15},this),w.map((e,t)=>(0,x.jsxDEV)(`button`,{type:`button`,onClick:()=>c(e),className:`px-2.5 py-1 rounded-lg bg-white/80 dark:bg-[#2c2c2e] hover:bg-white text-[11px] text-[#6e6e73] hover:text-[#1d1d1f] dark:hover:text-white border border-[#e5e5ea] dark:border-[#38383a] transition-colors cursor-pointer`,children:[`"`,e,`"`]},t,!0,{fileName:S,lineNumber:445,columnNumber:17},this))]},void 0,!0,{fileName:S,lineNumber:442,columnNumber:13},this)]},void 0,!0,{fileName:S,lineNumber:412,columnNumber:11},this)]},void 0,!0,{fileName:S,lineNumber:284,columnNumber:9},this),(0,x.jsxDEV)(`div`,{className:`px-8 py-4 bg-[#fbfbfd] dark:bg-[#161618] border-t border-[#e5e5ea] dark:border-[#2c2c2e] flex items-center justify-between text-[12px] text-[#86868b]`,children:[(0,x.jsxDEV)(`span`,{children:`You can change canvas settings and add pages at any time.`},void 0,!1,{fileName:S,lineNumber:460,columnNumber:11},this),(0,x.jsxDEV)(`button`,{type:`button`,onClick:()=>j(`custom`),className:`font-medium text-[#1d1d1f] dark:text-[#f5f5f7] hover:underline cursor-pointer`,children:`Start with clean canvas →`},void 0,!1,{fileName:S,lineNumber:461,columnNumber:11},this)]},void 0,!0,{fileName:S,lineNumber:459,columnNumber:9},this)]},void 0,!0,{fileName:S,lineNumber:258,columnNumber:7},this)},void 0,!1,{fileName:S,lineNumber:257,columnNumber:5},this)}export{T as WelcomeOnboardingModal};
|