cyrus-studio 1.0.7 → 1.1.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 +34 -1
- package/app/assets/AuthDialog-Dry3B6Q0.js +1 -0
- package/app/assets/CanvaSaveModal-BOOuwAeY.js +1 -0
- package/app/assets/CodingWorkspace-IGR61s5_.js +4 -0
- package/app/assets/CreateAppDialog-DrI4Lkd8.js +1236 -0
- package/app/assets/CreateProjectDialog-DI7tlDTn.js +1 -0
- package/app/assets/HistoryTimelineDialog-IxHPdvMy.js +1 -0
- package/app/assets/ImportModal-C7-xg0X4.js +83 -0
- package/app/assets/KeyboardShortcutsDialog-BToCWj6j.js +1 -0
- package/app/assets/LiveRuntimeWorkspace-BgtwTTvN.js +1 -0
- package/app/assets/ShareExportDialog-Dp3sb0kP.js +1 -0
- package/app/assets/UserProfileDialog-CIISMYby.js +1 -0
- package/app/assets/WelcomeOnboardingModal-B-_unbCE.js +1 -0
- package/app/assets/exportZip-JYUImV2j.js +1 -0
- package/app/assets/index-DD12pOJ9.css +2 -0
- package/app/assets/index-DKH4UEV-.js +2205 -0
- package/app/assets/rolldown-runtime-W7wSyTde.js +1 -0
- package/app/assets/themes-lx_odDI8.js +1 -0
- package/app/assets/vendor-firebase-DNMzpOGz.js +32 -0
- package/app/assets/vendor-icons-CmYui5CW.js +13 -0
- package/app/assets/vendor-jszip-Cv4gVObP.js +2 -0
- package/app/assets/vendor-react-B3_iTqTw.js +227 -0
- package/app/assets/vendor-utils-D92Kf24_.js +1 -0
- package/app/favicon.svg +1 -0
- package/app/icons.svg +24 -0
- package/app/index.html +50 -0
- package/app/login-bg.png +0 -0
- package/app/test-sdk-sandbox.html +720 -0
- package/bin/dev-server.mjs +692 -0
- package/bin/htmlParser.mjs +337 -0
- package/dist/index.cjs +1167 -36
- package/dist/index.d.ts +337 -9
- package/dist/index.mjs +1167 -36
- package/package.json +22 -4
|
@@ -0,0 +1,2205 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CreateProjectDialog-DI7tlDTn.js","assets/rolldown-runtime-W7wSyTde.js","assets/vendor-icons-CmYui5CW.js","assets/vendor-react-B3_iTqTw.js","assets/vendor-utils-D92Kf24_.js","assets/themes-lx_odDI8.js","assets/vendor-firebase-DNMzpOGz.js","assets/WelcomeOnboardingModal-B-_unbCE.js","assets/ImportModal-C7-xg0X4.js","assets/CreateAppDialog-DrI4Lkd8.js","assets/exportZip-JYUImV2j.js","assets/vendor-jszip-Cv4gVObP.js","assets/ShareExportDialog-Dp3sb0kP.js","assets/CanvaSaveModal-BOOuwAeY.js","assets/HistoryTimelineDialog-IxHPdvMy.js","assets/KeyboardShortcutsDialog-BToCWj6j.js","assets/LiveRuntimeWorkspace-BgtwTTvN.js","assets/CodingWorkspace-IGR61s5_.js","assets/AuthDialog-Dry3B6Q0.js","assets/UserProfileDialog-CIISMYby.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./rolldown-runtime-W7wSyTde.js";import{$ as t,$a as n,$i as r,$n as i,$r as a,$t as o,A as s,Aa as c,Ai as l,An as u,Ao as d,Ar as f,At as p,B as m,Ba as h,Bi as g,Bn as _,Br as v,Bt as y,C as b,Ca as x,Ci as S,Cn as C,Co as w,Cr as T,Ct as ee,D as E,Da as te,Di as D,Dn as ne,Do as re,Dr as ie,Dt as O,E as ae,Ea as oe,Ei as se,En as ce,Eo as le,Er as ue,Et as k,F as de,Fa as fe,Fi as pe,Fn as me,Fr as he,Ft as ge,G as A,Ga as _e,Gi as ve,Gn as ye,Gr as be,Gt as xe,H as Se,Ha as Ce,Hi as we,Hn as Te,Hr as Ee,Ht as De,I as Oe,Ia as ke,Ii as Ae,In as je,Ir as Me,It as Ne,J as Pe,Ja as Fe,Ji as Ie,Jn as Le,Jr as Re,Jt as ze,K as Be,Ka as Ve,Ki as He,Kn as Ue,Kr as We,Kt as Ge,L as Ke,La as qe,Li as Je,Ln as Ye,Lr as Xe,Lt as Ze,M as Qe,Ma as $e,Mi as et,Mn as tt,Mr as nt,Mt as rt,N as it,Na as at,Ni as ot,Nn as st,Nr as ct,Nt as lt,O as ut,Oa as dt,Oi as ft,On as pt,Oo as mt,Or as ht,Ot as gt,P as _t,Pa as vt,Pi as yt,Pn as bt,Pr as xt,Pt as St,Q as Ct,Qa as wt,Qi as Tt,Qn as Et,Qr as Dt,Qt as Ot,R as kt,Ra as At,Ri as jt,Rn as Mt,Rr as Nt,Rt as Pt,S as Ft,Sa as It,Si as Lt,Sn as Rt,So as zt,Sr as Bt,St as Vt,T as Ht,Ta as Ut,Ti as Wt,Tn as Gt,To as Kt,Tr as qt,Tt as Jt,U as Yt,Ua as Xt,Ui as Zt,Un as Qt,Ur as $t,Ut as en,V as tn,Va as nn,Vi as rn,Vn as an,Vr as on,Vt as sn,W as cn,Wa as ln,Wi as un,Wn as dn,Wr as fn,Wt as pn,X as mn,Xa as hn,Xi as gn,Xn as _n,Xr as vn,Xt as yn,Y as bn,Ya as xn,Yi as Sn,Yn as Cn,Yr as wn,Yt as Tn,Z as En,Zi as Dn,Zn as On,Zr as kn,Zt as An,_ as jn,_a as Mn,_i as Nn,_n as Pn,_o as Fn,_r as In,a as Ln,aa as Rn,ai as zn,an as Bn,ao as Vn,ar as Hn,at as Un,b as Wn,ba as Gn,bi as Kn,bn as qn,bo as Jn,br as Yn,bt as Xn,c as Zn,ca as Qn,ci as $n,cn as er,co as tr,cr as nr,ct as rr,d as ir,da as ar,di as or,dn as sr,do as cr,dr as lr,dt as ur,ea as dr,ei as fr,en as pr,eo as mr,er as hr,et as gr,f as _r,fa as vr,fi as yr,fn as br,fo as xr,fr as Sr,ft as Cr,g as wr,ga as Tr,gi as Er,gn as Dr,go as Or,gr as kr,gt as Ar,h as jr,ha as Mr,hi as Nr,hn as Pr,ho as Fr,hr as Ir,ht as Lr,i as Rr,ia as zr,ii as Br,in as Vr,io as Hr,ir as Ur,it as Wr,j as Gr,ja as Kr,ji as qr,jn as Jr,jo as Yr,jr as Xr,jt as Zr,k as Qr,ka as $r,ki as ei,kn as ti,ko as ni,kr as ri,kt as ii,l as ai,la as oi,li as si,ln as ci,lo as li,lr as ui,lt as di,m as fi,ma as pi,mi,mn as hi,mo as gi,mr as _i,mt as vi,n as yi,na as bi,ni as xi,nn as Si,no as Ci,nr as wi,nt as Ti,o as Ei,oa as Di,oi as Oi,on as ki,oo as Ai,or as ji,ot as Mi,p as Ni,pa as Pi,pi as Fi,pn as Ii,po as Li,pr as Ri,pt as zi,q as Bi,qa as Vi,qi as Hi,qn as Ui,qr as Wi,qt as Gi,r as Ki,ra as qi,ri as Ji,rn as Yi,ro as Xi,rr as Zi,rt as Qi,s as $i,sa as ea,si as ta,sn as na,so as ra,sr as ia,st as aa,t as oa,ta as sa,ti as ca,tn as la,to as ua,tr as da,tt as fa,u as pa,ua as ma,ui as ha,un as ga,uo as _a,ur as va,ut as ya,v as ba,va as xa,vi as Sa,vn as Ca,vo as wa,vr as Ta,vt as Ea,w as Da,wa as Oa,wn as ka,wo as Aa,wr as ja,wt as Ma,x as Na,xa as Pa,xi as Fa,xn as Ia,xo as La,xr as Ra,xt as za,y as Ba,ya as Va,yi as Ha,yn as Ua,yo as Wa,yr as Ga,yt as Ka,z as qa,za as Ja,zi as Ya,zn as Xa,zr as Za,zt as Qa}from"./vendor-icons-CmYui5CW.js";import{n as $a,t as eo}from"./vendor-react-B3_iTqTw.js";import{c as j,n as to,o as no,r as ro,s as io,t as ao}from"./vendor-utils-D92Kf24_.js";import{_ as M,a as oo,c as so,d as co,f as lo,g as uo,h as fo,l as po,m as mo,n as ho,o as go,p as _o,s as vo,t as yo}from"./themes-lx_odDI8.js";import{a as bo,c as xo,d as So,f as Co,i as wo,l as To,m as Eo,p as Do,s as Oo,t as ko,u as Ao}from"./vendor-firebase-DNMzpOGz.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var N=e(Yr(),1),jo=$a(),Mo={account:{name:``,email:``,avatarUrl:``,role:``},appearance:{theme:`light`,accentColor:`#0071e3`,fontScaling:`standard`},editor:{defaultGridSize:8,showGridByDefault:!0,snapThreshold:6,canvasAnimations:!0,defaultUnit:`px`,autoSaveInterval:10},ai:{provider:`builtin`,model:`gemini-1.5-pro`,systemInstructions:`Design production-grade, accessible, and elegant software components.`,temperature:.2,autoApplyMode:`auto_apply`},projects:{defaultViewport:`desktop`,defaultExportTarget:`react`,defaultFramework:`react`},shortcuts:{enableQuickKeys:!0,conflictWarnings:!0},notifications:{inAppToasts:!0,collabMentions:!0,deploymentAlerts:!0,quietMode:!1},security:{sessions:[],twoFactorEnabled:!1},billing:{plan:`free`,billingCycle:`yearly`,credits:100,paymentProviderConfigured:!1}},No=ro()(to((e,t)=>({...Mo,updateAccount:t=>e(e=>({account:{...e.account,...t}})),updateAppearance:n=>{e(e=>({appearance:{...e.appearance,...n}}));let r=t().appearance;if(typeof document<`u`){if(r.theme===`dark`)document.documentElement.setAttribute(`data-theme`,`dark`),document.documentElement.classList.add(`dark`);else if(r.theme===`light`)document.documentElement.setAttribute(`data-theme`,`light`),document.documentElement.classList.remove(`dark`);else if(typeof window<`u`){let e=window.matchMedia(`(prefers-color-scheme: dark)`).matches;document.documentElement.setAttribute(`data-theme`,e?`dark`:`light`),e?document.documentElement.classList.add(`dark`):document.documentElement.classList.remove(`dark`)}}},updateEditor:t=>e(e=>({editor:{...e.editor,...t}})),updateAI:t=>e(e=>({ai:{...e.ai,...t}})),updateProjects:t=>e(e=>({projects:{...e.projects,...t}})),updateShortcuts:t=>e(e=>({shortcuts:{...e.shortcuts,...t}})),updateNotifications:t=>e(e=>({notifications:{...e.notifications,...t}})),updateSecurity:t=>e(e=>({security:{...e.security,...t}})),updateBilling:t=>e(e=>({billing:{...e.billing,...t}})),addCredits:t=>e(e=>({billing:{...e.billing,credits:Math.max(0,(e.billing.credits||0)+t)}})),useCredits:n=>{let r=t().billing.credits||0;return r<n?!1:(e(e=>({billing:{...e.billing,credits:Math.max(0,r-n)}})),!0)},signOutOtherSessions:()=>e(e=>({security:{...e.security,sessions:e.security.sessions.filter(e=>e.isCurrent)}})),resetToDefaults:()=>e(Mo)}),{name:`cyrus_user_settings_v1`,merge:(e,t)=>{let n=e&&typeof e==`object`&&!Array.isArray(e)?e:{};return{...t,...n,account:{...t.account,...n?.account||{}},appearance:{...t.appearance,...n?.appearance||{}},editor:{...t.editor,...n?.editor||{}},ai:{...t.ai,...n?.ai||{}},projects:{...t.projects,...n?.projects||{}},shortcuts:{...t.shortcuts,...n?.shortcuts||{}},notifications:{...t.notifications,...n?.notifications||{}},security:{...t.security,...n?.security||{}},billing:{...t.billing,...n?.billing||{}}}}})),Po={desktop:{width:1440,height:900,label:`Desktop`,sublabel:`1440 × 900 px`},tablet:{width:768,height:1024,label:`Tablet`,sublabel:`768 × 1024 px`},mobile:{width:390,height:844,label:`Mobile`,sublabel:`390 × 844 px`}},P=ro((e,t)=>({viewportMode:`desktop`,zoom:1,pan:{x:0,y:0},toolMode:`select`,showGrid:!0,showRulers:!1,snapToGrid:!0,snapGuides:[],marquee:null,isPreviewMode:!1,isReviewMode:!1,isDevMode:!1,showPerformanceHUD:!1,spotlightUserId:null,activeSidebarTab:`icons`,activePropertyTab:`design`,isSidebarOpen:!0,isPropertiesOpen:!1,searchQuery:``,selectedCategory:`all`,isCreateProjectOpen:!1,isCreateAppOpen:!1,isShareOpen:!1,isSaveDesignOpen:!1,isHistoryOpen:!1,isShortcutsOpen:!1,isCommandPaletteOpen:!1,togglePreviewMode:()=>e({isPreviewMode:!t().isPreviewMode}),toggleReviewMode:()=>e({isReviewMode:!t().isReviewMode}),setReviewMode:t=>e({isReviewMode:t}),toggleDevMode:()=>e({isDevMode:!t().isDevMode,isPropertiesOpen:!0}),setDevMode:n=>e({isDevMode:n,isPropertiesOpen:n?!0:t().isPropertiesOpen}),togglePerformanceHUD:()=>e({showPerformanceHUD:!t().showPerformanceHUD}),setSpotlightUserId:t=>e({spotlightUserId:t}),setViewportMode:t=>e({viewportMode:t}),setZoom:t=>e({zoom:Math.min(Math.max(t,.2),3)}),zoomIn:()=>e({zoom:Math.min(Number((t().zoom+.1).toFixed(2)),3)}),zoomOut:()=>e({zoom:Math.max(Number((t().zoom-.1).toFixed(2)),.2)}),resetZoom:()=>e({zoom:1,pan:{x:0,y:0}}),fitToScreen:(n,r)=>{let i=Po[t().viewportMode]||Po.desktop,a=Math.max(n-80,200),o=Math.max(r-120,200),s=a/i.width,c=o/i.height;e({zoom:Math.max(Number(Math.min(s,c,1).toFixed(2)),.2),pan:{x:0,y:0}})},fitSelection:(n,r,i)=>{if(i.width<=0||i.height<=0)return;let a=Math.max(n-100,200),o=Math.max(r-100,200),s=a/i.width,c=o/i.height,l=Math.max(Number(Math.min(s,c,2).toFixed(2)),.2),u=i.x+i.width/2,d=i.y+i.height/2,f=Po[t().viewportMode],p=f.width,m=f.height,h=-u*l+p*l/2,g=-d*l+m*l/2;e({zoom:l,pan:{x:Math.min(Math.max(h,-800),800),y:Math.min(Math.max(g,-2e3),2e3)}})},centerSelection:(n,r,i)=>{if(i.width<=0||i.height<=0)return;let a=t().zoom,o=i.x+i.width/2,s=i.y+i.height/2,c=Po[t().viewportMode],l=c.width,u=c.height,d=-o*a+l*a/2,f=-s*a+u*a/2;e({pan:{x:Math.min(Math.max(d,-800),800),y:Math.min(Math.max(f,-2e3),2e3)}})},setZoomCentered:(n,r,i,a,o)=>{let s=Math.min(Math.max(n,.2),3),c=t().zoom,l=t().pan,u=a/2,d=o/2,f=(r-u-l.x)/c,p=(i-d-l.y)/c,m=r-u-f*s,h=i-d-p*s;e({zoom:Number(s.toFixed(2)),pan:{x:Math.min(Math.max(m,-800),800),y:Math.min(Math.max(h,-2e3),2e3)}})},setPan:t=>{e({pan:{x:Math.min(Math.max(t.x,-800),800),y:Math.min(Math.max(t.y,-2e3),2e3)}})},setToolMode:t=>e({toolMode:t}),toggleGrid:()=>e({showGrid:!t().showGrid}),toggleRulers:()=>e({showRulers:!t().showRulers}),toggleSnapToGrid:()=>e({snapToGrid:!t().snapToGrid}),setSnapGuides:t=>e({snapGuides:t}),setMarquee:t=>e({marquee:t}),setActiveSidebarTab:t=>e({activeSidebarTab:t,isSidebarOpen:t!==null}),toggleSidebarTab:n=>{let{activeSidebarTab:r,isSidebarOpen:i}=t();e(r===n&&i?{isSidebarOpen:!1,activeSidebarTab:null}:{activeSidebarTab:n,isSidebarOpen:!0})},setActivePropertyTab:t=>e({activePropertyTab:t}),toggleSidebar:()=>e({isSidebarOpen:!t().isSidebarOpen}),toggleProperties:()=>e({isPropertiesOpen:!t().isPropertiesOpen}),setSearchQuery:t=>e({searchQuery:t}),setSelectedCategory:t=>e({selectedCategory:t}),setCreateProjectOpen:t=>e({isCreateProjectOpen:t}),setCreateAppOpen:t=>e({isCreateAppOpen:t}),setShareOpen:t=>e({isShareOpen:t}),setSaveDesignOpen:t=>e({isSaveDesignOpen:t}),setHistoryOpen:t=>e({isHistoryOpen:t}),setShortcutsOpen:t=>e({isShortcutsOpen:t}),setCommandPaletteOpen:t=>e({isCommandPaletteOpen:t}),toggleCommandPalette:()=>e({isCommandPaletteOpen:!t().isCommandPaletteOpen})})),Fo=`cyrus_share_`,Io=new class{async getProjects(e){return so()}async getProjectById(e){return po(e)}async saveProject(e){return _o(e)}async createProject(e){let t=M(`page`),n={id:M(`proj`),name:e||`Untitled Project`,type:`webapp`,pages:[{id:t,name:`Home`,slug:`home`,elements:[],settings:{backgroundColor:`#ffffff`}}],designSystem:yo,settings:{theme:`light`,canvasBackground:`#f5f5f7`},createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};return await this.saveProject(n),n}async deleteProject(e){return go(e)}async getShareSettings(e){let t=`${Fo}${e}`;try{let e=await no(t);if(e)return e}catch(e){console.warn(`Failed to get share settings:`,e)}let n={projectId:e,accessLevel:`view`,shareUrl:`${window.location.origin}${window.location.pathname}#/preview/${e}`,allowComments:!0,updatedAt:new Date().toISOString()};return await io(t,n),n}async updateShareSettings(e,t){let n={...await this.getShareSettings(e),...t,updatedAt:new Date().toISOString()};return await io(`${Fo}${e}`,n),n}async migrateLocalToCloud(e,t){let n=await this.getProjectById(e);if(!n)throw Error(`Project not found to migrate.`);let r={...n,updatedAt:new Date().toISOString()};return await this.saveProject(r),r}},Lo=`cyrus_versions_`,Ro=new class{getStorageKey(e){return`${Lo}${e}`}async getVersions(e){try{return await no(this.getStorageKey(e))||[]}catch(e){return console.warn(`Failed to load project versions from IndexedDB:`,e),[]}}async createVersion(e,t,n,r){let i=await this.getVersions(e),a=i.length+1,o={id:M(`ver`),projectId:e,versionNumber:a,description:t||`Version #${a}`,author:{id:r?.id||`usr_local`,name:r?.name||`Current Author`},createdAt:new Date().toISOString(),snapshot:JSON.parse(JSON.stringify(n))},s=[o,...i];return await io(this.getStorageKey(e),s),o}async restoreVersion(e,t){let n=(await this.getVersions(e)).find(e=>e.id===t);if(!n)throw Error(`Version "${t}" not found for project.`);let r=JSON.parse(JSON.stringify(n.snapshot));return r.updatedAt=new Date().toISOString(),await this.createVersion(e,`Restored to Version #${n.versionNumber} (${n.description})`,r),r}},zo=[{id:`icon_arrow_right`,name:`Arrow Right`,iconName:`ArrowRight`,category:`navigation`,keywords:[`arrow`,`right`,`forward`,`next`]},{id:`icon_arrow_left`,name:`Arrow Left`,iconName:`ArrowLeft`,category:`navigation`,keywords:[`arrow`,`left`,`back`,`prev`]},{id:`icon_arrow_up`,name:`Arrow Up`,iconName:`ArrowUp`,category:`navigation`,keywords:[`arrow`,`up`,`top`]},{id:`icon_arrow_down`,name:`Arrow Down`,iconName:`ArrowDown`,category:`navigation`,keywords:[`arrow`,`down`,`bottom`]},{id:`icon_chevron_right`,name:`Chevron Right`,iconName:`ChevronRight`,category:`navigation`,keywords:[`chevron`,`arrow`,`right`]},{id:`icon_chevron_left`,name:`Chevron Left`,iconName:`ChevronLeft`,category:`navigation`,keywords:[`chevron`,`arrow`,`left`]},{id:`icon_chevron_up`,name:`Chevron Up`,iconName:`ChevronUp`,category:`navigation`,keywords:[`chevron`,`arrow`,`up`]},{id:`icon_chevron_down`,name:`Chevron Down`,iconName:`ChevronDown`,category:`navigation`,keywords:[`chevron`,`arrow`,`down`]},{id:`icon_search`,name:`Search`,iconName:`Search`,category:`navigation`,keywords:[`search`,`find`,`lookup`,`magnifier`]},{id:`icon_home`,name:`Home`,iconName:`Home`,category:`navigation`,keywords:[`home`,`main`,`house`,`dashboard`]},{id:`icon_menu`,name:`Menu`,iconName:`Menu`,category:`navigation`,keywords:[`menu`,`hamburger`,`drawer`,`list`]},{id:`icon_plus`,name:`Plus`,iconName:`Plus`,category:`actions`,keywords:[`plus`,`add`,`create`,`new`]},{id:`icon_minus`,name:`Minus`,iconName:`Minus`,category:`actions`,keywords:[`minus`,`remove`,`subtract`]},{id:`icon_check`,name:`Check`,iconName:`Check`,category:`actions`,keywords:[`check`,`done`,`tick`,`success`,`verified`]},{id:`icon_close`,name:`Close`,iconName:`X`,category:`actions`,keywords:[`close`,`cancel`,`cross`,`x`,`delete`]},{id:`icon_trash`,name:`Trash`,iconName:`Trash2`,category:`actions`,keywords:[`trash`,`delete`,`remove`,`bin`]},{id:`icon_edit`,name:`Edit`,iconName:`Edit`,category:`actions`,keywords:[`edit`,`pencil`,`modify`,`rename`]},{id:`icon_copy`,name:`Copy`,iconName:`Copy`,category:`actions`,keywords:[`copy`,`duplicate`,`clone`]},{id:`icon_download`,name:`Download`,iconName:`Download`,category:`actions`,keywords:[`download`,`save`,`export`]},{id:`icon_upload`,name:`Upload`,iconName:`Upload`,category:`actions`,keywords:[`upload`,`cloud`,`import`]},{id:`icon_share`,name:`Share`,iconName:`Share2`,category:`actions`,keywords:[`share`,`send`,`export`]},{id:`icon_send`,name:`Send`,iconName:`Send`,category:`actions`,keywords:[`send`,`message`,`paperplane`,`submit`]},{id:`icon_refresh`,name:`Refresh`,iconName:`RotateCcw`,category:`actions`,keywords:[`refresh`,`reload`,`sync`,`reset`]},{id:`icon_filter`,name:`Filter`,iconName:`Filter`,category:`actions`,keywords:[`filter`,`sort`,`refine`,`funnel`]},{id:`icon_sliders`,name:`Sliders`,iconName:`Sliders`,category:`actions`,keywords:[`sliders`,`settings`,`adjust`,`controls`]},{id:`icon_link`,name:`Link`,iconName:`Link`,category:`actions`,keywords:[`link`,`url`,`chain`,`attach`]},{id:`icon_external_link`,name:`External Link`,iconName:`ExternalLink`,category:`actions`,keywords:[`link`,`external`,`open`,`new tab`]},{id:`icon_user`,name:`User`,iconName:`User`,category:`system`,keywords:[`user`,`account`,`profile`,`avatar`,`person`]},{id:`icon_users`,name:`Users`,iconName:`Users`,category:`system`,keywords:[`users`,`team`,`group`,`people`,`community`]},{id:`icon_user_plus`,name:`Add User`,iconName:`UserPlus`,category:`system`,keywords:[`user`,`add`,`invite`,`team`]},{id:`icon_settings`,name:`Settings`,iconName:`Settings`,category:`system`,keywords:[`settings`,`gear`,`config`,`preferences`]},{id:`icon_lock`,name:`Lock`,iconName:`Lock`,category:`system`,keywords:[`lock`,`security`,`password`,`protected`]},{id:`icon_unlock`,name:`Unlock`,iconName:`Unlock`,category:`system`,keywords:[`unlock`,`open`,`access`]},{id:`icon_key`,name:`Key`,iconName:`Key`,category:`system`,keywords:[`key`,`auth`,`token`,`access`,`password`]},{id:`icon_eye`,name:`Eye`,iconName:`Eye`,category:`system`,keywords:[`eye`,`view`,`visibility`,`preview`]},{id:`icon_eye_off`,name:`Eye Off`,iconName:`EyeOff`,category:`system`,keywords:[`eye`,`hidden`,`invisible`,`hide`]},{id:`icon_sparkles`,name:`Sparkles`,iconName:`Sparkles`,category:`system`,keywords:[`sparkles`,`ai`,`magic`,`star`,`featured`]},{id:`icon_wand`,name:`Magic Wand`,iconName:`Wand2`,category:`system`,keywords:[`wand`,`magic`,`ai`,`generate`]},{id:`icon_zap`,name:`Zap`,iconName:`Zap`,category:`system`,keywords:[`zap`,`bolt`,`lightning`,`fast`,`energy`]},{id:`icon_flame`,name:`Flame`,iconName:`Flame`,category:`system`,keywords:[`flame`,`fire`,`hot`,`trending`,`streak`]},{id:`icon_heart`,name:`Heart`,iconName:`Heart`,category:`system`,keywords:[`heart`,`like`,`favorite`,`love`]},{id:`icon_star`,name:`Star`,iconName:`Star`,category:`system`,keywords:[`star`,`rating`,`favorite`,`badge`,`review`]},{id:`icon_bell`,name:`Bell`,iconName:`Bell`,category:`system`,keywords:[`bell`,`notification`,`alert`,`alarm`]},{id:`icon_mail`,name:`Mail`,iconName:`Mail`,category:`system`,keywords:[`mail`,`email`,`envelope`,`message`,`inbox`]},{id:`icon_message_square`,name:`Message`,iconName:`MessageSquare`,category:`system`,keywords:[`chat`,`message`,`comment`,`feedback`]},{id:`icon_message_circle`,name:`Message Circle`,iconName:`MessageCircle`,category:`system`,keywords:[`chat`,`talk`,`discuss`]},{id:`icon_bookmark`,name:`Bookmark`,iconName:`Bookmark`,category:`system`,keywords:[`bookmark`,`save`,`favorite`,`ribbon`]},{id:`icon_tag`,name:`Tag`,iconName:`Tag`,category:`system`,keywords:[`tag`,`label`,`badge`,`category`,`price`]},{id:`icon_folder`,name:`Folder`,iconName:`Folder`,category:`system`,keywords:[`folder`,`directory`,`files`,`storage`]},{id:`icon_file_text`,name:`Document`,iconName:`FileText`,category:`system`,keywords:[`file`,`doc`,`document`,`page`,`text`]},{id:`icon_calendar`,name:`Calendar`,iconName:`Calendar`,category:`system`,keywords:[`calendar`,`date`,`schedule`,`event`]},{id:`icon_clock`,name:`Clock`,iconName:`Clock`,category:`system`,keywords:[`clock`,`time`,`watch`,`timer`,`history`]},{id:`icon_globe`,name:`Globe`,iconName:`Globe`,category:`system`,keywords:[`globe`,`world`,`web`,`internet`,`language`]},{id:`icon_map_pin`,name:`Map Pin`,iconName:`MapPin`,category:`system`,keywords:[`pin`,`map`,`location`,`gps`,`place`]},{id:`icon_shield`,name:`Shield`,iconName:`Shield`,category:`system`,keywords:[`shield`,`security`,`protection`,`safe`]},{id:`icon_shield_check`,name:`Verified Shield`,iconName:`ShieldCheck`,category:`system`,keywords:[`shield`,`verified`,`security`,`secure`]},{id:`icon_check_circle`,name:`Check Circle`,iconName:`CheckCircle2`,category:`system`,keywords:[`check`,`success`,`done`,`approved`]},{id:`icon_alert_triangle`,name:`Alert`,iconName:`AlertTriangle`,category:`system`,keywords:[`alert`,`warning`,`caution`,`danger`]},{id:`icon_info`,name:`Info`,iconName:`Info`,category:`system`,keywords:[`info`,`help`,`details`,`about`]},{id:`icon_help`,name:`Help Circle`,iconName:`HelpCircle`,category:`system`,keywords:[`help`,`faq`,`question`,`support`]},{id:`icon_phone`,name:`Phone`,iconName:`Phone`,category:`system`,keywords:[`phone`,`call`,`contact`,`telephone`]},{id:`icon_credit_card`,name:`Credit Card`,iconName:`CreditCard`,category:`commerce`,keywords:[`card`,`payment`,`credit`,`billing`,`wallet`]},{id:`icon_shopping_bag`,name:`Shopping Bag`,iconName:`ShoppingBag`,category:`commerce`,keywords:[`shopping`,`bag`,`store`,`cart`,`buy`]},{id:`icon_shopping_cart`,name:`Shopping Cart`,iconName:`ShoppingCart`,category:`commerce`,keywords:[`cart`,`ecommerce`,`checkout`,`items`]},{id:`icon_dollar`,name:`Dollar Sign`,iconName:`DollarSign`,category:`commerce`,keywords:[`dollar`,`money`,`price`,`currency`,`usd`]},{id:`icon_wallet`,name:`Wallet`,iconName:`Wallet`,category:`commerce`,keywords:[`wallet`,`money`,`crypto`,`pay`,`balance`]},{id:`icon_gift`,name:`Gift`,iconName:`Gift`,category:`commerce`,keywords:[`gift`,`reward`,`bonus`,`present`,`free`]},{id:`icon_percent`,name:`Discount`,iconName:`Percent`,category:`commerce`,keywords:[`percent`,`discount`,`sale`,`offer`,`deal`]},{id:`icon_award`,name:`Award`,iconName:`Award`,category:`commerce`,keywords:[`award`,`trophy`,`badge`,`winner`,`achievement`]},{id:`icon_trending_up`,name:`Trending Up`,iconName:`TrendingUp`,category:`commerce`,keywords:[`chart`,`trending`,`growth`,`profit`,`up`]},{id:`icon_trending_down`,name:`Trending Down`,iconName:`TrendingDown`,category:`commerce`,keywords:[`chart`,`loss`,`down`,`decline`]},{id:`icon_bar_chart`,name:`Bar Chart`,iconName:`BarChart2`,category:`commerce`,keywords:[`chart`,`analytics`,`data`,`metrics`,`stats`]},{id:`icon_pie_chart`,name:`Pie Chart`,iconName:`PieChart`,category:`commerce`,keywords:[`chart`,`pie`,`share`,`distribution`]},{id:`icon_activity`,name:`Activity`,iconName:`Activity`,category:`commerce`,keywords:[`activity`,`pulse`,`health`,`heartbeat`,`live`]},{id:`icon_package`,name:`Package`,iconName:`Package`,category:`commerce`,keywords:[`package`,`box`,`delivery`,`shipping`,`order`]},{id:`icon_truck`,name:`Truck`,iconName:`Truck`,category:`commerce`,keywords:[`truck`,`delivery`,`shipping`,`transport`]},{id:`icon_camera`,name:`Camera`,iconName:`Camera`,category:`media`,keywords:[`camera`,`photo`,`picture`,`snapshot`]},{id:`icon_video`,name:`Video`,iconName:`Video`,category:`media`,keywords:[`video`,`camera`,`recording`,`movie`]},{id:`icon_image`,name:`Image`,iconName:`Image`,category:`media`,keywords:[`image`,`picture`,`photo`,`graphic`]},{id:`icon_music`,name:`Music`,iconName:`Music`,category:`media`,keywords:[`music`,`audio`,`song`,`tune`,`sound`]},{id:`icon_headphones`,name:`Headphones`,iconName:`Headphones`,category:`media`,keywords:[`headphones`,`audio`,`listen`,`support`]},{id:`icon_mic`,name:`Microphone`,iconName:`Mic`,category:`media`,keywords:[`mic`,`voice`,`audio`,`record`]},{id:`icon_play`,name:`Play`,iconName:`Play`,category:`media`,keywords:[`play`,`video`,`start`,`media`]},{id:`icon_pause`,name:`Pause`,iconName:`Pause`,category:`media`,keywords:[`pause`,`stop`,`hold`]},{id:`icon_volume`,name:`Volume`,iconName:`Volume2`,category:`media`,keywords:[`volume`,`sound`,`speaker`,`audio`]},{id:`icon_palette`,name:`Palette`,iconName:`Palette`,category:`media`,keywords:[`palette`,`color`,`art`,`design`,`theme`]},{id:`icon_code`,name:`Code`,iconName:`Code2`,category:`tech`,keywords:[`code`,`developer`,`syntax`,`programming`]},{id:`icon_terminal`,name:`Terminal`,iconName:`Terminal`,category:`tech`,keywords:[`terminal`,`cli`,`console`,`bash`]},{id:`icon_cpu`,name:`CPU`,iconName:`Cpu`,category:`tech`,keywords:[`cpu`,`processor`,`hardware`,`chip`,`ai`]},{id:`icon_database`,name:`Database`,iconName:`Database`,category:`tech`,keywords:[`database`,`storage`,`sql`,`server`,`db`]},{id:`icon_server`,name:`Server`,iconName:`Server`,category:`tech`,keywords:[`server`,`backend`,`cloud`,`hosting`]},{id:`icon_hard_drive`,name:`Hard Drive`,iconName:`HardDrive`,category:`tech`,keywords:[`storage`,`disk`,`drive`,`memory`]},{id:`icon_wifi`,name:`Wifi`,iconName:`Wifi`,category:`tech`,keywords:[`wifi`,`network`,`wireless`,`internet`]},{id:`icon_smartphone`,name:`Smartphone`,iconName:`Smartphone`,category:`tech`,keywords:[`mobile`,`phone`,`smartphone`,`device`,`ios`]},{id:`icon_tablet`,name:`Tablet`,iconName:`Tablet`,category:`tech`,keywords:[`tablet`,`ipad`,`device`]},{id:`icon_monitor`,name:`Monitor`,iconName:`Monitor`,category:`tech`,keywords:[`monitor`,`screen`,`desktop`,`computer`]},{id:`icon_laptop`,name:`Laptop`,iconName:`Laptop`,category:`tech`,keywords:[`laptop`,`macbook`,`pc`,`computer`]}];function Bo(){return zo.map(e=>({id:e.id,name:e.name,type:`icon`,mimeType:`image/svg+xml`,url:e.iconName,width:24,height:24,createdAt:`2026-01-01T00:00:00.000Z`,keywords:e.keywords,isPreset:!0,metadata:{iconName:e.iconName}}))}var Vo=`cyrus_project_assets_v2`,Ho=[{id:`asset_img_workstation`,name:`Apple Workspace Setup`,type:`image`,mimeType:`image/jpeg`,url:`https://images.unsplash.com/photo-1517336714731-489689fd1ca8?w=1200&auto=format&fit=crop&q=80`,width:1200,height:800,createdAt:`2026-01-01T00:00:00.000Z`,keywords:[`workspace`,`macbook`,`desk`,`minimal`,`apple`,`office`],isPreset:!0},{id:`asset_img_product_minimal`,name:`Minimalist Device`,type:`image`,mimeType:`image/jpeg`,url:`https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=1200&auto=format&fit=crop&q=80`,width:1200,height:800,createdAt:`2026-01-01T00:00:00.000Z`,keywords:[`product`,`headphones`,`sound`,`audio`,`gadget`],isPreset:!0},{id:`asset_img_architecture`,name:`Clean Concrete Architecture`,type:`image`,mimeType:`image/jpeg`,url:`https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?w=1200&auto=format&fit=crop&q=80`,width:1200,height:800,createdAt:`2026-01-01T00:00:00.000Z`,keywords:[`building`,`architecture`,`glass`,`sky`,`modern`,`facade`],isPreset:!0},{id:`asset_img_person_avatar`,name:`Studio Portrait Avatar`,type:`image`,mimeType:`image/jpeg`,url:`https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=600&auto=format&fit=crop&q=80`,width:600,height:600,createdAt:`2026-01-01T00:00:00.000Z`,keywords:[`avatar`,`user`,`portrait`,`person`,`profile`],isPreset:!0},{id:`asset_bg_gradient_mesh`,name:`Prism Gradient Background`,type:`background`,mimeType:`image/jpeg`,url:`https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?w=1200&auto=format&fit=crop&q=80`,width:1200,height:800,createdAt:`2026-01-01T00:00:00.000Z`,keywords:[`gradient`,`background`,`abstract`,`mesh`,`colors`,`art`],isPreset:!0},{id:`asset_ill_geometric_cubes`,name:`Geometric 3D Glass Objects`,type:`illustration`,mimeType:`image/jpeg`,url:`https://images.unsplash.com/photo-1634017839464-5c339ebe3cb4?w=1200&auto=format&fit=crop&q=80`,width:1200,height:800,createdAt:`2026-01-01T00:00:00.000Z`,keywords:[`3d`,`glass`,`illustration`,`geometric`,`spheres`],isPreset:!0},{id:`asset_vid_ambient_lights`,name:`Ambient Studio Video`,type:`video`,mimeType:`video/mp4`,url:`https://assets.mixkit.co/videos/preview/mixkit-software-developer-working-on-code-screen-close-up-1728-large.mp4`,width:1280,height:720,createdAt:`2026-01-01T00:00:00.000Z`,keywords:[`video`,`code`,`developer`,`screen`,`ambient`,`loop`],isPreset:!0}];async function Uo(){try{return await no(Vo)||[]}catch{return[]}}async function Wo(e){let t=await Uo(),n=e?t.filter(t=>t.projectId===e):t,r=Bo();return[...n,...Ho,...r]}var Go=Wo;async function Ko(e){let t=[e,...(await Uo()).filter(t=>t.id!==e.id)];await io(Vo,t)}async function qo(e){let t=(await Uo()).filter(t=>t.id!==e);await io(Vo,t)}async function Jo(e,t){let n=(await Uo()).map(n=>n.id===e?{...n,name:t}:n);await io(Vo,n)}function Yo(e,t){if(e.length<4)return!1;if(t===`image/png`)return e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71;if(t===`image/jpeg`||t===`image/jpg`)return e[0]===255&&e[1]===216&&e[2]===255;if(t===`image/gif`)return e[0]===71&&e[1]===73&&e[2]===70&&e[3]===56;if(t===`image/webp`){if(e.length<12)return!1;let t=e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70,n=e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80;return t&&n}if(t===`video/mp4`){if(e.length<12)return!1;for(let t=4;t<=Math.min(e.length-4,16);t++)if(e[t]===102&&e[t+1]===116&&e[t+2]===121&&e[t+3]===112)return!0;return!1}return!0}function Xo(e){let t=e.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,``).replace(/<foreignObject\b[^<]*(?:(?!<\/foreignObject>)<[^<]*)*<\/foreignObject>/gi,``).replace(/<iframe\b[^<]*(?:(?!<\/iframe>)<[^<]*)*<\/iframe>/gi,``).replace(/<object\b[^<]*(?:(?!<\/object>)<[^<]*)*<\/object>/gi,``).replace(/<embed\b[^<]*(?:(?!<\/embed>)<[^<]*)*<\/embed>/gi,``).replace(/on[a-z]+\s*=\s*(['"]).*?\1/gi,``).replace(/on[a-z]+\s*=\s*[^ >]+/gi,``).replace(/javascript:[^"']*/gi,``);if(!t.includes(`<svg`)||!t.includes(`</svg>`))throw Error(`Invalid SVG content structure.`);return t}async function Zo(e,t){if(![`image/png`,`image/jpeg`,`image/jpg`,`image/webp`,`image/svg+xml`,`image/gif`,`video/mp4`].includes(e.type))throw Error(`Unsupported file type "${e.type}". Please upload PNG, JPG, WEBP, SVG, GIF, or MP4.`);if(e.size>26214400)throw Error(`File size exceeds the 25MB limit.`);let n=await e.slice(0,32).arrayBuffer(),r=new Uint8Array(n);if(e.type===`image/svg+xml`){let n=Xo(await e.text()),r=new Blob([n],{type:`image/svg+xml`}),i=`data:image/svg+xml;base64,${btoa(encodeURIComponent(n).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(t,16))))}`,a={id:M(`asset`),projectId:t,name:e.name.replace(/\.[^/.]+$/,``),type:e.name.toLowerCase().includes(`logo`)?`logo`:`svg`,mimeType:`image/svg+xml`,url:i,size:r.size,createdAt:new Date().toISOString(),keywords:[e.name.toLowerCase(),`svg`,`vector`]};return await Ko(a),a}if(!Yo(r,e.type))throw Error(`Security validation failed: File content does not match reported MIME type "${e.type}".`);return new Promise((n,r)=>{let i=new FileReader;i.onload=async()=>{try{let r=i.result,a=`image`;e.type.includes(`video`)?a=`video`:e.name.toLowerCase().includes(`logo`)&&(a=`logo`);let o={id:M(`asset`),projectId:t,name:e.name.replace(/\.[^/.]+$/,``),type:a,mimeType:e.type,url:r,size:e.size,createdAt:new Date().toISOString(),keywords:[e.name.toLowerCase(),a]};await Ko(o),n(o)}catch(e){r(e)}},i.onerror=()=>r(Error(`Failed to read file from disk.`)),i.readAsDataURL(e)})}var Qo=`cyrus_auth_session_fallback_v1`;function $o(e){switch(e?.code||``){case`auth/operation-not-allowed`:return`Sign-in method is not enabled in Firebase Console. Go to Firebase Console -> Authentication -> Sign-in method to enable Email/Password or Social logins.`;case`auth/user-not-found`:case`auth/wrong-password`:case`auth/invalid-credential`:return`Invalid email or password. Please verify your credentials or click "Sign up" to create a new account.`;case`auth/email-already-in-use`:return`An account with this email already exists. Click "Sign in" instead.`;case`auth/weak-password`:return`Password is too weak. Please use at least 8 characters.`;case`auth/popup-closed-by-user`:return`Sign-in popup was closed before completing.`;case`auth/unauthorized-domain`:return`Domain not authorized in Firebase. Add this domain to Firebase Console -> Authentication -> Settings -> Authorized Domains.`;case`auth/network-request-failed`:return`Network connection failed. Please check your internet connection.`;default:return e?.message||`Authentication failed. Please try again.`}}function es(e){if(!e)return{id:`user_${Date.now()}`,name:`Cyrus User`,email:``,plan:`free`,createdAt:new Date().toISOString()};let t=e.providerData?.[0]?.displayName??null,n=e.providerData?.[0]?.photoURL??null,r=e.displayName||t||``,i=(e.email?e.email.split(`@`)[0]:``).replace(/[._-]/g,` `).split(` `).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(` `),a=r.trim()||i||`Cyrus User`,o=e.photoURL||n||void 0;return{id:e.uid||`user_${Date.now()}`,name:a,email:e.email||``,avatarUrl:o,plan:`free`,createdAt:e.metadata?.creationTime||new Date().toISOString()}}function ts(){try{let e=localStorage.getItem(Qo);if(e)return JSON.parse(e)}catch{}return null}function ns(e){try{e.isAuthenticated&&e.user?localStorage.setItem(Qo,JSON.stringify(e)):localStorage.removeItem(Qo)}catch{}}var rs=new class{currentSession={user:null,isAuthenticated:!1};listeners=[];constructor(){let e=ts();e&&(this.currentSession=e);try{Oo(mo,e=>{if(e){let t=es(e);this.currentSession={user:t,isAuthenticated:!0},ns(this.currentSession)}else this.currentSession.user?.id.startsWith(`local_`)||(this.currentSession={user:null,isAuthenticated:!1},ns(this.currentSession));this.notifyListeners()})}catch(e){console.warn(`[Firebase Auth] onAuthStateChanged init warning:`,e)}}notifyListeners(){this.listeners.forEach(e=>{try{e(this.currentSession)}catch(e){console.error(`Auth listener error:`,e)}})}async getCurrentSession(){return this.currentSession}async signUp(e,t,n){if(!n||n.length<8)throw Error(`Password must be at least 8 characters.`);let r=e.trim().toLowerCase(),i=t.trim();try{let e=await bo(mo,r,n);if(i)try{await Eo(e.user,{displayName:i})}catch{}let t=es(e.user);return i&&(t.name=i),this.currentSession={user:t,isAuthenticated:!0},ns(this.currentSession),this.notifyListeners(),t}catch(e){if(console.error(`[Firebase Auth Error] signUp failed:`,e),e?.code===`auth/unauthorized-domain`||e?.code===`auth/operation-not-allowed`){let e={id:`local_${Date.now()}`,name:i||r.split(`@`)[0],email:r,plan:`free`,createdAt:new Date().toISOString()};return this.currentSession={user:e,isAuthenticated:!0},ns(this.currentSession),this.notifyListeners(),e}throw Error($o(e))}}async signIn(e,t){if(!t)throw Error(`Password is required.`);let n=e.trim().toLowerCase();try{let e=es((await Ao(mo,n,t)).user);return this.currentSession={user:e,isAuthenticated:!0},ns(this.currentSession),this.notifyListeners(),e}catch(e){if(e?.code===`auth/user-not-found`||e?.code===`auth/invalid-credential`)try{let e=es((await bo(mo,n,t)).user);return this.currentSession={user:e,isAuthenticated:!0},ns(this.currentSession),this.notifyListeners(),e}catch(e){if(e?.code===`auth/email-already-in-use`)throw Error(`Incorrect password. Please check your credentials.`);if(e?.code===`auth/unauthorized-domain`||e?.code===`auth/operation-not-allowed`){let e={id:`local_${Date.now()}`,name:n.split(`@`)[0],email:n,plan:`free`,createdAt:new Date().toISOString()};return this.currentSession={user:e,isAuthenticated:!0},ns(this.currentSession),this.notifyListeners(),e}throw Error($o(e))}if(e?.code===`auth/unauthorized-domain`||e?.code===`auth/operation-not-allowed`){let e={id:`local_${Date.now()}`,name:n.split(`@`)[0],email:n,plan:`free`,createdAt:new Date().toISOString()};return this.currentSession={user:e,isAuthenticated:!0},ns(this.currentSession),this.notifyListeners(),e}throw Error($o(e))}}async signInWithProvider(e){let t=uo;e===`github`?t=fo:e===`apple`&&(t=new wo(`apple.com`));try{let e=await So(mo,t);await e.user.reload().catch(()=>{});let n=es(mo.currentUser||e.user);return this.currentSession={user:n,isAuthenticated:!0},ns(this.currentSession),this.notifyListeners(),n}catch(t){if(t?.code===`auth/popup-closed-by-user`)throw Error(`Sign-in popup was closed before completing. Please try again.`);if(console.error(`[Firebase Auth Error] signInWithProvider (${e}) failed:`,t),t?.code===`auth/unauthorized-domain`||t?.code===`auth/operation-not-allowed`){let t={id:`local_${Date.now()}`,name:`${e.charAt(0).toUpperCase()+e.slice(1)} User`,email:`user@${e}.com`,plan:`free`,createdAt:new Date().toISOString()};return this.currentSession={user:t,isAuthenticated:!0},ns(this.currentSession),this.notifyListeners(),t}if(mo.currentUser){await mo.currentUser.reload().catch(()=>{});let e=es(mo.currentUser);return this.currentSession={user:e,isAuthenticated:!0},ns(this.currentSession),this.notifyListeners(),e}throw Error($o(t))}}async updateUserProfile(e){if(mo.currentUser)try{await Eo(mo.currentUser,e),await mo.currentUser.reload().catch(()=>{});let t=es(mo.currentUser);return e.displayName&&(t.name=e.displayName),e.photoURL&&(t.avatarUrl=e.photoURL),this.currentSession={user:t,isAuthenticated:!0},ns(this.currentSession),this.notifyListeners(),t}catch(e){throw console.error(`[Firebase Auth Error] updateUserProfile failed:`,e),Error($o(e))}if(this.currentSession.user){let t={...this.currentSession.user,name:e.displayName||this.currentSession.user.name,avatarUrl:e.photoURL||this.currentSession.user.avatarUrl};return this.currentSession={user:t,isAuthenticated:!0},ns(this.currentSession),this.notifyListeners(),t}throw Error(`No user is currently signed in.`)}async updateUserPassword(e,t){if(!mo.currentUser||!mo.currentUser.email)throw Error(`No user is currently signed in to Firebase.`);if(t.length<8)throw Error(`New password must be at least 8 characters long.`);try{let n=ko.credential(mo.currentUser.email,e);await xo(mo.currentUser,n),await Do(mo.currentUser,t)}catch(e){throw console.error(`[Firebase Auth Error] updateUserPassword failed:`,e),e?.code===`auth/wrong-password`||e?.code===`auth/invalid-credential`?Error(`Current password is incorrect.`):Error($o(e))}}async sendPasswordReset(e){try{await To(mo,e)}catch(e){throw console.error(`[Firebase Auth Error] sendPasswordReset failed:`,e),Error($o(e))}}async signOut(){try{await Co(mo)}catch{}this.currentSession={user:null,isAuthenticated:!1},ns(this.currentSession),this.notifyListeners()}onAuthStateChanged(e){return this.listeners.push(e),e(this.currentSession),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}},is=class{async getAssets(e){return Wo(e)}async uploadAsset(e,t){return Zo(t,e)}async deleteAsset(e){return qo(e)}},as=rs,os=Io,ss=Ro;new is;var cs=ro((e,t)=>{let n=!1,r=null;return{session:{user:null,isAuthenticated:!1},isLoading:!0,isAuthDialogOpen:!1,isProfileDialogOpen:!1,initAuth:()=>{n||(n=!0,r=as.onAuthStateChanged(t=>{e({session:t,isLoading:!1})}))},unsubscribeFromAuth:()=>{r&&=(r(),null),n=!1},openAuthDialog:()=>e({isAuthDialogOpen:!0}),closeAuthDialog:()=>e({isAuthDialogOpen:!1}),openProfileDialog:()=>e({isProfileDialogOpen:!0}),closeProfileDialog:()=>e({isProfileDialogOpen:!1}),signIn:async(t,n)=>{e({isLoading:!0});try{let r=await as.signIn(t,n);return e({isAuthDialogOpen:!1,isLoading:!1}),r}catch(t){throw e({isLoading:!1}),t}},signUp:async(t,n,r)=>{e({isLoading:!0});try{let i=await as.signUp(t,n,r);return e({isAuthDialogOpen:!1,isLoading:!1}),i}catch(t){throw e({isLoading:!1}),t}},signInWithProvider:async t=>{e({isLoading:!0});try{if(!as.signInWithProvider)throw Error(`Provider sign-in not supported`);let n=await as.signInWithProvider(t);return e({isAuthDialogOpen:!1,isLoading:!1}),n}catch(t){throw e({isLoading:!1}),t}},signOut:async()=>{e({isLoading:!0,isProfileDialogOpen:!1});try{await as.signOut()}finally{e({isLoading:!1,session:{user:null,isAuthenticated:!1}})}}}}),F=eo(),ls=`C:/Users/Shadow/Desktop/cyrus/src/components/branding/CyrusLogo.tsx`;function us({size:e=`md`,className:t,onClick:n}){return(0,F.jsxDEV)(`div`,{onClick:n,role:n?`button`:void 0,tabIndex:n?0:void 0,onKeyDown:e=>{n&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n())},className:j(`inline-flex items-center select-none transition-transform group`,n&&`cursor-pointer hover:scale-105 active:scale-95`,t),children:(0,F.jsxDEV)(`span`,{style:{fontFamily:`'Satisfy', 'Caveat', cursive`},className:j(`text-[#0071e3] tracking-normal leading-none font-bold select-none drop-shadow-xs`,{sm:`text-[22px]`,md:`text-[26px]`,lg:`text-[32px]`,xl:`text-[40px]`}[e]),children:`Cyrus`},void 0,!1,{fileName:ls,lineNumber:40,columnNumber:7},this)},void 0,!1,{fileName:ls,lineNumber:23,columnNumber:5},this)}var ds=`C:/Users/Shadow/Desktop/cyrus/src/components/ui/Button.tsx`,fs=(0,N.forwardRef)(({children:e,className:t,variant:n=`secondary`,size:r=`sm`,icon:i,iconPosition:a=`left`,isLoading:o=!1,disabled:s,...c},l)=>(0,F.jsxDEV)(`button`,{ref:l,disabled:s||o,className:ao(j(`inline-flex items-center justify-center font-sans tracking-[-0.01em] transition-apple select-none cursor-pointer disabled:opacity-45 disabled:pointer-events-none focus:outline-none`,{xs:`h-7 px-2.5 text-[12px] rounded-[6px] gap-1.5`,sm:`h-8 px-3 text-[13px] rounded-[8px] gap-2`,md:`h-9 px-4 text-[14px] rounded-[9px] gap-2`,lg:`h-10 px-5 text-[15px] rounded-[10px] gap-2.5`}[r],{primary:`bg-[#0071e3] text-white hover:bg-[#0077ed] active:bg-[#0062c4] active:scale-[0.98] shadow-apple-sm font-medium border-0 focus-visible:ring-2 focus-visible:ring-[#0071e3]/30`,secondary:`bg-white dark:bg-[#2c2c2e] text-[#1d1d1f] dark:text-[#f5f5f7] border border-[#e5e5ea] dark:border-[#38383a] hover:bg-[#f4f4f6] dark:hover:bg-[#3a3a3c] hover:border-[#d1d1d6] active:bg-[#ebebee] dark:active:bg-[#323234] active:scale-[0.98] shadow-apple-sm font-medium focus-visible:ring-2 focus-visible:ring-[#0071e3]/20`,ghost:`bg-transparent text-[#1d1d1f] dark:text-[#f5f5f7] hover:bg-[#ebebee]/70 dark:hover:bg-[#2c2c2e] active:bg-[#e2e2e7] dark:active:bg-[#38383a] active:scale-[0.98] border-0 font-medium focus-visible:ring-2 focus-visible:ring-[#0071e3]/20`,destructive:`bg-[#ff3b30] text-white hover:bg-[#e03228] active:bg-[#c92820] active:scale-[0.98] shadow-apple-sm font-medium border-0 focus-visible:ring-2 focus-visible:ring-[#ff3b30]/30`,subtle:`bg-[#f4f4f6] dark:bg-[#242426] text-[#1d1d1f] dark:text-[#f5f5f7] hover:bg-[#ebebee] dark:hover:bg-[#2c2c2e] active:bg-[#e2e2e7] dark:active:bg-[#38383a] active:scale-[0.98] border border-transparent font-medium focus-visible:ring-2 focus-visible:ring-[#0071e3]/20`,icon:`p-1.5 h-8 w-8 text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#ffffff] hover:bg-[#ebebee]/70 dark:hover:bg-[#2c2c2e] active:bg-[#e2e2e7] dark:active:bg-[#38383a] active:scale-[0.98] rounded-[7px] border-0 focus-visible:ring-2 focus-visible:ring-[#0071e3]/20`}[n],t)),...c,children:o?(0,F.jsxDEV)(`span`,{className:`w-3.5 h-3.5 border-2 border-current border-t-transparent rounded-full animate-spin`},void 0,!1,{fileName:ds,lineNumber:67,columnNumber:11},void 0):(0,F.jsxDEV)(F.Fragment,{children:[i&&a===`left`&&(0,F.jsxDEV)(`span`,{className:`shrink-0 flex items-center`,children:i},void 0,!1,{fileName:ds,lineNumber:70,columnNumber:49},void 0),e&&(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:ds,lineNumber:71,columnNumber:26},void 0),i&&a===`right`&&(0,F.jsxDEV)(`span`,{className:`shrink-0 flex items-center`,children:i},void 0,!1,{fileName:ds,lineNumber:72,columnNumber:50},void 0)]},void 0,!0,{fileName:ds,lineNumber:69,columnNumber:11},void 0)},void 0,!1,{fileName:ds,lineNumber:53,columnNumber:7},void 0));fs.displayName=`Button`;var ps=`C:/Users/Shadow/Desktop/cyrus/src/components/ui/Input.tsx`,ms=(0,N.forwardRef)(({label:e,helperText:t,error:n,leftIcon:r,rightIcon:i,isSearch:a,shortcutBadge:o,className:s,disabled:c,...l},u)=>(0,F.jsxDEV)(`div`,{className:`w-full flex flex-col gap-1`,children:[e&&(0,F.jsxDEV)(`label`,{className:`text-[11px] font-medium text-[#6e6e73] select-none`,children:e},void 0,!1,{fileName:ps,lineNumber:35,columnNumber:11},void 0),(0,F.jsxDEV)(`div`,{className:`relative flex items-center w-full`,children:[a&&!r&&(0,F.jsxDEV)(`span`,{className:`absolute left-2.5 flex items-center text-[#86868b] pointer-events-none`,children:(0,F.jsxDEV)(lt,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:ps,lineNumber:42,columnNumber:15},void 0)},void 0,!1,{fileName:ps,lineNumber:41,columnNumber:13},void 0),r&&(0,F.jsxDEV)(`span`,{className:`absolute left-2.5 flex items-center text-[#86868b] pointer-events-none`,children:r},void 0,!1,{fileName:ps,lineNumber:46,columnNumber:13},void 0),(0,F.jsxDEV)(`input`,{ref:u,disabled:c,className:ao(j(`w-full h-7.5 bg-white dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] placeholder:text-[#86868b] dark:placeholder:text-[#636366] rounded-[6px] border border-[#e5e5ea] dark:border-[#38383a] transition-apple shadow-2xs focus:outline-none focus:border-[#0071e3] dark:focus:border-[#0a84ff] focus:ring-1 focus:ring-[#0071e3] dark:focus:ring-[#0a84ff] disabled:bg-[#f4f4f6] dark:disabled:bg-[#1c1c1e] disabled:text-[#86868b] disabled:cursor-not-allowed`,a||r?`pl-8`:`px-2`,i||o?`pr-8`:`pr-2`,n&&`border-[#ff3b30] focus:border-[#ff3b30] focus:ring-[#ff3b30]`,s)),...l},void 0,!1,{fileName:ps,lineNumber:50,columnNumber:11},void 0),o&&(0,F.jsxDEV)(`span`,{className:`absolute right-1.5 flex items-center`,children:(0,F.jsxDEV)(`kbd`,{className:`px-1.5 py-0.5 text-[9px] font-medium font-mono text-[#86868b] bg-[#f4f4f6] border border-[#e5e5ea] rounded`,children:o},void 0,!1,{fileName:ps,lineNumber:66,columnNumber:15},void 0)},void 0,!1,{fileName:ps,lineNumber:65,columnNumber:13},void 0),i&&!o&&(0,F.jsxDEV)(`span`,{className:`absolute right-2 flex items-center text-[#86868b]`,children:i},void 0,!1,{fileName:ps,lineNumber:72,columnNumber:13},void 0)]},void 0,!0,{fileName:ps,lineNumber:39,columnNumber:9},void 0),n&&(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#ff3b30]`,children:n},void 0,!1,{fileName:ps,lineNumber:77,columnNumber:19},void 0),t&&!n&&(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#86868b]`,children:t},void 0,!1,{fileName:ps,lineNumber:78,columnNumber:34},void 0)]},void 0,!0,{fileName:ps,lineNumber:33,columnNumber:7},void 0));ms.displayName=`Input`;var hs=`C:/Users/Shadow/Desktop/cyrus/src/components/ui/Modal.tsx`;function gs({isOpen:e,onClose:t,title:n,subtitle:r,children:i,footer:a,maxWidth:o=`md`,className:s}){let c=(0,N.useRef)(null);return(0,N.useEffect)(()=>{let n=n=>{n.key===`Escape`&&e&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),(0,N.useEffect)(()=>{if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=t}},[e]),e?(0,F.jsxDEV)(`div`,{role:`dialog`,"aria-modal":`true`,className:`fixed inset-0 z-50 flex items-center justify-center p-4`,children:[(0,F.jsxDEV)(`div`,{onClick:t,className:`fixed inset-0 bg-black/25 backdrop-blur-sm transition-opacity duration-200`},void 0,!1,{fileName:hs,lineNumber:67,columnNumber:7},this),(0,F.jsxDEV)(`div`,{ref:c,className:ao(j(`relative w-full bg-white dark:bg-[#1c1c1e] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-[16px] border border-[#e5e5ea] dark:border-[#38383a] shadow-apple-lg overflow-hidden flex flex-col z-10 animate-in fade-in zoom-in-95 duration-150`,{sm:`max-w-sm`,md:`max-w-md`,lg:`max-w-lg`,xl:`max-w-xl`,"2xl":`max-w-2xl`}[o],s)),children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between px-6 pt-5 pb-3 border-b border-[#f4f4f6] dark:border-[#2c2c2e]`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h3`,{className:`text-[16px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7] tracking-[-0.01em]`,children:n},void 0,!1,{fileName:hs,lineNumber:86,columnNumber:13},this),r&&(0,F.jsxDEV)(`p`,{className:`text-[13px] text-[#86868b] dark:text-[#8e8e93] mt-0.5`,children:r},void 0,!1,{fileName:hs,lineNumber:90,columnNumber:15},this)]},void 0,!0,{fileName:hs,lineNumber:85,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:t,"aria-label":`Close dialog`,className:`p-1 rounded-[6px] text-[#86868b] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#ffffff] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-apple focus:outline-none cursor-pointer`,children:(0,F.jsxDEV)(Ln,{className:`w-4 h-4`},void 0,!1,{fileName:hs,lineNumber:99,columnNumber:13},this)},void 0,!1,{fileName:hs,lineNumber:93,columnNumber:11},this)]},void 0,!0,{fileName:hs,lineNumber:84,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`px-6 py-4 flex-1 overflow-y-auto max-h-[75vh]`,children:i},void 0,!1,{fileName:hs,lineNumber:104,columnNumber:9},this),a&&(0,F.jsxDEV)(`div`,{className:`px-6 py-3.5 bg-[#fbfbfd] dark:bg-[#161618] border-t border-[#f4f4f6] dark:border-[#2c2c2e] flex items-center justify-end gap-2 shrink-0`,children:a},void 0,!1,{fileName:hs,lineNumber:110,columnNumber:11},this)]},void 0,!0,{fileName:hs,lineNumber:73,columnNumber:7},this)]},void 0,!0,{fileName:hs,lineNumber:61,columnNumber:5},this):null}function _s(){let e=M();return{id:M(),name:`Apex Revenue Analytics`,pages:[{id:e,name:`Overview`,slug:`overview`,settings:{backgroundColor:`#f5f5f7`},elements:[{id:M(),type:`statCard`,name:`Total Revenue Stat`,x:40,y:40,width:270,height:130,rotation:0,zIndex:1,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:18,paddingBottom:18,paddingLeft:20,paddingRight:20},content:{title:`Total Revenue`,value:`$128,450.00`,change:`+14.2%`,isPositive:!0,timeframe:`vs last month`,icon:`CreditCard`},accessibility:{ariaRole:`region`,ariaLabel:`Total Revenue: $128,450.00, up 14.2% versus last month`}},{id:M(),type:`statCard`,name:`Active Users Stat`,x:330,y:40,width:270,height:130,rotation:0,zIndex:2,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:18,paddingBottom:18,paddingLeft:20,paddingRight:20},content:{title:`Active Users`,value:`48,290`,change:`+8.6%`,isPositive:!0,timeframe:`vs last month`,icon:`User`},accessibility:{ariaRole:`region`,ariaLabel:`Active Users: 48,290, up 8.6% versus last month`}},{id:M(),type:`statCard`,name:`Total Orders Stat`,x:620,y:40,width:270,height:130,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:18,paddingBottom:18,paddingLeft:20,paddingRight:20},content:{title:`Total Orders`,value:`3,420`,change:`+12.4%`,isPositive:!0,timeframe:`vs last month`,icon:`ShoppingBag`},accessibility:{ariaRole:`region`,ariaLabel:`Total Orders: 3,420, up 12.4% versus last month`}},{id:M(),type:`statCard`,name:`Conversion Rate Stat`,x:910,y:40,width:270,height:130,rotation:0,zIndex:4,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:18,paddingBottom:18,paddingLeft:20,paddingRight:20},content:{title:`Conversion Rate`,value:`4.85%`,change:`+0.9%`,isPositive:!0,timeframe:`30-day average`,icon:`TrendingUp`},accessibility:{ariaRole:`region`,ariaLabel:`Conversion Rate: 4.85%, up 0.9% 30-day average`}},{id:M(),type:`lineChart`,name:`Revenue & Growth Chart`,x:40,y:190,width:740,height:270,rotation:0,zIndex:5,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:18,paddingBottom:18,paddingLeft:20,paddingRight:20},content:{title:`Monthly Recurring Revenue (MRR)`,subtitle:`Subscriptions and expansion revenue across all tiers`,format:`currency`,data:[{label:`Jan`,value:34e3},{label:`Feb`,value:42500},{label:`Mar`,value:39800},{label:`Apr`,value:64200},{label:`May`,value:78900},{label:`Jun`,value:96400},{label:`Jul`,value:128450}],showGrid:!0,showAxes:!0,showLegend:!0},accessibility:{ariaRole:`img`,ariaLabel:`Revenue line chart showing upward growth from $34,000 in January to $128,450 in July`}},{id:M(),type:`donutChart`,name:`Channel Distribution Donut`,x:800,y:190,width:380,height:270,rotation:0,zIndex:6,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:18,paddingBottom:18,paddingLeft:20,paddingRight:20},content:{title:`Traffic & Conversion Channels`,subtitle:`Visitor acquisition by source`,format:`compact`,data:[{label:`Direct`,value:48200},{label:`Organic`,value:34100},{label:`Referrals`,value:18900},{label:`Social`,value:11200}],showLegend:!0},accessibility:{ariaRole:`img`,ariaLabel:`Donut chart showing Direct traffic at 48.2k, Organic at 34.1k, Referrals at 18.9k, Social at 11.2k`}},{id:M(),type:`dataTable`,name:`Recent Orders Table`,x:40,y:480,width:740,height:290,rotation:0,zIndex:7,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:18,paddingBottom:18,paddingLeft:20,paddingRight:20},content:{title:`Recent High-Value Orders`,columns:[`Customer`,`Plan`,`Amount`,`Status`,`Date`],rows:[{customer:`Acme Global Corp`,plan:`Enterprise Suite`,amount:`$4,800.00`,status:`Completed`,date:`Just now`},{customer:`Linear Systems`,plan:`Pro Developer`,amount:`$590.00`,status:`Completed`,date:`4m ago`},{customer:`Vercel Cloud Inc`,plan:`Enterprise Dedicated`,amount:`$12,400.00`,status:`Processing`,date:`18m ago`},{customer:`Stripe Payments UK`,plan:`Team Collaboration`,amount:`$1,250.00`,status:`Completed`,date:`45m ago`}]},accessibility:{ariaRole:`region`,ariaLabel:`Recent Orders table with 4 transactions`}},{id:M(),type:`activityFeed`,name:`Live Activity Stream`,x:800,y:480,width:380,height:290,rotation:0,zIndex:8,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:18,paddingBottom:18,paddingLeft:20,paddingRight:20},content:{title:`Live Real-Time Activity`,events:[{user:`Alex Rivera`,action:`upgraded to Enterprise Dedicated`,time:`2m ago`,icon:`Sparkles`},{user:`Sarah Chen`,action:`added 6 new team members`,time:`12m ago`,icon:`User`},{user:`Cloud Scheduler`,action:`scaled edge cluster to 32 nodes`,time:`38m ago`,icon:`Zap`},{user:`David Kim`,action:`generated monthly tax audit PDF`,time:`1h ago`,icon:`Check`}]},accessibility:{ariaRole:`status`,ariaLabel:`Live activity feed with 4 recent system and user actions`}}]}],type:`dashboard`,designSystem:yo,variables:[{id:M(),name:`revenueStats`,type:`object`,defaultValue:{revenue:128450,users:48290,orders:3420,conversion:4.85}}],settings:{platformTarget:`web`},createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}}function vs(){let e=new Date().toISOString();return{id:`proj_mobile_banking_demo`,name:`Nova Mobile Banking`,description:`Enterprise mobile banking app for iOS & Android built with React Native & React Navigation.`,type:`mobile`,pages:[{id:`page_mob_home`,name:`Home Dashboard`,slug:`home`,settings:{backgroundColor:`#f5f5f7`,padding:16,maxWidth:390,metaTitle:`Nova Banking - Mobile Home`,metaDescription:`Secure mobile banking dashboard with real-time balance tracking.`},elements:[{id:`el_mob_hdr_1`,type:`mobileHeader`,name:`Header Nav`,x:16,y:52,width:358,height:52,rotation:0,zIndex:10,locked:!1,hidden:!1,styles:{backgroundColor:`#ffffff`,borderRadius:14,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingLeft:16,paddingRight:16},content:{title:`Nova Banking`,actionLabel:`Support`,showBack:!1}},{id:`el_mob_card_1`,type:`mobileCard`,name:`Total Balance Card`,x:16,y:114,width:358,height:140,rotation:0,zIndex:5,locked:!1,hidden:!1,styles:{backgroundColor:`#0071e3`,textColor:`#ffffff`,borderRadius:18,borderWidth:0,shadow:`md`,paddingTop:18,paddingBottom:18,paddingLeft:18,paddingRight:18},content:{subtitle:`Available Balance`,amount:`$38,450.20`,tag:`Checking •• 4092`,trend:`+8.5% this month`}},{id:`el_mob_list_1`,type:`mobileList`,name:`Recent Transactions List`,x:16,y:264,width:358,height:240,rotation:0,zIndex:4,locked:!1,hidden:!1,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:14,paddingBottom:14,paddingLeft:16,paddingRight:16},content:{title:`Recent Transactions`,items:[{title:`Apple Store`,subtitle:`Hardware & Devices`,amount:`-$1,299.00`,icon:`ShoppingBag`,isDebit:!0},{title:`Stripe Payout`,subtitle:`Direct Deposit Payroll`,amount:`+$4,820.00`,icon:`ArrowDownLeft`,isDebit:!1},{title:`Uber Technologies`,subtitle:`Transportation`,amount:`-$24.50`,icon:`Car`,isDebit:!0},{title:`Whole Foods Market`,subtitle:`Groceries & Organic`,amount:`-$84.20`,icon:`ShoppingBag`,isDebit:!0}]}},{id:`el_mob_tab_1`,type:`bottomNav`,name:`Bottom Tab Navigation`,x:16,y:720,width:358,height:64,rotation:0,zIndex:20,locked:!1,hidden:!1,styles:{backgroundColor:`#ffffff`,borderRadius:20,borderWidth:1,borderColor:`#e5e5ea`,shadow:`md`},content:{activeTab:`Home`,tabs:[{label:`Home`,icon:`Home`,badge:``},{label:`Cards`,icon:`CreditCard`,badge:`1`},{label:`Transfer`,icon:`Send`,badge:``},{label:`Profile`,icon:`User`,badge:``}]}}]},{id:`page_mob_cards`,name:`Cards & Wallets`,slug:`cards`,settings:{backgroundColor:`#f5f5f7`,padding:16,maxWidth:390,metaTitle:`My Cards - Nova Mobile`,metaDescription:`Manage virtual titanium debit and credit cards.`},elements:[{id:`el_mob_hdr_2`,type:`mobileHeader`,name:`Header Nav`,x:16,y:52,width:358,height:52,rotation:0,zIndex:10,locked:!1,hidden:!1,styles:{backgroundColor:`#ffffff`,borderRadius:14,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingLeft:16,paddingRight:16},content:{title:`My Cards`,actionLabel:`+ Add`,showBack:!0}},{id:`el_mob_card_2`,type:`mobileCard`,name:`Virtual Titanium Card`,x:16,y:114,width:358,height:140,rotation:0,zIndex:5,locked:!1,hidden:!1,styles:{backgroundColor:`#1d1d1f`,textColor:`#ffffff`,borderRadius:18,borderWidth:0,shadow:`md`,paddingTop:18,paddingBottom:18,paddingLeft:18,paddingRight:18},content:{subtitle:`Titanium Debit Card`,amount:`$12,000.00 Limit`,tag:`Mastercard •• 8831`,trend:`Active • Apple Pay ready`}},{id:`el_mob_list_2`,type:`mobileList`,name:`Card Controls`,x:16,y:264,width:358,height:220,rotation:0,zIndex:4,locked:!1,hidden:!1,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:14,paddingBottom:14,paddingLeft:16,paddingRight:16},content:{title:`Card Controls & Security`,items:[{title:`Freeze Card`,subtitle:`Temporarily block transactions`,amount:`Unlocked`,icon:`Lock`,isDebit:!0},{title:`Online Payments`,subtitle:`Allow e-commerce purchases`,amount:`Enabled`,icon:`ShoppingBag`,isDebit:!1},{title:`Monthly Limit`,subtitle:`Maximum $15,000 / mo`,amount:`$4,200 spent`,icon:`CreditCard`,isDebit:!0}]}},{id:`el_mob_tab_2`,type:`bottomNav`,name:`Bottom Tab Navigation`,x:16,y:720,width:358,height:64,rotation:0,zIndex:20,locked:!1,hidden:!1,styles:{backgroundColor:`#ffffff`,borderRadius:20,borderWidth:1,borderColor:`#e5e5ea`,shadow:`md`},content:{activeTab:`Cards`,tabs:[{label:`Home`,icon:`Home`,badge:``},{label:`Cards`,icon:`CreditCard`,badge:`1`},{label:`Transfer`,icon:`Send`,badge:``},{label:`Profile`,icon:`User`,badge:``}]}}]},{id:`page_mob_transfer`,name:`Transfer & Send`,slug:`transfer`,settings:{backgroundColor:`#f5f5f7`,padding:16,maxWidth:390,metaTitle:`Send Money - Nova Mobile`,metaDescription:`Instant money transfer and payment options.`},elements:[{id:`el_mob_hdr_3`,type:`mobileHeader`,name:`Header Nav`,x:16,y:52,width:358,height:52,rotation:0,zIndex:10,locked:!1,hidden:!1,styles:{backgroundColor:`#ffffff`,borderRadius:14,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingLeft:16,paddingRight:16},content:{title:`Transfer Money`,actionLabel:`History`,showBack:!0}},{id:`el_mob_sheet_3`,type:`mobileSheet`,name:`Transfer Action Sheet`,x:16,y:114,width:358,height:220,rotation:0,zIndex:5,locked:!1,hidden:!1,styles:{backgroundColor:`#ffffff`,borderRadius:24,borderWidth:1,borderColor:`#e5e5ea`,shadow:`lg`,paddingTop:16,paddingBottom:20,paddingLeft:20,paddingRight:20},content:{title:`Instant Wire Transfer`,subtitle:`Zero fee transfer to any domestic checking account.`,primaryAction:`Send Money Now`}},{id:`el_mob_list_3`,type:`mobileList`,name:`Frequent Payees`,x:16,y:344,width:358,height:200,rotation:0,zIndex:4,locked:!1,hidden:!1,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:14,paddingBottom:14,paddingLeft:16,paddingRight:16},content:{title:`Recent Recipients`,items:[{title:`Alex Rivera`,subtitle:`Checking •• 1092`,amount:`Favorite`,icon:`User`,isDebit:!1},{title:`Sarah Chen`,subtitle:`Savings •• 5541`,amount:`Recent`,icon:`User`,isDebit:!1},{title:`Elena Rostova`,subtitle:`Wire •• 9920`,amount:`Recent`,icon:`User`,isDebit:!1}]}},{id:`el_mob_tab_3`,type:`bottomNav`,name:`Bottom Tab Navigation`,x:16,y:720,width:358,height:64,rotation:0,zIndex:20,locked:!1,hidden:!1,styles:{backgroundColor:`#ffffff`,borderRadius:20,borderWidth:1,borderColor:`#e5e5ea`,shadow:`md`},content:{activeTab:`Transfer`,tabs:[{label:`Home`,icon:`Home`,badge:``},{label:`Cards`,icon:`CreditCard`,badge:`1`},{label:`Transfer`,icon:`Send`,badge:``},{label:`Profile`,icon:`User`,badge:``}]}}]}],settings:{platformTarget:`mobile`,safeArea:{top:47,bottom:34,left:0,right:0},canvasBackground:`#f5f5f7`,primaryColor:`#0071e3`,theme:`light`,siteUrl:`https://novabanking.app`,sitemapEnabled:!0,robotsTxtEnabled:!0},createdAt:e,updatedAt:e}}var ys={id:`tmpl_modern_saas`,name:`Modern SaaS Platform`,category:`saas`,style:`minimal`,description:`Complete high-conversion SaaS suite with marketing landing, feature deep-dive, pricing tiers, login, and analytics dashboard.`,keywords:[`saas`,`software`,`platform`,`b2b`,`pricing`,`subscription`,`dashboard`],project:{id:`proj_tmpl_saas`,name:`Modern SaaS Platform`,type:`saas`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:`#f5f5f7`,primaryColor:`#0071e3`,theme:`light`},designSystem:yo,pages:[{id:`saas_page_home`,name:`Home`,slug:`home`,settings:{backgroundColor:`#f5f5f7`},elements:[{id:`saas_el_nav`,type:`navbar`,name:`Header Navbar`,x:60,y:24,width:1320,height:64,rotation:0,zIndex:10,styles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingLeft:24,paddingRight:24},content:{brandName:`Apex Engine`,links:[`Features`,`Pricing`,`Login`,`Dashboard`],ctaLabel:`Get Started`}},{id:`saas_el_hero`,type:`hero`,name:`Hero Section`,x:170,y:110,width:1100,height:290,rotation:0,zIndex:2,styles:{backgroundColor:`transparent`},content:{badge:`The AI-Powered SaaS Architecture`,headline:`Scale your cloud infrastructure with zero operational friction.`,subhead:`Automate deployments, monitor runtime metrics, and stream telemetry data in real-time.`,primaryBtnText:`Start 14-Day Trial`,secondaryBtnText:`Explore Features`}},{id:`saas_el_c1`,type:`featureCard`,name:`Cloud Orchestration`,x:60,y:430,width:420,height:150,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:14,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:20,paddingLeft:20,paddingRight:20},content:{icon:`Zap`,title:`Global Multi-Region Edge`,description:`Deploy serverless edge functions with sub-5ms latency across 300+ PoPs.`}},{id:`saas_el_c2`,type:`featureCard`,name:`Automated CI/CD`,x:510,y:430,width:420,height:150,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:14,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:20,paddingLeft:20,paddingRight:20},content:{icon:`Sparkles`,title:`Autonomous Rollouts`,description:`Canary deployments with automated rollback on health anomalies.`}},{id:`saas_el_c3`,type:`featureCard`,name:`Enterprise Security`,x:960,y:430,width:420,height:150,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:14,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:20,paddingLeft:20,paddingRight:20},content:{icon:`Check`,title:`SOC2 & HIPAA Certified`,description:`End-to-end envelope encryption and fine-grained role-based access.`}},{id:`saas_el_footer`,type:`footer`,name:`Footer`,x:60,y:620,width:1320,height:100,rotation:0,zIndex:4,styles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`},content:{brandName:`Apex Engine`,copyright:`© 2026 Apex Cloud Systems Inc.`}}]},{id:`saas_page_features`,name:`Features`,slug:`features`,settings:{backgroundColor:`#f5f5f7`},elements:[{id:`saas_f_nav`,type:`navbar`,name:`Navbar`,x:60,y:24,width:1320,height:64,rotation:0,zIndex:10,styles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`},content:{brandName:`Apex Engine`,links:[`Home`,`Features`,`Pricing`,`Login`]}},{id:`saas_f_heading`,type:`heading`,name:`Features Heading`,x:360,y:120,width:720,height:50,rotation:0,zIndex:2,styles:{fontSize:32,fontWeight:`700`,textAlign:`center`,textColor:`#1d1d1f`},content:{text:`Engineered for Performance and Scale`}},{id:`saas_f_c1`,type:`metricCard`,name:`Latency KPI`,x:180,y:200,width:520,height:160,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:24,paddingLeft:24},content:{title:`Global P99 Latency`,value:`4.2 ms`,change:`-34%`,isPositive:!0,timeframe:`vs industry standard`}},{id:`saas_f_c2`,type:`metricCard`,name:`Throughput KPI`,x:740,y:200,width:520,height:160,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:24,paddingLeft:24},content:{title:`Concurrent RPS`,value:`1.4M`,change:`+142%`,isPositive:!0,timeframe:`peak throughput`}}]},{id:`saas_page_pricing`,name:`Pricing`,slug:`pricing`,settings:{backgroundColor:`#f5f5f7`},elements:[{id:`saas_p_nav`,type:`navbar`,name:`Navbar`,x:60,y:24,width:1320,height:64,rotation:0,zIndex:10,styles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`},content:{brandName:`Apex Engine`,links:[`Home`,`Features`,`Pricing`,`Login`]}},{id:`saas_p_card_starter`,type:`pricingCard`,name:`Starter Tier`,x:180,y:130,width:320,height:400,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:28,paddingLeft:24,paddingRight:24},content:{planName:`Developer`,price:`$0`,period:`/forever`,description:`For hobbyists and individual developers.`,buttonText:`Start Free`}},{id:`saas_p_card_pro`,type:`pricingCard`,name:`Pro Tier`,x:540,y:110,width:360,height:440,rotation:0,zIndex:4,styles:{backgroundColor:`#ffffff`,borderRadius:18,borderWidth:2,borderColor:`#0071e3`,shadow:`md`,paddingTop:32,paddingLeft:28,paddingRight:28},content:{planName:`Team Pro`,price:`$49`,period:`/month`,description:`For high-velocity engineering teams.`,buttonText:`Upgrade to Pro`}},{id:`saas_p_card_enterprise`,type:`pricingCard`,name:`Enterprise Tier`,x:940,y:130,width:320,height:400,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:28,paddingLeft:24,paddingRight:24},content:{planName:`Enterprise`,price:`$299`,period:`/month`,description:`Dedicated clusters, SLAs, and 24/7 phone support.`,buttonText:`Contact Sales`}}]},{id:`saas_page_login`,name:`Login`,slug:`login`,settings:{backgroundColor:`#f5f5f7`},elements:[{id:`saas_login_card`,type:`loginForm`,name:`Login Card`,x:495,y:160,width:450,height:380,rotation:0,zIndex:10,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`lg`,paddingTop:28,paddingLeft:32,paddingRight:32},content:{title:`Sign In to Apex Cloud`,subtitle:`Manage your microservices and edge databases.`,buttonText:`Authenticate`}}]},{id:`saas_page_dash`,name:`Dashboard`,slug:`dashboard`,settings:{backgroundColor:`#f5f5f7`},elements:[{id:`saas_d_sidebar`,type:`sidebar`,name:`App Sidebar`,x:20,y:20,width:240,height:800,rotation:0,zIndex:10,styles:{backgroundColor:`#ffffff`,borderRadius:14,borderWidth:1,borderColor:`#e5e5ea`},content:{brandName:`Apex OS`,activeItem:`Overview`,items:[`Overview`,`Clusters`,`Deployments`,`Security`,`Settings`]}},{id:`saas_d_chart`,type:`chart`,name:`Throughput Chart`,x:280,y:20,width:720,height:360,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:14,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`,paddingTop:20,paddingLeft:20,paddingRight:20},content:{title:`Network Bandwidth Usage (GB/s)`}},{id:`saas_d_table`,type:`dataTable`,name:`Deployments Table`,x:280,y:400,width:1100,height:320,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:14,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{title:`Live Container Replicas`}}]}]}},bs={id:`tmpl_ai_product`,name:`AI Agent Studio`,category:`saas`,style:`dark`,description:`OLED dark-mode generative AI interface with prompt consoles, model comparison cards, and token analytics.`,keywords:[`ai`,`agent`,`chatgpt`,`gemini`,`dark`,`prompt`,`machine learning`,`llm`],project:{id:`proj_tmpl_ai`,name:`AI Agent Studio`,type:`saas`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:`#000000`,primaryColor:`#0a84ff`,theme:`dark`},designSystem:ho.find(e=>e.id===`dark`)?.tokens||yo,pages:[{id:`ai_page_home`,name:`Home`,slug:`home`,settings:{backgroundColor:`#000000`},elements:[{id:`ai_nav`,type:`navbar`,name:`Navbar`,x:60,y:24,width:1320,height:64,rotation:0,zIndex:10,styles:{backgroundColor:`#1c1c1e`,borderRadius:12,borderWidth:1,borderColor:`#38383a`},content:{brandName:`Cognitive AI`,links:[`Models`,`Playground`,`API`,`Pricing`]}},{id:`ai_hero`,type:`hero`,name:`Hero`,x:170,y:110,width:1100,height:290,rotation:0,zIndex:2,styles:{backgroundColor:`transparent`},content:{badge:`Next-Generation Multimodal Intelligence`,headline:`Autonomous reasoning agents built for enterprise scale.`,subhead:`Orchestrate multi-step tools, grounded web lookups, and deep reasoning models in one API.`,primaryBtnText:`Try in Playground`,secondaryBtnText:`View API Docs`}},{id:`ai_card1`,type:`featureCard`,name:`Model 1`,x:180,y:430,width:520,height:150,rotation:0,zIndex:3,styles:{backgroundColor:`#1c1c1e`,borderRadius:16,borderWidth:1,borderColor:`#38383a`,textColor:`#ffffff`},content:{icon:`Sparkles`,title:`Deep Reasoning 2.0`,description:`High-capability complex problem solver with multi-step chain-of-thought verification.`}},{id:`ai_card2`,type:`featureCard`,name:`Model 2`,x:740,y:430,width:520,height:150,rotation:0,zIndex:3,styles:{backgroundColor:`#1c1c1e`,borderRadius:16,borderWidth:1,borderColor:`#38383a`,textColor:`#ffffff`},content:{icon:`Zap`,title:`Flash Lite 500k`,description:`Sub-millisecond inference with massive token throughput for edge devices.`}}]},{id:`ai_page_dash`,name:`Dashboard`,slug:`dashboard`,settings:{backgroundColor:`#000000`},elements:[{id:`ai_d_chart`,type:`chart`,name:`Token Usage Chart`,x:60,y:30,width:1320,height:380,rotation:0,zIndex:3,styles:{backgroundColor:`#1c1c1e`,borderRadius:16,borderWidth:1,borderColor:`#38383a`},content:{title:`API Ingestion Throughput (Tokens/Sec)`}}]}]}},xs={id:`tmpl_analytics_dashboard`,name:`Apex Revenue Analytics`,category:`dashboards`,style:`minimal`,description:`Enterprise revenue & growth analytics cockpit with 4 KPI stat cards, monthly MRR line chart, traffic distribution donut, recent orders data table, and real-time activity stream.`,keywords:[`dashboard`,`analytics`,`kpi`,`metrics`,`charts`,`data`,`admin`,`revenue`,`orders`,`conversion`,`users`],project:_s()},Ss={id:`tmpl_ecommerce_store`,name:`Atelier Commerce`,category:`ecommerce`,style:`minimal`,description:`Luxury lifestyle store with product grids, cart drawers, and responsive checkout forms.`,keywords:[`ecommerce`,`shop`,`store`,`cart`,`checkout`,`products`,`retail`,`fashion`],project:{id:`proj_tmpl_ecom`,name:`Atelier Commerce`,type:`website`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:`#ffffff`,primaryColor:`#1d1d1f`,theme:`light`},designSystem:yo,pages:[{id:`ecom_page_home`,name:`Home`,slug:`home`,settings:{backgroundColor:`#ffffff`},elements:[{id:`ecom_nav`,type:`navbar`,name:`Store Header`,x:60,y:20,width:1320,height:64,rotation:0,zIndex:10,styles:{backgroundColor:`#ffffff`,borderWidth:1,borderColor:`#e5e5ea`},content:{brandName:`ATELIER`,links:[`Apparel`,`Accessories`,`Objects`,`Journal`,`Cart (2)`]}},{id:`ecom_hero`,type:`hero`,name:`Editorial Hero`,x:170,y:110,width:1100,height:290,rotation:0,zIndex:2,styles:{backgroundColor:`transparent`},content:{badge:`Summer 2026 Collection`,headline:`Pure materials. Timeless silhouettes.`,subhead:`Engineered Japanese wool, organic raw cotton, and surgical-grade stainless hardware.`,primaryBtnText:`Shop the Lookbook`,secondaryBtnText:`Explore Objects`}},{id:`ecom_p1`,type:`productCard`,name:`Product 1`,x:180,y:430,width:320,height:380,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`},content:{title:`Tailored Wool Overshirt`,price:`$280`}},{id:`ecom_p2`,type:`productCard`,name:`Product 2`,x:560,y:430,width:320,height:380,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`},content:{title:`Raw Selvedge Denim`,price:`$220`}},{id:`ecom_p3`,type:`productCard`,name:`Product 3`,x:940,y:430,width:320,height:380,rotation:0,zIndex:3,styles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`},content:{title:`Minimalist Titanium Watch`,price:`$490`}}]}]}},Cs={id:`tmpl_creative_portfolio`,name:`Studio Monolith`,category:`portfolios`,style:`minimal`,description:`Architectural portfolio showcase with high-contrast typography, case study grids, and inquiry forms.`,keywords:[`portfolio`,`design`,`agency`,`creative`,`architect`,`freelancer`,`studio`],project:{id:`proj_tmpl_portfolio`,name:`Studio Monolith`,type:`website`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:`#f5f5f7`,primaryColor:`#1d1d1f`,theme:`light`},designSystem:yo,pages:[{id:`port_page_home`,name:`Home`,slug:`home`,settings:{backgroundColor:`#f5f5f7`},elements:[{id:`port_nav`,type:`navbar`,name:`Nav`,x:60,y:20,width:1320,height:60,rotation:0,zIndex:10,styles:{backgroundColor:`#ffffff`,borderRadius:10,borderWidth:1,borderColor:`#e5e5ea`},content:{brandName:`Studio Monolith`,links:[`Work`,`Philosophy`,`About`,`Inquire`]}},{id:`port_hero`,type:`hero`,name:`Hero`,x:170,y:110,width:1100,height:280,rotation:0,zIndex:2,styles:{backgroundColor:`transparent`},content:{badge:`Design & Architecture Practice`,headline:`We shape physical & digital spaces with radical clarity.`,subhead:`Award-winning industrial design, spatial computing, and identity systems.`,primaryBtnText:`Explore Selected Work`,secondaryBtnText:`Read Monograph`}}]}]}},ws={id:`tmpl_mobile_banking`,name:`Nova Mobile Banking`,category:`mobile`,style:`minimal`,description:`Native mobile banking application with multi-screen flow, safe areas, transaction lists, virtual cards, transfer sheets, and bottom navigation tabs.`,keywords:[`mobile`,`banking`,`finance`,`ios`,`android`,`wallet`,`transfer`,`cards`,`react native`],project:vs()},Ts={id:`tmpl_proposal_project`,name:`Proposal for a new project`,category:`presentations`,style:`bold`,description:`Creative project proposal deck with vibrant pink background and key milestones.`,keywords:[`proposal`,`project`,`deck`,`canva`],project:{id:`proj_tmpl_proposal`,name:`Proposal for a new project`,type:`webapp`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:`#ff4b72`,primaryColor:`#ffffff`,theme:`light`},pages:[{id:`p_prop_1`,name:`Slide 1`,slug:`slide-1`,settings:{backgroundColor:`#ff4b72`},elements:[{id:`el_prop_1`,type:`heading`,name:`Title`,x:80,y:100,width:900,height:120,rotation:0,zIndex:2,styles:{fontSize:44,fontWeight:`800`,textColor:`#ffffff`},content:{text:`Proposal for a new project`}}]}]}},Es={id:`tmpl_art_society`,name:`Art and Society`,category:`presentations`,style:`vibrant`,description:`Art, history and society presentation template.`,keywords:[`art`,`society`,`presentation`,`canva`],project:{id:`proj_tmpl_art`,name:`Art and Society`,type:`webapp`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:`#00a8b5`,primaryColor:`#ffffff`,theme:`light`},pages:[{id:`p_art_1`,name:`Slide 1`,slug:`slide-1`,settings:{backgroundColor:`#00a8b5`},elements:[{id:`el_art_1`,type:`heading`,name:`Title`,x:100,y:120,width:800,height:100,rotation:0,zIndex:2,styles:{fontSize:40,fontWeight:`800`,textColor:`#ffffff`},content:{text:`Art and Society`}}]}]}},Ds={id:`tmpl_classroom_rules`,name:`Classroom Rules`,category:`presentations`,style:`minimal`,description:`Educational classroom rules presentation with clear vector illustrations.`,keywords:[`classroom`,`rules`,`education`,`canva`],project:{id:`proj_tmpl_rules`,name:`Classroom Rules`,type:`webapp`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:`#003366`,primaryColor:`#ffffff`,theme:`light`},pages:[{id:`p_rules_1`,name:`Slide 1`,slug:`slide-1`,settings:{backgroundColor:`#003366`},elements:[{id:`el_rules_1`,type:`heading`,name:`Title`,x:80,y:80,width:840,height:90,rotation:0,zIndex:2,styles:{fontSize:48,fontWeight:`800`,textColor:`#ffffff`},content:{text:`CLASSROOM RULES`}}]}]}},Os={id:`tmpl_working_safely`,name:`Working Safely in Art Class`,category:`presentations`,style:`colorful`,description:`Art class safety guidelines deck.`,keywords:[`safety`,`art`,`class`,`canva`],project:{id:`proj_tmpl_safely`,name:`Working Safely in Art Class`,type:`webapp`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:`#ff9800`,primaryColor:`#ffffff`,theme:`light`},pages:[{id:`p_safe_1`,name:`Slide 1`,slug:`slide-1`,settings:{backgroundColor:`#ff9800`},elements:[{id:`el_safe_1`,type:`heading`,name:`Title`,x:80,y:90,width:880,height:100,rotation:0,zIndex:2,styles:{fontSize:38,fontWeight:`800`,textColor:`#ffffff`},content:{text:`WORKING SAFELY WITH PAINTS IN ART CLASS`}}]}]}},ks={id:`tmpl_poster_plan`,name:`My Poster Plan`,category:`presentations`,style:`vibrant`,description:`Poster planning and layout workshop template.`,keywords:[`poster`,`plan`,`design`,`canva`],project:{id:`proj_tmpl_poster`,name:`My Poster Plan`,type:`webapp`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:`#1a237e`,primaryColor:`#ffffff`,theme:`light`},pages:[{id:`p_post_1`,name:`Slide 1`,slug:`slide-1`,settings:{backgroundColor:`#1a237e`},elements:[{id:`el_post_1`,type:`heading`,name:`Title`,x:90,y:110,width:800,height:100,rotation:0,zIndex:2,styles:{fontSize:44,fontWeight:`800`,textColor:`#ffeb3b`},content:{text:`My Poster Plan`}}]}]}},As=[ys,bs,xs,ws,Ss,Cs,{id:`tmpl_design_portfolio_canva`,name:`Design Portfolio`,category:`portfolios`,style:`minimal`,description:`Clean design portfolio showcase deck.`,keywords:[`portfolio`,`design`,`canva`],project:{id:`proj_tmpl_port_c`,name:`Design Portfolio`,type:`webapp`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:`#ffffff`,primaryColor:`#1d1d1f`,theme:`light`},pages:[{id:`p_dp_1`,name:`Slide 1`,slug:`slide-1`,settings:{backgroundColor:`#ffffff`},elements:[{id:`el_dp_1`,type:`heading`,name:`Title`,x:100,y:120,width:800,height:100,rotation:0,zIndex:2,styles:{fontSize:48,fontWeight:`800`,textColor:`#1d1d1f`},content:{text:`Design Portfolio`}}]}]}},{id:`tmpl_group_project`,name:`group project`,category:`presentations`,style:`bold`,description:`Group project collaboration template.`,keywords:[`group`,`project`,`canva`],project:{id:`proj_tmpl_group`,name:`group project`,type:`webapp`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:`#b71c1c`,primaryColor:`#ffffff`,theme:`light`},pages:[{id:`p_grp_1`,name:`Slide 1`,slug:`slide-1`,settings:{backgroundColor:`#b71c1c`},elements:[{id:`el_grp_1`,type:`heading`,name:`Title`,x:80,y:100,width:800,height:100,rotation:0,zIndex:2,styles:{fontSize:44,fontWeight:`800`,textColor:`#ffffff`},content:{text:`group project`}}]}]}},Ts,Es,Ds,Os,ks],js=`C:/Users/Shadow/Desktop/cyrus/src/components/icons/AiChipIcon.tsx`;function Ms({className:e=`w-6 h-6`,size:t,...n}){let r=t||void 0,i=t||void 0,a=N.useId();return(0,F.jsxDEV)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:e,width:r,height:i,...n,children:[(0,F.jsxDEV)(`defs`,{children:(0,F.jsxDEV)(`linearGradient`,{id:a,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,F.jsxDEV)(`stop`,{offset:`0%`,stopColor:`#7d2ae8`},void 0,!1,{fileName:js,lineNumber:25,columnNumber:11},this),(0,F.jsxDEV)(`stop`,{offset:`100%`,stopColor:`#0071e3`},void 0,!1,{fileName:js,lineNumber:26,columnNumber:11},this)]},void 0,!0,{fileName:js,lineNumber:24,columnNumber:9},this)},void 0,!1,{fileName:js,lineNumber:23,columnNumber:7},this),(0,F.jsxDEV)(`path`,{d:`M12 2C12 7.5 16.5 12 22 12C16.5 12 12 16.5 12 22C12 16.5 7.5 12 2 12C7.5 12 12 7.5 12 2Z`,fill:`url(#${a})`},void 0,!1,{fileName:js,lineNumber:31,columnNumber:7},this),(0,F.jsxDEV)(`path`,{d:`M19 3C19 5 20.5 6.5 22.5 6.5C20.5 6.5 19 8 19 10C19 8 17.5 6.5 15.5 6.5C17.5 6.5 19 5 19 3Z`,fill:`#0071e3`,opacity:`0.85`},void 0,!1,{fileName:js,lineNumber:37,columnNumber:7},this)]},void 0,!0,{fileName:js,lineNumber:14,columnNumber:5},this)}var Ns=`C:/Users/Shadow/Desktop/cyrus/src/components/dialogs/AIChatModal.tsx`,Ps=[{id:`msg_1`,sender:`ai`,text:`Hello! I'm Cyrus AI Magic. Describe any website, SaaS platform, mobile app, or UI component you want to build, and I'll generate the full layout and code for you.`,timestamp:`Just now`}],Fs=[`🚀 Build a SaaS Landing Page`,`📱 Create a Mobile Banking App`,`📊 Design an Analytics Dashboard`,`💳 Create a Pricing Table Card`];function Is({isOpen:e,onClose:t,onOpenProject:n}){let{addToast:r}=oo(),{ai:i}=No(),[a,o]=(0,N.useState)(Ps),[s,c]=(0,N.useState)(``),[l,u]=(0,N.useState)(!1),d=(0,N.useRef)(null);if((0,N.useEffect)(()=>{e&&d.current?.scrollIntoView({behavior:`smooth`})},[e,a,l]),!e)return null;let f=async e=>{let t=(e||s).trim();if(!t||l)return;let n={id:`usr_${Date.now()}`,sender:`user`,text:t,timestamp:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})};o(e=>[...e,n]),c(``),u(!0),setTimeout(async()=>{let e=t.toLowerCase(),n=`webapp`,r=`AI Generated Design`,i=`Full multi-element UI canvas synthesized by Gemini AI Magic.`,a=6;e.includes(`mobile`)||e.includes(`app`)||e.includes(`ios`)?(n=`mobile`,r=`Mobile App Design`,i=`iOS/Android responsive mobile interface layout.`,a=5):e.includes(`dashboard`)||e.includes(`analytics`)||e.includes(`chart`)?(n=`dashboard`,r=`Analytics Dashboard`,i=`Data visualization layout with KPI metrics and charts.`,a=8):(e.includes(`saas`)||e.includes(`landing`))&&(n=`webapp`,r=`SaaS Platform`,i=`Hero section, navigation, feature cards, and pricing.`,a=7);let s={id:`ai_${Date.now()}`,sender:`ai`,text:`I've synthesized a **${r}** based on your prompt: "${t}". Click below to open and edit it live on the canvas!`,timestamp:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}),projectPreview:{type:n,title:r,description:i,elementCount:a}};o(e=>[...e,s]),u(!1)},1e3)},p=async e=>{try{let i=`page_${M()}`,a={id:M(`proj`),name:e?.title||`AI Design Project`,type:e?.type||`webapp`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),pages:[{id:i,name:`Page 1`,slug:`page-1`,settings:{backgroundColor:`#ffffff`},elements:[{id:`el_${M()}`,type:`navbar`,name:`Nav Bar`,x:40,y:20,width:800,height:64,styles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{brandName:`Cyrus AI`}},{id:`el_${M()}`,type:`hero`,name:`Hero Section`,x:40,y:100,width:800,height:320,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{headline:e?.title||`AI Generated Product`,subhead:e?.description||`Built with Cyrus AI Magic`}},{id:`el_${M()}`,type:`input_search_bar`,name:`Search Bar`,x:40,y:440,width:320,height:44,styles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`,shadow:`2xs`},content:{placeholder:`Search...`}}]}],components:[],variables:[],dataSources:[],settings:{canvasBackground:`#ffffff`},designSystem:{colors:{primary:`#0071e3`,secondary:`#7d2ae8`,background:`#ffffff`,surface:`#f5f5f7`,text:`#1d1d1f`},typography:{fontFamily:`Inter, sans-serif`,fontSizeBase:14,headings:{h1:32,h2:24,h3:18}},spacing:{unit:8,scale:[0,4,8,16,24,32,48,64]}}};await _o(a),r(`Created project "${a.name}"!`,`success`),t(),n(a.id)}catch(e){console.error(`Error launching project from AI Chat:`,e)}};return(0,F.jsxDEV)(`div`,{onClick:t,className:`fixed inset-0 bg-black/50 backdrop-blur-xs flex items-center justify-center p-4 sm:p-6 z-[999999] animate-in fade-in duration-150 select-none font-sans`,children:(0,F.jsxDEV)(`div`,{onClick:e=>e.stopPropagation(),className:`w-full max-w-2xl bg-white dark:bg-[#1c1c1e] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-3xl border border-[#e5e5ea] dark:border-[#38383a] shadow-apple-lg flex flex-col h-[640px] max-h-[90vh] overflow-hidden animate-in zoom-in-95 duration-150 relative`,children:[(0,F.jsxDEV)(`div`,{className:`p-4 px-6 bg-white/80 dark:bg-[#1c1c1e]/80 backdrop-blur-md border-b border-[#f4f4f6] dark:border-[#2c2c2e] flex items-center justify-between z-10 shrink-0`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsxDEV)(`div`,{className:`w-10 h-10 rounded-2xl bg-gradient-to-tr from-[#7d2ae8]/15 to-[#0071e3]/15 border border-[#7d2ae8]/20 flex items-center justify-center text-[#7d2ae8] dark:text-[#9d52ff]`,children:(0,F.jsxDEV)(Ms,{className:`w-6 h-6`},void 0,!1,{fileName:Ns,lineNumber:221,columnNumber:15},this)},void 0,!1,{fileName:Ns,lineNumber:220,columnNumber:13},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`h3`,{className:`text-[15.5px] font-bold tracking-tight text-[#1d1d1f] dark:text-white`,children:`AI Magic Chat`},void 0,!1,{fileName:Ns,lineNumber:225,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full bg-[#7d2ae8]/10 text-[#7d2ae8] dark:text-[#9d52ff] text-[10px] font-semibold`,children:`Gemini 1.5 Flash`},void 0,!1,{fileName:Ns,lineNumber:226,columnNumber:17},this)]},void 0,!0,{fileName:Ns,lineNumber:224,columnNumber:15},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] dark:text-[#8e8e93]`,children:`Ask AI Magic to generate layouts, web apps, or UI components.`},void 0,!1,{fileName:Ns,lineNumber:230,columnNumber:15},this)]},void 0,!0,{fileName:Ns,lineNumber:223,columnNumber:13},this)]},void 0,!0,{fileName:Ns,lineNumber:219,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:t,className:`w-8 h-8 rounded-full bg-[#f4f4f6] dark:bg-[#2c2c2e] hover:bg-[#e5e5ea] dark:hover:bg-[#38383a] text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-white flex items-center justify-center transition-all cursor-pointer`,children:(0,F.jsxDEV)(Ln,{className:`w-4 h-4`},void 0,!1,{fileName:Ns,lineNumber:241,columnNumber:13},this)},void 0,!1,{fileName:Ns,lineNumber:236,columnNumber:11},this)]},void 0,!0,{fileName:Ns,lineNumber:218,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-5 space-y-4 bg-[#fafafa] dark:bg-[#141416]`,children:[a.map(e=>{let t=e.sender===`user`;return(0,F.jsxDEV)(`div`,{className:j(`flex gap-3 max-w-[88%]`,t?`ml-auto flex-row-reverse`:`mr-auto`),children:[(0,F.jsxDEV)(`div`,{className:j(`w-8 h-8 rounded-full shrink-0 flex items-center justify-center text-xs font-semibold shadow-2xs`,t?`bg-[#0071e3] text-white`:`bg-gradient-to-tr from-[#7d2ae8] to-[#0071e3] text-white`),children:t?(0,F.jsxDEV)(Na,{className:`w-4 h-4`},void 0,!1,{fileName:Ns,lineNumber:263,columnNumber:29},this):(0,F.jsxDEV)(vi,{className:`w-4 h-4`},void 0,!1,{fileName:Ns,lineNumber:263,columnNumber:60},this)},void 0,!1,{fileName:Ns,lineNumber:255,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,F.jsxDEV)(`div`,{className:j(`p-3.5 rounded-2xl text-[13px] leading-relaxed shadow-2xs`,t?`bg-[#0071e3] text-white rounded-tr-none`:`bg-white dark:bg-[#1c1c1e] text-[#1d1d1f] dark:text-[#f5f5f7] border border-[#e5e5ea] dark:border-[#2c2c2e] rounded-tl-none`),children:e.text},void 0,!1,{fileName:Ns,lineNumber:268,columnNumber:19},this),e.projectPreview&&(0,F.jsxDEV)(`div`,{className:`mt-1 p-4 rounded-2xl bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#2c2c2e] shadow-apple-md flex flex-col gap-3`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[e.projectPreview.type===`mobile`?(0,F.jsxDEV)(Ar,{className:`w-5 h-5 text-[#ff2d55]`},void 0,!1,{fileName:Ns,lineNumber:285,columnNumber:29},this):e.projectPreview.type===`dashboard`?(0,F.jsxDEV)(zn,{className:`w-5 h-5 text-[#34c759]`},void 0,!1,{fileName:Ns,lineNumber:287,columnNumber:29},this):(0,F.jsxDEV)(ht,{className:`w-5 h-5 text-[#7d2ae8]`},void 0,!1,{fileName:Ns,lineNumber:289,columnNumber:29},this),(0,F.jsxDEV)(`span`,{className:`font-bold text-[14px] text-[#1d1d1f] dark:text-white`,children:e.projectPreview.title},void 0,!1,{fileName:Ns,lineNumber:291,columnNumber:27},this)]},void 0,!0,{fileName:Ns,lineNumber:283,columnNumber:25},this),(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[10.5px] font-semibold text-[#86868b]`,children:[e.projectPreview.elementCount,` elements`]},void 0,!0,{fileName:Ns,lineNumber:295,columnNumber:25},this)]},void 0,!0,{fileName:Ns,lineNumber:282,columnNumber:23},this),(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#6e6e73] dark:text-[#8e8e93]`,children:e.projectPreview.description},void 0,!1,{fileName:Ns,lineNumber:300,columnNumber:23},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>p(e.projectPreview),className:`w-full py-2.5 rounded-xl bg-[#0071e3] hover:bg-[#0077ed] text-white text-[12.5px] font-semibold flex items-center justify-center gap-2 shadow-apple-sm transition-all cursor-pointer active:scale-[0.98]`,children:[(0,F.jsxDEV)(`span`,{children:`Open Project in Studio`},void 0,!1,{fileName:Ns,lineNumber:309,columnNumber:25},this),(0,F.jsxDEV)(Aa,{className:`w-4 h-4`},void 0,!1,{fileName:Ns,lineNumber:310,columnNumber:25},this)]},void 0,!0,{fileName:Ns,lineNumber:304,columnNumber:23},this)]},void 0,!0,{fileName:Ns,lineNumber:281,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#86868b] px-1`,children:e.timestamp},void 0,!1,{fileName:Ns,lineNumber:315,columnNumber:19},this)]},void 0,!0,{fileName:Ns,lineNumber:267,columnNumber:17},this)]},e.id,!0,{fileName:Ns,lineNumber:250,columnNumber:15},this)}),l&&(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 text-[#86868b] text-[12px] p-2 bg-white dark:bg-[#1c1c1e] rounded-2xl w-fit border border-[#e5e5ea] dark:border-[#2c2c2e] animate-pulse`,children:[(0,F.jsxDEV)(kr,{className:`w-4 h-4 animate-spin text-[#7d2ae8]`},void 0,!1,{fileName:Ns,lineNumber:323,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Cyrus AI is synthesizing layout...`},void 0,!1,{fileName:Ns,lineNumber:324,columnNumber:15},this)]},void 0,!0,{fileName:Ns,lineNumber:322,columnNumber:13},this),(0,F.jsxDEV)(`div`,{ref:d},void 0,!1,{fileName:Ns,lineNumber:327,columnNumber:11},this)]},void 0,!0,{fileName:Ns,lineNumber:246,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`p-2.5 px-4 bg-white dark:bg-[#1c1c1e] border-t border-[#f4f4f6] dark:border-[#2c2c2e] flex items-center gap-2 overflow-x-auto no-scrollbar shrink-0`,children:Fs.map((e,t)=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>f(e.replace(/^[^a-zA-Z]+/,``)),className:`px-3 py-1.5 rounded-full bg-[#f4f4f6] dark:bg-[#2c2c2e] hover:bg-[#e5e5ea] dark:hover:bg-[#38383a] text-[11px] font-medium text-[#1d1d1f] dark:text-[#f5f5f7] whitespace-nowrap transition-all cursor-pointer shrink-0`,children:e},t,!1,{fileName:Ns,lineNumber:333,columnNumber:13},this))},void 0,!1,{fileName:Ns,lineNumber:331,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`p-3.5 bg-white dark:bg-[#1c1c1e] border-t border-[#e5e5ea] dark:border-[#38383a] shrink-0`,children:(0,F.jsxDEV)(`form`,{onSubmit:e=>{e.preventDefault(),f()},className:`relative flex items-center`,children:[(0,F.jsxDEV)(`input`,{type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:`Ask AI Magic to design a website, app, or component...`,className:`w-full h-11 pl-4 pr-12 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[13px] text-[#1d1d1f] dark:text-[#f5f5f7] placeholder:text-[#86868b] rounded-2xl border border-transparent focus:border-[#7d2ae8] focus:bg-white dark:focus:bg-[#1c1c1e] outline-none transition-all`},void 0,!1,{fileName:Ns,lineNumber:353,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`submit`,disabled:!s.trim()||l,className:`absolute right-2 w-8 h-8 rounded-xl bg-[#7d2ae8] hover:bg-[#6b21ce] disabled:opacity-40 text-white flex items-center justify-center transition-all cursor-pointer shadow-2xs`,children:(0,F.jsxDEV)(rt,{className:`w-4 h-4`},void 0,!1,{fileName:Ns,lineNumber:365,columnNumber:15},this)},void 0,!1,{fileName:Ns,lineNumber:360,columnNumber:13},this)]},void 0,!0,{fileName:Ns,lineNumber:346,columnNumber:11},this)},void 0,!1,{fileName:Ns,lineNumber:345,columnNumber:9},this)]},void 0,!0,{fileName:Ns,lineNumber:213,columnNumber:7},this)},void 0,!1,{fileName:Ns,lineNumber:209,columnNumber:5},this)}var Ls=[{id:`prod_1`,name:`AirPulse Pro Wireless Headphones`,price:`$299`,rawPrice:299,category:`Audio`,rating:`4.9 ★`,inStock:!0,image:`https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=800&auto=format&fit=crop&q=80`,description:`Spatial audio with active noise cancellation and 40-hour ultra-long battery life.`,tag:`Best Seller`},{id:`prod_2`,name:`Retina Ultra Smartwatch 45mm`,price:`$399`,rawPrice:399,category:`Wearables`,rating:`4.8 ★`,inStock:!0,image:`https://images.unsplash.com/photo-1523275335684-37898b6baf30?w=800&auto=format&fit=crop&q=80`,description:`Sapphire crystal display, ECG monitoring, and precision dual-frequency GPS.`,tag:`New`},{id:`prod_3`,name:`Studio Master Mechanical Keyboard`,price:`$189`,rawPrice:189,category:`Accessories`,rating:`5.0 ★`,inStock:!0,image:`https://images.unsplash.com/photo-1587829741301-dc798b83add3?w=800&auto=format&fit=crop&q=80`,description:`CNC aluminum chassis with hot-swappable tactile switches and sound dampening foam.`,tag:`Featured`},{id:`prod_4`,name:`Lumix Ergonomic Studio Mouse`,price:`$119`,rawPrice:119,category:`Accessories`,rating:`4.7 ★`,inStock:!1,image:`https://images.unsplash.com/photo-1615663245857-ac93bb7c39e7?w=800&auto=format&fit=crop&q=80`,description:`MagSpeed electromagnetic scroll wheel with 8,000 DPI Darkfield tracking.`,tag:`Backorder`}],Rs={id:`usr_007`,name:`Alexander Wright`,email:`alexander.wright@cyrus.design`,avatar:`https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=400&auto=format&fit=crop&q=80`,role:`Lead Architect`,plan:`Pro Enterprise`,isVerified:!0},zs=[{orderId:`#ORD-9842`,customer:`Sarah Jenkins`,amount:`$299.00`,status:`Delivered`,date:`Aug 14, 2026`,itemsCount:1},{orderId:`#ORD-9843`,customer:`Marcus Chen`,amount:`$588.00`,status:`Processing`,date:`Aug 15, 2026`,itemsCount:2},{orderId:`#ORD-9844`,customer:`Elena Rostova`,amount:`$189.00`,status:`Shipped`,date:`Aug 15, 2026`,itemsCount:1}],Bs={revenue:`$142,850`,mrr:`$28,400`,activeUsers:`18,420`,conversionRate:`4.8%`,growthPercentage:`+24.5%`},Vs=[{id:`var_user`,name:`user`,type:`object`,defaultValue:Rs,sampleValue:Rs,description:`Current authenticated user profile`,category:`user`},{id:`var_is_logged_in`,name:`isLoggedIn`,type:`boolean`,defaultValue:!0,sampleValue:!0,description:`User authentication session state`,category:`user`},{id:`var_user_name`,name:`userName`,type:`text`,defaultValue:`Alexander Wright`,sampleValue:`Alexander Wright`,description:`Display name for greeting & headers`,category:`user`},{id:`var_products`,name:`products`,type:`array`,defaultValue:Ls,sampleValue:Ls,description:`E-commerce catalog items list for cards and grids`,category:`ecommerce`},{id:`var_orders`,name:`orders`,type:`array`,defaultValue:zs,sampleValue:zs,description:`Recent customer orders list`,category:`ecommerce`},{id:`var_analytics`,name:`analytics`,type:`object`,defaultValue:Bs,sampleValue:Bs,description:`Dashboard metrics and key performance indicators`,category:`analytics`},{id:`var_company_name`,name:`companyName`,type:`text`,defaultValue:`Cyrus Technologies`,sampleValue:`Cyrus Technologies`,description:`Brand or application company name`,category:`general`}],Hs=[{id:`ds_rest_api`,name:`Cyrus Cloud API`,type:`rest`,baseUrl:`https://api.cyrus.design/v1`,authType:`bearer`,isSecret:!1,endpoints:[{id:`ep_auth_login`,name:`Login User`,path:`/auth/login`,method:`POST`,headers:{"Content-Type":`application/json`},bodyTemplate:`{"email":"{{email}}","password":"{{password}}"}`,responseVariable:`user`},{id:`ep_get_products`,name:`Get Products`,path:`/products`,method:`GET`,responseVariable:`products`},{id:`ep_contact_submit`,name:`Send Contact Message`,path:`/contact`,method:`POST`,headers:{"Content-Type":`application/json`},bodyTemplate:`{"name":"{{name}}","email":"{{email}}","message":"{{message}}"}`}]}];function Us(e){switch(e){case`ecommerce`:return[{id:M(`var`),name:`products`,type:`array`,defaultValue:Ls,sampleValue:Ls,category:`ecommerce`,description:`Catalog products list`},{id:M(`var`),name:`cartCount`,type:`number`,defaultValue:3,sampleValue:3,category:`ecommerce`,description:`Number of items in shopping cart`},{id:M(`var`),name:`currency`,type:`text`,defaultValue:`USD`,sampleValue:`USD`,category:`ecommerce`}];case`auth`:return[{id:M(`var`),name:`user`,type:`object`,defaultValue:Rs,sampleValue:Rs,category:`user`,description:`User profile object`},{id:M(`var`),name:`isLoggedIn`,type:`boolean`,defaultValue:!0,sampleValue:!0,category:`user`}];case`analytics`:return[{id:M(`var`),name:`analytics`,type:`object`,defaultValue:Bs,sampleValue:Bs,category:`analytics`,description:`Real-time KPI metrics`}];default:return Vs}}function Ws(e,t=8){return Math.round(e/t)*t}function Gs(e,t){return!(t.x>e.x+e.width||t.x+t.width<e.x||t.y>e.y+e.height||t.y+t.height<e.y)}function Ks(e,t,n,r){return{x:Math.min(e,n),y:Math.min(t,r),width:Math.abs(n-e),height:Math.abs(r-t)}}function qs(e){if(e.length===0)return{x:0,y:0,width:0,height:0};let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of e)t=Math.min(t,a.x),n=Math.min(n,a.y),r=Math.max(r,a.x+a.width),i=Math.max(i,a.y+a.height);return{x:t,y:n,width:Math.max(0,r-t),height:Math.max(0,i-n)}}function Js(e,t=5,n=15){let r=(e%360+360)%360,i=Math.round(r/n)*n;return Math.abs(r-i)<=t?i===360?0:i:Math.round(r)}function Ys(e,t){let n=[],r=e.x+e.width,i=e.y+e.height,a=e.x+e.width/2,o=e.y+e.height/2,s=t.x+t.width,c=t.y+t.height;if(t.x+t.width/2,t.y+t.height/2,r<=t.x){let e=Math.round(t.x-r);if(e>=0){let i=Math.min(Math.max(o,t.y),c);n.push({id:`h-right`,x1:r,y1:i,x2:t.x,y2:i,distance:e,orientation:`horizontal`,labelX:(r+t.x)/2,labelY:i})}}else if(s<=e.x){let r=Math.round(e.x-s);if(r>=0){let i=Math.min(Math.max(o,t.y),c);n.push({id:`h-left`,x1:s,y1:i,x2:e.x,y2:i,distance:r,orientation:`horizontal`,labelX:(s+e.x)/2,labelY:i})}}if(i<=t.y){let e=Math.round(t.y-i);if(e>=0){let r=Math.min(Math.max(a,t.x),s);n.push({id:`v-bottom`,x1:r,y1:i,x2:r,y2:t.y,distance:e,orientation:`vertical`,labelX:r,labelY:(i+t.y)/2})}}else if(c<=e.y){let r=Math.round(e.y-c);if(r>=0){let i=Math.min(Math.max(a,t.x),s);n.push({id:`v-top`,x1:i,y1:c,x2:i,y2:e.y,distance:r,orientation:`vertical`,labelX:i,labelY:(c+e.y)/2})}}return n}function Xs(e,t,n){let r=[],i=e.x+e.width,a=e.y+e.height,o=e.x+e.width/2,s=e.y+e.height/2;r.push({id:`ab-left`,x1:0,y1:s,x2:e.x,y2:s,distance:Math.round(e.x),orientation:`horizontal`,labelX:e.x/2,labelY:s}),r.push({id:`ab-top`,x1:o,y1:0,x2:o,y2:e.y,distance:Math.round(e.y),orientation:`vertical`,labelX:o,labelY:e.y/2});let c=Math.max(0,t-i);r.push({id:`ab-right`,x1:i,y1:s,x2:t,y2:s,distance:Math.round(c),orientation:`horizontal`,labelX:(i+t)/2,labelY:s});let l=Math.max(0,n-a);return r.push({id:`ab-bottom`,x1:o,y1:a,x2:o,y2:n,distance:Math.round(l),orientation:`vertical`,labelX:o,labelY:(a+n)/2}),r}function Zs(e,t,n,r){if(e.length===0)return[];if(e.length===1){let i=e[0];switch(t){case`left`:return[{id:i.id,x:0,y:i.y}];case`center-h`:return[{id:i.id,x:Math.round((n-i.width)/2),y:i.y}];case`right`:return[{id:i.id,x:Math.round(n-i.width),y:i.y}];case`top`:return[{id:i.id,x:i.x,y:0}];case`middle-v`:return[{id:i.id,x:i.x,y:Math.round((r-i.height)/2)}];case`bottom`:return[{id:i.id,x:i.x,y:Math.round(r-i.height)}];default:return[{id:i.id,x:i.x,y:i.y}]}}let i=qs(e);switch(t){case`left`:return e.map(e=>({id:e.id,x:i.x,y:e.y}));case`center-h`:{let t=i.x+i.width/2;return e.map(e=>({id:e.id,x:Math.round(t-e.width/2),y:e.y}))}case`right`:{let t=i.x+i.width;return e.map(e=>({id:e.id,x:Math.round(t-e.width),y:e.y}))}case`top`:return e.map(e=>({id:e.id,x:e.x,y:i.y}));case`middle-v`:{let t=i.y+i.height/2;return e.map(e=>({id:e.id,x:e.x,y:Math.round(t-e.height/2)}))}case`bottom`:{let t=i.y+i.height;return e.map(e=>({id:e.id,x:e.x,y:Math.round(t-e.height)}))}case`distribute-h`:{if(e.length<3)return e.map(e=>({id:e.id,x:e.x,y:e.y}));let t=[...e].sort((e,t)=>e.x-t.x),n=t.reduce((e,t)=>e+t.width,0),r=(i.width-n)/(t.length-1),a=i.x;return t.map(e=>{let t={id:e.id,x:Math.round(a),y:e.y};return a+=e.width+r,t})}case`distribute-v`:{if(e.length<3)return e.map(e=>({id:e.id,x:e.x,y:e.y}));let t=[...e].sort((e,t)=>e.y-t.y),n=t.reduce((e,t)=>e+t.height,0),r=(i.height-n)/(t.length-1),a=i.y;return t.map(e=>{let t={id:e.id,x:e.x,y:Math.round(a)};return a+=e.height+r,t})}default:return e.map(e=>({id:e.id,x:e.x,y:e.y}))}}function Qs(e,t,n,r,i=6){let a=e.x,o=e.y,s=[],c=e.x+e.width/2;e.x+e.width;let l=e.y+e.height/2;e.y+e.height;let u=[{pos:n/2,label:`canvas-center-x`,guidePos:n/2,offset:c-e.x},{pos:0,label:`canvas-left`,guidePos:0,offset:0},{pos:n,label:`canvas-right`,guidePos:n,offset:e.width}],d=[{pos:r/2,label:`canvas-center-y`,guidePos:r/2,offset:l-e.y},{pos:0,label:`canvas-top`,guidePos:0,offset:0},{pos:r,label:`canvas-bottom`,guidePos:r,offset:e.height}];for(let n of t){let t=n.x+n.width/2,r=n.x+n.width,i=n.y+n.height/2,a=n.y+n.height;u.push({pos:n.x,label:`elem-left`,guidePos:n.x,offset:0},{pos:t,label:`elem-center-x`,guidePos:t,offset:c-e.x},{pos:r,label:`elem-right`,guidePos:r,offset:e.width}),d.push({pos:n.y,label:`elem-top`,guidePos:n.y,offset:0},{pos:i,label:`elem-center-y`,guidePos:i,offset:l-e.y},{pos:a,label:`elem-bottom`,guidePos:a,offset:e.height})}let f=i+1,p=null;for(let t of u){let n=Math.abs(e.x+t.offset-t.pos);n<f&&(f=n,a=t.pos-t.offset,p={orientation:`vertical`,position:t.pos})}let m=i+1,h=null;for(let t of d){let n=Math.abs(e.y+t.offset-t.pos);n<m&&(m=n,o=t.pos-t.offset,h={orientation:`horizontal`,position:t.pos})}return p&&f<=i&&s.push(p),h&&m<=i&&s.push(h),{x:a,y:o,guides:s}}function $s(e,t,n){return{id:M(`snap`),timestamp:Date.now(),description:n,pages:structuredClone(e.pages),designSystem:structuredClone(e.designSystem||{}),components:structuredClone(e.components||[]),variables:structuredClone(e.variables||[]),dataSources:structuredClone(e.dataSources||[]),activePageId:t}}var ec=null,I=ro((e,t)=>({activeProject:null,activePageId:``,selectedElementIds:[],hoveredElementId:null,clipboard:[],customComponents:{},designTokens:null,isSaving:!1,lastSavedAt:null,past:[],future:[],setProject:t=>{if(!t)return;let n=(t.pages||[]).map(e=>({...e,settings:{backgroundColor:e.settings?.backgroundColor||e.backgroundColor||`#ffffff`,width:e.settings?.width||1440,height:e.settings?.height||900,minHeight:e.settings?.minHeight||900,backgroundGradient:e.settings?.backgroundGradient},elements:Array.isArray(e.elements)?e.elements:[]})),r=n[0]?.id||``,i=t.variables&&t.variables.length>0?t.variables:Vs,a=t.dataSources&&t.dataSources.length>0?t.dataSources:Hs;e({activeProject:{...t,pages:n,variables:i,dataSources:a,useSampleData:t.useSampleData??!0},activePageId:r,selectedElementIds:[],hoveredElementId:null,clipboard:[],past:[],future:[],lastSavedAt:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})})},loadProjectFromStorage:async e=>{try{let n=await po(e);return n?(t().setProject(n),!0):!1}catch(e){return console.error(`Failed to load project from storage:`,e),!1}},saveCurrentProject:()=>(e({isSaving:!0}),new Promise(n=>{ec&&clearTimeout(ec),ec=setTimeout(async()=>{let{activeProject:r}=t();if(!r){e({isSaving:!1}),n();return}try{await _o(r),e({isSaving:!1,lastSavedAt:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})})}catch(t){console.error(`Error saving current project:`,t),e({isSaving:!1})}n()},2e3)})),setActivePage:t=>{e({activePageId:t,selectedElementIds:[],hoveredElementId:null})},updateProjectName:n=>{let{activeProject:r}=t();r&&(e({activeProject:{...r,name:n,updatedAt:new Date().toISOString()}}),t().saveCurrentProject())},updateProjectMeta:n=>{let{activeProject:r}=t();r&&(e({activeProject:{...r,name:n.name===void 0?r.name:n.name,type:n.type===void 0?r.type:n.type,updatedAt:new Date().toISOString()}}),t().saveCurrentProject())},updateProjectSettings:n=>{let{activeProject:r}=t();r&&(e({activeProject:{...r,settings:{...r.settings,...n},updatedAt:new Date().toISOString()}}),t().saveCurrentProject())},addPage:n=>{let{activeProject:r,activePageId:i,past:a}=t();if(!r)return``;let o=M(`page`),s=r.pages.length+1,c=n||`Page ${s}`,l={id:o,name:c,slug:c.toLowerCase().replace(/\s+/g,`-`),elements:[],settings:{backgroundColor:`#f5f5f7`,padding:32}},u=$s(r,i,`Add page "${c}"`);return e({activeProject:{...r,pages:[...r.pages,l],updatedAt:new Date().toISOString()},activePageId:o,selectedElementIds:[],past:[u,...a.slice(0,39)],future:[]}),t().saveCurrentProject(),o},deletePage:n=>{let{activeProject:r,activePageId:i,past:a}=t();if(!r||r.pages.length<=1)return;let o=$s(r,i,`Delete page "${r.pages.find(e=>e.id===n)?.name||`Page`}"`),s=r.pages.filter(e=>e.id!==n),c=i===n?s[0].id:i;e({activeProject:{...r,pages:s,updatedAt:new Date().toISOString()},activePageId:c,selectedElementIds:[],past:[o,...a.slice(0,39)],future:[]}),t().saveCurrentProject()},duplicatePage:n=>{let{activeProject:r,activePageId:i,past:a}=t();if(!r)return;let o=r.pages.find(e=>e.id===n);if(!o)return;let s=M(`page`),c=o.elements.map(e=>({...e,id:M(`elem`)})),l={...JSON.parse(JSON.stringify(o)),id:s,name:`${o.name} (Copy)`,slug:`${o.slug}-copy`,elements:c},u=$s(r,i,`Duplicate page "${o.name}"`);e({activeProject:{...r,pages:[...r.pages,l],updatedAt:new Date().toISOString()},activePageId:s,selectedElementIds:[],past:[u,...a.slice(0,39)],future:[]}),t().saveCurrentProject()},renamePage:(n,r)=>{let{activeProject:i}=t();if(!i)return;let a=i.pages.map(e=>e.id===n?{...e,name:r,slug:r.toLowerCase().replace(/\s+/g,`-`)}:e);e({activeProject:{...i,pages:a,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},updatePageSettings:(n,r)=>{let{activeProject:i}=t();if(!i)return;let a=i.pages.map(e=>e.id===n?{...e,settings:{...e.settings||{},...r}}:e);e({activeProject:{...i,pages:a,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},selectElement:(n,r=!1)=>{if(!n){e({selectedElementIds:[]});return}if(r){let{selectedElementIds:r}=t();r.includes(n)?e({selectedElementIds:r.filter(e=>e!==n)}):e({selectedElementIds:[...r,n]})}else e({selectedElementIds:[n]})},selectElements:t=>{e({selectedElementIds:t})},selectAllElements:()=>{let{activeProject:n,activePageId:r}=t();if(!n)return;let i=n.pages.find(e=>e.id===r);i&&e({selectedElementIds:i.elements.map(e=>e.id)})},setHoveredElement:t=>{e({hoveredElementId:t})},addElement:n=>{let{activeProject:r,activePageId:i,past:a}=t();if(!r)throw Error(`No active project`);let o=i&&r.pages.some(e=>e.id===i)?i:r.pages[0]?.id;if(!o)throw Error(`No active page`);let s=r.pages.find(e=>e.id===o).elements?.length||0,c=Po[P.getState().viewportMode||`desktop`]||{width:1440,height:900},l=n.width??200,u=n.height??50,d=s%6*15,f=Math.max(20,Math.round((c.width-l)/2)+d),p=Math.max(20,Math.round((c.height-u)/2)+d),m={id:n.id||M(`elem`),type:n.type,name:n.name||`New Element`,x:n.x??f,y:n.y??p,width:l,height:u,rotation:n.rotation??0,zIndex:n.zIndex??s+1,styles:n.styles||{},content:n.content||{},responsive:n.responsive,animations:n.animations,interactions:n.interactions},h=$s(r,o,`Add ${m.name}`),g=r.pages.map(e=>e.id===o?{...e,elements:[...e.elements||[],m]}:e);return e({activeProject:{...r,pages:g,updatedAt:new Date().toISOString()},activePageId:o,selectedElementIds:[m.id],past:[h,...a.slice(0,39)],future:[]}),t().saveCurrentProject(),m},updateElement:(n,r,i=!1)=>{let{activeProject:a,activePageId:o,past:s}=t();if(!a)return;let c=null;i&&(c=$s(a,o,`Update Element`));let l=a.pages.map(e=>e.id===o?{...e,elements:e.elements.map(e=>e.id===n?{...e,...r}:e)}:e);e({activeProject:{...a,pages:l,...i?{updatedAt:new Date().toISOString()}:{}},...c?{past:[c,...s.slice(0,39)],future:[]}:{}}),t().saveCurrentProject()},updateElementStyles:(n,r,i=!1)=>{let{activeProject:a,activePageId:o,past:s}=t();if(!a)return;let c=null;i&&(c=$s(a,o,`Update Styles`));let l=a.pages.map(e=>e.id===o?{...e,elements:e.elements.map(e=>e.id===n?{...e,styles:{...e.styles,...r}}:e)}:e);e({activeProject:{...a,pages:l,updatedAt:new Date().toISOString()},...c?{past:[c,...s.slice(0,39)],future:[]}:{}}),t().saveCurrentProject()},updateElementContent:(n,r,i=!1)=>{let{activeProject:a,activePageId:o,past:s}=t();if(!a)return;let c=null;i&&(c=$s(a,o,`Update Content`));let l=a.pages.map(e=>e.id===o?{...e,elements:e.elements.map(e=>e.id===n?{...e,content:{...e.content,...r}}:e)}:e);e({activeProject:{...a,pages:l,updatedAt:new Date().toISOString()},...c?{past:[c,...s.slice(0,39)],future:[]}:{}}),t().saveCurrentProject()},nudgeSelectedElements:(n,r)=>{let{activeProject:i,activePageId:a,selectedElementIds:o,past:s}=t();if(!i||o.length===0)return;let c=$s(i,a,`Move Elements`),l=i.pages.map(e=>e.id===a?{...e,elements:e.elements.map(e=>o.includes(e.id)?{...e,x:e.x+n,y:e.y+r}:e)}:e);e({activeProject:{...i,pages:l,updatedAt:new Date().toISOString()},past:[c,...s.slice(0,39)],future:[]}),t().saveCurrentProject()},deleteSelectedElements:()=>{let{activeProject:n,activePageId:r,selectedElementIds:i,past:a}=t();if(!n||i.length===0)return;let o=$s(n,r,`Delete ${i.length} element(s)`),s=n.pages.map(e=>e.id===r?{...e,elements:e.elements.filter(e=>!i.includes(e.id))}:e);e({activeProject:{...n,pages:s,updatedAt:new Date().toISOString()},selectedElementIds:[],hoveredElementId:null,past:[o,...a.slice(0,39)],future:[]}),t().saveCurrentProject()},deleteElement:n=>{let{activeProject:r,activePageId:i,selectedElementIds:a,past:o}=t();if(!r)return;let s=$s(r,i,`Delete Element`),c=r.pages.map(e=>e.id===i?{...e,elements:e.elements.filter(e=>e.id!==n)}:e);e({activeProject:{...r,pages:c,updatedAt:new Date().toISOString()},selectedElementIds:a.filter(e=>e!==n),past:[s,...o.slice(0,39)],future:[]}),t().saveCurrentProject()},deleteElements:n=>{let{activeProject:r,activePageId:i,selectedElementIds:a,past:o}=t();if(!r||n.length===0)return;let s=$s(r,i,`Delete ${n.length} Element(s)`),c=r.pages.map(e=>e.id===i?{...e,elements:e.elements.filter(e=>!n.includes(e.id))}:e);e({activeProject:{...r,pages:c,updatedAt:new Date().toISOString()},selectedElementIds:a.filter(e=>!n.includes(e)),past:[s,...o.slice(0,39)],future:[]}),t().saveCurrentProject()},duplicateSelectedElements:()=>{let{activeProject:n,activePageId:r,selectedElementIds:i,past:a}=t();if(!n||i.length===0)return;let o=n.pages.find(e=>e.id===r);if(!o)return;let s=$s(n,r,`Duplicate element(s)`),c=o.elements.filter(e=>i.includes(e.id)).map(e=>({...JSON.parse(JSON.stringify(e)),id:M(`elem`),name:`${e.name} Copy`,x:e.x+24,y:e.y+24,zIndex:e.zIndex+1})),l=n.pages.map(e=>e.id===r?{...e,elements:[...e.elements,...c]}:e);e({activeProject:{...n,pages:l,updatedAt:new Date().toISOString()},selectedElementIds:c.map(e=>e.id),past:[s,...a.slice(0,39)],future:[]}),t().saveCurrentProject()},copySelectedElements:()=>{let{activeProject:n,activePageId:r,selectedElementIds:i}=t();if(!n||i.length===0)return;let a=n.pages.find(e=>e.id===r);if(!a)return;let o=a.elements.filter(e=>i.includes(e.id));e({clipboard:JSON.parse(JSON.stringify(o))})},pasteElements:()=>{let{activeProject:n,activePageId:r,clipboard:i,past:a}=t();if(!n||i.length===0)return;let o=$s(n,r,`Paste ${i.length} element(s)`),s=i.map(e=>({...JSON.parse(JSON.stringify(e)),id:M(`elem`),x:e.x+24,y:e.y+24,zIndex:e.zIndex+1})),c=n.pages.map(e=>e.id===r?{...e,elements:[...e.elements,...s]}:e);e({activeProject:{...n,pages:c,updatedAt:new Date().toISOString()},selectedElementIds:s.map(e=>e.id),clipboard:s,past:[o,...a.slice(0,39)],future:[]}),t().saveCurrentProject()},groupSelectedElements:()=>{let{activeProject:n,activePageId:r,selectedElementIds:i,past:a}=t();if(!n||i.length<=1)return;let o=n.pages.find(e=>e.id===r);if(!o)return;let s=o.elements.filter(e=>i.includes(e.id)),c=qs(s),l=M(`elem`),u={id:l,type:`container`,name:`Group Container`,x:Math.max(0,c.x-16),y:Math.max(0,c.y-16),width:c.width+32,height:c.height+32,rotation:0,zIndex:Math.max(0,Math.min(...s.map(e=>e.zIndex))-1),children:s.map(e=>e.id),styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{title:`Grouped Items`}},d=$s(n,r,`Group Elements`),f=o.elements.map(e=>i.includes(e.id)?{...e,parentId:l}:e),p=n.pages.map(e=>e.id===r?{...e,elements:[u,...f]}:e);e({activeProject:{...n,pages:p,updatedAt:new Date().toISOString()},selectedElementIds:[l],past:[d,...a.slice(0,39)],future:[]}),t().saveCurrentProject()},ungroupSelectedElements:()=>{let{activeProject:n,activePageId:r,selectedElementIds:i,past:a}=t();if(!n||i.length===0)return;let o=n.pages.find(e=>e.id===r);if(!o)return;let s=o.elements.filter(e=>i.includes(e.id)&&e.type===`container`&&e.children&&e.children.length>0);if(s.length===0)return;let c=$s(n,r,`Ungroup Elements`),l=s.map(e=>e.id),u=[],d=o.elements.filter(e=>!l.includes(e.id)).map(e=>e.parentId&&l.includes(e.parentId)?(u.push(e.id),{...e,parentId:null}):e),f=n.pages.map(e=>e.id===r?{...e,elements:d}:e);e({activeProject:{...n,pages:f,updatedAt:new Date().toISOString()},selectedElementIds:u,past:[c,...a.slice(0,39)],future:[]}),t().saveCurrentProject()},unpackCompositeElement:n=>{let{activeProject:r,activePageId:i,pushSnapshot:a}=t();if(!r||!i)return;let o=r.pages.find(e=>e.id===i);if(!o)return;let s=o.elements.find(e=>e.id===n);if(!s)return;if(s.type===`container`&&s.children&&s.children.length>0){t().ungroupSelectedElements();return}a(`Unpack into Editable Elements`);let c=[],l=s.styles?.textColor||`#ffffff`,u=s.styles?.backgroundColor||`#18181b`,d=s.content||{},f=s.styles||{},p=s.x,m=s.y,h=s.width,g=s.height,_=s.zIndex,v={id:M(`elem`),type:`container`,name:`${s.name||`Component`} (Box)`,x:p,y:m,width:h,height:g,rotation:s.rotation||0,zIndex:_,styles:{backgroundColor:u,backgroundGradient:f.backgroundGradient,borderRadius:f.borderRadius??16,borderWidth:f.borderWidth??1,borderColor:f.borderColor||`#27272a`,padding:f.padding??24,shadow:f.shadow||`sm`,opacity:f.opacity??1},content:{title:``}};if(c.push(v),s.type===`featureCard`||s.type===`card`){let e=m+(f.padding??24),t=p+(f.padding??24),n=Math.max(80,h-(f.padding??24)*2);d.icon&&c.push({id:M(`elem`),type:`icon`,name:`Feature Icon`,x:t,y:e,width:40,height:40,rotation:0,zIndex:_+1,styles:{backgroundColor:d.iconBgColor||`${l}18`,textColor:d.iconColor||l,borderRadius:10},content:{icon:d.icon}}),d.badge&&c.push({id:M(`elem`),type:`badge`,name:`Badge`,x:p+h-(f.padding??24)-70,y:e+6,width:70,height:24,rotation:0,zIndex:_+1,styles:{backgroundColor:d.badgeBgColor||`${l}15`,textColor:d.badgeTextColor||l,borderRadius:6,fontSize:10,fontWeight:`600`},content:{text:d.badge}}),e+=52,d.subtitle&&(c.push({id:M(`elem`),type:`paragraph`,name:`Subtitle`,x:t,y:e,width:n,height:18,rotation:0,zIndex:_+1,styles:{textColor:d.subtitleColor||`${l}88`,fontSize:11,fontWeight:`600`},content:{text:d.subtitle}}),e+=22);let r=d.title||d.headline||`Feature Title`;c.push({id:M(`elem`),type:`heading`,name:`Title`,x:t,y:e,width:n,height:28,rotation:0,zIndex:_+1,styles:{textColor:l,fontSize:f.fontSize||16,fontWeight:`700`},content:{text:r}}),e+=32;let i=d.text||d.description||`Feature description details and benefits.`;c.push({id:M(`elem`),type:`paragraph`,name:`Description`,x:t,y:e,width:n,height:Math.max(40,g-(e-m)-60),rotation:0,zIndex:_+1,styles:{textColor:d.descColor||`${l}aa`,fontSize:12,fontWeight:`400`},content:{text:i}}),d.buttonText&&c.push({id:M(`elem`),type:`button`,name:`Action Button`,x:t,y:m+g-(f.padding??24)-34,width:110,height:34,rotation:0,zIndex:_+1,styles:{backgroundColor:d.buttonBgColor||l,textColor:d.buttonTextColor||u,borderRadius:8,fontSize:12,fontWeight:`600`},content:{label:d.buttonText,icon:`ArrowRight`,iconPosition:`right`}})}else if(s.type===`pricingCard`){let e=p+24,t=Math.max(80,h-48);c.push({id:M(`elem`),type:`heading`,name:`Plan Name`,x:e,y:m+24,width:t-80,height:26,rotation:0,zIndex:_+1,styles:{textColor:l,fontSize:18,fontWeight:`700`},content:{text:d.planName||`Pro Plan`}}),d.badge&&c.push({id:M(`elem`),type:`badge`,name:`Popular Badge`,x:p+h-100,y:m+24,width:76,height:24,rotation:0,zIndex:_+1,styles:{backgroundColor:d.badgeBgColor||`${l}20`,textColor:d.badgeTextColor||l,borderRadius:999,fontSize:10,fontWeight:`700`},content:{text:d.badge}}),c.push({id:M(`elem`),type:`heading`,name:`Price`,x:e,y:m+58,width:t,height:38,rotation:0,zIndex:_+1,styles:{textColor:d.priceColor||l,fontSize:28,fontWeight:`800`},content:{text:d.price||`$29/mo`}}),(Array.isArray(d.features)?d.features:[`Unlimited Projects`,`Custom Domains`,`Priority 24/7 Support`]).forEach((n,r)=>{c.push({id:M(`elem`),type:`paragraph`,name:`Feature ${r+1}`,x:e,y:m+106+r*24,width:t,height:20,rotation:0,zIndex:_+1,styles:{textColor:d.featuresColor||`${l}dd`,fontSize:12},content:{text:`✓ ${n}`}})}),c.push({id:M(`elem`),type:`button`,name:`Plan Button`,x:e,y:m+g-56,width:t,height:36,rotation:0,zIndex:_+1,styles:{backgroundColor:d.buttonBgColor||l,textColor:d.buttonTextColor||u,borderRadius:10,fontSize:12.5,fontWeight:`700`},content:{label:d.buttonText||`Choose Plan`}})}else if(s.type===`hero`||s.type===`heroSection`||s.type===`cta`){let e=p+h/2,t=m+(f.padding??32);d.badge&&(c.push({id:M(`elem`),type:`badge`,name:`Hero Badge`,x:e-80,y:t,width:160,height:26,rotation:0,zIndex:_+1,styles:{backgroundColor:d.badgeBgColor||`${l}15`,textColor:d.badgeTextColor||l,borderRadius:999,fontSize:11,fontWeight:`600`,textAlign:`center`},content:{text:d.badge}}),t+=38),c.push({id:M(`elem`),type:`heading`,name:`Headline`,x:p+32,y:t,width:h-64,height:48,rotation:0,zIndex:_+1,styles:{textColor:l,fontSize:f.fontSize||32,fontWeight:`800`,textAlign:`center`},content:{text:d.headline||d.title||`Transform Your Digital Experience`}}),t+=56,(d.subhead||d.subtitle||d.text)&&(c.push({id:M(`elem`),type:`paragraph`,name:`Subhead`,x:p+48,y:t,width:h-96,height:36,rotation:0,zIndex:_+1,styles:{textColor:d.subheadColor||`${l}aa`,fontSize:14,textAlign:`center`},content:{text:d.subhead||d.subtitle||d.text||`Build, deploy, and scale world-class visual user interfaces with generative intelligence.`}}),t+=46);let n=!!d.secondaryButtonText,r=e-(n?296:140)/2;c.push({id:M(`elem`),type:`button`,name:`Primary CTA`,x:r,y:t,width:140,height:40,rotation:0,zIndex:_+1,styles:{backgroundColor:d.buttonBgColor||l,textColor:d.buttonTextColor||u,borderRadius:12,fontSize:13,fontWeight:`700`},content:{label:d.buttonText||`Get Started`,icon:`ArrowRight`,iconPosition:`right`}}),n&&c.push({id:M(`elem`),type:`button`,name:`Secondary CTA`,x:r+140+16,y:t,width:140,height:40,rotation:0,zIndex:_+1,styles:{backgroundColor:d.secondaryButtonBgColor||`rgba(255,255,255,0.05)`,textColor:d.secondaryButtonTextColor||l,borderColor:d.secondaryButtonBorderColor||`${l}30`,borderWidth:1,borderRadius:12,fontSize:13,fontWeight:`600`},content:{label:d.secondaryButtonText}}),(d.imageUrl||d.src)&&c.push({id:M(`elem`),type:`image`,name:`Hero Image`,x:p+40,y:t+54,width:h-80,height:Math.max(100,g-(t-m)-70),rotation:0,zIndex:_+1,styles:{borderRadius:12},content:{url:d.imageUrl||d.src}})}else if(s.type===`navbar`){let e=d.icon,t=p+(f.paddingLeft??24),n=m+(g-32)/2;e&&(c.push({id:M(`elem`),type:`icon`,name:`Brand Icon`,x:t,y:n,width:32,height:32,rotation:0,zIndex:_+1,styles:{backgroundColor:d.iconBgColor||`${l}18`,textColor:d.iconColor||l,borderRadius:8},content:{icon:e}}),t+=40),c.push({id:M(`elem`),type:`heading`,name:`Brand Name`,x:t,y:n+4,width:120,height:24,rotation:0,zIndex:_+1,styles:{textColor:l,fontSize:f.fontSize||16,fontWeight:`700`},content:{text:d.brandName||d.title||`Brand`}});let r=Array.isArray(d.links)?d.links:[`Features`,`Pricing`,`Docs`,`About`],i=p+h/2-r.length*60/2;r.forEach(e=>{c.push({id:M(`elem`),type:`paragraph`,name:`Nav Link - ${e}`,x:i,y:n+6,width:70,height:20,rotation:0,zIndex:_+1,styles:{textColor:d.linkColor||`${l}cc`,fontSize:13,fontWeight:`500`},content:{text:e}}),i+=76}),d.buttonText&&c.push({id:M(`elem`),type:`button`,name:`Nav Button`,x:p+h-(f.paddingRight??24)-100,y:n,width:100,height:32,rotation:0,zIndex:_+1,styles:{backgroundColor:d.buttonBgColor||l,textColor:d.buttonTextColor||u,borderRadius:8,fontSize:12,fontWeight:`600`},content:{label:d.buttonText}})}else if(s.type===`metricCard`||s.type===`statCard`||s.type===`kpiCard`||s.type===`metric`){let e=p+20,t=h-40;c.push({id:M(`elem`),type:`paragraph`,name:`Metric Label`,x:e,y:m+20,width:t-50,height:18,rotation:0,zIndex:_+1,styles:{textColor:d.labelColor||`${l}88`,fontSize:11,fontWeight:`600`},content:{text:d.title||d.label||`Total Metric`}}),c.push({id:M(`elem`),type:`heading`,name:`Metric Value`,x:e,y:m+42,width:t-50,height:32,rotation:0,zIndex:_+1,styles:{textColor:d.valueColor||l,fontSize:f.fontSize||24,fontWeight:`800`},content:{text:d.value||`100%`}}),(d.trend||d.change)&&c.push({id:M(`elem`),type:`badge`,name:`Trend`,x:e,y:m+78,width:70,height:20,rotation:0,zIndex:_+1,styles:{textColor:d.trendColor||`#34c759`,fontSize:11,fontWeight:`700`},content:{text:`↑ ${d.trend||d.change}`}}),c.push({id:M(`elem`),type:`icon`,name:`Metric Icon`,x:p+h-60,y:m+(g-40)/2,width:40,height:40,rotation:0,zIndex:_+1,styles:{backgroundColor:d.iconBgColor||`${l}15`,textColor:d.iconColor||l,borderRadius:10},content:{icon:d.icon||`TrendingUp`}})}else if(s.type===`productCard`){let e=m;d.imageUrl||d.image||d.src?(c.push({id:M(`elem`),type:`image`,name:`Product Image`,x:p,y:m,width:h,height:160,rotation:0,zIndex:_+1,styles:{borderRadius:16},content:{url:d.imageUrl||d.image||d.src}}),e+=172):e+=20,c.push({id:M(`elem`),type:`heading`,name:`Product Title`,x:p+16,y:e,width:h-32,height:24,rotation:0,zIndex:_+1,styles:{textColor:l,fontSize:15,fontWeight:`700`},content:{text:d.title||d.name||`Product Item`}}),e+=28,d.price&&c.push({id:M(`elem`),type:`heading`,name:`Product Price`,x:p+16,y:e,width:h-32,height:24,rotation:0,zIndex:_+1,styles:{textColor:d.priceColor||`#0071e3`,fontSize:16,fontWeight:`700`},content:{text:d.price}}),c.push({id:M(`elem`),type:`button`,name:`Add to Cart`,x:p+16,y:m+g-48,width:h-32,height:34,rotation:0,zIndex:_+1,styles:{backgroundColor:d.buttonBgColor||`#0071e3`,textColor:d.buttonTextColor||`#ffffff`,borderRadius:8,fontSize:12,fontWeight:`600`},content:{label:d.buttonText||`Add to Cart`}})}else{let e=p+20,t=h-40;(d.title||d.headline||d.brandName)&&c.push({id:M(`elem`),type:`heading`,name:`Title`,x:e,y:m+20,width:t,height:26,rotation:0,zIndex:_+1,styles:{textColor:l,fontSize:f.fontSize||16,fontWeight:`700`},content:{text:d.title||d.headline||d.brandName||`Title`}}),(d.text||d.subtitle||d.description)&&c.push({id:M(`elem`),type:`paragraph`,name:`Text`,x:e,y:m+52,width:t,height:Math.max(30,g-100),rotation:0,zIndex:_+1,styles:{textColor:d.descColor||`${l}aa`,fontSize:12},content:{text:d.text||d.subtitle||d.description||`Description`}}),(d.buttonText||d.label)&&c.push({id:M(`elem`),type:`button`,name:`Button`,x:e,y:m+g-50,width:Math.min(120,t),height:34,rotation:0,zIndex:_+1,styles:{backgroundColor:d.buttonBgColor||l,textColor:d.buttonTextColor||u,borderRadius:8,fontSize:12},content:{label:d.buttonText||d.label||`Action`}})}let y=o.elements.flatMap(e=>e.id===n?c:[e]),b=r.pages.map(e=>e.id===i?{...e,elements:y}:e);e({activeProject:{...r,pages:b,updatedAt:new Date().toISOString()},selectedElementIds:c.map(e=>e.id),past:[t().past[0],...t().past.slice(1,50)],future:[]}),t().saveCurrentProject()},unpackSelectedElements:()=>{let{selectedElementIds:e}=t();if(e.length!==0)for(let n of[...e])t().unpackCompositeElement(n)},bringForward:n=>{let{activeProject:r,activePageId:i,pushSnapshot:a}=t();if(!r)return;a(`Reorder layers`);let o=r.pages.find(e=>e.id===i);if(!o)return;let s=o.elements.find(e=>e.id===n);if(!s)return;let c=[...o.elements].filter(e=>e.zIndex>s.zIndex).sort((e,t)=>e.zIndex-t.zIndex)[0],l=[...o.elements];l=c?l.map(e=>e.id===s.id?{...e,zIndex:c.zIndex}:e.id===c.id?{...e,zIndex:s.zIndex}:e):l.map(e=>e.id===s.id?{...e,zIndex:s.zIndex+1}:e);let u=r.pages.map(e=>e.id===i?{...e,elements:l}:e);e({activeProject:{...r,pages:u,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},sendBackward:n=>{let{activeProject:r,activePageId:i,pushSnapshot:a}=t();if(!r)return;a(`Reorder layers`);let o=r.pages.find(e=>e.id===i);if(!o)return;let s=o.elements.find(e=>e.id===n);if(!s)return;let c=[...o.elements].filter(e=>e.zIndex<s.zIndex).sort((e,t)=>t.zIndex-e.zIndex)[0],l=[...o.elements];l=c?l.map(e=>e.id===s.id?{...e,zIndex:c.zIndex}:e.id===c.id?{...e,zIndex:s.zIndex}:e):l.map(e=>e.id===s.id?{...e,zIndex:Math.max(0,s.zIndex-1)}:e);let u=r.pages.map(e=>e.id===i?{...e,elements:l}:e);e({activeProject:{...r,pages:u,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},bringToFront:n=>{let{activeProject:r,activePageId:i,pushSnapshot:a}=t();if(!r)return;a(`Reorder layers`);let o=r.pages.find(e=>e.id===i);if(!o)return;let s=Math.max(...o.elements.map(e=>e.zIndex),0),c=r.pages.map(e=>e.id===i?{...e,elements:e.elements.map(e=>e.id===n?{...e,zIndex:s+1}:e)}:e);e({activeProject:{...r,pages:c,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},sendToBack:n=>{let{activeProject:r,activePageId:i,pushSnapshot:a}=t();if(!r)return;a(`Reorder layers`);let o=r.pages.find(e=>e.id===i);if(!o)return;let s=[...o.elements].sort((e,t)=>e.zIndex-t.zIndex).map(e=>e.id===n?{...e,zIndex:0}:e);s=s.sort((e,t)=>e.zIndex===t.zIndex?e.id===n?-1:1:e.zIndex-t.zIndex).map((e,t)=>({...e,zIndex:e.id===n?0:t+1}));let c=r.pages.map(e=>e.id===i?{...e,elements:s}:e);e({activeProject:{...r,pages:c,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},toggleLockSelectedElements:()=>{let{activeProject:n,activePageId:r,selectedElementIds:i,past:a}=t();if(!n||i.length===0)return;let o=$s(n,r,`Toggle Lock`),s=n.pages.map(e=>e.id===r?{...e,elements:e.elements.map(e=>i.includes(e.id)?{...e,locked:!e.locked}:e)}:e);e({activeProject:{...n,pages:s,updatedAt:new Date().toISOString()},past:[o,...a.slice(0,39)],future:[]}),t().saveCurrentProject()},toggleHideSelectedElements:()=>{let{activeProject:n,activePageId:r,selectedElementIds:i,past:a}=t();if(!n||i.length===0)return;let o=$s(n,r,`Toggle Visibility`),s=n.pages.map(e=>e.id===r?{...e,elements:e.elements.map(e=>i.includes(e.id)?{...e,hidden:!e.hidden}:e)}:e);e({activeProject:{...n,pages:s,updatedAt:new Date().toISOString()},past:[o,...a.slice(0,39)],future:[]}),t().saveCurrentProject()},alignSelectedElements:n=>{let{activeProject:r,activePageId:i,selectedElementIds:a,past:o}=t();if(!r||a.length===0)return;let s=r.pages.find(e=>e.id===i);if(!s)return;let c=s.elements.filter(e=>a.includes(e.id));if(c.length===0)return;let l=Po[P.getState().viewportMode]||Po.desktop,u=Zs(c,n,l.width,l.height),d=new Map(u.map(e=>[e.id,e])),f=$s(r,i,`Align ${n}`),p=r.pages.map(e=>e.id===i?{...e,elements:e.elements.map(e=>{let t=d.get(e.id);return t?{...e,x:t.x,y:t.y}:e})}:e);e({activeProject:{...r,pages:p,updatedAt:new Date().toISOString()},past:[f,...o.slice(0,39)],future:[]}),t().saveCurrentProject()},cutSelectedElements:()=>{t().copySelectedElements(),t().deleteSelectedElements()},updateDesignTokens:n=>{let{activeProject:r}=t();if(!r)return;let i=r.designSystem||yo,a={colors:{...i.colors,...n.colors||{}},typography:{...i.typography,...n.typography||{}},radius:{...i.radius,...n.radius||{}},shadows:{...i.shadows,...n.shadows||{}},spacing:{...i.spacing,...n.spacing||{}}};e({activeProject:{...r,designSystem:a,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},applyThemePreset:n=>{let{activeProject:r}=t();if(!r)return;let i=ho.find(e=>e.id===n);if(!i)return;t().pushSnapshot(`Apply Theme: ${i.name}`),i.tokens.mode;let a=i.tokens.colors.primary,o=i.tokens.colors.surface,s=i.tokens.colors.text,c=i.tokens.colors.border,l=r.pages.map(e=>({...e,settings:{...e.settings,backgroundColor:i.tokens.colors.background},elements:e.elements.map(e=>{let t=e.type===`button`||e.type===`submitButton`;return{...e,styles:{...e.styles,backgroundColor:t?a:o,textColor:t?`#ffffff`:s,borderColor:c}}})}));e({activeProject:{...r,designSystem:i.tokens,pages:l,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},createMasterComponent:(n,r)=>{let{activeProject:i,activePageId:a}=t();if(!i)return null;let o=i.pages.find(e=>e.id===a);if(!o)return null;let s=o.elements.find(e=>e.id===n);if(!s)return null;let c=M(`comp`),l=r||`${s.name} (Component)`,u={id:c,name:l,templateElement:JSON.parse(JSON.stringify(s)),createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},d=i.components||[],f=i.pages.map(e=>e.id===a?{...e,elements:e.elements.map(e=>e.id===n?{...e,name:l,isComponentInstance:!0,masterComponentId:c}:e)}:e);return e({activeProject:{...i,components:[...d,u],pages:f,updatedAt:new Date().toISOString()}}),t().saveCurrentProject(),u},detachComponentInstance:n=>{let{activeProject:r,activePageId:i}=t();if(!r)return;let a=r.pages.map(e=>e.id===i?{...e,elements:e.elements.map(e=>{if(e.id===n){let t={...e};return delete t.isComponentInstance,delete t.masterComponentId,delete t.componentOverrides,t}return e})}:e);e({activeProject:{...r,pages:a,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},insertMasterComponentInstance:(n,r=60,i=60)=>{let{activeProject:a,activePageId:o}=t();if(!a)return null;let s=(a.components||[]).find(e=>e.id===n);if(!s)return null;let c=M(`elem`),l={...JSON.parse(JSON.stringify(s.templateElement)),id:c,name:s.name,x:r,y:i,isComponentInstance:!0,masterComponentId:s.id,zIndex:10};t().pushSnapshot(`Insert ${s.name}`);let u=a.pages.map(e=>e.id===o?{...e,elements:[...e.elements,l]}:e);return e({activeProject:{...a,pages:u,updatedAt:new Date().toISOString()},selectedElementIds:[c]}),t().saveCurrentProject(),l},pushSnapshot:n=>{let{activeProject:r,activePageId:i,past:a}=t();r&&e({past:[$s(r,i,n),...a.slice(0,39)],future:[]})},undo:()=>{let{past:n,future:r,activeProject:i,activePageId:a}=t();if(n.length===0||!i)return;let[o,...s]=n,c=$s(i,a,`Current state before undo`);e({activeProject:{...i,pages:o.pages,designSystem:o.designSystem||i.designSystem,components:o.components||i.components,variables:o.variables||i.variables,dataSources:o.dataSources||i.dataSources,updatedAt:new Date().toISOString()},activePageId:o.activePageId||a,selectedElementIds:[],past:s,future:[c,...r]}),t().saveCurrentProject()},redo:()=>{let{past:n,future:r,activeProject:i,activePageId:a}=t();if(r.length===0||!i)return;let[o,...s]=r,c=$s(i,a,`Current state before redo`);e({activeProject:{...i,pages:o.pages,designSystem:o.designSystem||i.designSystem,components:o.components||i.components,variables:o.variables||i.variables,dataSources:o.dataSources||i.dataSources,updatedAt:new Date().toISOString()},activePageId:o.activePageId||a,selectedElementIds:[],past:[c,...n],future:s}),t().saveCurrentProject()},restoreSnapshot:n=>{let{activeProject:r,activePageId:i,past:a}=t();if(!r)return;let o=$s(r,i,`State before history rollback`);e({activeProject:{...r,pages:n.pages,designSystem:n.designSystem||r.designSystem,components:n.components||r.components,variables:n.variables||r.variables,dataSources:n.dataSources||r.dataSources,updatedAt:new Date().toISOString()},activePageId:n.activePageId||i,selectedElementIds:[],past:[o,...a.filter(e=>e.id!==n.id)],future:[]}),t().saveCurrentProject()},addVariable:n=>{let{activeProject:r}=t();if(!r)throw Error(`No active project`);let i={id:M(`var`),name:n.name||`variable_${Date.now().toString(36)}`,type:n.type||`text`,defaultValue:n.defaultValue??``,sampleValue:n.sampleValue??n.defaultValue??``,description:n.description||``,category:n.category||`general`},a=[...r.variables||[],i];return e({activeProject:{...r,variables:a,updatedAt:new Date().toISOString()}}),t().saveCurrentProject(),i},updateVariable:(n,r)=>{let{activeProject:i}=t();if(!i)return;let a=(i.variables||[]).map(e=>e.id===n?{...e,...r}:e);e({activeProject:{...i,variables:a,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},deleteVariable:n=>{let{activeProject:r}=t();if(!r)return;let i=(r.variables||[]).filter(e=>e.id!==n);e({activeProject:{...r,variables:i,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},setVariableValue:(n,r)=>{let{activeProject:i}=t();if(!i)return;let a=(i.variables||[]).map(e=>e.name===n?{...e,sampleValue:r,defaultValue:r}:e);e({activeProject:{...i,variables:a,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},loadSampleVariables:n=>{let{activeProject:r}=t();if(!r)return;let i=Us(n),a=r.variables||[],o=new Set(a.map(e=>e.name)),s=[...a];for(let e of i)o.has(e.name)||s.push(e);e({activeProject:{...r,variables:s,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},toggleUseSampleData:()=>{let{activeProject:n}=t();n&&(e({activeProject:{...n,useSampleData:!(n.useSampleData??!0),updatedAt:new Date().toISOString()}}),t().saveCurrentProject())},bindElementProperty:(n,r,i)=>{let{activeProject:a,activePageId:o}=t();if(!a)return;let s=a.pages.map(e=>e.id===o?{...e,elements:e.elements.map(e=>{if(e.id===n){let t={...e.bindings||{}};return i?t[r]=i:delete t[r],{...e,bindings:t}}return e})}:e);e({activeProject:{...a,pages:s,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},setElementCollectionBinding:(n,r)=>{let{activeProject:i,activePageId:a}=t();if(!i)return;let o=i.pages.map(e=>e.id===a?{...e,elements:e.elements.map(e=>e.id===n?{...e,collectionBinding:r||void 0}:e)}:e);e({activeProject:{...i,pages:o,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},setElementFormConfig:(n,r)=>{let{activeProject:i,activePageId:a}=t();if(!i)return;let o=i.pages.map(e=>e.id===a?{...e,elements:e.elements.map(e=>e.id===n?{...e,formConfig:r||void 0}:e)}:e);e({activeProject:{...i,pages:o,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},setElementValidationRules:(n,r)=>{let{activeProject:i,activePageId:a}=t();if(!i)return;let o=i.pages.map(e=>e.id===a?{...e,elements:e.elements.map(e=>e.id===n?{...e,validationRules:r}:e)}:e);e({activeProject:{...i,pages:o,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},addDataSource:n=>{let{activeProject:r}=t();if(!r)throw Error(`No active project`);let i={id:M(`ds`),name:n.name||`New Data Source`,type:n.type||`rest`,baseUrl:n.baseUrl||`https://api.example.com`,authType:n.authType||`none`,isSecret:n.isSecret||!1,endpoints:n.endpoints||[]},a=[...r.dataSources||[],i];return e({activeProject:{...r,dataSources:a,updatedAt:new Date().toISOString()}}),t().saveCurrentProject(),i},updateDataSource:(n,r)=>{let{activeProject:i}=t();if(!i)return;let a=(i.dataSources||[]).map(e=>e.id===n?{...e,...r}:e);e({activeProject:{...i,dataSources:a,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},deleteDataSource:n=>{let{activeProject:r}=t();if(!r)return;let i=(r.dataSources||[]).filter(e=>e.id!==n);e({activeProject:{...r,dataSources:i,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},applyCollabOperation:n=>{let{activeProject:r}=t();if(r)switch(n.type){case`add_element`:{let{pageId:t,element:i}=n.payload,a=r.pages.map(e=>e.id===t?{...e,elements:[...e.elements,i]}:e);e({activeProject:{...r,pages:a,updatedAt:new Date().toISOString()}});break}case`update_element`:{let{pageId:t,elementId:i,updates:a}=n.payload,o=r.pages.map(e=>e.id===t?{...e,elements:e.elements.map(e=>e.id===i?{...e,...a}:e)}:e);e({activeProject:{...r,pages:o,updatedAt:new Date().toISOString()}});break}case`delete_element`:{let{pageId:t,elementId:i}=n.payload,a=r.pages.map(e=>e.id===t?{...e,elements:e.elements.filter(e=>e.id!==i)}:e);e({activeProject:{...r,pages:a,updatedAt:new Date().toISOString()}});break}case`move_element`:{let{pageId:t,elementId:i,x:a,y:o}=n.payload,s=r.pages.map(e=>e.id===t?{...e,elements:e.elements.map(e=>e.id===i?{...e,x:a,y:o}:e)}:e);e({activeProject:{...r,pages:s,updatedAt:new Date().toISOString()}});break}case`update_design_tokens`:e({activeProject:{...r,designSystem:{...r.designSystem,...n.payload.tokens},updatedAt:new Date().toISOString()}})}},setElementAccessibility:(n,r)=>{let{activeProject:i,activePageId:a,pushSnapshot:o}=t();if(!i)return;o(`Update accessibility properties`);let s=i.pages.map(e=>e.id===a?{...e,elements:e.elements.map(e=>e.id===n?{...e,accessibility:{...e.accessibility||{},...r}}:e)}:e);e({activeProject:{...i,pages:s,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},applyAccessibilityFixes:(n,r=`AI Accessibility Fixes`)=>{let{pushSnapshot:i}=t();i(r),e({activeProject:{...n,updatedAt:new Date().toISOString()}}),t().saveCurrentProject()},registerCustomComponent:t=>{e(e=>({customComponents:{...e.customComponents,[t.type]:t}}))},applyDesignTokens:n=>{e(e=>{let t=e.activeProject;if(!t)return{designTokens:n};let r=n.colors?.primary||`#0071e3`,i=n.colors?.secondary||`#7d2ae8`,a=n.colors?.background||`#09090b`,o=n.colors?.surface||n.colors?.card||`#18181b`,s=n.colors?.foreground||`#ffffff`,c=t.designSystem?structuredClone(t.designSystem):structuredClone(yo);return c.colors&&={...c.colors,primary:r,secondary:i,background:a,surface:o,text:s},c.semantic?.colors&&(c.semantic.colors={...c.semantic.colors,colorPrimary:r,colorSecondary:i,colorBackground:a,colorSurface:o,colorText:s}),{designTokens:n,activeProject:{...t,designSystem:c,updatedAt:new Date().toISOString()}}}),t().saveCurrentProject()}}));function tc(e,t=`nextjs`){let n=(e.components||[]).map(e=>{let t=nc(e.templateElement),n=ac(e.name);return{name:n,fileName:`${n}.tsx`,propsSchema:[{name:`title`,type:`string`,defaultValue:e.templateElement.content?.title},{name:`className`,type:`string`,defaultValue:``}],rootNode:t}}),r=e.pages.map(t=>{let n=rc(t.elements);return{id:t.id,name:t.name,slug:t.slug,route:t.slug===`home`||t.slug===`index`?`/`:`/${t.slug}`,sections:n,metaTitle:t.settings?.metaTitle||`${t.name} | ${e.name}`,metaDescription:t.settings?.metaDescription||`${t.name} page for ${e.name}`,favicon:t.settings?.favicon||e.settings?.favicon,canonicalUrl:t.settings?.canonicalUrl,socialImage:t.settings?.socialImage||e.settings?.defaultOgImage,ogType:t.settings?.ogType||`website`,twitterCard:t.settings?.twitterCard||`summary_large_image`,noIndex:t.settings?.noIndex||!1,keywords:t.settings?.keywords||[]}}),i=[];return e.pages.forEach(e=>{e.elements.forEach(e=>{let t=e.content?.src||e.content?.url;t&&typeof t==`string`&&i.push({id:e.id,name:e.name||`Asset`,url:t})})}),{id:e.id,name:e.name,description:e.description,target:t,designTokens:e.designSystem||yo,pages:r,components:n,assets:i,variables:e.variables||[],dataSources:e.dataSources||[],siteUrl:e.settings?.siteUrl||`https://example.com`,defaultOgImage:e.settings?.defaultOgImage,defaultFavicon:e.settings?.favicon,sitemapEnabled:e.settings?.sitemapEnabled??!0,robotsTxtEnabled:e.settings?.robotsTxtEnabled??!0}}function nc(e){let t=ic(e.type);return{id:e.id,type:e.type,semanticRole:t,name:e.name,props:{...e.content},styles:{...e.styles},responsive:e.responsive,bindings:e.bindings,collectionBinding:e.collectionBinding,formConfig:e.formConfig,interactions:(e.interactions||[]).map(e=>({trigger:e.trigger,action:e.action,target:e.target,targetName:e.targetName})),animations:(e.animations||[]).map(e=>({trigger:e.trigger===`hover`?`hover`:`load`,type:e.type||`none`,duration:e.duration,delay:e.delay,easing:e.easing})),componentName:e.isComponentInstance?ac(e.name):void 0,accessibility:e.accessibility}}function rc(e){if(e.length===0)return[];let t=[...e].sort((e,t)=>e.y-t.y),n=[],r=0;for(;r<t.length;){let e=t[r];if(e.type===`navbar`||e.type===`hero`||e.type===`heroSection`||e.type===`footer`||e.type===`cta`||e.type===`sidebar`||e.type===`bottomNav`||e.type===`loginForm`){n.push(nc(e)),r++;continue}if(e.type.includes(`Card`)||e.type===`card`){let i=[e],a=r+1;for(;a<t.length;){let n=t[a];if((n.type.includes(`Card`)||n.type===`card`)&&Math.abs(n.y-e.y)<=60)i.push(n),a++;else break}if(i.length>1){let t={id:`grid_${e.id}`,type:`grid`,semanticRole:e.type===`pricingCard`?`pricing`:e.type===`metricCard`?`stats`:`features`,name:`${e.name} Grid (${i.length} items)`,props:{columns:i.length},styles:{display:`grid`,gap:24},children:i.map(nc)};n.push(t),r=a;continue}}n.push(nc(e)),r++}return n}function ic(e){return e===`navbar`?`header`:e===`hero`||e===`heroSection`?`hero`:e===`pricingCard`?`pricing`:e===`metricCard`||e===`chart`||e===`dataTable`?`stats`:e===`featureCard`||e===`card`?`features`:e===`loginForm`?`auth`:e===`footer`?`footer`:`content`}function ac(e){return e.replace(/[^a-zA-Z0-9]/g,` `).split(` `).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``)||`Component`}function oc(e){let t=0,n=0,r=0,i=[];e.pages.forEach(e=>{(!e.metaTitle||e.metaTitle.length<5)&&i.push(`${e.name} (Missing or short title)`),(!e.metaDescription||e.metaDescription.length<10)&&i.push(`${e.name} (Missing meta description)`),(e.sections||[]).forEach(e=>{r++,(e.type===`image`||e.props?.src)&&(t++,!e.props?.alt&&!e.accessibility?.altText&&n++)})});let a=Math.max(0,Math.round(100-n*10)),o=Math.max(0,Math.round(100-i.length*15)),s=[];return n>0&&s.push(`Add descriptive alt text to ${n} image elements.`),i.length>0&&s.push(`Provide custom meta descriptions for ${i.length} pages.`),s.length===0&&s.push(`All core WCAG 2.1 AA and SEO standards are met!`),{accessibilityReport:`
|
|
3
|
+
# Accessibility Compliance Report (WCAG 2.1 AA)
|
|
4
|
+
|
|
5
|
+
**Project:** ${e.name}
|
|
6
|
+
**Audit Date:** ${new Date().toISOString().split(`T`)[0]}
|
|
7
|
+
**Target:** ${(e.target||`react`).toUpperCase()}
|
|
8
|
+
**Compliance Score:** ${a}%
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. Landmark & Semantic Structure
|
|
13
|
+
- **Landmark Regions Verified:** ${r} landmarks across ${e.pages.length} pages.
|
|
14
|
+
- **Semantic Roles:** \`<header>\`, \`<nav>\`, \`<main>\`, \`<section>\`, \`<article>\`, \`<aside>\`, \`<footer>\`.
|
|
15
|
+
- **Keyboard Navigation:** Native interactive elements (buttons, links, inputs) with accessible focus ring styles.
|
|
16
|
+
|
|
17
|
+
## 2. Image & Media Accessibility
|
|
18
|
+
- **Total Images Audited:** ${t}
|
|
19
|
+
- **Images with Alt Text:** ${t-n}
|
|
20
|
+
- **Decorative Images:** Marked with \`aria-hidden="true"\` or empty \`alt=""\`.
|
|
21
|
+
|
|
22
|
+
## 3. WCAG AA Color Contrast
|
|
23
|
+
- Primary text on surface meets minimum 4.5:1 ratio for normal text and 3:1 for large text.
|
|
24
|
+
- Form inputs include explicit labels and high-visibility focus borders.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
*Generated automatically by Cyrus Production Quality Engine.*
|
|
28
|
+
`.trim(),seoAuditReport:`
|
|
29
|
+
# Production SEO & Open Graph Audit
|
|
30
|
+
|
|
31
|
+
**Project:** ${e.name}
|
|
32
|
+
**Site URL:** ${e.siteUrl||`https://example.com`}
|
|
33
|
+
**SEO Health Score:** ${o}%
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 1. Page Index & Metadata Coverage
|
|
38
|
+
|
|
39
|
+
| Route | Title Tag | Meta Description | Canonical URL | Open Graph Image |
|
|
40
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
41
|
+
${e.pages.map(t=>`| \`${t.route}\` | ${t.metaTitle?`✅ `+t.metaTitle.slice(0,30)+`...`:`⚠️ Default`} | ${t.metaDescription?`✅ Provided`:`⚠️ Missing`} | \`${t.canonicalUrl||(e.siteUrl||``)+t.route}\` | ${t.socialImage||e.defaultOgImage?`✅ Configured`:`ℹ️ None`} |`).join(`
|
|
42
|
+
`)}
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 2. Search Engine Indexing
|
|
47
|
+
- **Sitemap XML:** Generated at \`public/sitemap.xml\` (${e.pages.length} URLs indexed).
|
|
48
|
+
- **Robots.txt:** Generated at \`public/robots.txt\` with crawler allow policies.
|
|
49
|
+
- **Font Optimization:** Preconnect links for Google Fonts with \`display=swap\`.
|
|
50
|
+
- **Image Performance:** Native \`loading="lazy"\` and \`decoding="async"\` applied across all media.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
*Generated automatically by Cyrus Production Quality Engine.*
|
|
54
|
+
`.trim(),summary:{wcagComplianceScore:a,seoScore:o,totalLandmarks:r,totalImagesChecked:t,lazyLoadedImagesCount:t,seoMetadataPagesCount:e.pages.length,recommendations:s}}}function sc(e){let t=[],n=e.name.toLowerCase().replace(/[^a-z0-9]/g,`-`).replace(/-+/g,`-`),r=e.designTokens;t.push({path:`package.json`,language:`json`,content:JSON.stringify({name:n,private:!0,version:`0.1.0`,type:`module`,scripts:{dev:`vite`,build:`tsc -b && vite build`,preview:`vite preview`},dependencies:{clsx:`^2.1.1`,"lucide-react":`^1.16.0`,react:`^18.3.1`,"react-dom":`^18.3.1`},devDependencies:{"@types/react":`^18.3.3`,"@types/react-dom":`^18.3.0`,"@vitejs/plugin-react":`^4.3.1`,typescript:`^5.5.3`,vite:`^5.4.0`}},null,2)}),t.push({path:`tsconfig.json`,language:`json`,content:JSON.stringify({compilerOptions:{target:`ES2020`,useDefineForClassFields:!0,lib:[`ES2020`,`DOM`,`DOM.Iterable`],module:`ESNext`,skipLibCheck:!0,moduleResolution:`bundler`,allowImportingTsExtensions:!0,resolveJsonModule:!0,isolatedModules:!0,noEmit:!0,jsx:`react-jsx`,strict:!0,noUnusedLocals:!0,noUnusedParameters:!0,noFallthroughCasesInSwitch:!0},include:[`src`]},null,2)}),t.push({path:`vite.config.ts`,language:`typescript`,content:`import { defineConfig } from 'vite';
|
|
55
|
+
import react from '@vitejs/plugin-react';
|
|
56
|
+
|
|
57
|
+
export default defineConfig({
|
|
58
|
+
plugins: [react()],
|
|
59
|
+
});
|
|
60
|
+
`});let i=e.pages[0],a=e.siteUrl||`https://example.com`,o=i?.metaTitle||e.name,s=i?.metaDescription||e.description||`Modern web application built with Cyrus`,c=i?.socialImage||e.defaultOgImage||``;if(t.push({path:`index.html`,language:`html`,content:`<!DOCTYPE html>
|
|
61
|
+
<html lang="en">
|
|
62
|
+
<head>
|
|
63
|
+
<meta charset="UTF-8" />
|
|
64
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
65
|
+
<title>${o}</title>
|
|
66
|
+
<meta name="description" content="${s}" />
|
|
67
|
+
${i?.keywords&&i.keywords.length>0?`<meta name="keywords" content="${i.keywords.join(`, `)}" />`:``}
|
|
68
|
+
<link rel="canonical" href="${i?.canonicalUrl||a+(i?.route||`/`)}" />
|
|
69
|
+
${e.defaultFavicon||i?.favicon?`<link rel="icon" type="image/svg+xml" href="${i?.favicon||e.defaultFavicon}" />`:`<link rel="icon" type="image/svg+xml" href="/favicon.svg" />`}
|
|
70
|
+
|
|
71
|
+
<!-- Open Graph / Facebook -->
|
|
72
|
+
<meta property="og:type" content="${i?.ogType||`website`}" />
|
|
73
|
+
<meta property="og:url" content="${a}${i?.route||`/`}" />
|
|
74
|
+
<meta property="og:title" content="${o}" />
|
|
75
|
+
<meta property="og:description" content="${s}" />
|
|
76
|
+
${c?`<meta property="og:image" content="${c}" />`:``}
|
|
77
|
+
|
|
78
|
+
<!-- Twitter Cards -->
|
|
79
|
+
<meta name="twitter:card" content="${i?.twitterCard||`summary_large_image`}" />
|
|
80
|
+
<meta name="twitter:title" content="${o}" />
|
|
81
|
+
<meta name="twitter:description" content="${s}" />
|
|
82
|
+
${c?`<meta name="twitter:image" content="${c}" />`:``}
|
|
83
|
+
|
|
84
|
+
<!-- Security: Referrer Policy & Sniff Protection -->
|
|
85
|
+
<meta http-equiv="X-Content-Type-Options" content="nosniff" />
|
|
86
|
+
<meta name="referrer" content="strict-origin-when-cross-origin" />
|
|
87
|
+
|
|
88
|
+
<!-- Performance: Preconnect Google Fonts with swap -->
|
|
89
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
90
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
91
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
|
|
92
|
+
</head>
|
|
93
|
+
<body>
|
|
94
|
+
<div id="root"></div>
|
|
95
|
+
<script type="module" src="/src/main.tsx"><\/script>
|
|
96
|
+
</body>
|
|
97
|
+
</html>
|
|
98
|
+
`}),e.sitemapEnabled!==!1){let n=new Date().toISOString().split(`T`)[0],r=`<?xml version="1.0" encoding="UTF-8"?>
|
|
99
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
100
|
+
${e.pages.map(e=>` <url>
|
|
101
|
+
<loc>${a}${e.route}</loc>
|
|
102
|
+
<lastmod>${n}</lastmod>
|
|
103
|
+
<changefreq>${e.route===`/`?`daily`:`weekly`}</changefreq>
|
|
104
|
+
<priority>${e.route===`/`?`1.0`:`0.8`}</priority>
|
|
105
|
+
</url>`).join(`
|
|
106
|
+
`)}
|
|
107
|
+
</urlset>
|
|
108
|
+
`.trim();t.push({path:`public/sitemap.xml`,language:`html`,content:r})}e.robotsTxtEnabled!==!1&&t.push({path:`public/robots.txt`,language:`javascript`,content:`# Robots.txt generated by Cyrus Production Engine
|
|
109
|
+
User-agent: *
|
|
110
|
+
Allow: /
|
|
111
|
+
|
|
112
|
+
Sitemap: ${a}/sitemap.xml
|
|
113
|
+
`});let{accessibilityReport:l,seoAuditReport:u}=oc(e);t.push({path:`ACCESSIBILITY_REPORT.md`,language:`javascript`,content:l}),t.push({path:`SEO_AUDIT.md`,language:`javascript`,content:u}),t.push({path:`src/components/SeoHead.tsx`,language:`typescript`,content:`import { useEffect } from 'react';
|
|
114
|
+
|
|
115
|
+
export interface SeoHeadProps {
|
|
116
|
+
title: string;
|
|
117
|
+
description?: string;
|
|
118
|
+
canonicalUrl?: string;
|
|
119
|
+
socialImage?: string;
|
|
120
|
+
ogType?: string;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export function SeoHead({
|
|
124
|
+
title,
|
|
125
|
+
description,
|
|
126
|
+
canonicalUrl,
|
|
127
|
+
socialImage,
|
|
128
|
+
ogType = 'website',
|
|
129
|
+
}: SeoHeadProps) {
|
|
130
|
+
useEffect(() => {
|
|
131
|
+
document.title = title;
|
|
132
|
+
|
|
133
|
+
if (description) {
|
|
134
|
+
let metaDesc = document.querySelector('meta[name="description"]');
|
|
135
|
+
if (!metaDesc) {
|
|
136
|
+
metaDesc = document.createElement('meta');
|
|
137
|
+
metaDesc.setAttribute('name', 'description');
|
|
138
|
+
document.head.appendChild(metaDesc);
|
|
139
|
+
}
|
|
140
|
+
metaDesc.setAttribute('content', description);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if (canonicalUrl) {
|
|
144
|
+
let canonical = document.querySelector('link[rel="canonical"]');
|
|
145
|
+
if (!canonical) {
|
|
146
|
+
canonical = document.createElement('link');
|
|
147
|
+
canonical.setAttribute('rel', 'canonical');
|
|
148
|
+
document.head.appendChild(canonical);
|
|
149
|
+
}
|
|
150
|
+
canonical.setAttribute('href', canonicalUrl);
|
|
151
|
+
}
|
|
152
|
+
}, [title, description, canonicalUrl, socialImage, ogType]);
|
|
153
|
+
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
`}),t.push({path:`src/theme/tokens.ts`,language:`typescript`,content:`// Production 3-Tier Design Tokens generated by Cyrus
|
|
157
|
+
export const themeTokens = ${JSON.stringify(r,null,2)};
|
|
158
|
+
`}),t.push({path:`src/components/ThemeToggle.tsx`,language:`typescript`,content:`import React, { useEffect, useState } from 'react';
|
|
159
|
+
import { Sun, Moon } from 'lucide-react';
|
|
160
|
+
|
|
161
|
+
export function ThemeToggle() {
|
|
162
|
+
const [theme, setTheme] = useState<'light' | 'dark'>('light');
|
|
163
|
+
|
|
164
|
+
useEffect(() => {
|
|
165
|
+
const root = document.documentElement;
|
|
166
|
+
const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
167
|
+
const initial = isDark ? 'dark' : 'light';
|
|
168
|
+
setTheme(initial);
|
|
169
|
+
root.setAttribute('data-theme', initial);
|
|
170
|
+
}, []);
|
|
171
|
+
|
|
172
|
+
const toggleTheme = () => {
|
|
173
|
+
const next = theme === 'light' ? 'dark' : 'light';
|
|
174
|
+
setTheme(next);
|
|
175
|
+
document.documentElement.setAttribute('data-theme', next);
|
|
176
|
+
if (next === 'dark') {
|
|
177
|
+
document.documentElement.classList.add('dark');
|
|
178
|
+
} else {
|
|
179
|
+
document.documentElement.classList.remove('dark');
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
return (
|
|
184
|
+
<button
|
|
185
|
+
type="button"
|
|
186
|
+
onClick={toggleTheme}
|
|
187
|
+
aria-label="Toggle Light/Dark Theme"
|
|
188
|
+
style={{
|
|
189
|
+
display: 'inline-flex',
|
|
190
|
+
alignItems: 'center',
|
|
191
|
+
gap: '0.375rem',
|
|
192
|
+
padding: '0.375rem 0.625rem',
|
|
193
|
+
borderRadius: '8px',
|
|
194
|
+
backgroundColor: 'var(--color-surface-secondary, #f4f4f6)',
|
|
195
|
+
border: '1px solid var(--color-border, #e5e5ea)',
|
|
196
|
+
color: 'var(--color-text, #1d1d1f)',
|
|
197
|
+
fontSize: '0.8125rem',
|
|
198
|
+
fontWeight: 500,
|
|
199
|
+
cursor: 'pointer',
|
|
200
|
+
transition: 'all 0.15s ease',
|
|
201
|
+
}}
|
|
202
|
+
>
|
|
203
|
+
{theme === 'light' ? (
|
|
204
|
+
<>
|
|
205
|
+
<Moon style={{ width: '14px', height: '14px', color: 'var(--color-primary)' }} />
|
|
206
|
+
<span>Dark Mode</span>
|
|
207
|
+
</>
|
|
208
|
+
) : (
|
|
209
|
+
<>
|
|
210
|
+
<Sun style={{ width: '14px', height: '14px', color: '#ff9500' }} />
|
|
211
|
+
<span>Light Mode</span>
|
|
212
|
+
</>
|
|
213
|
+
)}
|
|
214
|
+
</button>
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
`}),t.push({path:`src/styles/globals.css`,language:`css`,content:`/* Generated by Cyrus — Production 3-Tier Design System & Theme Engine */
|
|
218
|
+
:root {
|
|
219
|
+
/* 1. Primitive Tokens */
|
|
220
|
+
--primitive-blue-500: #0071e3;
|
|
221
|
+
--primitive-gray-50: #fbfbfd;
|
|
222
|
+
--primitive-gray-100: #f5f5f7;
|
|
223
|
+
--primitive-gray-200: #e5e5ea;
|
|
224
|
+
--primitive-gray-800: #2c2c2e;
|
|
225
|
+
--primitive-gray-900: #1c1c1e;
|
|
226
|
+
|
|
227
|
+
/* 2. Semantic Tokens (Light Default) */
|
|
228
|
+
--color-primary: ${r?.colors?.primary||`#0071e3`};
|
|
229
|
+
--color-primary-hover: #0077ed;
|
|
230
|
+
--color-secondary: ${r?.colors?.secondary||`#5856d6`};
|
|
231
|
+
--color-background: ${r?.colors?.background||`#f5f5f7`};
|
|
232
|
+
--color-surface: ${r?.colors?.surface||`#ffffff`};
|
|
233
|
+
--color-surface-secondary: ${r?.colors?.surfaceSecondary||`#f4f4f6`};
|
|
234
|
+
--color-text: ${r?.colors?.text||`#1d1d1f`};
|
|
235
|
+
--color-text-secondary: ${r?.colors?.textSecondary||`#86868b`};
|
|
236
|
+
--color-border: ${r?.colors?.border||`#e5e5ea`};
|
|
237
|
+
--color-success: ${r?.colors?.success||`#34c759`};
|
|
238
|
+
--color-error: ${r?.colors?.error||`#ff3b30`};
|
|
239
|
+
|
|
240
|
+
/* 3. Component Tokens */
|
|
241
|
+
--button-primary-bg: var(--color-primary);
|
|
242
|
+
--button-primary-text: #ffffff;
|
|
243
|
+
--button-radius: ${r?.radius?.medium||10}px;
|
|
244
|
+
--card-bg: var(--color-surface);
|
|
245
|
+
--card-border: var(--color-border);
|
|
246
|
+
--card-radius: ${r?.radius?.large||16}px;
|
|
247
|
+
--input-bg: var(--color-surface-secondary);
|
|
248
|
+
--input-border: var(--color-border);
|
|
249
|
+
|
|
250
|
+
--font-family: '${r?.typography?.body?.fontFamily||`Inter`}', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/* Dark Mode Theme Tokens */
|
|
254
|
+
[data-theme="dark"], .dark {
|
|
255
|
+
--color-primary: #0a84ff;
|
|
256
|
+
--color-primary-hover: #409cff;
|
|
257
|
+
--color-secondary: #5e5ce6;
|
|
258
|
+
--color-background: #000000;
|
|
259
|
+
--color-surface: #1c1c1e;
|
|
260
|
+
--color-surface-secondary: #2c2c2e;
|
|
261
|
+
--color-text: #ffffff;
|
|
262
|
+
--color-text-secondary: #8e8e93;
|
|
263
|
+
--color-border: #38383a;
|
|
264
|
+
--button-primary-bg: #0a84ff;
|
|
265
|
+
--button-primary-text: #ffffff;
|
|
266
|
+
--card-bg: #1c1c1e;
|
|
267
|
+
--card-border: #38383a;
|
|
268
|
+
--input-bg: #1c1c1e;
|
|
269
|
+
--input-border: #38383a;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
* {
|
|
273
|
+
box-sizing: border-box;
|
|
274
|
+
margin: 0;
|
|
275
|
+
padding: 0;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
body {
|
|
279
|
+
font-family: var(--font-family);
|
|
280
|
+
background-color: var(--color-background);
|
|
281
|
+
color: var(--color-text);
|
|
282
|
+
line-height: 1.5;
|
|
283
|
+
-webkit-font-smoothing: antialiased;
|
|
284
|
+
transition: background-color 0.2s ease, color 0.2s ease;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
button, input, select, textarea {
|
|
288
|
+
font-family: inherit;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
button:focus-visible, a:focus-visible, input:focus-visible {
|
|
292
|
+
outline: 2px solid var(--color-primary);
|
|
293
|
+
outline-offset: 2px;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.container {
|
|
297
|
+
max-width: 1200px;
|
|
298
|
+
margin-left: auto;
|
|
299
|
+
margin-right: auto;
|
|
300
|
+
padding-left: 1.5rem;
|
|
301
|
+
padding-right: 1.5rem;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.grid-responsive {
|
|
305
|
+
display: grid;
|
|
306
|
+
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
|
307
|
+
gap: 1.5rem;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
@media (max-width: 768px) {
|
|
311
|
+
.grid-responsive {
|
|
312
|
+
grid-template-columns: 1fr;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
`}),t.push({path:`src/main.tsx`,language:`typescript`,content:`import React from 'react';
|
|
316
|
+
import ReactDOM from 'react-dom/client';
|
|
317
|
+
import { App } from './App';
|
|
318
|
+
import './styles/globals.css';
|
|
319
|
+
|
|
320
|
+
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
321
|
+
<React.StrictMode>
|
|
322
|
+
<App />
|
|
323
|
+
</React.StrictMode>
|
|
324
|
+
);
|
|
325
|
+
`}),t.push({path:`src/components/Navbar.tsx`,language:`typescript`,content:`import React, { useState } from 'react';
|
|
326
|
+
import { Menu, X } from 'lucide-react';
|
|
327
|
+
|
|
328
|
+
interface NavbarProps {
|
|
329
|
+
brandName?: string;
|
|
330
|
+
links?: string[];
|
|
331
|
+
activePage: string;
|
|
332
|
+
onNavigate: (pageSlug: string) => void;
|
|
333
|
+
onOpenAuthModal?: () => void;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
export function Navbar({
|
|
337
|
+
brandName = '${e.name}',
|
|
338
|
+
links = ['Home', 'Pricing', 'Login'],
|
|
339
|
+
activePage,
|
|
340
|
+
onNavigate,
|
|
341
|
+
onOpenAuthModal,
|
|
342
|
+
}: NavbarProps) {
|
|
343
|
+
const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
|
|
344
|
+
|
|
345
|
+
return (
|
|
346
|
+
<header className="sticky top-0 z-40 w-full bg-white/90 backdrop-blur-md border-b border-[#e5e5ea] px-6 py-3.5">
|
|
347
|
+
<div className="max-w-6xl mx-auto flex items-center justify-between">
|
|
348
|
+
<div className="flex items-center gap-8">
|
|
349
|
+
<button
|
|
350
|
+
type="button"
|
|
351
|
+
onClick={() => onNavigate('home')}
|
|
352
|
+
className="text-[16px] font-bold tracking-tight text-[#1d1d1f] hover:opacity-80 transition-opacity bg-transparent border-0 cursor-pointer"
|
|
353
|
+
>
|
|
354
|
+
{brandName}
|
|
355
|
+
</button>
|
|
356
|
+
<nav className="hidden md:flex items-center gap-6 text-[13.5px]">
|
|
357
|
+
{links.map((link) => {
|
|
358
|
+
const slug = link.toLowerCase();
|
|
359
|
+
const isCurrent = activePage === slug;
|
|
360
|
+
return (
|
|
361
|
+
<button
|
|
362
|
+
key={link}
|
|
363
|
+
type="button"
|
|
364
|
+
onClick={() => onNavigate(slug)}
|
|
365
|
+
className={\`font-medium transition-colors bg-transparent border-0 cursor-pointer \${
|
|
366
|
+
isCurrent ? 'text-[#0071e3] font-semibold' : 'text-[#6e6e73] hover:text-[#1d1d1f]'
|
|
367
|
+
}\`}
|
|
368
|
+
>
|
|
369
|
+
{link}
|
|
370
|
+
</button>
|
|
371
|
+
);
|
|
372
|
+
})}
|
|
373
|
+
</nav>
|
|
374
|
+
</div>
|
|
375
|
+
|
|
376
|
+
<div className="hidden md:flex items-center gap-3">
|
|
377
|
+
<button
|
|
378
|
+
type="button"
|
|
379
|
+
onClick={() => onOpenAuthModal ? onOpenAuthModal() : onNavigate('login')}
|
|
380
|
+
className="px-4 py-1.5 rounded-[8px] bg-[#0071e3] hover:bg-[#0077ed] text-white text-[13px] font-medium transition-all shadow-sm cursor-pointer border-0"
|
|
381
|
+
>
|
|
382
|
+
Get Started
|
|
383
|
+
</button>
|
|
384
|
+
</div>
|
|
385
|
+
|
|
386
|
+
<button
|
|
387
|
+
type="button"
|
|
388
|
+
onClick={() => setMobileMenuOpen(!mobileMenuOpen)}
|
|
389
|
+
aria-label="Toggle Navigation"
|
|
390
|
+
className="md:hidden p-1.5 text-[#1d1d1f] bg-transparent border-0 cursor-pointer"
|
|
391
|
+
>
|
|
392
|
+
{mobileMenuOpen ? <X className="w-5 h-5" /> : <Menu className="w-5 h-5" />}
|
|
393
|
+
</button>
|
|
394
|
+
</div>
|
|
395
|
+
|
|
396
|
+
{mobileMenuOpen && (
|
|
397
|
+
<div className="md:hidden pt-3 pb-2 border-t border-[#e5e5ea] mt-2 flex flex-col gap-2">
|
|
398
|
+
{links.map((link) => (
|
|
399
|
+
<button
|
|
400
|
+
key={link}
|
|
401
|
+
type="button"
|
|
402
|
+
onClick={() => {
|
|
403
|
+
onNavigate(link.toLowerCase());
|
|
404
|
+
setMobileMenuOpen(false);
|
|
405
|
+
}}
|
|
406
|
+
className="text-left px-2 py-1.5 text-[14px] text-[#1d1d1f] font-medium bg-transparent border-0 cursor-pointer"
|
|
407
|
+
>
|
|
408
|
+
{link}
|
|
409
|
+
</button>
|
|
410
|
+
))}
|
|
411
|
+
</div>
|
|
412
|
+
)}
|
|
413
|
+
</header>
|
|
414
|
+
);
|
|
415
|
+
}
|
|
416
|
+
`}),t.push({path:`src/components/Hero.tsx`,language:`typescript`,content:`import React from 'react';
|
|
417
|
+
import { Sparkles, ArrowRight } from 'lucide-react';
|
|
418
|
+
|
|
419
|
+
interface HeroProps {
|
|
420
|
+
badge?: string;
|
|
421
|
+
headline?: string;
|
|
422
|
+
subhead?: string;
|
|
423
|
+
primaryBtnText?: string;
|
|
424
|
+
onPrimaryClick?: () => void;
|
|
425
|
+
secondaryBtnText?: string;
|
|
426
|
+
onSecondaryClick?: () => void;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
export function Hero({
|
|
430
|
+
badge = 'Engineering Precision',
|
|
431
|
+
headline = 'Transform ideas into shipped software.',
|
|
432
|
+
subhead = 'The complete visual product engine for developers and design teams.',
|
|
433
|
+
primaryBtnText = 'Start Free Trial',
|
|
434
|
+
onPrimaryClick,
|
|
435
|
+
secondaryBtnText = 'View Pricing',
|
|
436
|
+
onSecondaryClick,
|
|
437
|
+
}: HeroProps) {
|
|
438
|
+
return (
|
|
439
|
+
<section className="w-full py-16 md:py-24 px-6 flex flex-col items-center justify-center text-center">
|
|
440
|
+
{badge && (
|
|
441
|
+
<span className="inline-flex items-center gap-1.5 px-3.5 py-1 rounded-full bg-[#e8f2fc] text-[#0071e3] text-[12px] font-medium border border-[#d0e5fa] mb-6">
|
|
442
|
+
<Sparkles className="w-3.5 h-3.5" />
|
|
443
|
+
<span>{badge}</span>
|
|
444
|
+
</span>
|
|
445
|
+
)}
|
|
446
|
+
<h1 className="text-4xl md:text-5xl lg:text-6xl font-bold tracking-tight text-[#1d1d1f] max-w-3xl leading-[1.1] mb-5">
|
|
447
|
+
{headline}
|
|
448
|
+
</h1>
|
|
449
|
+
<p className="text-base md:text-lg text-[#6e6e73] max-w-xl leading-relaxed mb-8">
|
|
450
|
+
{subhead}
|
|
451
|
+
</p>
|
|
452
|
+
<div className="flex flex-col sm:flex-row items-center gap-3 w-full sm:w-auto">
|
|
453
|
+
<button
|
|
454
|
+
type="button"
|
|
455
|
+
onClick={onPrimaryClick}
|
|
456
|
+
className="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-6 py-2.5 rounded-[10px] bg-[#0071e3] hover:bg-[#0077ed] text-white text-[14.5px] font-medium shadow-sm transition-all cursor-pointer border-0"
|
|
457
|
+
>
|
|
458
|
+
<span>{primaryBtnText}</span>
|
|
459
|
+
<ArrowRight className="w-4 h-4" />
|
|
460
|
+
</button>
|
|
461
|
+
{secondaryBtnText && (
|
|
462
|
+
<button
|
|
463
|
+
type="button"
|
|
464
|
+
onClick={onSecondaryClick}
|
|
465
|
+
className="w-full sm:w-auto px-6 py-2.5 rounded-[10px] bg-white border border-[#e5e5ea] hover:bg-[#f4f4f6] text-[#1d1d1f] text-[14.5px] font-medium shadow-sm transition-all cursor-pointer"
|
|
466
|
+
>
|
|
467
|
+
{secondaryBtnText}
|
|
468
|
+
</button>
|
|
469
|
+
)}
|
|
470
|
+
</div>
|
|
471
|
+
</section>
|
|
472
|
+
);
|
|
473
|
+
}
|
|
474
|
+
`}),t.push({path:`src/components/PricingCard.tsx`,language:`typescript`,content:`import React from 'react';
|
|
475
|
+
import { Check } from 'lucide-react';
|
|
476
|
+
|
|
477
|
+
interface PricingCardProps {
|
|
478
|
+
planName: string;
|
|
479
|
+
price: string;
|
|
480
|
+
period?: string;
|
|
481
|
+
description?: string;
|
|
482
|
+
buttonText?: string;
|
|
483
|
+
features?: string[];
|
|
484
|
+
isPopular?: boolean;
|
|
485
|
+
onSelect?: () => void;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
export function PricingCard({
|
|
489
|
+
planName,
|
|
490
|
+
price,
|
|
491
|
+
period = '/month',
|
|
492
|
+
description,
|
|
493
|
+
buttonText = 'Get Started',
|
|
494
|
+
features = [
|
|
495
|
+
'Full visual design workbench',
|
|
496
|
+
'High-resolution code export',
|
|
497
|
+
'Responsive mobile layouts',
|
|
498
|
+
'Interactive runtime prototype',
|
|
499
|
+
],
|
|
500
|
+
isPopular = false,
|
|
501
|
+
onSelect,
|
|
502
|
+
}: PricingCardProps) {
|
|
503
|
+
return (
|
|
504
|
+
<article
|
|
505
|
+
style={{
|
|
506
|
+
display: 'flex',
|
|
507
|
+
flexDirection: 'column',
|
|
508
|
+
justifyContent: 'space-between',
|
|
509
|
+
padding: '1.75rem',
|
|
510
|
+
borderRadius: '16px',
|
|
511
|
+
backgroundColor: '#ffffff',
|
|
512
|
+
border: isPopular ? '2px solid #0071e3' : '1px solid #e5e5ea',
|
|
513
|
+
boxShadow: isPopular ? '0 8px 24px rgba(0, 113, 227, 0.12)' : '0 2px 8px rgba(0,0,0,0.04)',
|
|
514
|
+
}}
|
|
515
|
+
>
|
|
516
|
+
<div>
|
|
517
|
+
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '0.5rem' }}>
|
|
518
|
+
<h3 style={{ fontSize: '1.125rem', fontWeight: 600, color: '#1d1d1f' }}>{planName}</h3>
|
|
519
|
+
{isPopular && (
|
|
520
|
+
<span style={{ fontSize: '0.6875rem', fontWeight: 600, backgroundColor: '#0071e3', color: '#ffffff', padding: '0.2rem 0.6rem', borderRadius: '999px' }}>
|
|
521
|
+
Popular
|
|
522
|
+
</span>
|
|
523
|
+
)}
|
|
524
|
+
</div>
|
|
525
|
+
<div style={{ display: 'flex', alignItems: 'baseline', gap: '0.25rem', marginBottom: '0.75rem' }}>
|
|
526
|
+
<span style={{ fontSize: '2.25rem', fontWeight: 700, letterSpacing: '-0.02em', color: '#1d1d1f' }}>{price}</span>
|
|
527
|
+
<span style={{ fontSize: '0.8125rem', color: '#86868b' }}>{period}</span>
|
|
528
|
+
</div>
|
|
529
|
+
{description && (
|
|
530
|
+
<p style={{ fontSize: '0.875rem', color: '#6e6e73', lineHeight: 1.5, marginBottom: '1.5rem' }}>
|
|
531
|
+
{description}
|
|
532
|
+
</p>
|
|
533
|
+
)}
|
|
534
|
+
|
|
535
|
+
<ul style={{ listStyle: 'none', padding: 0, margin: '0 0 1.5rem 0', display: 'flex', flexDirection: 'column', gap: '0.625rem' }}>
|
|
536
|
+
{features.map((feat, idx) => (
|
|
537
|
+
<li key={idx} style={{ display: 'flex', alignItems: 'center', gap: '0.5rem', fontSize: '0.8125rem', color: '#1d1d1f' }}>
|
|
538
|
+
<Check style={{ width: '1rem', height: '1rem', color: '#0071e3', flexShrink: 0 }} />
|
|
539
|
+
<span>{feat}</span>
|
|
540
|
+
</li>
|
|
541
|
+
))}
|
|
542
|
+
</ul>
|
|
543
|
+
</div>
|
|
544
|
+
|
|
545
|
+
<button
|
|
546
|
+
type="button"
|
|
547
|
+
onClick={onSelect}
|
|
548
|
+
style={{
|
|
549
|
+
width: '100%',
|
|
550
|
+
padding: '0.625rem 1rem',
|
|
551
|
+
borderRadius: '10px',
|
|
552
|
+
fontSize: '0.875rem',
|
|
553
|
+
fontWeight: 600,
|
|
554
|
+
border: 'none',
|
|
555
|
+
cursor: 'pointer',
|
|
556
|
+
transition: 'all 0.15s ease',
|
|
557
|
+
backgroundColor: isPopular ? '#0071e3' : '#f4f4f6',
|
|
558
|
+
color: isPopular ? '#ffffff' : '#1d1d1f',
|
|
559
|
+
}}
|
|
560
|
+
>
|
|
561
|
+
{buttonText}
|
|
562
|
+
</button>
|
|
563
|
+
</article>
|
|
564
|
+
);
|
|
565
|
+
}
|
|
566
|
+
`}),t.push({path:`src/components/MetricCard.tsx`,language:`typescript`,content:`import React from 'react';
|
|
567
|
+
|
|
568
|
+
interface MetricCardProps {
|
|
569
|
+
title: string;
|
|
570
|
+
value: string;
|
|
571
|
+
change?: string;
|
|
572
|
+
isPositive?: boolean;
|
|
573
|
+
timeframe?: string;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
export function MetricCard({
|
|
577
|
+
title,
|
|
578
|
+
value,
|
|
579
|
+
change,
|
|
580
|
+
isPositive = true,
|
|
581
|
+
timeframe,
|
|
582
|
+
}: MetricCardProps) {
|
|
583
|
+
return (
|
|
584
|
+
<div style={{
|
|
585
|
+
padding: '1.25rem',
|
|
586
|
+
borderRadius: '14px',
|
|
587
|
+
backgroundColor: '#ffffff',
|
|
588
|
+
border: '1px solid #e5e5ea',
|
|
589
|
+
boxShadow: '0 2px 8px rgba(0,0,0,0.04)',
|
|
590
|
+
display: 'flex',
|
|
591
|
+
flexDirection: 'column',
|
|
592
|
+
justifyContent: 'space-between',
|
|
593
|
+
}}>
|
|
594
|
+
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '0.75rem' }}>
|
|
595
|
+
<span style={{ fontSize: '0.8125rem', fontWeight: 500, color: '#86868b' }}>{title}</span>
|
|
596
|
+
{change && (
|
|
597
|
+
<span style={{ fontSize: '0.75rem', fontWeight: 600, color: isPositive ? '#34c759' : '#ff3b30' }}>
|
|
598
|
+
{change}
|
|
599
|
+
</span>
|
|
600
|
+
)}
|
|
601
|
+
</div>
|
|
602
|
+
<div>
|
|
603
|
+
<div style={{ fontSize: '1.5rem', fontWeight: 700, letterSpacing: '-0.02em', color: '#1d1d1f' }}>{value}</div>
|
|
604
|
+
{timeframe && <div style={{ fontSize: '0.6875rem', color: '#86868b', marginTop: '0.125rem' }}>{timeframe}</div>}
|
|
605
|
+
</div>
|
|
606
|
+
</div>
|
|
607
|
+
);
|
|
608
|
+
}
|
|
609
|
+
`}),t.push({path:`src/components/DashboardCharts.tsx`,language:`typescript`,content:`import React from 'react';
|
|
610
|
+
import { TrendingUp, TrendingDown, ArrowRight, Sparkles, Check } from 'lucide-react';
|
|
611
|
+
|
|
612
|
+
export interface StatCardProps {
|
|
613
|
+
title: string;
|
|
614
|
+
value: string;
|
|
615
|
+
change?: string;
|
|
616
|
+
isPositive?: boolean;
|
|
617
|
+
timeframe?: string;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
export function StatCard({
|
|
621
|
+
title,
|
|
622
|
+
value,
|
|
623
|
+
change = '+14.2%',
|
|
624
|
+
isPositive = true,
|
|
625
|
+
timeframe = 'vs last month',
|
|
626
|
+
}: StatCardProps) {
|
|
627
|
+
return (
|
|
628
|
+
<div style={{
|
|
629
|
+
padding: '1.25rem',
|
|
630
|
+
borderRadius: '16px',
|
|
631
|
+
backgroundColor: '#ffffff',
|
|
632
|
+
border: '1px solid #e5e5ea',
|
|
633
|
+
boxShadow: '0 2px 8px rgba(0,0,0,0.04)',
|
|
634
|
+
display: 'flex',
|
|
635
|
+
flexDirection: 'column',
|
|
636
|
+
justifyContent: 'space-between',
|
|
637
|
+
}}>
|
|
638
|
+
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '0.75rem' }}>
|
|
639
|
+
<span style={{ fontSize: '0.75rem', fontWeight: 600, color: '#86868b' }}>{title}</span>
|
|
640
|
+
<div style={{
|
|
641
|
+
width: '28px',
|
|
642
|
+
height: '28px',
|
|
643
|
+
borderRadius: '8px',
|
|
644
|
+
backgroundColor: 'rgba(0, 113, 227, 0.08)',
|
|
645
|
+
color: '#0071e3',
|
|
646
|
+
display: 'flex',
|
|
647
|
+
alignItems: 'center',
|
|
648
|
+
justifyContent: 'center',
|
|
649
|
+
}}>
|
|
650
|
+
<TrendingUp style={{ width: '14px', height: '14px' }} />
|
|
651
|
+
</div>
|
|
652
|
+
</div>
|
|
653
|
+
<div>
|
|
654
|
+
<div style={{ fontSize: '1.5rem', fontWeight: 800, letterSpacing: '-0.02em', color: '#1d1d1f' }}>{value}</div>
|
|
655
|
+
<div style={{ display: 'flex', alignItems: 'center', gap: '0.375rem', marginTop: '0.25rem', fontSize: '0.6875rem' }}>
|
|
656
|
+
<span style={{
|
|
657
|
+
fontWeight: 700,
|
|
658
|
+
padding: '0.125rem 0.375rem',
|
|
659
|
+
borderRadius: '9999px',
|
|
660
|
+
backgroundColor: isPositive ? 'rgba(52, 199, 89, 0.12)' : 'rgba(255, 59, 48, 0.12)',
|
|
661
|
+
color: isPositive ? '#34c759' : '#ff3b30',
|
|
662
|
+
}}>
|
|
663
|
+
{change}
|
|
664
|
+
</span>
|
|
665
|
+
<span style={{ color: '#86868b' }}>{timeframe}</span>
|
|
666
|
+
</div>
|
|
667
|
+
</div>
|
|
668
|
+
</div>
|
|
669
|
+
);
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
export interface LineChartProps {
|
|
673
|
+
title?: string;
|
|
674
|
+
subtitle?: string;
|
|
675
|
+
data?: Array<{ label: string; value: number }>;
|
|
676
|
+
color?: string;
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
export function LineChart({
|
|
680
|
+
title = 'Revenue Growth',
|
|
681
|
+
subtitle = 'Monthly MRR performance',
|
|
682
|
+
data = [
|
|
683
|
+
{ label: 'Jan', value: 24000 },
|
|
684
|
+
{ label: 'Feb', value: 32500 },
|
|
685
|
+
{ label: 'Mar', value: 28900 },
|
|
686
|
+
{ label: 'Apr', value: 46200 },
|
|
687
|
+
{ label: 'May', value: 54100 },
|
|
688
|
+
{ label: 'Jun', value: 78900 },
|
|
689
|
+
],
|
|
690
|
+
color = '#0071e3',
|
|
691
|
+
}: LineChartProps) {
|
|
692
|
+
const maxVal = Math.max(...data.map(d => d.value), 1);
|
|
693
|
+
const w = 400;
|
|
694
|
+
const h = 180;
|
|
695
|
+
const padL = 40;
|
|
696
|
+
const padR = 20;
|
|
697
|
+
const padT = 20;
|
|
698
|
+
const padB = 30;
|
|
699
|
+
const chartW = w - padL - padR;
|
|
700
|
+
const chartH = h - padT - padB;
|
|
701
|
+
|
|
702
|
+
const points = data.map((d, i) => ({
|
|
703
|
+
x: padL + (i / (data.length - 1)) * chartW,
|
|
704
|
+
y: padT + chartH - (d.value / maxVal) * chartH,
|
|
705
|
+
...d,
|
|
706
|
+
}));
|
|
707
|
+
|
|
708
|
+
const path = points.reduce((acc, p, i) => {
|
|
709
|
+
if (i === 0) return \`M \${p.x} \${p.y}\`;
|
|
710
|
+
const prev = points[i - 1];
|
|
711
|
+
const cpX1 = prev.x + (p.x - prev.x) / 3;
|
|
712
|
+
const cpX2 = prev.x + ((p.x - prev.x) * 2) / 3;
|
|
713
|
+
return \`\${acc} C \${cpX1} \${prev.y}, \${cpX2} \${p.y}, \${p.x} \${p.y}\`;
|
|
714
|
+
}, '');
|
|
715
|
+
|
|
716
|
+
return (
|
|
717
|
+
<div style={{
|
|
718
|
+
padding: '1.25rem',
|
|
719
|
+
borderRadius: '16px',
|
|
720
|
+
backgroundColor: '#ffffff',
|
|
721
|
+
border: '1px solid #e5e5ea',
|
|
722
|
+
boxShadow: '0 2px 8px rgba(0,0,0,0.04)',
|
|
723
|
+
}}>
|
|
724
|
+
<div style={{ marginBottom: '0.75rem' }}>
|
|
725
|
+
<h4 style={{ fontSize: '0.875rem', fontWeight: 700, color: '#1d1d1f', margin: 0 }}>{title}</h4>
|
|
726
|
+
{subtitle && <p style={{ fontSize: '0.6875rem', color: '#86868b', margin: '0.25rem 0 0 0' }}>{subtitle}</p>}
|
|
727
|
+
</div>
|
|
728
|
+
<svg width="100%" height={h} viewBox={\`0 0 \${w} \${h}\`} style={{ overflow: 'visible' }}>
|
|
729
|
+
{[0, 0.5, 1].map((step, idx) => (
|
|
730
|
+
<line
|
|
731
|
+
key={idx}
|
|
732
|
+
x1={padL}
|
|
733
|
+
y1={padT + chartH * (1 - step)}
|
|
734
|
+
x2={padL + chartW}
|
|
735
|
+
y2={padT + chartH * (1 - step)}
|
|
736
|
+
stroke="#e5e5ea"
|
|
737
|
+
strokeDasharray="3 3"
|
|
738
|
+
/>
|
|
739
|
+
))}
|
|
740
|
+
<path d={path} fill="none" stroke={color} strokeWidth="2.5" strokeLinecap="round" />
|
|
741
|
+
{points.map((p, i) => (
|
|
742
|
+
<g key={i}>
|
|
743
|
+
<circle cx={p.x} cy={p.y} r="4" fill="#ffffff" stroke={color} strokeWidth="2" />
|
|
744
|
+
<text x={p.x} y={h - 8} textAnchor="middle" fontSize="10" fill="#86868b">
|
|
745
|
+
{p.label}
|
|
746
|
+
</text>
|
|
747
|
+
</g>
|
|
748
|
+
))}
|
|
749
|
+
</svg>
|
|
750
|
+
</div>
|
|
751
|
+
);
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
export interface DataTableProps {
|
|
755
|
+
title?: string;
|
|
756
|
+
columns?: string[];
|
|
757
|
+
rows?: Array<{ [key: string]: any }>;
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
export function DataTable({
|
|
761
|
+
title = 'Recent Activity',
|
|
762
|
+
columns = ['Customer', 'Plan', 'Amount', 'Status', 'Date'],
|
|
763
|
+
rows = [
|
|
764
|
+
{ customer: 'Acme Corp', plan: 'Enterprise', amount: '$4,800.00', status: 'Completed', date: 'Just now' },
|
|
765
|
+
{ customer: 'Linear Labs', plan: 'Pro Studio', amount: '$590.00', status: 'Completed', date: '5m ago' },
|
|
766
|
+
{ customer: 'Vercel Edge', plan: 'Enterprise', amount: '$12,400.00', status: 'Processing', date: '22m ago' },
|
|
767
|
+
],
|
|
768
|
+
}: DataTableProps) {
|
|
769
|
+
return (
|
|
770
|
+
<div style={{
|
|
771
|
+
padding: '1.25rem',
|
|
772
|
+
borderRadius: '16px',
|
|
773
|
+
backgroundColor: '#ffffff',
|
|
774
|
+
border: '1px solid #e5e5ea',
|
|
775
|
+
boxShadow: '0 2px 8px rgba(0,0,0,0.04)',
|
|
776
|
+
}}>
|
|
777
|
+
{title && <h4 style={{ fontSize: '0.875rem', fontWeight: 700, color: '#1d1d1f', marginBottom: '0.75rem' }}>{title}</h4>}
|
|
778
|
+
<table style={{ width: '100%', borderCollapse: 'collapse', fontSize: '0.75rem' }}>
|
|
779
|
+
<thead>
|
|
780
|
+
<tr style={{ borderBottom: '1px solid #f4f4f6', color: '#86868b', textAlign: 'left' }}>
|
|
781
|
+
{columns.map((c, i) => (
|
|
782
|
+
<th key={i} style={{ padding: '0.5rem', fontWeight: 600 }}>{c}</th>
|
|
783
|
+
))}
|
|
784
|
+
</tr>
|
|
785
|
+
</thead>
|
|
786
|
+
<tbody>
|
|
787
|
+
{rows.map((r, i) => (
|
|
788
|
+
<tr key={i} style={{ borderBottom: '1px solid #f4f4f6' }}>
|
|
789
|
+
<td style={{ padding: '0.5rem', fontWeight: 600, color: '#1d1d1f' }}>{r.customer || r.name}</td>
|
|
790
|
+
<td style={{ padding: '0.5rem', color: '#6e6e73' }}>{r.plan || r.category}</td>
|
|
791
|
+
<td style={{ padding: '0.5rem', fontFamily: 'monospace', fontWeight: 600 }}>{r.amount}</td>
|
|
792
|
+
<td style={{ padding: '0.5rem' }}>
|
|
793
|
+
<span style={{
|
|
794
|
+
padding: '0.125rem 0.5rem',
|
|
795
|
+
borderRadius: '9999px',
|
|
796
|
+
fontSize: '0.625rem',
|
|
797
|
+
fontWeight: 700,
|
|
798
|
+
backgroundColor: r.status === 'Completed' ? 'rgba(52, 199, 89, 0.12)' : 'rgba(255, 149, 0, 0.12)',
|
|
799
|
+
color: r.status === 'Completed' ? '#34c759' : '#ff9500',
|
|
800
|
+
}}>
|
|
801
|
+
{r.status}
|
|
802
|
+
</span>
|
|
803
|
+
</td>
|
|
804
|
+
<td style={{ padding: '0.5rem', color: '#86868b' }}>{r.date}</td>
|
|
805
|
+
</tr>
|
|
806
|
+
))}
|
|
807
|
+
</tbody>
|
|
808
|
+
</table>
|
|
809
|
+
</div>
|
|
810
|
+
);
|
|
811
|
+
}
|
|
812
|
+
`});let d=(e.variables||[]).map(e=>`export const ${e.name} = ${JSON.stringify(e.sampleValue??e.defaultValue,null,2)};`).join(`
|
|
813
|
+
|
|
814
|
+
`);t.push({path:`src/data/variables.ts`,language:`typescript`,content:`// Auto-generated Cyrus Project Data & Variables\n\n${d||`export const defaultState = {};`}\n`}),t.push({path:`src/components/ProductCard.tsx`,language:`typescript`,content:`import React from 'react';
|
|
815
|
+
import { Star, ShoppingBag } from 'lucide-react';
|
|
816
|
+
|
|
817
|
+
export interface ProductCardProps {
|
|
818
|
+
title: string;
|
|
819
|
+
price: string;
|
|
820
|
+
image?: string;
|
|
821
|
+
rating?: number;
|
|
822
|
+
badge?: string;
|
|
823
|
+
onAddToCart?: () => void;
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
export function ProductCard({
|
|
827
|
+
title,
|
|
828
|
+
price,
|
|
829
|
+
image = 'https://images.unsplash.com/photo-1542291026-7eec264c27ff?w=600&auto=format&fit=crop&q=80',
|
|
830
|
+
rating = 4.9,
|
|
831
|
+
badge,
|
|
832
|
+
onAddToCart,
|
|
833
|
+
}: ProductCardProps) {
|
|
834
|
+
return (
|
|
835
|
+
<div style={{
|
|
836
|
+
borderRadius: '16px',
|
|
837
|
+
backgroundColor: '#ffffff',
|
|
838
|
+
border: '1px solid #e5e5ea',
|
|
839
|
+
overflow: 'hidden',
|
|
840
|
+
boxShadow: '0 2px 8px rgba(0,0,0,0.04)',
|
|
841
|
+
display: 'flex',
|
|
842
|
+
flexDirection: 'column',
|
|
843
|
+
}}>
|
|
844
|
+
<div style={{ position: 'relative', width: '100%', height: '180px', backgroundColor: '#f4f4f6' }}>
|
|
845
|
+
<img src={image} alt={title} style={{ width: '100%', height: '100%', objectFit: 'cover' }} />
|
|
846
|
+
{badge && (
|
|
847
|
+
<span style={{
|
|
848
|
+
position: 'absolute',
|
|
849
|
+
top: '10px',
|
|
850
|
+
left: '10px',
|
|
851
|
+
backgroundColor: '#0071e3',
|
|
852
|
+
color: '#fff',
|
|
853
|
+
fontSize: '10px',
|
|
854
|
+
fontWeight: 600,
|
|
855
|
+
padding: '2px 8px',
|
|
856
|
+
borderRadius: '99px',
|
|
857
|
+
}}>
|
|
858
|
+
{badge}
|
|
859
|
+
</span>
|
|
860
|
+
)}
|
|
861
|
+
</div>
|
|
862
|
+
|
|
863
|
+
<div style={{ padding: '16px', display: 'flex', flexDirection: 'column', flex: 1, justifyContent: 'space-between' }}>
|
|
864
|
+
<div>
|
|
865
|
+
<div style={{ display: 'flex', alignItems: 'center', gap: '4px', marginBottom: '6px' }}>
|
|
866
|
+
<Star style={{ width: '12px', height: '12px', fill: '#ff9500', color: '#ff9500' }} />
|
|
867
|
+
<span style={{ fontSize: '11px', fontWeight: 600, color: '#1d1d1f' }}>{rating}</span>
|
|
868
|
+
</div>
|
|
869
|
+
<h4 style={{ fontSize: '14px', fontWeight: 600, color: '#1d1d1f', marginBottom: '4px' }}>{title}</h4>
|
|
870
|
+
<div style={{ fontSize: '15px', fontWeight: 700, color: '#0071e3' }}>{price}</div>
|
|
871
|
+
</div>
|
|
872
|
+
|
|
873
|
+
<button
|
|
874
|
+
type="button"
|
|
875
|
+
onClick={onAddToCart}
|
|
876
|
+
style={{
|
|
877
|
+
marginTop: '12px',
|
|
878
|
+
width: '100%',
|
|
879
|
+
padding: '8px 12px',
|
|
880
|
+
borderRadius: '8px',
|
|
881
|
+
backgroundColor: '#f4f4f6',
|
|
882
|
+
color: '#1d1d1f',
|
|
883
|
+
fontSize: '12px',
|
|
884
|
+
fontWeight: 600,
|
|
885
|
+
border: 'none',
|
|
886
|
+
display: 'flex',
|
|
887
|
+
alignItems: 'center',
|
|
888
|
+
justifyContent: 'center',
|
|
889
|
+
gap: '6px',
|
|
890
|
+
cursor: 'pointer',
|
|
891
|
+
}}
|
|
892
|
+
>
|
|
893
|
+
<ShoppingBag style={{ width: '13px', height: '13px' }} />
|
|
894
|
+
<span>Add to Bag</span>
|
|
895
|
+
</button>
|
|
896
|
+
</div>
|
|
897
|
+
</div>
|
|
898
|
+
);
|
|
899
|
+
}
|
|
900
|
+
`}),t.push({path:`src/components/LoginForm.tsx`,language:`typescript`,content:`import React, { useState } from 'react';
|
|
901
|
+
import { Lock } from 'lucide-react';
|
|
902
|
+
|
|
903
|
+
export interface LoginFormProps {
|
|
904
|
+
title?: string;
|
|
905
|
+
subtitle?: string;
|
|
906
|
+
onSubmit?: (values: { email: string; pass: string }) => void;
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
export function LoginForm({
|
|
910
|
+
title = 'Sign In to Your Account',
|
|
911
|
+
subtitle = 'Enter your credentials to access workspace',
|
|
912
|
+
onSubmit,
|
|
913
|
+
}: LoginFormProps) {
|
|
914
|
+
const [email, setEmail] = useState('');
|
|
915
|
+
const [pass, setPass] = useState('');
|
|
916
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
917
|
+
|
|
918
|
+
const handleSubmit = (e: React.FormEvent) => {
|
|
919
|
+
e.preventDefault();
|
|
920
|
+
setIsSubmitting(true);
|
|
921
|
+
setTimeout(() => {
|
|
922
|
+
setIsSubmitting(false);
|
|
923
|
+
onSubmit?.({ email, pass });
|
|
924
|
+
}, 600);
|
|
925
|
+
};
|
|
926
|
+
|
|
927
|
+
return (
|
|
928
|
+
<form onSubmit={handleSubmit} style={{
|
|
929
|
+
maxWidth: '400px',
|
|
930
|
+
margin: '0 auto',
|
|
931
|
+
padding: '32px',
|
|
932
|
+
borderRadius: '18px',
|
|
933
|
+
backgroundColor: '#ffffff',
|
|
934
|
+
border: '1px solid #e5e5ea',
|
|
935
|
+
boxShadow: '0 8px 30px rgba(0,0,0,0.06)',
|
|
936
|
+
display: 'flex',
|
|
937
|
+
flexDirection: 'column',
|
|
938
|
+
gap: '16px',
|
|
939
|
+
}}>
|
|
940
|
+
<div style={{ textAlign: 'center' }}>
|
|
941
|
+
<div style={{
|
|
942
|
+
width: '36px',
|
|
943
|
+
height: '36px',
|
|
944
|
+
borderRadius: '10px',
|
|
945
|
+
backgroundColor: '#0071e3',
|
|
946
|
+
color: '#ffffff',
|
|
947
|
+
display: 'inline-flex',
|
|
948
|
+
alignItems: 'center',
|
|
949
|
+
justifyContent: 'center',
|
|
950
|
+
marginBottom: '12px',
|
|
951
|
+
}}>
|
|
952
|
+
<Lock style={{ width: '18px', height: '18px' }} />
|
|
953
|
+
</div>
|
|
954
|
+
<h3 style={{ fontSize: '18px', fontWeight: 700, color: '#1d1d1f' }}>{title}</h3>
|
|
955
|
+
<p style={{ fontSize: '12px', color: '#86868b', marginTop: '4px' }}>{subtitle}</p>
|
|
956
|
+
</div>
|
|
957
|
+
|
|
958
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '12px' }}>
|
|
959
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>
|
|
960
|
+
<label style={{ fontSize: '11.5px', fontWeight: 600, color: '#6e6e73' }}>Email</label>
|
|
961
|
+
<input
|
|
962
|
+
type="email"
|
|
963
|
+
required
|
|
964
|
+
value={email}
|
|
965
|
+
onChange={(e) => setEmail(e.target.value)}
|
|
966
|
+
placeholder="name@company.com"
|
|
967
|
+
style={{
|
|
968
|
+
height: '36px',
|
|
969
|
+
padding: '0 12px',
|
|
970
|
+
borderRadius: '8px',
|
|
971
|
+
border: '1px solid #e5e5ea',
|
|
972
|
+
fontSize: '13px',
|
|
973
|
+
outline: 'none',
|
|
974
|
+
}}
|
|
975
|
+
/>
|
|
976
|
+
</div>
|
|
977
|
+
|
|
978
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>
|
|
979
|
+
<div style={{ display: 'flex', justifyContent: 'space-between', fontSize: '11.5px' }}>
|
|
980
|
+
<label style={{ fontWeight: 600, color: '#6e6e73' }}>Password</label>
|
|
981
|
+
<span style={{ color: '#0071e3', cursor: 'pointer' }}>Forgot?</span>
|
|
982
|
+
</div>
|
|
983
|
+
<input
|
|
984
|
+
type="password"
|
|
985
|
+
required
|
|
986
|
+
value={pass}
|
|
987
|
+
onChange={(e) => setPass(e.target.value)}
|
|
988
|
+
placeholder="••••••••••••"
|
|
989
|
+
style={{
|
|
990
|
+
height: '36px',
|
|
991
|
+
padding: '0 12px',
|
|
992
|
+
borderRadius: '8px',
|
|
993
|
+
border: '1px solid #e5e5ea',
|
|
994
|
+
fontSize: '13px',
|
|
995
|
+
outline: 'none',
|
|
996
|
+
}}
|
|
997
|
+
/>
|
|
998
|
+
</div>
|
|
999
|
+
</div>
|
|
1000
|
+
|
|
1001
|
+
<button
|
|
1002
|
+
type="submit"
|
|
1003
|
+
disabled={isSubmitting}
|
|
1004
|
+
style={{
|
|
1005
|
+
width: '100%',
|
|
1006
|
+
padding: '10px',
|
|
1007
|
+
borderRadius: '10px',
|
|
1008
|
+
backgroundColor: '#0071e3',
|
|
1009
|
+
color: '#ffffff',
|
|
1010
|
+
fontWeight: 600,
|
|
1011
|
+
fontSize: '13.5px',
|
|
1012
|
+
border: 'none',
|
|
1013
|
+
cursor: isSubmitting ? 'not-allowed' : 'pointer',
|
|
1014
|
+
opacity: isSubmitting ? 0.7 : 1,
|
|
1015
|
+
}}
|
|
1016
|
+
>
|
|
1017
|
+
{isSubmitting ? 'Signing In...' : 'Sign In'}
|
|
1018
|
+
</button>
|
|
1019
|
+
</form>
|
|
1020
|
+
);
|
|
1021
|
+
}
|
|
1022
|
+
`}),t.push({path:`src/components/Modal.tsx`,language:`typescript`,content:`import React, { useEffect } from 'react';
|
|
1023
|
+
import { X } from 'lucide-react';
|
|
1024
|
+
|
|
1025
|
+
interface ModalProps {
|
|
1026
|
+
isOpen: boolean;
|
|
1027
|
+
onClose: () => void;
|
|
1028
|
+
title: string;
|
|
1029
|
+
children: React.ReactNode;
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
export function Modal({ isOpen, onClose, title, children }: ModalProps) {
|
|
1033
|
+
useEffect(() => {
|
|
1034
|
+
const handleKeyDown = (e: KeyboardEvent) => {
|
|
1035
|
+
if (e.key === 'Escape') onClose();
|
|
1036
|
+
};
|
|
1037
|
+
if (isOpen) window.addEventListener('keydown', handleKeyDown);
|
|
1038
|
+
return () => window.removeEventListener('keydown', handleKeyDown);
|
|
1039
|
+
}, [isOpen, onClose]);
|
|
1040
|
+
|
|
1041
|
+
if (!isOpen) return null;
|
|
1042
|
+
|
|
1043
|
+
return (
|
|
1044
|
+
<div
|
|
1045
|
+
onClick={onClose}
|
|
1046
|
+
style={{
|
|
1047
|
+
position: 'fixed',
|
|
1048
|
+
inset: 0,
|
|
1049
|
+
backgroundColor: 'rgba(0,0,0,0.45)',
|
|
1050
|
+
backdropFilter: 'blur(4px)',
|
|
1051
|
+
display: 'flex',
|
|
1052
|
+
alignItems: 'center',
|
|
1053
|
+
justifyContent: 'center',
|
|
1054
|
+
padding: '1.5rem',
|
|
1055
|
+
zIndex: 9999,
|
|
1056
|
+
}}
|
|
1057
|
+
>
|
|
1058
|
+
<div
|
|
1059
|
+
onClick={(e) => e.stopPropagation()}
|
|
1060
|
+
style={{
|
|
1061
|
+
width: '100%',
|
|
1062
|
+
maxWidth: '440px',
|
|
1063
|
+
backgroundColor: '#ffffff',
|
|
1064
|
+
borderRadius: '16px',
|
|
1065
|
+
border: '1px solid #e5e5ea',
|
|
1066
|
+
boxShadow: '0 20px 40px rgba(0,0,0,0.15)',
|
|
1067
|
+
overflow: 'hidden',
|
|
1068
|
+
}}
|
|
1069
|
+
>
|
|
1070
|
+
<div style={{ padding: '1rem 1.25rem', borderBottom: '1px solid #f4f4f6', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
|
|
1071
|
+
<h3 style={{ fontSize: '0.9375rem', fontWeight: 600, color: '#1d1d1f' }}>{title}</h3>
|
|
1072
|
+
<button
|
|
1073
|
+
type="button"
|
|
1074
|
+
onClick={onClose}
|
|
1075
|
+
style={{
|
|
1076
|
+
width: '1.75rem',
|
|
1077
|
+
height: '1.75rem',
|
|
1078
|
+
borderRadius: '50%',
|
|
1079
|
+
backgroundColor: '#f4f4f6',
|
|
1080
|
+
border: 'none',
|
|
1081
|
+
cursor: 'pointer',
|
|
1082
|
+
display: 'flex',
|
|
1083
|
+
alignItems: 'center',
|
|
1084
|
+
justifyContent: 'center',
|
|
1085
|
+
color: '#86868b',
|
|
1086
|
+
}}
|
|
1087
|
+
>
|
|
1088
|
+
<X style={{ width: '1rem', height: '1rem' }} />
|
|
1089
|
+
</button>
|
|
1090
|
+
</div>
|
|
1091
|
+
<div style={{ padding: '1.25rem' }}>{children}</div>
|
|
1092
|
+
</div>
|
|
1093
|
+
</div>
|
|
1094
|
+
);
|
|
1095
|
+
}
|
|
1096
|
+
`}),t.push({path:`src/components/Footer.tsx`,language:`typescript`,content:`import React from 'react';
|
|
1097
|
+
|
|
1098
|
+
export function Footer() {
|
|
1099
|
+
return (
|
|
1100
|
+
<footer style={{
|
|
1101
|
+
width: '100%',
|
|
1102
|
+
borderTop: '1px solid #e5e5ea',
|
|
1103
|
+
backgroundColor: '#ffffff',
|
|
1104
|
+
padding: '2rem 1.5rem',
|
|
1105
|
+
marginTop: '4rem',
|
|
1106
|
+
fontSize: '0.8125rem',
|
|
1107
|
+
color: '#86868b',
|
|
1108
|
+
textAlign: 'center',
|
|
1109
|
+
}}>
|
|
1110
|
+
<div style={{ maxWidth: '1000px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '0.5rem', alignItems: 'center' }}>
|
|
1111
|
+
<span style={{ fontWeight: 600, color: '#1d1d1f' }}>${e.name}</span>
|
|
1112
|
+
<span>© 2026 ${e.name}. All rights reserved. Generated with Cyrus.</span>
|
|
1113
|
+
</div>
|
|
1114
|
+
</footer>
|
|
1115
|
+
);
|
|
1116
|
+
}
|
|
1117
|
+
`}),e.pages.forEach(e=>{let n=lc(e.name);t.push({path:`src/pages/${n}Page.tsx`,language:`typescript`,content:`import React from 'react';
|
|
1118
|
+
import { Hero } from '../components/Hero';
|
|
1119
|
+
import { PricingCard } from '../components/PricingCard';
|
|
1120
|
+
import { MetricCard } from '../components/MetricCard';
|
|
1121
|
+
|
|
1122
|
+
interface ${n}PageProps {
|
|
1123
|
+
onNavigate: (page: string) => void;
|
|
1124
|
+
onOpenModal: (title: string) => void;
|
|
1125
|
+
}
|
|
1126
|
+
|
|
1127
|
+
export function ${n}Page({ onNavigate, onOpenModal }: ${n}PageProps) {
|
|
1128
|
+
return (
|
|
1129
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '3rem' }}>
|
|
1130
|
+
${cc(e.sections)}
|
|
1131
|
+
</div>
|
|
1132
|
+
);
|
|
1133
|
+
}
|
|
1134
|
+
`})});let f=e.pages[0]?.slug||`home`;t.push({path:`src/App.tsx`,language:`typescript`,content:`import React, { useState } from 'react';
|
|
1135
|
+
import { Navbar } from './components/Navbar';
|
|
1136
|
+
import { Footer } from './components/Footer';
|
|
1137
|
+
import { Modal } from './components/Modal';
|
|
1138
|
+
${e.pages.map(e=>`import { ${lc(e.name)}Page } from './pages/${lc(e.name)}Page';`).join(`
|
|
1139
|
+
`)}
|
|
1140
|
+
|
|
1141
|
+
export function App() {
|
|
1142
|
+
const [activePage, setActivePage] = useState('${f}');
|
|
1143
|
+
const [modalState, setModalState] = useState<{ isOpen: boolean; title: string }>({
|
|
1144
|
+
isOpen: false,
|
|
1145
|
+
title: '',
|
|
1146
|
+
});
|
|
1147
|
+
|
|
1148
|
+
const handleOpenModal = (title: string) => {
|
|
1149
|
+
setModalState({ isOpen: true, title });
|
|
1150
|
+
};
|
|
1151
|
+
|
|
1152
|
+
const handleCloseModal = () => {
|
|
1153
|
+
setModalState({ isOpen: false, title: '' });
|
|
1154
|
+
};
|
|
1155
|
+
|
|
1156
|
+
return (
|
|
1157
|
+
<div style={{ minHeight: '100vh', display: 'flex', flexDirection: 'column' }}>
|
|
1158
|
+
<Navbar
|
|
1159
|
+
brandName="${e.name}"
|
|
1160
|
+
links={[${e.pages.map(e=>`'${e.name}'`).join(`, `)}]}
|
|
1161
|
+
activePage={activePage}
|
|
1162
|
+
onNavigate={(slug) => setActivePage(slug)}
|
|
1163
|
+
onOpenAuthModal={() => handleOpenModal('Sign in to ${e.name}')}
|
|
1164
|
+
/>
|
|
1165
|
+
|
|
1166
|
+
<main style={{ flex: 1, maxWidth: '1200px', width: '100%', margin: '0 auto', padding: '2rem 1.5rem' }}>
|
|
1167
|
+
${e.pages.map(e=>`{activePage === '${e.slug}' && <${lc(e.name)}Page onNavigate={setActivePage} onOpenModal={handleOpenModal} />}`).join(`
|
|
1168
|
+
`)}
|
|
1169
|
+
</main>
|
|
1170
|
+
|
|
1171
|
+
<Footer />
|
|
1172
|
+
|
|
1173
|
+
<Modal
|
|
1174
|
+
isOpen={modalState.isOpen}
|
|
1175
|
+
onClose={handleCloseModal}
|
|
1176
|
+
title={modalState.title}
|
|
1177
|
+
>
|
|
1178
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
|
|
1179
|
+
<p style={{ fontSize: '0.875rem', color: '#6e6e73' }}>
|
|
1180
|
+
Enter your work email address to continue to your workspace.
|
|
1181
|
+
</p>
|
|
1182
|
+
<input
|
|
1183
|
+
type="email"
|
|
1184
|
+
placeholder="you@company.com"
|
|
1185
|
+
style={{
|
|
1186
|
+
width: '100%',
|
|
1187
|
+
height: '2.5rem',
|
|
1188
|
+
padding: '0 0.75rem',
|
|
1189
|
+
borderRadius: '8px',
|
|
1190
|
+
border: '1px solid #e5e5ea',
|
|
1191
|
+
fontSize: '0.875rem',
|
|
1192
|
+
outline: 'none',
|
|
1193
|
+
}}
|
|
1194
|
+
/>
|
|
1195
|
+
<button
|
|
1196
|
+
type="button"
|
|
1197
|
+
onClick={handleCloseModal}
|
|
1198
|
+
style={{
|
|
1199
|
+
width: '100%',
|
|
1200
|
+
padding: '0.625rem',
|
|
1201
|
+
backgroundColor: '#0071e3',
|
|
1202
|
+
color: '#ffffff',
|
|
1203
|
+
borderRadius: '8px',
|
|
1204
|
+
border: 'none',
|
|
1205
|
+
fontWeight: 600,
|
|
1206
|
+
cursor: 'pointer',
|
|
1207
|
+
}}
|
|
1208
|
+
>
|
|
1209
|
+
Continue with Email
|
|
1210
|
+
</button>
|
|
1211
|
+
</div>
|
|
1212
|
+
</Modal>
|
|
1213
|
+
</div>
|
|
1214
|
+
);
|
|
1215
|
+
}
|
|
1216
|
+
`}),t.push({path:`README.md`,language:`json`,content:`# ${e.name}
|
|
1217
|
+
|
|
1218
|
+
Production application generated by **Cyrus** visual product builder.
|
|
1219
|
+
|
|
1220
|
+
## Getting Started
|
|
1221
|
+
|
|
1222
|
+
1. Install dependencies:
|
|
1223
|
+
\`\`\`bash
|
|
1224
|
+
npm install
|
|
1225
|
+
\`\`\`
|
|
1226
|
+
|
|
1227
|
+
2. Start the local development server:
|
|
1228
|
+
\`\`\`bash
|
|
1229
|
+
npm run dev
|
|
1230
|
+
\`\`\`
|
|
1231
|
+
|
|
1232
|
+
3. Build for production:
|
|
1233
|
+
\`\`\`bash
|
|
1234
|
+
npm run build
|
|
1235
|
+
\`\`\`
|
|
1236
|
+
`});for(let n of e.pages){let e=`${lc(n.name)}Page`;t.push({path:`src/pages/${e}.tsx`,language:`typescript`,content:`import React from 'react';
|
|
1237
|
+
import { SeoHead } from '../components/SeoHead';
|
|
1238
|
+
import { Hero } from '../components/Hero';
|
|
1239
|
+
import { PricingCard } from '../components/PricingCard';
|
|
1240
|
+
import { MetricCard } from '../components/MetricCard';
|
|
1241
|
+
import { LoginForm } from '../components/LoginForm';
|
|
1242
|
+
|
|
1243
|
+
interface ${e}Props {
|
|
1244
|
+
onNavigate: (slug: string) => void;
|
|
1245
|
+
onOpenModal: (title: string) => void;
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
export function ${e}({ onNavigate, onOpenModal }: ${e}Props) {
|
|
1249
|
+
return (
|
|
1250
|
+
<>
|
|
1251
|
+
<SeoHead title="${n.metaTitle||n.name}" description="${n.metaDescription||``}" />
|
|
1252
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '2.5rem' }}>
|
|
1253
|
+
${cc(n.sections)}
|
|
1254
|
+
</div>
|
|
1255
|
+
</>
|
|
1256
|
+
);
|
|
1257
|
+
}
|
|
1258
|
+
`})}return t}function cc(e){return!e||e.length===0?` <div className="p-8 text-center text-gray-500">Page Content Container</div>`:e.map(e=>{if(e.type===`hero`)return`<Hero
|
|
1259
|
+
badge="${e.props.badge||`Engineering`}"
|
|
1260
|
+
headline="${e.props.headline||`Transform ideas into shipped software.`}"
|
|
1261
|
+
subhead="${e.props.subhead||``}"
|
|
1262
|
+
primaryBtnText="${e.props.primaryBtnText||`Start Free Trial`}"
|
|
1263
|
+
onPrimaryClick={() => onNavigate('pricing')}
|
|
1264
|
+
secondaryBtnText="${e.props.secondaryBtnText||`View Pricing`}"
|
|
1265
|
+
onSecondaryClick={() => onNavigate('pricing')}
|
|
1266
|
+
/>`;if(e.type===`grid`)return`<div className="grid-responsive">
|
|
1267
|
+
${(e.children||[]).map(e=>e.type===`pricingCard`?` <PricingCard
|
|
1268
|
+
planName="${e.props.planName||`Pro`}"
|
|
1269
|
+
price="${e.props.price||`$29`}"
|
|
1270
|
+
period="${e.props.period||`/month`}"
|
|
1271
|
+
description="${e.props.description||``}"
|
|
1272
|
+
buttonText="${e.props.buttonText||`Subscribe`}"
|
|
1273
|
+
onSelect={() => onOpenModal('Subscribe to ${e.props.planName||`Plan`}')}
|
|
1274
|
+
/>`:e.type===`metricCard`?` <MetricCard
|
|
1275
|
+
title="${e.props.title||`Metric`}"
|
|
1276
|
+
value="${e.props.value||`$0`}"
|
|
1277
|
+
change="${e.props.change||``}"
|
|
1278
|
+
timeframe="${e.props.timeframe||``}"
|
|
1279
|
+
/>`:` <div style={{ padding: '1.5rem', backgroundColor: '#fff', border: '1px solid #e5e5ea', borderRadius: '14px' }}>
|
|
1280
|
+
<h4>${e.name}</h4>
|
|
1281
|
+
</div>`).join(`
|
|
1282
|
+
`)}
|
|
1283
|
+
</div>`;if(e.type===`pricingCard`)return`<div style={{ maxWidth: '400px', margin: '0 auto', width: '100%' }}>
|
|
1284
|
+
<PricingCard
|
|
1285
|
+
planName="${e.props.planName||`Pro`}"
|
|
1286
|
+
price="${e.props.price||`$29`}"
|
|
1287
|
+
period="${e.props.period||`/month`}"
|
|
1288
|
+
description="${e.props.description||``}"
|
|
1289
|
+
buttonText="${e.props.buttonText||`Get Started`}"
|
|
1290
|
+
onSelect={() => onOpenModal('Subscribe to ${e.props.planName||`Plan`}')}
|
|
1291
|
+
/>
|
|
1292
|
+
</div>`;if(e.collectionBinding){let{variableKey:t=`products`,columns:n=3}=e.collectionBinding;return`<div style={{ display: 'grid', gridTemplateColumns: 'repeat(${n}, 1fr)', gap: '1.5rem' }}>
|
|
1293
|
+
{${t}.map((item, idx) => (
|
|
1294
|
+
<ProductCard
|
|
1295
|
+
key={idx}
|
|
1296
|
+
title={item.name || item.title || 'Product Item'}
|
|
1297
|
+
price={item.price || '$0.00'}
|
|
1298
|
+
image={item.image}
|
|
1299
|
+
rating={item.rating}
|
|
1300
|
+
badge={item.badge}
|
|
1301
|
+
onAddToCart={() => onOpenModal('Added ' + (item.name || 'item') + ' to bag')}
|
|
1302
|
+
/>
|
|
1303
|
+
))}
|
|
1304
|
+
</div>`}if(e.type===`loginForm`)return`<div style={{ maxWidth: '420px', margin: '2rem auto', width: '100%' }}>
|
|
1305
|
+
<LoginForm
|
|
1306
|
+
title="${e.props.title||`Sign In to Your Account`}"
|
|
1307
|
+
subtitle="${e.props.subtitle||`Enter your email and password`}"
|
|
1308
|
+
onSubmit={(creds) => onOpenModal('Signed in successfully as ' + creds.email)}
|
|
1309
|
+
/>
|
|
1310
|
+
</div>`;if(e.type===`signupForm`)return`<div style={{ maxWidth: '420px', margin: '2rem auto', width: '100%' }}>
|
|
1311
|
+
<LoginForm
|
|
1312
|
+
title="${e.props.title||`Create Your Account`}"
|
|
1313
|
+
subtitle="${e.props.subtitle||`Start building with Cyrus`}"
|
|
1314
|
+
onSubmit={(creds) => onOpenModal('Account created for ' + creds.email)}
|
|
1315
|
+
/>
|
|
1316
|
+
</div>`;if(e.type===`contactForm`)return`<div style={{ maxWidth: '460px', margin: '2rem auto', width: '100%', padding: '2rem', backgroundColor: '#fff', borderRadius: '18px', border: '1px solid #e5e5ea' }}>
|
|
1317
|
+
<h3 style={{ fontSize: '1.25rem', fontWeight: 700, color: '#1d1d1f', marginBottom: '0.5rem' }}>${e.props.title||`Contact Our Team`}</h3>
|
|
1318
|
+
<p style={{ fontSize: '0.875rem', color: '#86868b', marginBottom: '1.5rem' }}>${e.props.subtitle||`We respond within 24 hours.`}</p>
|
|
1319
|
+
<form onSubmit={(e) => { e.preventDefault(); onOpenModal('Message sent successfully!'); }} style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
|
|
1320
|
+
<input required type="text" placeholder="Your Name" style={{ height: '38px', padding: '0 12px', borderRadius: '8px', border: '1px solid #e5e5ea', fontSize: '13px' }} />
|
|
1321
|
+
<input required type="email" placeholder="Your Email" style={{ height: '38px', padding: '0 12px', borderRadius: '8px', border: '1px solid #e5e5ea', fontSize: '13px' }} />
|
|
1322
|
+
<textarea required rows={3} placeholder="How can we help?" style={{ padding: '10px 12px', borderRadius: '8px', border: '1px solid #e5e5ea', fontSize: '13px', resize: 'none' }} />
|
|
1323
|
+
<button type="submit" style={{ padding: '10px', borderRadius: '10px', backgroundColor: '#0071e3', color: '#fff', fontWeight: 600, border: 'none', cursor: 'pointer' }}>
|
|
1324
|
+
${e.props.submitLabel||`Send Message`}
|
|
1325
|
+
</button>
|
|
1326
|
+
</form>
|
|
1327
|
+
</div>`;let t=e.accessibility||{},n=t.semanticTag&&t.semanticTag!==`div`?t.semanticTag:`div`;return`<${n}${t.ariaRole&&t.ariaRole!==`presentation`?` role="${t.ariaRole}"`:``}${t.ariaLabel?` aria-label="${t.ariaLabel}"`:``} style={{ padding: '1.5rem', backgroundColor: '#ffffff', borderRadius: '14px', border: '1px solid #e5e5ea' }}>
|
|
1328
|
+
<h3 style={{ fontSize: '1.125rem', fontWeight: 600, color: '#1d1d1f' }}>${e.name}</h3>
|
|
1329
|
+
</${n}>`}).join(`
|
|
1330
|
+
|
|
1331
|
+
`)}function lc(e){return e.replace(/[^a-zA-Z0-9]/g,` `).split(` `).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``)||`Page`}function uc(e){let t=e.replace(/\0/g,``).replace(/\\/g,`/`);return t=t.replace(/^\/+/,``),t.split(`/`).filter(e=>e&&e!==`.`&&e!==`..`).join(`/`)}function dc(e,t,n){let r=t.split(`
|
|
1332
|
+
`),i=n.split(`
|
|
1333
|
+
`),a=0,o=0,s=[],c=0,l=0;for(;c<r.length||l<i.length;)c<r.length&&l<i.length&&r[c]===i[l]?(s.push({type:`same`,text:r[c],oldLineNumber:c+1,newLineNumber:l+1}),c++,l++):l<i.length&&(c>=r.length||!r.includes(i[l]))?(s.push({type:`add`,text:i[l],newLineNumber:l+1}),a++,l++):c<r.length&&(s.push({type:`del`,text:r[c],oldLineNumber:c+1}),o++,c++);return{path:uc(e),originalContent:t,newContent:n,addedLines:a,removedLines:o,hunks:s}}function fc(e,t){return{id:M(`chk`),description:e,timestamp:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),files:JSON.parse(JSON.stringify(t))}}function pc(e){let t=[],n=[];for(let[r,i]of Object.entries(e)){if(r.endsWith(`.json`)){try{JSON.parse(i)}catch(e){t.push(`[SyntaxError] in ${r}: Invalid JSON format (${e.message}).`)}continue}if(r.endsWith(`.css`)){let e=(i.match(/\{/g)||[]).length,n=(i.match(/\}/g)||[]).length;e!==n&&t.push(`[CSSError] in ${r}: Unmatched braces ({ = ${e}, } = ${n}).`);continue}if(r.endsWith(`.tsx`)||r.endsWith(`.ts`)){let e=(i.match(/\(/g)||[]).length,a=(i.match(/\)/g)||[]).length;e!==a&&t.push(`[SyntaxError] in ${r}: Unmatched parentheses ( ( = ${e}, ) = ${a} ).`);let o=(i.match(/\{/g)||[]).length,s=(i.match(/\}/g)||[]).length;o!==s&&t.push(`[SyntaxError] in ${r}: Unmatched curly braces ( { = ${o}, } = ${s} ).`);let c=i.split(`
|
|
1334
|
+
`).filter(e=>e.trim().startsWith(`import `));for(let e of c)!e.includes(`from`)&&!e.includes(`./`)&&!e.includes(`.css`)&&t.push(`[TypeError] in ${r}: Malformed import statement: "${e.trim()}".`);if(r.endsWith(`.tsx`))for(let e of[`div`,`button`,`header`,`nav`,`section`,`article`,`main`,`footer`,`form`,`h1`,`h2`,`h3`,`p`,`span`]){let t=(i.match(RegExp(`<${e}[\\s>]`,`g`))||[]).length,a=(i.match(RegExp(`</${e}>`,`g`))||[]).length,o=(i.match(RegExp(`<${e}[^>]*/>`,`g`))||[]).length;t>0&&t!==a+o&&n.push(`[JSXWarning] in ${r}: Potential unclosed <${e}> tag.`)}}}let r=t.length===0;return{typecheck:r,build:r,errors:t,warnings:n}}var mc=ro((e,t)=>({files:{},activeFilePath:`src/App.tsx`,openTabs:[],isDiffView:!1,messages:[{id:`init_msg`,role:`assistant`,content:`I am the Cyrus AI Coding Agent. I can modify components, add features, refactor layouts, fix TypeScript errors, and synchronize code with your visual design.`,timestamp:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}],isAgentThinking:!1,checkpoints:[],pendingDiffs:null,pendingFiles:null,terminalLogs:[{id:`log_1`,type:`info`,text:`Vite v5.4.0 dev server initialized in memory.`,timestamp:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})},{id:`log_2`,type:`success`,text:`TypeScript static analysis engine active. Zero errors detected.`,timestamp:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}],validationReport:{typecheck:!0,build:!0,errors:[],warnings:[]},aiHtmlPreview:null,aiHtmlTitle:``,initProjectFiles:t=>{let n=sc(tc(t,`react`)),r={};for(let e of n)r[e.path]=e.content;e({files:r,checkpoints:[fc(`Initial Code Generation`,r)],activeFilePath:r[`src/App.tsx`]?`src/App.tsx`:Object.keys(r)[0]||``,openTabs:[`src/App.tsx`,`src/components/Navbar.tsx`,`src/styles/globals.css`].filter(e=>r[e])})},setActiveFile:n=>{let{openTabs:r}=t();r.includes(n)?e({activeFilePath:n,isDiffView:!1}):e({openTabs:[...r,n],activeFilePath:n,isDiffView:!1})},openTab:n=>{let{openTabs:r}=t();r.includes(n)?e({activeFilePath:n}):e({openTabs:[...r,n],activeFilePath:n})},closeTab:n=>{let{openTabs:r,activeFilePath:i}=t(),a=r.filter(e=>e!==n);e({openTabs:a,activeFilePath:i===n?a[0]||``:i})},setIsDiffView:t=>e({isDiffView:t}),updateFileContent:(n,r)=>{let{files:i}=t();e({files:{...i,[n]:r}}),t().runValidation()},setPendingChanges:(t,n)=>{e({pendingDiffs:t,pendingFiles:n,isDiffView:!0})},applyPendingChanges:()=>{let{pendingFiles:n,files:r,messages:i}=t();if(!n)return;let a=fc(`Applied AI Coding Agent Modifications`,n),o=i.map(e=>e.isPendingApproval?{...e,isPendingApproval:!1,applied:!0}:e);e({files:n,pendingFiles:null,pendingDiffs:null,isDiffView:!1,checkpoints:[a,...t().checkpoints],messages:o}),t().addTerminalLog(`Applied AI changes to project files.`,`success`),t().runValidation()},rejectPendingChanges:()=>{let{messages:n}=t();e({pendingFiles:null,pendingDiffs:null,isDiffView:!1,messages:n.map(e=>e.isPendingApproval?{...e,isPendingApproval:!1,applied:!1}:e)}),t().addTerminalLog(`Rejected AI modification proposal.`,`info`)},restoreCheckpoint:n=>{let{checkpoints:r}=t(),i=r.find(e=>e.id===n);i&&(e({files:JSON.parse(JSON.stringify(i.files)),pendingFiles:null,pendingDiffs:null,isDiffView:!1}),t().addTerminalLog(`Restored project checkpoint: "${i.description}"`,`success`),t().runValidation())},addMessage:t=>{e(e=>({messages:[...e.messages,t]}))},setIsAgentThinking:t=>e({isAgentThinking:t}),addTerminalLog:(t,n=`info`)=>{let r={id:M(`log`),type:n,text:t,timestamp:new Date().toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})};e(e=>({terminalLogs:[...e.terminalLogs,r]}))},runValidation:()=>{let{files:n}=t(),r=pc(n);return e({validationReport:r}),r},setAiHtmlPreview:(t,n=``)=>{e({aiHtmlPreview:t,aiHtmlTitle:n})},clearAiHtmlPreview:()=>{e({aiHtmlPreview:null,aiHtmlTitle:``})}}));function hc(e,t=`AI Design Page`){let n=new DOMParser().parseFromString(e||``,`text/html`),r=n.querySelector(`title`)?.textContent?.trim()||t,i=n.body?.style?.backgroundColor||``,a=e.includes(`bg-[#0`)||e.includes(`bg-black`)||e.includes(`bg-gray-900`)||e.includes(`bg-[#1`)||i.includes(`rgb(0`)||i.includes(`rgb(1`)||e.includes(`dark`),o=a?`#18181b`:`#ffffff`,s=a?`#f4f4f5`:`#18181b`,c=a?`#27272a`:`#e4e4e7`,l=Date.now(),u=[],d=0,f=n.querySelector(`nav, header, [class*="nav"], [class*="header"]`),p=f?.querySelector(`[class*="logo"], [class*="brand"], h1, h2, a`)?.textContent?.trim()||r.split(` `)[0]||`Cyrus`,m=[];f?.querySelectorAll(`a, button, li`).forEach(e=>{let t=e.textContent?.trim();t&&t.length<25&&!m.includes(t)&&t!==p&&m.push(t)});let h=f?.querySelector(`button, [class*="btn"], [class*="cta"]`)?.textContent?.trim()||`Get Started`;u.push({id:`el_nav_${l}`,name:`Navigation Bar`,type:`navbar`,x:0,y:d,width:1440,height:72,rotation:0,zIndex:10,locked:!1,hidden:!1,styles:{backgroundColor:a?`#0f0f11`:`#ffffff`,textColor:s,borderRadius:0,borderWidth:1,borderColor:c,padding:24,backgroundGradient:a?`linear-gradient(180deg, #18181b 0%, #0f0f11 100%)`:`linear-gradient(180deg, #ffffff 0%, #f9fafb 100%)`},content:{brandName:p,links:m.slice(0,5).length>0?m.slice(0,5):[`Features`,`Solutions`,`Pricing`,`About`],buttonText:h,icon:`Sparkles`}}),d+=92;let g=n.querySelector(`h1`)?.textContent?.trim()||n.querySelector(`[class*="hero"] h2`)?.textContent?.trim()||`Build next-generation experiences for ${r}`,_=n.querySelector(`h1 + p, [class*="hero"] p, [class*="subhead"], [class*="subtitle"]`)?.textContent?.trim()||`Design, customize, and deploy stunning visual interfaces with precision drag-and-drop tools.`,v=n.querySelector(`[class*="hero"] button, [class*="hero"] [class*="btn"], main button`)?.textContent?.trim()||`Explore Now`,y=n.querySelector(`[class*="hero"] img, main img`)?.getAttribute(`src`)||`https://picsum.photos/seed/${encodeURIComponent(r)}/1380/540`;u.push({id:`el_hero_${l}`,name:`Hero Section`,type:`hero`,x:30,y:d,width:1380,height:540,rotation:0,zIndex:1,locked:!1,hidden:!1,styles:{backgroundColor:o,textColor:s,borderRadius:20,borderWidth:1,borderColor:c,padding:48,backgroundGradient:a?`linear-gradient(135deg, #18181b 0%, #09090b 100%)`:`linear-gradient(135deg, #ffffff 0%, #f4f4f5 100%)`,boxShadow:`0 20px 40px rgba(0,0,0,0.12)`},content:{headline:g,subhead:_,buttonText:v,imageUrl:y,icon:`Sparkles`}}),d+=564;let b=Array.from(n.querySelectorAll(`[class*="card"], [class*="feature"], [class*="item"], [class*="grid"] > div, article`)).filter(e=>{let t=e.textContent?.trim()||``;return t.length>15&&t.length<500&&!e.querySelector(`h1`)});if(b.length>0){let e=b.slice(0,6),t=e.length>=4?3:e.length,n=t===3?440:t===2?675:1380;e.forEach((e,r)=>{let i=r%t,a=Math.floor(r/t),f=30+i*(n+30),p=d+a*310,m=e.querySelector(`h2, h3, h4, [class*="title"]`)?.textContent?.trim()||`Feature 0${r+1}`,h=e.querySelector(`p, [class*="desc"], [class*="text"]`)?.textContent?.trim()||`Optimized for high performance and seamless developer productivity.`,g=e.querySelector(`[class*="price"], [class*="amount"]`)?.textContent?.trim(),_=e.querySelector(`img`)?.getAttribute(`src`),v=!!g||m.toLowerCase().includes(`plan`)||m.toLowerCase().includes(`pro`);u.push({id:`el_card_${l}_${r}`,name:m,type:v?`pricingCard`:`featureCard`,x:f,y:p,width:n,height:280,rotation:0,zIndex:2,locked:!1,hidden:!1,styles:{backgroundColor:o,textColor:s,borderRadius:16,borderWidth:1,borderColor:c,padding:24,boxShadow:`0 8px 24px rgba(0,0,0,0.06)`},content:{title:m,subtitle:v?`All core features included`:``,text:h,price:g||`$29/mo`,buttonText:v?`Subscribe`:`Learn More`,icon:v?`CreditCard`:r===0?`Zap`:r===1?`Shield`:`Flame`,imageUrl:_}})});let r=Math.ceil(e.length/t);d+=r*310+24}else[{title:`Lightning Fast`,desc:`Built on a high-throughput runtime engine with ultra-low latency execution.`,icon:`Zap`},{title:`Enterprise Security`,desc:`End-to-end encryption with granular role-based access control and audit logging.`,icon:`Shield`},{title:`Instant Scalability`,desc:`Scale smoothly from prototyping to millions of concurrent active users effortlessly.`,icon:`Flame`}].forEach((e,t)=>{u.push({id:`el_feat_${l}_${t}`,name:e.title,type:`featureCard`,x:30+t*470,y:d,width:440,height:280,rotation:0,zIndex:2,locked:!1,hidden:!1,styles:{backgroundColor:o,textColor:s,borderRadius:16,borderWidth:1,borderColor:c,padding:24,boxShadow:`0 8px 24px rgba(0,0,0,0.06)`},content:{title:e.title,text:e.desc,buttonText:`Learn More`,icon:e.icon}})}),d+=310;[{label:`Active Users`,value:`250k+`,trend:`+28.4% this month`,icon:`Users`},{label:`System Uptime`,value:`99.99%`,trend:`Enterprise SLA`,icon:`Activity`},{label:`Latency`,value:`<12ms`,trend:`Global Edge CDN`,icon:`Zap`},{label:`Customer Rating`,value:`4.9 / 5.0`,trend:`12,000+ reviews`,icon:`Star`}].forEach((e,t)=>{u.push({id:`el_stat_${l}_${t}`,name:e.label,type:`metricCard`,x:30+t*352,y:d,width:322,height:160,rotation:0,zIndex:2,locked:!1,hidden:!1,styles:{backgroundColor:o,textColor:s,borderRadius:14,borderWidth:1,borderColor:c,padding:20},content:{title:e.label,value:e.value,trend:e.trend,icon:e.icon}})}),d+=190;let x=n.querySelector(`footer, [class*="footer"]`)?.querySelector(`p, [class*="copy"]`)?.textContent?.trim()||`© ${new Date().getFullYear()} ${p}. All rights reserved.`;return u.push({id:`el_footer_${l}`,name:`Footer`,type:`footer`,x:0,y:d,width:1440,height:220,rotation:0,zIndex:1,locked:!1,hidden:!1,styles:{backgroundColor:a?`#09090b`:`#f4f4f5`,textColor:s,borderRadius:0,borderWidth:1,borderColor:c,padding:32},content:{brandName:p,text:x,links:[`Privacy Policy`,`Terms of Service`,`API Docs`,`Status`,`Contact Support`]}}),d+=240,{title:r,theme:a?`dark`:`light`,elements:u,minHeight:Math.max(1400,d+60)}}var gc=[{id:`gemini`,name:`Google Gemini`,badge:`Gemini Auto-Detected`,defaultModel:`gemini-2.0-flash`,keyPlaceholder:`AIzaSy...`,keyUrl:`https://aistudio.google.com/app/apikey`},{id:`groq`,name:`Groq Cloud`,badge:`Llama 3.3 70B`,defaultModel:`llama-3.3-70b-versatile`,keyPlaceholder:`gsk_...`,keyUrl:`https://console.groq.com/keys`},{id:`openai`,name:`OpenAI GPT`,badge:`GPT-4o`,defaultModel:`gpt-4o`,keyPlaceholder:`sk-proj-...`,keyUrl:`https://platform.openai.com/api-keys`},{id:`anthropic`,name:`Anthropic Claude`,badge:`Claude 3.5 Sonnet`,defaultModel:`claude-3-5-sonnet-20241022`,keyPlaceholder:`sk-ant-...`,keyUrl:`https://console.anthropic.com/settings/keys`},{id:`deepseek`,name:`DeepSeek`,badge:`DeepSeek V3 / R1`,defaultModel:`deepseek-chat`,keyPlaceholder:`sk-...`,keyUrl:`https://platform.deepseek.com/api_keys`},{id:`grok`,name:`xAI Grok`,badge:`Grok 2`,defaultModel:`grok-beta`,keyPlaceholder:`xai-...`,keyUrl:`https://console.x.ai/`},{id:`perplexity`,name:`Perplexity AI`,badge:`Sonar`,defaultModel:`sonar`,keyPlaceholder:`pplx-...`,keyUrl:`https://www.perplexity.ai/settings/api`},{id:`ollama`,name:`Local Ollama`,badge:`Llama 3.1 / DeepSeek`,defaultModel:`llama3.1`,keyPlaceholder:`http://localhost:11434 (No key needed)`,keyUrl:`https://ollama.com`}];function _c(e){let t=(e||``).trim();return t.startsWith(`gsk_`)?`groq`:t.startsWith(`AIzaSy`)?`gemini`:t.startsWith(`sk-ant-`)?`anthropic`:t.startsWith(`pplx-`)?`perplexity`:t.startsWith(`xai-`)?`grok`:t.startsWith(`sk-proj-`)||t.startsWith(`sk-admin-`)||t.startsWith(`sk-`)?`openai`:`gemini`}function vc(e,t){if(!e||!e.trim())throw Error(`AI returned an empty response. Please try again.`);let n=e.replace(/^```json\s*/im,``).replace(/^```html\s*/im,``).replace(/^```\s*/im,``).replace(/```\s*$/im,``).trim();try{let e=JSON.parse(n);if(e&&(e.elements||Array.isArray(e)))return e}catch{}let r=n.indexOf(`{`),i=n.lastIndexOf(`}`);if(r!==-1&&i!==-1&&i>r){let e=n.substring(r,i+1);e=e.replace(/,\s*([\]}])/g,`$1`);try{let t=JSON.parse(e);if(t&&(t.elements||Array.isArray(t)))return t}catch{let t=e,n=(t.match(/\[/g)||[]).length,r=(t.match(/\]/g)||[]).length,i=(t.match(/\{/g)||[]).length,a=(t.match(/\}/g)||[]).length;for(let e=0;e<n-r;e++)t+=`]`;for(let e=0;e<i-a;e++)t+=`}`;try{let e=JSON.parse(t);if(e&&(e.elements||Array.isArray(e)))return e}catch{}}}if(n.includes(`<`)&&(n.includes(`<!DOCTYPE`)||n.includes(`<div`)||n.includes(`<section`)||n.includes(`<nav`)||n.includes(`<html`))){let e=hc(n,t);return{title:e.title,theme:e.theme,elements:e.elements}}let a=hc(``,t);return{title:t.slice(0,40),theme:`dark`,elements:a.elements}}async function yc(e,t){let n=e.trim(),r=[`models/gemini-2.0-flash`,`models/gemini-1.5-flash-latest`,`models/gemini-1.5-flash`];try{let e=await fetch(`https://generativelanguage.googleapis.com/v1beta/models?key=${encodeURIComponent(n)}`,{signal:AbortSignal.timeout(5e3)});if(e.ok){let t=await e.json();if(Array.isArray(t.models)){let e=t.models.filter(e=>!e.supportedGenerationMethods||e.supportedGenerationMethods.includes(`generateContent`)).map(e=>e.name);e.length>0&&(r=e)}}}catch{}let i=``;for(let e of r)try{let r=`https://generativelanguage.googleapis.com/v1beta/${e}:generateContent?key=${encodeURIComponent(n)}`,a=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`},signal:AbortSignal.timeout(25e3),body:JSON.stringify({contents:[{role:`user`,parts:[{text:t}]}],generationConfig:{responseMimeType:`application/json`,temperature:.8,maxOutputTokens:8192}})}),o=await a.json();if(a.ok&&o.candidates?.[0]?.content?.parts?.[0]?.text)return o.candidates[0].content.parts[0].text;o.error?.message&&(i=o.error.message)}catch(e){i=e.message}throw Error(i||`Gemini API call failed.`)}async function bc(e,t,n,r,i){let a=(n||``).trim();if(t!==`ollama`&&a.length<6)throw Error(`Please enter your valid API Key.`);let o=_c(a)||t,s=gc.find(e=>e.id===o)||gc[0];r&&r(`Synthesizing UI with ${s.name}...`);let c=`You are a world-class UI/UX designer and creative director. Design a complete, stunning, high-converting, professional user interface for: "${e}"
|
|
1335
|
+
|
|
1336
|
+
Be bold, modern, and specific. Think like a lead product designer at Apple, Stripe, Linear, or Airbnb.
|
|
1337
|
+
|
|
1338
|
+
CANVAS TECHNICAL RULES (1440px Desktop Artboard):
|
|
1339
|
+
- Canvas width: 1440px.
|
|
1340
|
+
- Full-width elements (navbar, full-bleed hero, footer, cta banner): width: 1440, x: 0 (or width: 1380, x: 30).
|
|
1341
|
+
- Standard multi-column layouts (all cards in a row share the SAME y coordinate):
|
|
1342
|
+
* 2-column: width: 675 | col 1: x: 30, col 2: x: 735
|
|
1343
|
+
* 3-column (features, pricing, testimonials): width: 440 | col 1: x: 30, col 2: x: 500, col 3: x: 970
|
|
1344
|
+
* 4-column (stats, metrics, KPI cards): width: 322 | col 1: x: 30, col 2: x: 382, col 3: x: 734, col 4: x: 1086
|
|
1345
|
+
- Y coordinates: Start at y: 0 for navbar. Stack downward logically. Maintain clean 24px-40px vertical gaps between sections. Do NOT overlap elements.
|
|
1346
|
+
- Page height: Make it a complete, rich, multi-section page (total height ~2000px to 4500px).
|
|
1347
|
+
|
|
1348
|
+
AVAILABLE ELEMENT TYPES (Use 8 to 20 diverse elements to build a complete page):
|
|
1349
|
+
- "navbar": logo/brandName, links array, buttonText, sleek styling
|
|
1350
|
+
- "hero" / "heroSection": headline, subhead, buttonText, secondary button or badge, imageUrl, gradient background
|
|
1351
|
+
- "featureCard": title, subtitle, icon, text description
|
|
1352
|
+
- "metricCard" / "statCard" / "kpiCard": value (e.g. "$4.8M", "99.99%", "250k+"), label/title, trend (e.g. "+24.8%"), icon
|
|
1353
|
+
- "pricingCard": planName/title, price (e.g. "$29/mo"), features list array, buttonText, highlight
|
|
1354
|
+
- "testimonialCard": text (quote), title (author name), subtitle (role/company), imageUrl (avatar)
|
|
1355
|
+
- "productCard": title, price, text (description), imageUrl, buttonText
|
|
1356
|
+
- "chart" / "lineChart" / "barChart" / "areaChart": title, subtitle
|
|
1357
|
+
- "table" / "dataTable": title, columns and data
|
|
1358
|
+
- "form" / "contactForm" / "signupForm": title, subtitle, buttonText
|
|
1359
|
+
- "image": imageUrl, alt, borderRadius, objectFit
|
|
1360
|
+
- "button" / "badge": label, icon
|
|
1361
|
+
- "footer": brandName, text, links array, copyright
|
|
1362
|
+
|
|
1363
|
+
IMAGE SUPPORT:
|
|
1364
|
+
- Real photos via Unsplash / Picsum: "https://picsum.photos/seed/{keyword}/{width}/{height}" or "https://images.unsplash.com/photo-{id}?w=800&q=80"
|
|
1365
|
+
- Use photos for: hero backgrounds, product shots, feature previews, avatars.
|
|
1366
|
+
|
|
1367
|
+
AVAILABLE ICONS (exact names in content.icon):
|
|
1368
|
+
"Cpu", "Zap", "Flame", "Shield", "Activity", "Layers", "Sparkles", "ArrowRight", "Database", "Terminal", "Star", "Users", "Globe", "Lock", "Cloud", "Code2", "Heart", "TrendingUp", "TrendingDown", "Rocket", "Settings", "Package", "Camera", "Music", "Phone", "Mail", "Search", "Home", "Menu", "Bell", "CreditCard", "ShoppingBag", "Award", "CheckCircle2", "AlertCircle", "Bookmark", "Tag", "MessageSquare", "ThumbsUp", "Send", "Download", "Filter", "Grid", "List", "User", "UserPlus", "Play", "Pause", "Volume2", "Wifi", "Monitor", "Laptop", "Smartphone"
|
|
1369
|
+
|
|
1370
|
+
STYLE & CONTENT:
|
|
1371
|
+
- Pick a cohesive color palette (dark luxury, clean modern light, cyber neon, or elegant pastel).
|
|
1372
|
+
- Every element MUST have textColor and backgroundColor (or backgroundGradient) with high contrast.
|
|
1373
|
+
- 100% specific to "${e}" — no Lorem Ipsum, real numbers, real product copy.
|
|
1374
|
+
|
|
1375
|
+
OUTPUT — ONLY valid JSON, no markdown fences, no commentary:
|
|
1376
|
+
{
|
|
1377
|
+
"title": "Page Title",
|
|
1378
|
+
"theme": "dark",
|
|
1379
|
+
"elements": [
|
|
1380
|
+
{
|
|
1381
|
+
"name": "Navigation Bar",
|
|
1382
|
+
"type": "navbar",
|
|
1383
|
+
"x": 0,
|
|
1384
|
+
"y": 0,
|
|
1385
|
+
"width": 1440,
|
|
1386
|
+
"height": 72,
|
|
1387
|
+
"styles": {
|
|
1388
|
+
"backgroundColor": "#0f0f11",
|
|
1389
|
+
"textColor": "#ffffff",
|
|
1390
|
+
"borderRadius": 0,
|
|
1391
|
+
"borderWidth": 0,
|
|
1392
|
+
"borderColor": "#27272a",
|
|
1393
|
+
"padding": 24,
|
|
1394
|
+
"backgroundGradient": "linear-gradient(180deg, #18181b 0%, #0f0f11 100%)"
|
|
1395
|
+
},
|
|
1396
|
+
"content": {
|
|
1397
|
+
"brandName": "Brand",
|
|
1398
|
+
"links": ["Features", "Solutions", "Pricing", "Docs"],
|
|
1399
|
+
"buttonText": "Get Started",
|
|
1400
|
+
"icon": "Sparkles"
|
|
1401
|
+
}
|
|
1402
|
+
}
|
|
1403
|
+
]
|
|
1404
|
+
}`;r&&r(`Designing interface for "${e.slice(0,25)}"...`);let l=``;if(o===`gemini`)l=await yc(a,c);else if(o===`groq`){let e=await fetch(`https://api.groq.com/openai/v1/chat/completions`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${a}`},signal:AbortSignal.timeout(25e3),body:JSON.stringify({model:`llama-3.3-70b-versatile`,temperature:.9,messages:[{role:`user`,content:c}],response_format:{type:`json_object`}})}),t=await e.json();if(!e.ok)throw Error(t?.error?.message||`Groq API call failed`);l=t.choices?.[0]?.message?.content||``}else if(o===`openai`){let e=await fetch(`https://api.openai.com/v1/chat/completions`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${a}`},signal:AbortSignal.timeout(3e4),body:JSON.stringify({model:`gpt-4o`,temperature:.9,messages:[{role:`user`,content:c}],response_format:{type:`json_object`}})}),t=await e.json();if(!e.ok)throw Error(t?.error?.message||`OpenAI API call failed`);l=t.choices?.[0]?.message?.content||``}else if(o===`anthropic`){let e=await fetch(`https://api.anthropic.com/v1/messages`,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":a,"anthropic-version":`2023-06-01`},signal:AbortSignal.timeout(3e4),body:JSON.stringify({model:`claude-3-5-sonnet-20241022`,max_tokens:8192,temperature:1,messages:[{role:`user`,content:c}]})}),t=await e.json();if(!e.ok)throw Error(t?.error?.message||`Anthropic API call failed`);l=t.content?.[0]?.text||``}else if(o===`deepseek`){let e=await fetch(`https://api.deepseek.com/chat/completions`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${a}`},signal:AbortSignal.timeout(3e4),body:JSON.stringify({model:`deepseek-chat`,temperature:1,messages:[{role:`user`,content:c}],response_format:{type:`json_object`}})}),t=await e.json();if(!e.ok)throw Error(t?.error?.message||`DeepSeek API call failed`);l=t.choices?.[0]?.message?.content||``}else if(o===`grok`){let e=await fetch(`https://api.x.ai/v1/chat/completions`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${a}`},signal:AbortSignal.timeout(3e4),body:JSON.stringify({model:`grok-beta`,temperature:.9,messages:[{role:`user`,content:c}],response_format:{type:`json_object`}})}),t=await e.json();if(!e.ok)throw Error(t?.error?.message||`Grok API call failed`);l=t.choices?.[0]?.message?.content||``}else if(o===`perplexity`){let e=await fetch(`https://api.perplexity.ai/chat/completions`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${a}`},signal:AbortSignal.timeout(3e4),body:JSON.stringify({model:`sonar`,temperature:.9,messages:[{role:`user`,content:c}]})}),t=await e.json();if(!e.ok)throw Error(t?.error?.message||`Perplexity API call failed`);l=t.choices?.[0]?.message?.content||``}else if(o===`ollama`){let e=a.startsWith(`http`)?a.replace(/\/$/,``):`http://localhost:11434`,t=await fetch(`${e}/api/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},signal:AbortSignal.timeout(6e4),body:JSON.stringify({model:`llama3.1`,stream:!1,messages:[{role:`user`,content:c}],options:{temperature:.9}})}),n=await t.json();if(!t.ok)throw Error(n?.error||`Ollama API call failed`);l=n.message?.content||``}if(!l)throw Error(`${s.name} did not return a response.`);r&&r(`Translating layout onto canvas...`);let u=vc(l,e),d=Array.isArray(u)?u:u.elements||[];if(!Array.isArray(d)||d.length===0)throw Error(`AI returned an empty element list. Please try a more detailed prompt.`);let f=i&&i.length>0?Math.max(0,...i.map(e=>e.zIndex||0)):0,p=Date.now(),m=d.map((e,t)=>{let n=e.type===`navbar`||t===0,r=e.type===`hero`||e.type===`heroSection`,i=e.type===`footer`,a=n||i?1440:r?1380:440,o=n||i?0:30,s=n?72:r?560:i?240:280;return{id:`el_ai_${p}_${t}`,name:e.name||`Component ${t+1}`,type:e.type||`card`,x:typeof e.x==`number`?e.x:o,y:typeof e.y==`number`?e.y:t*200,width:typeof e.width==`number`?e.width:a,height:typeof e.height==`number`?e.height:s,rotation:e.rotation||0,zIndex:f+t+1,locked:!1,hidden:!1,styles:{backgroundColor:e.styles?.backgroundColor||(u.theme===`dark`?`#111113`:`#ffffff`),textColor:e.styles?.textColor||(u.theme===`dark`?`#f5f5f7`:`#1d1d1f`),borderRadius:e.styles?.borderRadius===void 0?14:e.styles.borderRadius,borderWidth:e.styles?.borderWidth===void 0?1:e.styles.borderWidth,borderColor:e.styles?.borderColor||(u.theme===`dark`?`#27272a`:`#e5e5ea`),padding:e.styles?.padding===void 0?20:e.styles.padding,fontSize:e.styles?.fontSize,fontWeight:e.styles?.fontWeight,backgroundGradient:e.styles?.backgroundGradient,boxShadow:e.styles?.boxShadow,...e.styles},content:{title:e.content?.title||e.name,subtitle:e.content?.subtitle||``,text:e.content?.text||e.content?.title||``,label:e.content?.label||e.content?.buttonText||`Action`,brandName:e.content?.brandName||`Brand`,links:e.content?.links,buttonText:e.content?.buttonText,icon:e.content?.icon||`Sparkles`,price:e.content?.price,value:e.content?.value,trend:e.content?.trend,...e.content}}});return{title:u.title||e.slice(0,30),theme:u.theme||`dark`,elements:m}}function xc(e){let t=e.replace(/[^a-zA-Z0-9_]/g,``);return(!t||/^[0-9]/.test(t))&&(t=`Widget_`+t),t.charAt(0).toUpperCase()+t.slice(1)}function Sc(e,t=`const Color(0xFF0071E3)`){if(!e||e===`transparent`)return`Colors.transparent`;let n=e.replace(`#`,``).trim();return n.length===3&&(n=n.split(``).map(e=>e+e).join(``)),n.length===6?`const Color(0xFF`+n.toUpperCase()+`)`:n.length===8?`const Color(0x`+n.slice(6,8).toUpperCase()+n.slice(0,6).toUpperCase()+`)`:t}function Cc(e,t=`Color(red: 0.0, green: 0.44, blue: 0.89)`){if(!e||e===`transparent`)return`Color.clear`;let n=e.replace(`#`,``).trim();if(n.length===3&&(n=n.split(``).map(e=>e+e).join(``)),n.length===6){let e=parseInt(n,16),t=(e>>16&255)/255,r=(e>>8&255)/255,i=(e&255)/255;return`Color(red: `+t.toFixed(2)+`, green: `+r.toFixed(2)+`, blue: `+i.toFixed(2)+`)`}if(n.length===8){let e=parseInt(n.slice(0,2),16)/255,t=parseInt(n.slice(2,4),16)/255,r=parseInt(n.slice(4,6),16)/255,i=parseInt(n.slice(6,8),16)/255;return`Color(red: `+e.toFixed(2)+`, green: `+t.toFixed(2)+`, blue: `+r.toFixed(2)+`, opacity: `+i.toFixed(2)+`)`}return t}function wc(e){if(!e||e===`none`)return null;switch(e){case`Square`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect width="18" height="18" x="3" y="3" rx="2"/></svg>`;case`Circle`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><circle cx="12" cy="12" r="10"/></svg>`;case`Triangle`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"/></svg>`;case`Hexagon`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/></svg>`;case`Diamond`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z"/></svg>`;case`Heart`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"/></svg>`;case`Minus`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M5 12h14"/></svg>`;case`ArrowRight`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg>`;case`ArrowLeft`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="m12 19-7-7 7-7"/><path d="M19 12H5"/></svg>`;case`Sparkles`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z"/></svg>`;case`Loader`:case`Loader2`:return`<svg className="w-4 h-4 shrink-0 animate-spin" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M21 12a9 9 0 1 1-6.219-8.56"/></svg>`;case`RotateCw`:case`RefreshCw`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M8 16H3v5"/></svg>`;case`RotateCcw`:case`RefreshCcw`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M3 2v6h6"/><path d="M21 12A9 9 0 0 0 6 5.3L3 8"/><path d="M21 22v-6h-6"/><path d="M3 12a9 9 0 0 0 15 6.7l3-2.7"/></svg>`;case`CircleDotDashed`:return`<svg className="w-4 h-4 shrink-0 animate-spin" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M10.1 2.18a9.93 9.93 0 0 1 3.8 0"/><path d="M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7"/><circle cx="12" cy="12" r="1"/></svg>`;case`Zap`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>`;case`Flame`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z"/></svg>`;case`Shield`:case`ShieldCheck`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/><path d="m9 12 2 2 4-4"/></svg>`;case`Check`:case`CheckCircle2`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/></svg>`;case`Activity`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>`;case`Star`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>`;case`Users`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>`;case`CreditCard`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect width="22" height="16" x="1" y="4" rx="2" ry="2"/><line x1="1" x2="23" y1="10" y2="10"/></svg>`;case`TrendingUp`:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><polyline points="22 7 13.5 15.5 8.5 10.5 2 17"/><polyline points="16 7 22 7 22 13"/></svg>`;default:return`<svg className="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><circle cx="12" cy="12" r="10"/></svg>`}}function Tc(e){if(!e||e===`none`)return null;switch(e){case`Square`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2"/></svg>`;case`Circle`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/></svg>`;case`Triangle`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"/></svg>`;case`Hexagon`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/></svg>`;case`Diamond`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z"/></svg>`;case`Heart`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"/></svg>`;case`Minus`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/></svg>`;case`ArrowRight`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg>`;case`ArrowLeft`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m12 19-7-7 7-7"/><path d="M19 12H5"/></svg>`;case`Sparkles`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z"/></svg>`;case`Loader`:case`Loader2`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12a9 9 0 1 1-6.219-8.56"/></svg>`;case`RotateCw`:case`RefreshCw`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M8 16H3v5"/></svg>`;case`RotateCcw`:case`RefreshCcw`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 2v6h6"/><path d="M21 12A9 9 0 0 0 6 5.3L3 8"/><path d="M21 22v-6h-6"/><path d="M3 12a9 9 0 0 0 15 6.7l3-2.7"/></svg>`;case`CircleDotDashed`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.1 2.18a9.93 9.93 0 0 1 3.8 0"/><path d="M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7"/><circle cx="12" cy="12" r="1"/></svg>`;case`Zap`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>`;case`Flame`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z"/></svg>`;case`Shield`:case`ShieldCheck`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/><path d="m9 12 2 2 4-4"/></svg>`;case`Check`:case`CheckCircle2`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/></svg>`;case`Activity`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>`;case`Star`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>`;case`Users`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>`;case`CreditCard`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="22" height="16" x="1" y="4" rx="2" ry="2"/><line x1="1" x2="23" y1="10" y2="10"/></svg>`;case`TrendingUp`:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 7 13.5 15.5 8.5 10.5 2 17"/><polyline points="16 7 22 7 22 13"/></svg>`;default:return`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/></svg>`}}function Ec(e){if(!e||e===`none`)return null;switch(e){case`Square`:return`Icons.crop_square`;case`Circle`:return`Icons.circle`;case`Triangle`:return`Icons.change_history`;case`Hexagon`:return`Icons.hexagon`;case`Diamond`:return`Icons.diamond`;case`Heart`:return`Icons.favorite`;case`Minus`:return`Icons.remove`;case`ArrowRight`:return`Icons.arrow_forward`;case`ArrowLeft`:return`Icons.arrow_back`;case`Sparkles`:return`Icons.auto_awesome`;case`Loader`:case`Loader2`:return`Icons.sync`;case`RotateCw`:case`RefreshCw`:return`Icons.refresh`;case`RotateCcw`:case`RefreshCcw`:return`Icons.restore`;case`CircleDotDashed`:return`Icons.radio_button_unchecked`;case`Zap`:return`Icons.bolt`;case`Shield`:return`Icons.shield`;case`Check`:return`Icons.check_circle`;case`Activity`:return`Icons.show_chart`;case`Star`:return`Icons.star`;case`Users`:return`Icons.people`;case`CreditCard`:return`Icons.credit_card`;default:return`Icons.circle`}}function Dc(e){if(!e||e===`none`)return null;switch(e){case`Square`:return`square.fill`;case`Circle`:return`circle.fill`;case`Triangle`:return`triangle.fill`;case`Hexagon`:return`hexagon.fill`;case`Diamond`:return`diamond.fill`;case`Heart`:return`heart.fill`;case`Minus`:return`minus`;case`ArrowRight`:return`arrow.right`;case`ArrowLeft`:return`arrow.left`;case`Sparkles`:return`sparkles`;case`Loader`:case`Loader2`:return`progress.indicator`;case`RotateCw`:case`RefreshCw`:return`arrow.clockwise`;case`RotateCcw`:case`RefreshCcw`:return`arrow.counterclockwise`;case`CircleDotDashed`:return`circle.dotted`;case`Zap`:return`bolt.fill`;case`Shield`:return`shield.fill`;case`Check`:return`checkmark.circle.fill`;case`Activity`:return`waveform.path.ecg`;case`Star`:return`star.fill`;case`Users`:return`person.2.fill`;case`CreditCard`:return`creditcard.fill`;default:return`circle`}}function Oc(e,t){if(!e)return`// No active page selected`;let n=xc(e.name)+`Screen`,r=e.settings?.backgroundColor||`#09090b`,i=Math.max(e.settings?.minHeight||1200,1200),a=e.elements||[],o=e=>(e||`Layer`).replace(/\*\//g,`* /`).replace(/-->/g,`-- >`).replace(/\n/g,` `);switch(t){case`react-tailwind`:{let e=a.map(e=>{let t=e.styles?.backgroundColor||`#18181b`,n=e.styles?.textColor||`#ffffff`,r=e.styles?.borderRadius??16,i=e.styles?.borderWidth||1,a=e.styles?.borderColor||`#27272a`,s=e.styles?.borderStyle||`solid`,c=wc(e.content?.icon||`Sparkles`),l=(e.content?.title||e.content?.headline||e.name||``).replace(/"/g,`"`),u=(e.content?.subhead||e.content?.subtitle||e.content?.text||``).replace(/"/g,`"`),d=(e.content?.buttonText||e.content?.label||`Get Started`).replace(/"/g,`"`),f=e.content?.imageUrl||e.content?.url||e.content?.src||`https://picsum.photos/seed/design/800/600`,p=e.content?.price||`$29/mo`,m=e.content?.value||`$2.4M`,h=e.content?.trend||`+18.4%`,g=e.content?.brandName||l||`Brand`,_=Array.isArray(e.content?.links)?e.content.links:[`Features`,`Solutions`,`Pricing`,`Docs`],v=e.styles?.backgroundGradient?`background: '${e.styles.backgroundGradient}',`:`backgroundColor: '${t}',`,y=`
|
|
1405
|
+
position: 'absolute',
|
|
1406
|
+
left: ${Math.round(e.x)},
|
|
1407
|
+
top: ${Math.round(e.y)},
|
|
1408
|
+
width: ${Math.round(e.width)},
|
|
1409
|
+
height: ${Math.round(e.height)},
|
|
1410
|
+
${v}
|
|
1411
|
+
color: '${n}',
|
|
1412
|
+
borderRadius: ${r},
|
|
1413
|
+
border: '${i}px ${s} ${a}',
|
|
1414
|
+
zIndex: ${e.zIndex||1},
|
|
1415
|
+
transform: 'rotate(${e.rotation||0}deg)',
|
|
1416
|
+
boxShadow: '0 10px 30px rgba(0,0,0,0.12)',
|
|
1417
|
+
overflow: 'hidden',`;return e.type===`navbar`?` {/* ${o(e.name)} */}
|
|
1418
|
+
<nav
|
|
1419
|
+
style={{${y}
|
|
1420
|
+
display: 'flex',
|
|
1421
|
+
alignItems: 'center',
|
|
1422
|
+
justifyContent: 'space-between',
|
|
1423
|
+
padding: '0 32px',
|
|
1424
|
+
}}
|
|
1425
|
+
className="backdrop-blur-md"
|
|
1426
|
+
>
|
|
1427
|
+
<div className="flex items-center gap-8">
|
|
1428
|
+
<div className="flex items-center gap-2 font-bold text-lg">
|
|
1429
|
+
${c||``}
|
|
1430
|
+
<span>${g}</span>
|
|
1431
|
+
</div>
|
|
1432
|
+
<div className="hidden md:flex items-center gap-6 text-sm opacity-80">
|
|
1433
|
+
${_.map(e=>`<a href="#${e.toLowerCase()}" className="hover:opacity-100 transition-opacity">${e}</a>`).join(`
|
|
1434
|
+
`)}
|
|
1435
|
+
</div>
|
|
1436
|
+
</div>
|
|
1437
|
+
<button
|
|
1438
|
+
type="button"
|
|
1439
|
+
className="px-4 py-2 rounded-xl bg-gradient-to-r from-blue-600 to-indigo-600 text-white text-sm font-semibold hover:brightness-110 active:scale-95 transition-all shadow-md cursor-pointer"
|
|
1440
|
+
>
|
|
1441
|
+
${d}
|
|
1442
|
+
</button>
|
|
1443
|
+
</nav>`:e.type===`hero`||e.type===`heroSection`?` {/* ${o(e.name)} */}
|
|
1444
|
+
<section
|
|
1445
|
+
style={{${y}
|
|
1446
|
+
display: 'flex',
|
|
1447
|
+
flexDirection: 'column',
|
|
1448
|
+
justifyContent: 'center',
|
|
1449
|
+
padding: '48px',
|
|
1450
|
+
}}
|
|
1451
|
+
>
|
|
1452
|
+
<div className="max-w-2xl flex flex-col gap-4">
|
|
1453
|
+
<div className="inline-flex items-center gap-2 px-3 py-1 rounded-full text-xs font-semibold bg-white/10 w-fit">
|
|
1454
|
+
${c||``}
|
|
1455
|
+
<span>Featured Platform</span>
|
|
1456
|
+
</div>
|
|
1457
|
+
<h1 className="text-4xl lg:text-5xl font-extrabold tracking-tight leading-tight">
|
|
1458
|
+
${l||`Next Generation Design & Engineering`}
|
|
1459
|
+
</h1>
|
|
1460
|
+
<p className="text-base lg:text-lg opacity-80 leading-relaxed">
|
|
1461
|
+
${u||`Transform your product ideas into reality with seamless visual workflows and copy-ready code.`}
|
|
1462
|
+
</p>
|
|
1463
|
+
<div className="flex items-center gap-4 mt-2">
|
|
1464
|
+
<button
|
|
1465
|
+
type="button"
|
|
1466
|
+
className="px-6 py-3 rounded-xl bg-blue-600 hover:bg-blue-500 text-white font-semibold transition-all shadow-lg active:scale-95 cursor-pointer"
|
|
1467
|
+
>
|
|
1468
|
+
${d}
|
|
1469
|
+
</button>
|
|
1470
|
+
<button
|
|
1471
|
+
type="button"
|
|
1472
|
+
className="px-6 py-3 rounded-xl bg-white/10 hover:bg-white/20 text-white font-semibold transition-all backdrop-blur-sm cursor-pointer"
|
|
1473
|
+
>
|
|
1474
|
+
View Demo
|
|
1475
|
+
</button>
|
|
1476
|
+
</div>
|
|
1477
|
+
</div>
|
|
1478
|
+
</section>`:e.type===`metricCard`||e.type===`statCard`||e.type===`kpiCard`||e.type===`metric`?` {/* ${o(e.name)} */}
|
|
1479
|
+
<div
|
|
1480
|
+
style={{${y}
|
|
1481
|
+
display: 'flex',
|
|
1482
|
+
flexDirection: 'column',
|
|
1483
|
+
justifyContent: 'space-between',
|
|
1484
|
+
padding: '24px',
|
|
1485
|
+
}}
|
|
1486
|
+
>
|
|
1487
|
+
<div className="flex items-center justify-between">
|
|
1488
|
+
<span className="text-xs font-semibold uppercase tracking-wider opacity-70">${l}</span>
|
|
1489
|
+
<div className="p-2 rounded-lg bg-white/10 text-blue-400">
|
|
1490
|
+
${c||``}
|
|
1491
|
+
</div>
|
|
1492
|
+
</div>
|
|
1493
|
+
<div>
|
|
1494
|
+
<div className="text-3xl font-extrabold tracking-tight">${m}</div>
|
|
1495
|
+
<div className="flex items-center gap-1.5 text-xs font-semibold text-emerald-400 mt-1">
|
|
1496
|
+
<span>${h}</span>
|
|
1497
|
+
<span className="opacity-70 font-normal">vs last month</span>
|
|
1498
|
+
</div>
|
|
1499
|
+
</div>
|
|
1500
|
+
</div>`:e.type===`pricingCard`?` {/* ${o(e.name)} */}
|
|
1501
|
+
<div
|
|
1502
|
+
style={{${y}
|
|
1503
|
+
display: 'flex',
|
|
1504
|
+
flexDirection: 'column',
|
|
1505
|
+
justifyContent: 'space-between',
|
|
1506
|
+
padding: '32px',
|
|
1507
|
+
}}
|
|
1508
|
+
>
|
|
1509
|
+
<div className="flex flex-col gap-2">
|
|
1510
|
+
<div className="flex items-center justify-between">
|
|
1511
|
+
<h3 className="text-lg font-bold">${l}</h3>
|
|
1512
|
+
<span className="px-2.5 py-0.5 rounded-full text-xs font-bold bg-blue-500/20 text-blue-400">Popular</span>
|
|
1513
|
+
</div>
|
|
1514
|
+
<div className="flex items-baseline gap-1 my-2">
|
|
1515
|
+
<span className="text-4xl font-extrabold">${p}</span>
|
|
1516
|
+
<span className="text-xs opacity-70">/ month</span>
|
|
1517
|
+
</div>
|
|
1518
|
+
<p className="text-xs opacity-80">${u||`Includes all professional features and unlimited projects.`}</p>
|
|
1519
|
+
<div className="border-t border-white/10 my-3 pt-3 flex flex-col gap-2 text-xs">
|
|
1520
|
+
<div className="flex items-center gap-2">✓ Unlimited Workspace Canvases</div>
|
|
1521
|
+
<div className="flex items-center gap-2">✓ Real-time Code Synchronization</div>
|
|
1522
|
+
<div className="flex items-center gap-2">✓ AI Magic Auto-Generations</div>
|
|
1523
|
+
</div>
|
|
1524
|
+
</div>
|
|
1525
|
+
<button
|
|
1526
|
+
type="button"
|
|
1527
|
+
className="w-full py-2.5 rounded-xl bg-gradient-to-r from-blue-600 to-indigo-600 text-white font-semibold text-sm hover:brightness-110 active:scale-95 transition-all shadow-md cursor-pointer mt-4"
|
|
1528
|
+
>
|
|
1529
|
+
${d}
|
|
1530
|
+
</button>
|
|
1531
|
+
</div>`:e.type===`testimonialCard`?` {/* ${o(e.name)} */}
|
|
1532
|
+
<div
|
|
1533
|
+
style={{${y}
|
|
1534
|
+
display: 'flex',
|
|
1535
|
+
flexDirection: 'column',
|
|
1536
|
+
justifyContent: 'space-between',
|
|
1537
|
+
padding: '28px',
|
|
1538
|
+
}}
|
|
1539
|
+
>
|
|
1540
|
+
<div className="flex items-center gap-1 text-amber-400 text-sm">
|
|
1541
|
+
★★★★★
|
|
1542
|
+
</div>
|
|
1543
|
+
<p className="text-sm italic opacity-90 leading-relaxed my-3">
|
|
1544
|
+
"${u||`This platform revolutionized our engineering workflow. The speed from design to live code is unmatched.`}"
|
|
1545
|
+
</p>
|
|
1546
|
+
<div className="flex items-center gap-3 pt-2 border-t border-white/10">
|
|
1547
|
+
<img src="${f}" alt="${l}" className="w-10 h-10 rounded-full object-cover" />
|
|
1548
|
+
<div>
|
|
1549
|
+
<div className="text-xs font-bold">${l||`Sarah Connor`}</div>
|
|
1550
|
+
<div className="text-[11px] opacity-70">Lead Architect at Cyberdyne</div>
|
|
1551
|
+
</div>
|
|
1552
|
+
</div>
|
|
1553
|
+
</div>`:e.type===`featureCard`||e.type===`card`?` {/* ${o(e.name)} */}
|
|
1554
|
+
<div
|
|
1555
|
+
style={{${y}
|
|
1556
|
+
display: 'flex',
|
|
1557
|
+
flexDirection: 'column',
|
|
1558
|
+
justifyContent: 'space-between',
|
|
1559
|
+
padding: '28px',
|
|
1560
|
+
}}
|
|
1561
|
+
>
|
|
1562
|
+
<div className="flex flex-col gap-3">
|
|
1563
|
+
<div className="w-10 h-10 rounded-xl bg-blue-600/20 text-blue-400 flex items-center justify-center">
|
|
1564
|
+
${c||``}
|
|
1565
|
+
</div>
|
|
1566
|
+
<h3 className="text-lg font-bold">${l}</h3>
|
|
1567
|
+
<p className="text-sm opacity-80 leading-relaxed">
|
|
1568
|
+
${u||`High-performance components designed for speed, flexibility, and production-grade reliability.`}
|
|
1569
|
+
</p>
|
|
1570
|
+
</div>
|
|
1571
|
+
<div className="flex items-center gap-1.5 text-xs font-semibold text-blue-400 hover:text-blue-300 transition-colors cursor-pointer mt-4">
|
|
1572
|
+
<span>${d||`Learn more`}</span>
|
|
1573
|
+
<span>→</span>
|
|
1574
|
+
</div>
|
|
1575
|
+
</div>`:e.type===`image`?` {/* ${o(e.name)} */}
|
|
1576
|
+
<img
|
|
1577
|
+
src="${f}"
|
|
1578
|
+
alt="${l||o(e.name)}"
|
|
1579
|
+
style={{${y}}}
|
|
1580
|
+
className="object-cover"
|
|
1581
|
+
/>`:e.type===`button`||e.type===`submitButton`?` {/* ${o(e.name)} */}
|
|
1582
|
+
<button
|
|
1583
|
+
type="button"
|
|
1584
|
+
style={{${y}
|
|
1585
|
+
display: 'inline-flex',
|
|
1586
|
+
alignItems: 'center',
|
|
1587
|
+
justifyContent: 'center',
|
|
1588
|
+
gap: '8px',
|
|
1589
|
+
}}
|
|
1590
|
+
className="font-semibold text-sm hover:brightness-110 active:scale-95 transition-all cursor-pointer select-none"
|
|
1591
|
+
>
|
|
1592
|
+
${c||``}
|
|
1593
|
+
<span>${d}</span>
|
|
1594
|
+
</button>`:e.type===`footer`?` {/* ${o(e.name)} */}
|
|
1595
|
+
<footer
|
|
1596
|
+
style={{${y}
|
|
1597
|
+
display: 'flex',
|
|
1598
|
+
alignItems: 'center',
|
|
1599
|
+
justifyContent: 'space-between',
|
|
1600
|
+
padding: '0 40px',
|
|
1601
|
+
}}
|
|
1602
|
+
>
|
|
1603
|
+
<div className="flex flex-col gap-1">
|
|
1604
|
+
<div className="font-bold text-base flex items-center gap-2">
|
|
1605
|
+
${c||``}
|
|
1606
|
+
<span>${g}</span>
|
|
1607
|
+
</div>
|
|
1608
|
+
<p className="text-xs opacity-60">© ${new Date().getFullYear()} ${g}. All rights reserved.</p>
|
|
1609
|
+
</div>
|
|
1610
|
+
<div className="flex items-center gap-6 text-xs opacity-80">
|
|
1611
|
+
${_.map(e=>`<a href="#${e.toLowerCase()}" className="hover:opacity-100 transition-opacity">${e}</a>`).join(`
|
|
1612
|
+
`)}
|
|
1613
|
+
</div>
|
|
1614
|
+
</footer>`:` {/* ${o(e.name)} */}
|
|
1615
|
+
<div
|
|
1616
|
+
style={{${y}
|
|
1617
|
+
display: 'flex',
|
|
1618
|
+
alignItems: 'center',
|
|
1619
|
+
justifyContent: 'center',
|
|
1620
|
+
padding: '16px',
|
|
1621
|
+
}}
|
|
1622
|
+
>
|
|
1623
|
+
<span className="font-medium text-sm">${l}</span>
|
|
1624
|
+
</div>`}).join(`
|
|
1625
|
+
|
|
1626
|
+
`);return`import React from 'react';
|
|
1627
|
+
|
|
1628
|
+
// ============================================================
|
|
1629
|
+
// ${n} - Generated by Cyrus Studio 2.0
|
|
1630
|
+
// Canvas Dimensions: 1440px width x ${i}px height
|
|
1631
|
+
// Total Components: ${a.length}
|
|
1632
|
+
// ============================================================
|
|
1633
|
+
|
|
1634
|
+
export default function ${n}() {
|
|
1635
|
+
return (
|
|
1636
|
+
<main className="relative w-full min-h-screen bg-[${r}] flex justify-center overflow-x-hidden">
|
|
1637
|
+
<div
|
|
1638
|
+
style={{
|
|
1639
|
+
position: 'relative',
|
|
1640
|
+
width: '100%',
|
|
1641
|
+
maxWidth: 1440,
|
|
1642
|
+
minHeight: ${i},
|
|
1643
|
+
backgroundColor: '${r}',
|
|
1644
|
+
}}
|
|
1645
|
+
className="relative overflow-hidden"
|
|
1646
|
+
>
|
|
1647
|
+
${e}
|
|
1648
|
+
</div>
|
|
1649
|
+
</main>
|
|
1650
|
+
);
|
|
1651
|
+
}`}case`html-css`:{let t=a.map(e=>{let t=`layer-`+e.id.replace(/[^a-zA-Z0-9_]/g,`_`),n=Tc(e.content?.icon||`Sparkles`),r=(e.content?.title||e.content?.headline||e.name||``).replace(/"/g,`"`),i=(e.content?.subhead||e.content?.subtitle||e.content?.text||``).replace(/"/g,`"`),a=(e.content?.buttonText||e.content?.label||`Get Started`).replace(/"/g,`"`),s=e.content?.imageUrl||e.content?.url||e.content?.src||`https://picsum.photos/seed/design/800/600`,c=e.content?.price||`$29/mo`,l=e.content?.value||`$2.4M`,u=e.content?.trend||`+18.4%`,d=e.content?.brandName||r||`Brand`,f=Array.isArray(e.content?.links)?e.content.links:[`Features`,`Solutions`,`Pricing`,`Docs`];return e.type===`navbar`?` <!-- ${o(e.name)} -->
|
|
1652
|
+
<nav class="layer ${t}">
|
|
1653
|
+
<div style="display:flex; align-items:center; gap:8px; font-weight:700; font-size:18px;">
|
|
1654
|
+
${n||``}
|
|
1655
|
+
<span>${d}</span>
|
|
1656
|
+
</div>
|
|
1657
|
+
<div style="display:flex; align-items:center; gap:24px; font-size:14px; opacity:0.85;">
|
|
1658
|
+
${f.map(e=>`<a href="#${e.toLowerCase()}">${e}</a>`).join(`
|
|
1659
|
+
`)}
|
|
1660
|
+
</div>
|
|
1661
|
+
<button type="button" class="btn-primary">${a}</button>
|
|
1662
|
+
</nav>`:e.type===`hero`||e.type===`heroSection`?` <!-- ${o(e.name)} -->
|
|
1663
|
+
<section class="layer ${t}">
|
|
1664
|
+
<div style="max-width:680px; display:flex; flex-direction:column; gap:16px;">
|
|
1665
|
+
<div style="display:inline-flex; align-items:center; gap:8px; padding:4px 12px; border-radius:999px; background:rgba(255,255,255,0.1); font-size:12px; font-weight:600; width:fit-content;">
|
|
1666
|
+
${n||``}
|
|
1667
|
+
<span>Featured Platform</span>
|
|
1668
|
+
</div>
|
|
1669
|
+
<h1 style="font-size:44px; font-weight:800; line-height:1.15; margin:0;">${r||`Next Generation Design & Engineering`}</h1>
|
|
1670
|
+
<p style="font-size:16px; opacity:0.8; line-height:1.6; margin:0;">${i||`Transform your product ideas into reality with seamless visual workflows and copy-ready code.`}</p>
|
|
1671
|
+
<div style="display:flex; gap:12px; margin-top:8px;">
|
|
1672
|
+
<button type="button" class="btn-primary" style="padding:12px 24px;">${a}</button>
|
|
1673
|
+
<button type="button" class="btn-secondary" style="padding:12px 24px;">View Demo</button>
|
|
1674
|
+
</div>
|
|
1675
|
+
</div>
|
|
1676
|
+
</section>`:e.type===`metricCard`||e.type===`statCard`||e.type===`kpiCard`||e.type===`metric`?` <!-- ${o(e.name)} -->
|
|
1677
|
+
<div class="layer ${t}">
|
|
1678
|
+
<div style="display:flex; justify-content:space-between; align-items:center; width:100%;">
|
|
1679
|
+
<span style="font-size:12px; font-weight:600; text-transform:uppercase; opacity:0.7;">${r}</span>
|
|
1680
|
+
<div style="padding:6px; border-radius:8px; background:rgba(255,255,255,0.1);">${n||``}</div>
|
|
1681
|
+
</div>
|
|
1682
|
+
<div style="width:100%;">
|
|
1683
|
+
<div style="font-size:32px; font-weight:800;">${l}</div>
|
|
1684
|
+
<div style="font-size:12px; font-weight:600; color:#34d399; margin-top:4px;">${u} <span style="opacity:0.7; color:inherit; font-weight:400;">vs last month</span></div>
|
|
1685
|
+
</div>
|
|
1686
|
+
</div>`:e.type===`pricingCard`?` <!-- ${o(e.name)} -->
|
|
1687
|
+
<div class="layer ${t}">
|
|
1688
|
+
<div style="display:flex; flex-direction:column; gap:8px; width:100%;">
|
|
1689
|
+
<div style="display:flex; justify-content:space-between; align-items:center;">
|
|
1690
|
+
<h3 style="font-size:18px; font-weight:700; margin:0;">${r}</h3>
|
|
1691
|
+
<span style="padding:2px 10px; border-radius:999px; background:rgba(59,130,246,0.2); color:#60a5fa; font-size:11px; font-weight:700;">Popular</span>
|
|
1692
|
+
</div>
|
|
1693
|
+
<div style="font-size:36px; font-weight:800; margin:8px 0;">${c} <span style="font-size:12px; opacity:0.7; font-weight:400;">/ month</span></div>
|
|
1694
|
+
<p style="font-size:12px; opacity:0.8; margin:0;">${i||`Includes all professional features and unlimited canvases.`}</p>
|
|
1695
|
+
</div>
|
|
1696
|
+
<button type="button" class="btn-primary" style="width:100%;">${a}</button>
|
|
1697
|
+
</div>`:e.type===`featureCard`||e.type===`card`?` <!-- ${o(e.name)} -->
|
|
1698
|
+
<div class="layer ${t}">
|
|
1699
|
+
<div style="display:flex; flex-direction:column; gap:12px;">
|
|
1700
|
+
<div style="width:40px; height:40px; border-radius:12px; background:rgba(59,130,246,0.15); color:#60a5fa; display:flex; align-items:center; justify-content:center;">
|
|
1701
|
+
${n||``}
|
|
1702
|
+
</div>
|
|
1703
|
+
<h3 style="font-size:18px; font-weight:700; margin:0;">${r}</h3>
|
|
1704
|
+
<p style="font-size:13px; opacity:0.8; line-height:1.5; margin:0;">${i||`High-performance components designed for speed, flexibility, and reliability.`}</p>
|
|
1705
|
+
</div>
|
|
1706
|
+
<div style="font-size:12px; font-weight:600; color:#60a5fa; cursor:pointer; margin-top:12px;">${a||`Learn more`} →</div>
|
|
1707
|
+
</div>`:e.type===`image`?` <!-- ${o(e.name)} -->\n <img src="${s}" alt="${r||o(e.name)}" class="layer ${t}" style="object-fit:cover;" />`:e.type===`button`||e.type===`submitButton`?` <!-- ${o(e.name)} -->\n <button type="button" class="layer ${t} btn-primary">\n ${n?n+` `:``}<span>${a}</span>\n </button>`:e.type===`footer`?` <!-- ${o(e.name)} -->
|
|
1708
|
+
<footer class="layer ${t}">
|
|
1709
|
+
<div>
|
|
1710
|
+
<div style="font-weight:700; font-size:16px;">${d}</div>
|
|
1711
|
+
<div style="font-size:12px; opacity:0.6; margin-top:4px;">© ${new Date().getFullYear()} ${d}. All rights reserved.</div>
|
|
1712
|
+
</div>
|
|
1713
|
+
<div style="display:flex; gap:20px; font-size:12px; opacity:0.8;">
|
|
1714
|
+
${f.map(e=>`<a href="#${e.toLowerCase()}">${e}</a>`).join(`
|
|
1715
|
+
`)}
|
|
1716
|
+
</div>
|
|
1717
|
+
</footer>`:` <!-- ${o(e.name)} -->\n <div class="layer ${t}">\n <span>${r}</span>\n </div>`}).join(`
|
|
1718
|
+
|
|
1719
|
+
`),n=a.map(e=>{let t=`layer-`+e.id.replace(/[^a-zA-Z0-9_]/g,`_`),n=e.styles?.backgroundColor||`#18181b`,r=e.styles?.textColor||`#ffffff`,i=e.styles?.borderRadius??16,a=e.styles?.borderWidth||1,o=e.styles?.borderColor||`#27272a`,s=e.styles?.borderStyle||`solid`,c=`background-color: ${n};`;return e.styles?.backgroundGradient&&(c=`background: ${e.styles.backgroundGradient};`),` .${t} {
|
|
1720
|
+
position: absolute;
|
|
1721
|
+
left: ${Math.round(e.x)}px;
|
|
1722
|
+
top: ${Math.round(e.y)}px;
|
|
1723
|
+
width: ${Math.round(e.width)}px;
|
|
1724
|
+
height: ${Math.round(e.height)}px;
|
|
1725
|
+
${c}
|
|
1726
|
+
color: ${r};
|
|
1727
|
+
border-radius: ${i}px;
|
|
1728
|
+
border: ${a}px ${s} ${o};
|
|
1729
|
+
transform: rotate(${e.rotation||0}deg);
|
|
1730
|
+
z-index: ${e.zIndex||1};
|
|
1731
|
+
box-shadow: 0 10px 30px rgba(0,0,0,0.12);
|
|
1732
|
+
box-sizing: border-box;
|
|
1733
|
+
padding: 24px;
|
|
1734
|
+
display: flex;
|
|
1735
|
+
flex-direction: column;
|
|
1736
|
+
justify-content: space-between;
|
|
1737
|
+
overflow: hidden;
|
|
1738
|
+
}`}).join(`
|
|
1739
|
+
|
|
1740
|
+
`);return`<!DOCTYPE html>
|
|
1741
|
+
<html lang="en">
|
|
1742
|
+
<head>
|
|
1743
|
+
<meta charset="UTF-8">
|
|
1744
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
1745
|
+
<title>${e.name}</title>
|
|
1746
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
1747
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
1748
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
|
|
1749
|
+
<style>
|
|
1750
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
1751
|
+
body {
|
|
1752
|
+
margin: 0;
|
|
1753
|
+
padding: 0;
|
|
1754
|
+
background-color: ${r};
|
|
1755
|
+
color: #ffffff;
|
|
1756
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
1757
|
+
display: flex;
|
|
1758
|
+
justify-content: center;
|
|
1759
|
+
-webkit-font-smoothing: antialiased;
|
|
1760
|
+
}
|
|
1761
|
+
a { color: inherit; text-decoration: none; }
|
|
1762
|
+
a:hover { opacity: 1; }
|
|
1763
|
+
.btn-primary {
|
|
1764
|
+
padding: 10px 20px;
|
|
1765
|
+
background: linear-gradient(135deg, #2563eb 0%, #4f46e5 100%);
|
|
1766
|
+
color: #ffffff;
|
|
1767
|
+
border: none;
|
|
1768
|
+
border-radius: 12px;
|
|
1769
|
+
font-size: 14px;
|
|
1770
|
+
font-weight: 600;
|
|
1771
|
+
cursor: pointer;
|
|
1772
|
+
box-shadow: 0 4px 12px rgba(37,99,235,0.3);
|
|
1773
|
+
transition: all 0.2s ease;
|
|
1774
|
+
}
|
|
1775
|
+
.btn-primary:hover { filter: brightness(1.1); transform: translateY(-1px); }
|
|
1776
|
+
.btn-secondary {
|
|
1777
|
+
padding: 10px 20px;
|
|
1778
|
+
background: rgba(255,255,255,0.1);
|
|
1779
|
+
color: #ffffff;
|
|
1780
|
+
border: 1px solid rgba(255,255,255,0.2);
|
|
1781
|
+
border-radius: 12px;
|
|
1782
|
+
font-size: 14px;
|
|
1783
|
+
font-weight: 600;
|
|
1784
|
+
cursor: pointer;
|
|
1785
|
+
backdrop-filter: blur(10px);
|
|
1786
|
+
}
|
|
1787
|
+
.screen-canvas {
|
|
1788
|
+
position: relative;
|
|
1789
|
+
width: 1440px;
|
|
1790
|
+
min-height: ${i}px;
|
|
1791
|
+
background-color: ${r};
|
|
1792
|
+
overflow: hidden;
|
|
1793
|
+
}
|
|
1794
|
+
|
|
1795
|
+
${n}
|
|
1796
|
+
</style>
|
|
1797
|
+
</head>
|
|
1798
|
+
<body>
|
|
1799
|
+
<div class="screen-canvas">
|
|
1800
|
+
${t}
|
|
1801
|
+
</div>
|
|
1802
|
+
</body>
|
|
1803
|
+
</html>`}case`flutter`:return`import 'package:flutter/material.dart';
|
|
1804
|
+
|
|
1805
|
+
// ============================================================
|
|
1806
|
+
// ${n} - Generated by Cyrus Studio 2.0
|
|
1807
|
+
// Canvas Dimensions: 1440x${i}
|
|
1808
|
+
// ============================================================
|
|
1809
|
+
|
|
1810
|
+
class ${n} extends StatelessWidget {
|
|
1811
|
+
const ${n}({super.key});
|
|
1812
|
+
|
|
1813
|
+
@override
|
|
1814
|
+
Widget build(BuildContext context) {
|
|
1815
|
+
return Scaffold(
|
|
1816
|
+
backgroundColor: ${Sc(r,`const Color(0xFF09090B)`)},
|
|
1817
|
+
body: SingleChildScrollView(
|
|
1818
|
+
child: Center(
|
|
1819
|
+
child: SizedBox(
|
|
1820
|
+
width: 1440.0,
|
|
1821
|
+
height: ${i}.0,
|
|
1822
|
+
child: Stack(
|
|
1823
|
+
children: [
|
|
1824
|
+
${a.map(e=>{let t=Sc(e.styles?.backgroundColor,`const Color(0xFF18181B)`),n=Sc(e.styles?.textColor,`const Color(0xFFFFFFFF)`),r=e.styles?.borderRadius??16,i=e.styles?.borderWidth||1,a=Sc(e.styles?.borderColor,`const Color(0xFF27272A)`),s=(e.content?.title||e.content?.headline||e.name||``).replace(/'/g,`\\'`).replace(/\$/g,`\\$`),c=(e.content?.subhead||e.content?.subtitle||e.content?.text||``).replace(/'/g,`\\'`).replace(/\$/g,`\\$`),l=Ec(e.content?.icon);return` // ${o(e.name)}
|
|
1825
|
+
Positioned(
|
|
1826
|
+
left: ${Math.round(e.x)}.0,
|
|
1827
|
+
top: ${Math.round(e.y)}.0,
|
|
1828
|
+
width: ${Math.round(e.width)}.0,
|
|
1829
|
+
height: ${Math.round(e.height)}.0,
|
|
1830
|
+
child: Container(
|
|
1831
|
+
padding: const EdgeInsets.all(24.0),
|
|
1832
|
+
decoration: BoxDecoration(
|
|
1833
|
+
color: ${t},
|
|
1834
|
+
borderRadius: BorderRadius.circular(${r}.0),
|
|
1835
|
+
border: Border.all(color: ${a}, width: ${i}.0),
|
|
1836
|
+
),
|
|
1837
|
+
child: Column(
|
|
1838
|
+
crossAxisAlignment: CrossAxisAlignment.start,
|
|
1839
|
+
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
1840
|
+
children: [
|
|
1841
|
+
if (${l!=null})
|
|
1842
|
+
Icon(${l}, size: 24.0, color: Colors.blueAccent),
|
|
1843
|
+
Text(
|
|
1844
|
+
'${s}',
|
|
1845
|
+
style: TextStyle(color: ${n}, fontSize: 18.0, fontWeight: FontWeight.bold),
|
|
1846
|
+
),
|
|
1847
|
+
if ('${c}'.isNotEmpty)
|
|
1848
|
+
Text(
|
|
1849
|
+
'${c}',
|
|
1850
|
+
style: TextStyle(color: ${n}.withOpacity(0.8), fontSize: 13.0),
|
|
1851
|
+
),
|
|
1852
|
+
],
|
|
1853
|
+
),
|
|
1854
|
+
),
|
|
1855
|
+
),`}).join(`
|
|
1856
|
+
|
|
1857
|
+
`)}
|
|
1858
|
+
],
|
|
1859
|
+
),
|
|
1860
|
+
),
|
|
1861
|
+
),
|
|
1862
|
+
),
|
|
1863
|
+
);
|
|
1864
|
+
}
|
|
1865
|
+
}`;case`swiftui`:return`import SwiftUI
|
|
1866
|
+
|
|
1867
|
+
// ============================================================
|
|
1868
|
+
// ${n} - Generated by Cyrus Studio 2.0
|
|
1869
|
+
// Dimensions: 1440x${i}
|
|
1870
|
+
// ============================================================
|
|
1871
|
+
|
|
1872
|
+
struct ${n}: View {
|
|
1873
|
+
var body: some View {
|
|
1874
|
+
ScrollView([.horizontal, .vertical]) {
|
|
1875
|
+
ZStack(alignment: .topLeading) {
|
|
1876
|
+
${Cc(r,`Color(red: 0.04, green: 0.04, blue: 0.04)`)}
|
|
1877
|
+
.frame(width: 1440, height: ${i})
|
|
1878
|
+
|
|
1879
|
+
${a.map(e=>{let t=Cc(e.styles?.backgroundColor,`Color(red: 0.09, green: 0.09, blue: 0.11)`),n=Cc(e.styles?.textColor,`Color.white`),r=e.styles?.borderRadius??16,i=e.styles?.borderWidth||1,a=Cc(e.styles?.borderColor,`Color(red: 0.15, green: 0.15, blue: 0.16)`),s=(e.content?.title||e.content?.headline||e.name||``).replace(/\\/g,`\\\\`).replace(/"/g,`\\"`),c=Math.round(e.x+e.width/2),l=Math.round(e.y+e.height/2);return` // ${o(e.name)}
|
|
1880
|
+
VStack(alignment: .leading, spacing: 12) {
|
|
1881
|
+
Text("${s}")
|
|
1882
|
+
.font(.headline)
|
|
1883
|
+
.fontWeight(.bold)
|
|
1884
|
+
.foregroundColor(${n})
|
|
1885
|
+
Spacer()
|
|
1886
|
+
}
|
|
1887
|
+
.padding(24)
|
|
1888
|
+
.frame(width: ${Math.round(e.width)}, height: ${Math.round(e.height)})
|
|
1889
|
+
.background(${t})
|
|
1890
|
+
.cornerRadius(${r})
|
|
1891
|
+
.overlay(RoundedRectangle(cornerRadius: ${r}).stroke(${a}, lineWidth: ${i}))
|
|
1892
|
+
.position(x: ${c}, y: ${l})`}).join(`
|
|
1893
|
+
|
|
1894
|
+
`)}
|
|
1895
|
+
}
|
|
1896
|
+
.frame(width: 1440, height: ${i})
|
|
1897
|
+
}
|
|
1898
|
+
}
|
|
1899
|
+
}`}}var kc=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/AIPromptPanel.tsx`;function Ac(){let{activeProject:e,setProject:t,pushSnapshot:n,selectElement:r}=I(),{ai:i,updateAI:a}=No(),{addToast:o}=oo(),{resetZoom:s}=P(),[c,u]=(0,N.useState)(``),[d,f]=(0,N.useState)(!1),[p,m]=(0,N.useState)(!1),[h,g]=(0,N.useState)(`gemini`),[_,v]=(0,N.useState)(``),[y,b]=(0,N.useState)(``),[x,S]=(0,N.useState)(!1),[C,w]=(0,N.useState)(``),T=e=>{let t=e.trim();return!t||t.length<12?!1:t.startsWith(`AIzaSy`)||t.startsWith(`gsk_`)||t.startsWith(`sk-ant-`)||t.startsWith(`sk-proj-`)||t.startsWith(`sk-admin-`)||t.startsWith(`sk-`)||t.startsWith(`pplx-`)||t.startsWith(`xai-`)||t.startsWith(`http://`)||t.startsWith(`https://`)?!0:t.length>=20&&!/\s/.test(t)};(0,N.useEffect)(()=>{let e=[`cyrus_active_ai_key`,`cyrus_gemini_api_key`,`gemini_api_key`,`cyrus_groq_api_key`,`cyrus_openai_api_key`,`cyrus_anthropic_api_key`,`cyrus_deepseek_api_key`,`cyrus_grok_api_key`,`cyrus_perplexity_api_key`,`cyrus_ollama_api_key`],t=``;for(let n of e){let e=localStorage.getItem(n);if(e&&T(e)){t=e;break}}if(!t&&i?.apiKey&&T(i.apiKey)&&(t=i.apiKey),t){u(t);let e=_c(t);e&&g(e),m(!0)}},[i?.apiKey]);let ee=e=>{e.preventDefault();let t=c.trim();if(!t){v(`Please enter an API key.`);return}if(!T(t)){v(`Invalid API key format. Please enter a genuine API key.`);return}v(``);let n=_c(t)||h;g(n),localStorage.setItem(`cyrus_active_ai_key`,t),localStorage.setItem(`cyrus_${n}_api_key`,t),n===`gemini`&&localStorage.setItem(`gemini_api_key`,t),n===`groq`&&localStorage.setItem(`cyrus_groq_api_key`,t),a({apiKey:t}),m(!0);let r=gc.find(e=>e.id===n)||gc[0];o(`Unlocked with ${r.name}!`,`success`)},E=()=>{localStorage.removeItem(`cyrus_active_ai_key`),localStorage.removeItem(`cyrus_gemini_api_key`),localStorage.removeItem(`gemini_api_key`),localStorage.removeItem(`cyrus_groq_api_key`),localStorage.removeItem(`cyrus_openai_api_key`),localStorage.removeItem(`cyrus_anthropic_api_key`),localStorage.removeItem(`cyrus_deepseek_api_key`),localStorage.removeItem(`cyrus_grok_api_key`),localStorage.removeItem(`cyrus_perplexity_api_key`),localStorage.removeItem(`cyrus_ollama_api_key`),a({apiKey:``}),u(``),m(!1),o(`API key removed.`,`info`)},te=async i=>{let a=(i||y).trim();if(!a||!e)return;let l=c.trim();if(!l){o(`Please enter and unlock your API key first.`,`error`);return}let u=gc.find(e=>e.id===h)||gc[0];S(!0),w(`Connecting to ${u.name}...`),n(`AI Magic: ${a.slice(0,25)}`);try{let e=I.getState().activeProject,n=I.getState().activePageId;if(!e)return;let i=e.pages.find(e=>e.id===n)||e.pages[0];if(!i)return;let c=await bc(a,h,l,e=>w(e),i.elements),d=(c.elements||[]).reduce((e,t)=>Math.max(e,(t.y||0)+(t.height||0)),0),f=Math.max(1200,d+80),p=c.theme===`dark`?`#09090b`:`#f8f9fa`,m={...i,name:c.title||i.name,settings:{...i.settings,backgroundColor:p,minHeight:f},elements:c.elements},g=e.pages.map(e=>e.id===i.id?m:e);t({...e,pages:g,updatedAt:new Date().toISOString()});try{let e=Oc(m,`react-tailwind`),t=Oc(m,`html-css`),n=mc.getState();n.updateFileContent(`src/App.tsx`,e),n.updateFileContent(`index.html`,t)}catch(e){console.warn(`Failed to sync code to dev tools:`,e)}b(``),c.elements.length>0&&r(c.elements[0].id),setTimeout(()=>s(),200),o(`✨ Generated ${c.elements.length} editable elements with ${u.name}!`,`success`)}catch(e){o(e?.message||`AI Generation failed. Please check your API key.`,`error`)}finally{S(!1),w(``)}},D=gc.find(e=>e.id===h)||gc[0];return(0,F.jsxDEV)(`div`,{className:`flex flex-col h-full bg-white dark:bg-[#1c1c1e] text-[#1d1d1f] dark:text-[#f5f5f7] select-none text-[12.5px]`,children:p?(0,F.jsxDEV)(`div`,{className:`flex flex-col h-full`,children:[(0,F.jsxDEV)(`div`,{className:`px-4 pt-4 pb-3 shrink-0`,children:(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between px-3 py-2 rounded-xl bg-[#f4f4f6] dark:bg-[#252528] border border-[#e5e5ea] dark:border-[#38383a]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-emerald-500 animate-pulse shrink-0`},void 0,!1,{fileName:kc,lineNumber:337,columnNumber:17},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[12px] font-semibold text-[#1d1d1f] dark:text-white`,children:D.name},void 0,!1,{fileName:kc,lineNumber:339,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`ml-1.5 text-[10.5px] text-[#86868b]`,children:D.badge},void 0,!1,{fileName:kc,lineNumber:342,columnNumber:19},this)]},void 0,!0,{fileName:kc,lineNumber:338,columnNumber:17},this)]},void 0,!0,{fileName:kc,lineNumber:336,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:E,className:`text-[11px] font-medium text-[#7d2ae8] dark:text-[#9d52ff] hover:underline cursor-pointer shrink-0`,children:`Change`},void 0,!1,{fileName:kc,lineNumber:347,columnNumber:15},this)]},void 0,!0,{fileName:kc,lineNumber:335,columnNumber:13},this)},void 0,!1,{fileName:kc,lineNumber:334,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`px-4 pb-3 shrink-0`,children:(0,F.jsxDEV)(`textarea`,{value:y,onChange:e=>b(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),te())},placeholder:`Describe anything you want to design...`,disabled:x,rows:5,className:`w-full p-3.5 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#1d1d1f] dark:text-[#f5f5f7] placeholder:text-[#86868b] text-[13px] rounded-xl border border-transparent focus:border-[#7d2ae8] focus:bg-white dark:focus:bg-[#1c1c1e] outline-none resize-none transition-all leading-relaxed`},void 0,!1,{fileName:kc,lineNumber:359,columnNumber:13},this)},void 0,!1,{fileName:kc,lineNumber:358,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`px-4 pt-3 pb-4 shrink-0`,children:x?(0,F.jsxDEV)(`div`,{className:`w-full px-4 py-2.5 rounded-xl bg-[#7d2ae8]/10 border border-[#7d2ae8]/25 flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(kr,{className:`w-3.5 h-3.5 text-[#7d2ae8] dark:text-[#9d52ff] animate-spin`},void 0,!1,{fileName:kc,lineNumber:380,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`text-[12px] font-medium text-[#7d2ae8] dark:text-[#9d52ff]`,children:C||`Generating…`},void 0,!1,{fileName:kc,lineNumber:381,columnNumber:19},this)]},void 0,!0,{fileName:kc,lineNumber:379,columnNumber:17},this),(0,F.jsxDEV)(`button`,{onClick:()=>S(!1),className:`text-[11px] font-medium text-[#ff3b30] hover:underline cursor-pointer`,children:`Stop`},void 0,!1,{fileName:kc,lineNumber:385,columnNumber:17},this)]},void 0,!0,{fileName:kc,lineNumber:378,columnNumber:15},this):(0,F.jsxDEV)(`button`,{onClick:()=>te(),disabled:!y.trim(),className:`w-full h-10 rounded-xl bg-[#7d2ae8] hover:bg-[#6b21ce] disabled:opacity-30 text-white font-bold text-[13px] transition-all cursor-pointer shadow-sm flex items-center justify-center gap-2 active:scale-[0.98]`,children:[(0,F.jsxDEV)(vi,{className:`w-4 h-4`},void 0,!1,{fileName:kc,lineNumber:398,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Generate on Canvas`},void 0,!1,{fileName:kc,lineNumber:399,columnNumber:17},this)]},void 0,!0,{fileName:kc,lineNumber:393,columnNumber:15},this)},void 0,!1,{fileName:kc,lineNumber:376,columnNumber:11},this)]},void 0,!0,{fileName:kc,lineNumber:331,columnNumber:9},this):(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-6 flex flex-col items-center text-center justify-center -mt-6`,children:[(0,F.jsxDEV)(`div`,{className:`w-14 h-14 rounded-2xl bg-[#f0ebff] dark:bg-[#7d2ae8]/20 flex items-center justify-center text-[#7d2ae8] dark:text-[#9d52ff] mb-4 shadow-2xs`,children:(0,F.jsxDEV)(vi,{className:`w-6 h-6 fill-[#7d2ae8]/30 dark:fill-[#9d52ff]/30`},void 0,!1,{fileName:kc,lineNumber:246,columnNumber:13},this)},void 0,!1,{fileName:kc,lineNumber:245,columnNumber:11},this),(0,F.jsxDEV)(`h2`,{className:`font-bold text-[16px] text-[#1d1d1f] dark:text-white mb-1.5`,children:`AI Magic Studio`},void 0,!1,{fileName:kc,lineNumber:249,columnNumber:11},this),(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b] dark:text-[#a1a1a6] leading-relaxed max-w-[260px] mb-6`,children:`Enter an API key from any supported provider — Gemini, OpenAI, Groq, Anthropic, DeepSeek, Grok, or Perplexity.`},void 0,!1,{fileName:kc,lineNumber:252,columnNumber:11},this),(0,F.jsxDEV)(`form`,{onSubmit:ee,className:`w-full max-w-[300px] text-left`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between mb-1.5`,children:[(0,F.jsxDEV)(`label`,{className:`text-[11.5px] font-semibold text-[#1d1d1f] dark:text-[#e5e5ea] flex items-center gap-1.5`,children:[(0,F.jsxDEV)(Xr,{className:`w-3.5 h-3.5 text-[#7d2ae8] dark:text-[#9d52ff]`},void 0,!1,{fileName:kc,lineNumber:260,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`API Key`},void 0,!1,{fileName:kc,lineNumber:261,columnNumber:17},this)]},void 0,!0,{fileName:kc,lineNumber:259,columnNumber:15},this),c.trim().length>=4&&(0,F.jsxDEV)(`span`,{className:`text-[10px] font-semibold px-1.5 py-0.5 rounded-full bg-[#7d2ae8]/15 text-[#7d2ae8] dark:text-[#9d52ff] border border-[#7d2ae8]/25`,children:gc.find(e=>e.id===_c(c))?.name||`Unknown`},void 0,!1,{fileName:kc,lineNumber:265,columnNumber:17},this)]},void 0,!0,{fileName:kc,lineNumber:258,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[(0,F.jsxDEV)(`input`,{type:d?`text`:`password`,value:c,onChange:e=>{u(e.target.value),_&&v(``)},placeholder:`AIzaSy… gsk_… sk-… sk-ant-… xai-… pplx-…`,className:`w-full h-10 pl-3 pr-10 rounded-xl bg-[#edf2fe] dark:bg-[#2c2c2e] text-[#1d1d1f] dark:text-white placeholder:text-[#86868b] border transition-all outline-none text-[13px] font-mono ${_?`border-[#ff3b30] bg-[#fff0ef] dark:bg-[#3a1a1a]`:`border-transparent focus:border-[#7d2ae8] focus:bg-white dark:focus:bg-[#1c1c1e]`}`},void 0,!1,{fileName:kc,lineNumber:272,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>f(!d),className:`absolute right-3 text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-white transition-colors cursor-pointer`,children:d?(0,F.jsxDEV)(qr,{className:`w-4 h-4`},void 0,!1,{fileName:kc,lineNumber:291,columnNumber:28},this):(0,F.jsxDEV)(l,{className:`w-4 h-4`},void 0,!1,{fileName:kc,lineNumber:291,columnNumber:61},this)},void 0,!1,{fileName:kc,lineNumber:286,columnNumber:15},this)]},void 0,!0,{fileName:kc,lineNumber:271,columnNumber:13},this),_&&(0,F.jsxDEV)(`p`,{className:`mt-2 text-[11px] text-[#ff3b30] leading-snug text-left`,children:_},void 0,!1,{fileName:kc,lineNumber:297,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`submit`,disabled:!c.trim(),className:`w-full h-10 mt-4 rounded-xl bg-[#7d2ae8] hover:bg-[#6b21ce] disabled:opacity-40 text-white font-bold text-[13px] shadow-sm transition-all cursor-pointer flex items-center justify-center gap-2 active:scale-98`,children:[(0,F.jsxDEV)(vi,{className:`w-4 h-4`},void 0,!1,{fileName:kc,lineNumber:307,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Save & Unlock AI Magic`},void 0,!1,{fileName:kc,lineNumber:308,columnNumber:15},this)]},void 0,!0,{fileName:kc,lineNumber:302,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`text-center mt-5`,children:(0,F.jsxDEV)(`a`,{href:`https://aistudio.google.com/app/apikey`,target:`_blank`,rel:`noopener noreferrer`,className:`text-[#0071e3] text-[12px] hover:underline inline-flex items-center gap-1 font-medium`,children:[(0,F.jsxDEV)(`span`,{children:`Get a free Gemini API key`},void 0,!1,{fileName:kc,lineNumber:318,columnNumber:17},this),(0,F.jsxDEV)(et,{className:`w-3 h-3`},void 0,!1,{fileName:kc,lineNumber:319,columnNumber:17},this)]},void 0,!0,{fileName:kc,lineNumber:312,columnNumber:15},this)},void 0,!1,{fileName:kc,lineNumber:311,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-center gap-1.5 mt-4 text-[10.5px] text-[#86868b] text-center`,children:[(0,F.jsxDEV)(Ri,{className:`w-3 h-3 text-[#86868b] shrink-0`},void 0,!1,{fileName:kc,lineNumber:324,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Your API key is stored safely in your browser local storage.`},void 0,!1,{fileName:kc,lineNumber:325,columnNumber:15},this)]},void 0,!0,{fileName:kc,lineNumber:323,columnNumber:13},this)]},void 0,!0,{fileName:kc,lineNumber:257,columnNumber:11},this)]},void 0,!0,{fileName:kc,lineNumber:243,columnNumber:9},this)},void 0,!1,{fileName:kc,lineNumber:237,columnNumber:5},this)}var jc=`modulepreload`,Mc=function(e){return`/`+e},Nc={},Pc=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Mc(t,n),t=s(t),t in Nc)return;Nc[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:jc,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},L=`C:/Users/Shadow/Desktop/cyrus/src/pages/DashboardPage.tsx`,Fc=(0,N.lazy)(()=>Pc(()=>import(`./CreateProjectDialog-DI7tlDTn.js`).then(e=>({default:e.CreateProjectDialog})),__vite__mapDeps([0,1,2,3,4,5,6]))),Ic=(0,N.lazy)(()=>Pc(()=>import(`./WelcomeOnboardingModal-B-_unbCE.js`).then(e=>({default:e.WelcomeOnboardingModal})),__vite__mapDeps([7,1,2,3,4,5,6]))),Lc=(0,N.lazy)(()=>Pc(()=>import(`./ImportModal-C7-xg0X4.js`).then(e=>({default:e.ImportModal})),__vite__mapDeps([8,1,2,3,4,5,6])));function Rc(e){try{let t=new Date,n=new Date(e),r=t.getTime()-n.getTime(),i=Math.floor(r/6e4),a=Math.floor(i/60),o=Math.floor(a/24);return i<1?`Just now`:i<60?`${i}m ago`:a<24?`${a}h ago`:o===1?`Yesterday`:o<7?`${o}d ago`:n.toLocaleDateString([],{month:`short`,day:`numeric`})}catch{return`Recently`}}function zc({onOpenProject:e,onOpenSettings:t,onOpenFeedback:n}){let[r,i]=(0,N.useState)([]),[o,s]=(0,N.useState)(``),[c,l]=(0,N.useState)(`all`),[u,d]=(0,N.useState)(`updated_desc`),[f,p]=(0,N.useState)(`grid`),[m,h]=(0,N.useState)(!1),[_,v]=(0,N.useState)(!1),[y,b]=(0,N.useState)(!1),[x,S]=(0,N.useState)(!1),[T,ee]=(0,N.useState)(!1),[E,te]=(0,N.useState)(!1),[D,ne]=(0,N.useState)(null),[re,O]=(0,N.useState)(null),[oe,se]=(0,N.useState)(!0),[ce,le]=(0,N.useState)(null),[k,de]=(0,N.useState)(``),[pe,me]=(0,N.useState)(null),he=(0,N.useRef)(null),ge=(0,N.useRef)(null),{addToast:A}=oo(),{appearance:_e,updateAppearance:ve}=No(),{session:ye}=cs(),be=async()=>{se(!0);let e=await so();i(e),se(!1)};(0,N.useEffect)(()=>{be()},[]),(0,N.useEffect)(()=>{let e=e=>{he.current&&!he.current.contains(e.target)&&h(!1),ge.current&&!ge.current.contains(e.target)&&v(!1),e.target.closest(`.project-menu-container`)||O(null)};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[]);let xe=(0,N.useMemo)(()=>{let e=o.toLowerCase().trim();return r.filter(t=>!e||t.name.toLowerCase().includes(e)||t.type.toLowerCase().includes(e)||t.pages.some(t=>t.name.toLowerCase().includes(e))?c===`favorites`?t.isFavorite:c===`all`||t.type===c:!1).sort((e,t)=>u===`name_asc`?e.name.localeCompare(t.name):u===`created_desc`?new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime():new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime())},[r,o,c,u]),Se=async(t=`webapp`)=>{let n=t===`doc`,r=t===`resume`,i=`page_${M()}`,a=n?[{id:`el_${M()}`,type:`heading`,name:`Document Title`,x:120,y:60,width:840,height:60,rotation:0,zIndex:1,styles:{fontSize:36,fontWeight:`800`,textColor:`#1d1d1f`},content:{text:`Untitled Document`}},{id:`el_${M()}`,type:`paragraph`,name:`Document Subtitle`,x:120,y:130,width:840,height:30,rotation:0,zIndex:2,styles:{fontSize:16,fontWeight:`400`,textColor:`#86868b`},content:{text:`Start writing your document notes, article, or documentation...`}},{id:`el_${M()}`,type:`paragraph`,name:`Document Body Text`,x:120,y:180,width:840,height:450,rotation:0,zIndex:3,styles:{fontSize:15,fontWeight:`400`,textColor:`#1d1d1f`,lineHeight:1.6},content:{text:`Click anywhere on this page to start writing. Type freely, edit words directly, and use the AI writing tools for instant drafting.`}}]:r?[{id:`el_${M()}`,type:`heading`,name:`Applicant Name`,x:80,y:40,width:800,height:45,rotation:0,zIndex:1,styles:{fontSize:32,fontWeight:`800`,textColor:`#1d1d1f`,letterSpacing:`-0.02em`},content:{text:`YOUR NAME HERE`}},{id:`el_${M()}`,type:`paragraph`,name:`Contact & Portfolio Info`,x:80,y:90,width:800,height:30,rotation:0,zIndex:2,styles:{fontSize:13,fontWeight:`500`,textColor:`#6e6e73`},content:{text:`Senior Software Engineer • email@example.com • (555) 019-2834 • linkedin.com/in/yourprofile • San Francisco, CA`}},{id:`el_${M()}`,type:`heading`,name:`Summary Title`,x:80,y:140,width:800,height:25,rotation:0,zIndex:3,styles:{fontSize:14,fontWeight:`700`,textColor:`#7d2ae8`,letterSpacing:`0.08em`},content:{text:`PROFESSIONAL SUMMARY`}},{id:`el_${M()}`,type:`paragraph`,name:`Summary Text`,x:80,y:170,width:800,height:65,rotation:0,zIndex:4,styles:{fontSize:14,fontWeight:`400`,textColor:`#1d1d1f`,lineHeight:1.5},content:{text:`Results-driven Software Engineer with 6+ years of experience crafting modern web applications, scalable user interfaces, and cloud design systems. Specialized in TypeScript, React, and front-end optimization.`}},{id:`el_${M()}`,type:`heading`,name:`Experience Title`,x:80,y:250,width:800,height:25,rotation:0,zIndex:5,styles:{fontSize:14,fontWeight:`700`,textColor:`#7d2ae8`,letterSpacing:`0.08em`},content:{text:`WORK EXPERIENCE`}},{id:`el_${M()}`,type:`paragraph`,name:`Experience Content`,x:80,y:280,width:800,height:200,rotation:0,zIndex:6,styles:{fontSize:13.5,fontWeight:`400`,textColor:`#1d1d1f`,lineHeight:1.6},content:{text:`Lead Frontend Engineer — Tech Innovations Inc. (2023 - Present)
|
|
1900
|
+
• Architected enterprise design system component library serving 2M+ monthly users.
|
|
1901
|
+
• Reduced page load times by 40% using code-splitting and asset optimization.
|
|
1902
|
+
|
|
1903
|
+
Senior Software Developer — Cloud Platform (2020 - 2023)
|
|
1904
|
+
• Developed real-time canvas editor using React, TypeScript, and Canvas APIs.
|
|
1905
|
+
• Led a team of 4 engineers delivering critical product features on time.`}},{id:`el_${M()}`,type:`heading`,name:`Education Title`,x:80,y:500,width:800,height:25,rotation:0,zIndex:7,styles:{fontSize:14,fontWeight:`700`,textColor:`#7d2ae8`,letterSpacing:`0.08em`},content:{text:`EDUCATION & SKILLS`}},{id:`el_${M()}`,type:`paragraph`,name:`Education Content`,x:80,y:530,width:800,height:120,rotation:0,zIndex:8,styles:{fontSize:13.5,fontWeight:`400`,textColor:`#1d1d1f`,lineHeight:1.6},content:{text:`B.S. in Computer Science — State University (2016 - 2020)
|
|
1906
|
+
Skills: TypeScript, JavaScript (ES6+), React, Next.js, Node.js, HTML5/CSS3, TailwindCSS, Git, System Architecture.`}}]:[],o={id:`proj_${M()}`,name:n?`Untitled Document`:r?`Professional Resume`:`Untitled Design`,type:t,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),pages:[{id:i,name:n?`Document`:r?`Resume`:`Page 1`,slug:`page-1`,elements:a,settings:{backgroundColor:`#ffffff`}}],settings:{canvasBackground:`#ffffff`,gridSize:8,showGrid:!n&&!r,snapToGrid:!n&&!r,platformTarget:`web`}};await _o(o),A(n?`Opened writing document`:r?`Opened Resume Studio`:`Created new blank design`,`success`),e(o.id)},Ce=t=>{if(t){let n=As.find(e=>e.id===t);if(n){let t={...n.project,id:`proj_${M()}`,name:n.name,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};_o(t).then(()=>{A(`Created project from "${n.name}"`,`success`),e(t.id)});return}}l(`templates`)},we=async(e,t)=>{e.stopPropagation();let n={...t,isFavorite:!t.isFavorite};await _o(n),A(n.isFavorite?`Starred project`:`Unstarred project`,`info`),be()},Te=async(e,t)=>{e.stopPropagation(),O(null);let n={...t,id:`proj_${M()}`,name:`${t.name} (Copy)`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};await _o(n),A(`Duplicated "${t.name}"`,`success`),be()},Ee=(e,t)=>{e.stopPropagation(),O(null),vo(t),A(`Exported "${t.name}" JSON`,`success`)},De=(e,t)=>{e.stopPropagation(),O(null),le({id:t.id,name:t.name}),de(t.name)};return(0,F.jsxDEV)(`div`,{className:`h-full w-full overflow-hidden bg-[#f4f4f7] dark:bg-[#000000] text-[#1d1d1f] dark:text-[#f5f5f7] flex select-none font-sans`,children:[(0,F.jsxDEV)(`aside`,{className:`w-16 h-full bg-white dark:bg-[#1c1c1e] border-r border-[#e5e5ea] dark:border-[#38383a] flex flex-col items-center py-3 justify-between z-30 shrink-0`,children:[(0,F.jsxDEV)(`div`,{className:`flex flex-col items-center gap-4 w-full`,children:(0,F.jsxDEV)(`div`,{className:`flex flex-col items-center gap-2.5 w-full px-1 pt-2`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{l(`all`),ne(null)},className:`w-full py-2.5 px-1 rounded-xl flex flex-col items-center justify-center gap-1 text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-white hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-all cursor-pointer`,children:[(0,F.jsxDEV)(Me,{className:`w-5 h-5`},void 0,!1,{fileName:L,lineNumber:504,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] leading-none`,children:`Home`},void 0,!1,{fileName:L,lineNumber:505,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:496,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{l(`all`),ne(null)},className:`w-full py-2.5 px-1 rounded-xl flex flex-col items-center justify-center gap-1 text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-white hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-all cursor-pointer`,children:[(0,F.jsxDEV)(yr,{className:`w-5 h-5`},void 0,!1,{fileName:L,lineNumber:516,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] leading-none`,children:`Projects`},void 0,!1,{fileName:L,lineNumber:517,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:508,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{l(`templates`),ne(null)},className:`w-full py-2.5 px-1 rounded-xl flex flex-col items-center justify-center gap-1 text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-white hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-all cursor-pointer`,children:[(0,F.jsxDEV)(ie,{className:`w-5 h-5`},void 0,!1,{fileName:L,lineNumber:528,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] leading-none`,children:`Templates`},void 0,!1,{fileName:L,lineNumber:529,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:520,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>ne(e=>e===`ai`?null:`ai`),className:j(`w-full py-2.5 px-1 rounded-xl flex flex-col items-center justify-center gap-1 transition-all cursor-pointer group`,D===`ai`?`bg-[#7d2ae8]/10 text-[#7d2ae8] dark:text-[#9d52ff] font-semibold`:`text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#7d2ae8] dark:hover:text-[#9d52ff] hover:bg-[#7d2ae8]/10`),title:`AI Magic Studio`,children:[(0,F.jsxDEV)(Ms,{className:`w-5.5 h-5.5 group-hover:scale-110 transition-transform`},void 0,!1,{fileName:L,lineNumber:543,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] font-semibold text-[#7d2ae8] dark:text-[#9d52ff] leading-none`,children:`AI Magic`},void 0,!1,{fileName:L,lineNumber:544,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:532,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:t,className:`w-full py-2.5 px-1 rounded-xl flex flex-col items-center justify-center gap-1 text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-white hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-all cursor-pointer`,children:[(0,F.jsxDEV)(Ae,{className:`w-5 h-5`},void 0,!1,{fileName:L,lineNumber:552,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] leading-none`,children:`More`},void 0,!1,{fileName:L,lineNumber:553,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:547,columnNumber:13},this)]},void 0,!0,{fileName:L,lineNumber:495,columnNumber:11},this)},void 0,!1,{fileName:L,lineNumber:493,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col items-center gap-3 w-full px-1`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:n,className:`w-full py-2 px-1 rounded-xl flex flex-col items-center justify-center gap-1 text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#7d2ae8] dark:hover:text-[#9d52ff] hover:bg-[#7d2ae8]/10 transition-all cursor-pointer group`,title:`Feedback & Suggestions`,children:[(0,F.jsxDEV)(Et,{className:`w-5 h-5 group-hover:scale-110 transition-transform text-[#7d2ae8] dark:text-[#9d52ff]`},void 0,!1,{fileName:L,lineNumber:567,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] font-semibold text-[#7d2ae8] dark:text-[#9d52ff] leading-none`,children:`Feedback`},void 0,!1,{fileName:L,lineNumber:568,columnNumber:13},this)]},void 0,!0,{fileName:L,lineNumber:561,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:t,className:`w-9 h-9 rounded-full bg-gradient-to-tr from-[#7d2ae8] to-[#0071e3] text-white font-bold text-xs flex items-center justify-center border-2 border-white dark:border-[#1c1c1e] shadow-2xs cursor-pointer hover:scale-105 transition-transform`,title:`Account & Settings`,children:(ye.user?.name&&!ye.user.name.startsWith(`apple_user_`)?ye.user.name:`User`).split(` `).map(e=>e[0]).join(``).slice(0,2).toUpperCase()},void 0,!1,{fileName:L,lineNumber:572,columnNumber:11},this)]},void 0,!0,{fileName:L,lineNumber:559,columnNumber:9},this)]},void 0,!0,{fileName:L,lineNumber:492,columnNumber:7},this),D===`ai`&&(0,F.jsxDEV)(`div`,{className:`w-[300px] h-full bg-white dark:bg-[#1c1c1e] border-r border-[#e5e5ea] dark:border-[#38383a] flex flex-col z-20 animate-in fade-in slide-in-from-left-2 duration-150 shadow-sm shrink-0`,children:[(0,F.jsxDEV)(`div`,{className:`h-10 px-3.5 border-b border-[#f4f4f6] dark:border-[#2c2c2e] flex items-center justify-between shrink-0 bg-[#fbfbfd] dark:bg-[#1c1c1e]`,children:[(0,F.jsxDEV)(`span`,{className:`text-[12.5px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`AI Magic Studio`},void 0,!1,{fileName:L,lineNumber:592,columnNumber:13},this),(0,F.jsxDEV)(`button`,{onClick:()=>ne(null),className:`p-1 rounded-md text-[#86868b] dark:text-[#636366] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-colors cursor-pointer`,title:`Close panel`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:L,lineNumber:600,columnNumber:15},this)},void 0,!1,{fileName:L,lineNumber:595,columnNumber:13},this)]},void 0,!0,{fileName:L,lineNumber:591,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,F.jsxDEV)(Ac,{},void 0,!1,{fileName:L,lineNumber:604,columnNumber:13},this)},void 0,!1,{fileName:L,lineNumber:603,columnNumber:11},this)]},void 0,!0,{fileName:L,lineNumber:590,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto flex flex-col no-scrollbar`,children:[(0,F.jsxDEV)(`div`,{className:`w-full bg-gradient-to-b from-[#e8e6fb] via-[#f2ebfb] to-[#f4f4f7] dark:from-[#1e1a38] dark:via-[#161426] dark:to-[#000000] pt-6 pb-8 px-8 sm:px-12 flex flex-col items-center border-b border-[#e5e5ea]/60 dark:border-[#2c2c2e]/60 relative`,children:[(0,F.jsxDEV)(`div`,{className:`w-full max-w-7xl flex items-center justify-between mb-6`,children:[(0,F.jsxDEV)(`div`,{onClick:()=>window.location.reload(),className:`flex items-center gap-3 cursor-pointer transition-transform hover:scale-102`,title:`Refresh Page`,children:[(0,F.jsxDEV)(us,{size:`md`},void 0,!1,{fileName:L,lineNumber:621,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono text-[#86868b] dark:text-[#636366] bg-white/70 dark:bg-[#2c2c2e]/70 px-2.5 py-0.5 rounded-full border border-[#e5e5ea] dark:border-[#38383a]`,children:`Studio`},void 0,!1,{fileName:L,lineNumber:622,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:616,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>ee(!0),className:`px-4 py-2 rounded-full bg-white/80 dark:bg-[#2c2c2e]/80 hover:bg-white text-[13px] font-medium text-[#1d1d1f] dark:text-[#f5f5f7] flex items-center gap-2 transition-all shadow-apple-sm cursor-pointer border border-[#e5e5ea] dark:border-[#38383a]`,children:[(0,F.jsxDEV)(ae,{className:`w-4 h-4 text-[#6e6e73] dark:text-[#8e8e93]`},void 0,!1,{fileName:L,lineNumber:633,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Import`},void 0,!1,{fileName:L,lineNumber:634,columnNumber:17},this)]},void 0,!0,{fileName:L,lineNumber:628,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>Se(),className:`px-4.5 py-2 rounded-full bg-[#7d2ae8] hover:bg-[#6b21ce] text-[13px] font-semibold text-white flex items-center gap-2 shadow-apple-sm transition-all active:scale-[0.98] cursor-pointer`,title:`Create a new blank canvas design`,children:[(0,F.jsxDEV)(na,{className:`w-4 h-4`},void 0,!1,{fileName:L,lineNumber:644,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Create Design`},void 0,!1,{fileName:L,lineNumber:645,columnNumber:17},this)]},void 0,!0,{fileName:L,lineNumber:638,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{let e=_e.theme===`dark`||_e.theme===`system`&&window.matchMedia(`(prefers-color-scheme: dark)`).matches;ve({theme:e?`light`:`dark`})},className:`p-2 rounded-full text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-white/80 dark:hover:bg-[#2c2c2e] transition-colors cursor-pointer`,children:[(0,F.jsxDEV)(fa,{className:`w-[18px] h-[18px] hidden dark:block text-amber-500`},void 0,!1,{fileName:L,lineNumber:657,columnNumber:17},this),(0,F.jsxDEV)(Qt,{className:`w-[18px] h-[18px] block dark:hidden text-[#7d2ae8]`},void 0,!1,{fileName:L,lineNumber:658,columnNumber:17},this)]},void 0,!0,{fileName:L,lineNumber:648,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:627,columnNumber:13},this)]},void 0,!0,{fileName:L,lineNumber:615,columnNumber:11},this),(0,F.jsxDEV)(`h1`,{className:`text-[32px] sm:text-[40px] font-extrabold tracking-tight text-[#2d124d] dark:text-white drop-shadow-2xs text-center mb-6`,children:`What will you design today?`},void 0,!1,{fileName:L,lineNumber:664,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`w-full max-w-2xl relative mb-10`,children:[(0,F.jsxDEV)(lt,{className:`w-5 h-5 text-[#86868b] dark:text-[#636366] absolute left-5 top-1/2 -translate-y-1/2 pointer-events-none`},void 0,!1,{fileName:L,lineNumber:670,columnNumber:13},this),(0,F.jsxDEV)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:`Search anything`,className:`w-full h-13 pl-14 pr-6 bg-white dark:bg-[#1c1c1e] text-[15px] text-[#1d1d1f] dark:text-[#f5f5f7] placeholder:text-[#86868b] dark:placeholder:text-[#636366] rounded-full border border-white/60 dark:border-[#38383a] shadow-apple-md focus:outline-none focus:ring-2 focus:ring-[#7d2ae8]/40 transition-all`},void 0,!1,{fileName:L,lineNumber:671,columnNumber:13},this)]},void 0,!0,{fileName:L,lineNumber:669,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-center gap-6 sm:gap-8 max-w-5xl mx-auto overflow-x-auto no-scrollbar pb-2`,children:[{label:`Templates`,color:`bg-purple-600`,icon:(0,F.jsxDEV)(ue,{className:`w-5 h-5 text-white`},void 0,!1,{fileName:L,lineNumber:683,columnNumber:67},this),action:()=>l(`templates`)},{label:`Presentation`,color:`bg-orange-500`,icon:(0,F.jsxDEV)(ht,{className:`w-5 h-5 text-white`},void 0,!1,{fileName:L,lineNumber:684,columnNumber:70},this),action:()=>Se(`webapp`)},{label:`Social media`,color:`bg-rose-500`,icon:(0,F.jsxDEV)(Ar,{className:`w-5 h-5 text-white`},void 0,!1,{fileName:L,lineNumber:685,columnNumber:68},this),action:()=>Se(`mobile`)},{label:`Resume`,color:`bg-purple-800`,icon:(0,F.jsxDEV)(Kn,{className:`w-5 h-5 text-white`},void 0,!1,{fileName:L,lineNumber:686,columnNumber:64},this),action:()=>Se(`resume`)},{label:`Doc`,color:`bg-teal-500`,icon:(0,F.jsxDEV)(C,{className:`w-5 h-5 text-white`},void 0,!1,{fileName:L,lineNumber:687,columnNumber:59},this),action:()=>Se(`doc`)},{label:`App`,color:`bg-[#0071e3]`,icon:(0,F.jsxDEV)(pt,{className:`w-5 h-5 text-white`},void 0,!1,{fileName:L,lineNumber:688,columnNumber:60},this),action:()=>Se(`webapp`)},{label:`Website`,color:`bg-cyan-500`,icon:(0,F.jsxDEV)(a,{className:`w-5 h-5 text-white`},void 0,!1,{fileName:L,lineNumber:689,columnNumber:63},this),action:()=>Se(`landing`)}].map((e,t)=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:e.action,className:`flex flex-col items-center gap-2 group cursor-pointer shrink-0`,children:[(0,F.jsxDEV)(`div`,{className:j(`w-12 h-12 rounded-full flex items-center justify-center shadow-apple-sm transition-all duration-200 group-hover:scale-110 group-hover:shadow-apple-md`,e.color),children:e.icon},void 0,!1,{fileName:L,lineNumber:697,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[11.5px] font-semibold text-[#2d124d] dark:text-[#e5e5ea] group-hover:text-[#7d2ae8] transition-colors whitespace-nowrap`,children:e.label},void 0,!1,{fileName:L,lineNumber:703,columnNumber:17},this)]},t,!0,{fileName:L,lineNumber:691,columnNumber:15},this))},void 0,!1,{fileName:L,lineNumber:681,columnNumber:11},this)]},void 0,!0,{fileName:L,lineNumber:612,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`max-w-7xl w-full mx-auto px-8 sm:px-12 py-8 flex flex-col gap-9`,children:[(0,F.jsxDEV)(`section`,{className:`space-y-4`,children:[(0,F.jsxDEV)(`h2`,{className:`text-[20px] font-extrabold tracking-tight text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`See what's new`},void 0,!1,{fileName:L,lineNumber:716,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-4`,children:[{title:`Build modern SaaS & Mobile Apps 📱`,gradient:`from-purple-600 via-indigo-600 to-pink-500`,action:()=>Se(`webapp`)},{title:`Create high-converting Websites 🌐`,gradient:`from-emerald-600 via-teal-600 to-cyan-500`,action:()=>Se(`landing`)},{title:`Explore our vibrant Summer Deck`,gradient:`from-blue-600 via-cyan-500 to-sky-400`,action:()=>Ce()},{title:`Design pro deals for your business`,gradient:`from-orange-500 via-amber-500 to-red-500`,action:()=>Ce()},{title:`Designs that make personal finance fun`,gradient:`from-amber-400 via-orange-400 to-yellow-500`,action:()=>Ce()},{title:`Score big with pro sports templates`,gradient:`from-slate-700 via-slate-800 to-slate-950`,action:()=>Ce()}].map((e,t)=>(0,F.jsxDEV)(`div`,{onClick:e.action,className:j(`h-48 rounded-2xl p-4 bg-gradient-to-br text-white shadow-apple-sm hover:shadow-apple-md hover:scale-[1.03] transition-all duration-200 cursor-pointer flex flex-col justify-between relative overflow-hidden group`,e.gradient),children:[(0,F.jsxDEV)(`div`,{className:`relative z-10 font-bold text-[14px] leading-snug drop-shadow-xs`,children:e.title},void 0,!1,{fileName:L,lineNumber:737,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`relative z-10 self-end`,children:(0,F.jsxDEV)(`span`,{className:`px-3 py-1 rounded-full bg-white/20 hover:bg-white text-white hover:text-[#1d1d1f] text-[11px] font-bold backdrop-blur-md transition-colors`,children:`Explore`},void 0,!1,{fileName:L,lineNumber:742,columnNumber:21},this)},void 0,!1,{fileName:L,lineNumber:741,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`absolute -bottom-6 -right-6 w-24 h-24 bg-white/10 rounded-full blur-xl pointer-events-none group-hover:scale-150 transition-transform`},void 0,!1,{fileName:L,lineNumber:747,columnNumber:19},this)]},t,!0,{fileName:L,lineNumber:729,columnNumber:17},this))},void 0,!1,{fileName:L,lineNumber:720,columnNumber:13},this)]},void 0,!0,{fileName:L,lineNumber:715,columnNumber:11},this),c===`templates`&&(0,F.jsxDEV)(`section`,{className:`space-y-5 animate-fade-in`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between border-b border-[#e5e5ea] dark:border-[#38383a] pb-3`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h2`,{className:`text-[22px] font-extrabold tracking-tight text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Explore Template Catalog`},void 0,!1,{fileName:L,lineNumber:758,columnNumber:19},this),(0,F.jsxDEV)(`p`,{className:`text-[13px] text-[#86868b] dark:text-[#636366]`,children:`Curated, production-ready web apps, dashboards, and landing pages.`},void 0,!1,{fileName:L,lineNumber:761,columnNumber:19},this)]},void 0,!0,{fileName:L,lineNumber:757,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>l(`all`),className:`text-[13px] font-semibold text-[#7d2ae8] hover:underline cursor-pointer`,children:`Back to All Designs`},void 0,!1,{fileName:L,lineNumber:765,columnNumber:17},this)]},void 0,!0,{fileName:L,lineNumber:756,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-5`,children:As.map(e=>(0,F.jsxDEV)(`div`,{onClick:()=>Ce(e.id),className:`group bg-white dark:bg-[#1c1c1e] rounded-2xl border border-[#e5e5ea] dark:border-[#38383a] hover:border-[#7d2ae8] p-4 shadow-apple-xs hover:shadow-apple-md transition-all duration-200 cursor-pointer flex flex-col justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`w-full h-40 rounded-xl bg-gradient-to-br from-[#f4f4f7] to-[#e8e6fb] dark:from-[#2c2c2e] dark:to-[#1c1c1e] border border-[#e5e5ea] dark:border-[#38383a] overflow-hidden relative p-3 flex flex-col justify-between mb-3`,children:[(0,F.jsxDEV)(`div`,{className:`w-full h-full relative rounded bg-white dark:bg-[#1c1c1e] shadow-2xs p-3 flex flex-col justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`w-3/4 h-3 bg-[#7d2ae8] rounded-sm`},void 0,!1,{fileName:L,lineNumber:783,columnNumber:25},this),(0,F.jsxDEV)(`div`,{className:`space-y-1`,children:[(0,F.jsxDEV)(`div`,{className:`w-full h-2 bg-[#e5e5ea] dark:bg-[#38383a] rounded-sm`},void 0,!1,{fileName:L,lineNumber:785,columnNumber:27},this),(0,F.jsxDEV)(`div`,{className:`w-5/6 h-2 bg-[#e5e5ea] dark:bg-[#38383a] rounded-sm`},void 0,!1,{fileName:L,lineNumber:786,columnNumber:27},this)]},void 0,!0,{fileName:L,lineNumber:784,columnNumber:25},this),(0,F.jsxDEV)(`div`,{className:`w-1/2 h-3 bg-[#0071e3] rounded-sm`},void 0,!1,{fileName:L,lineNumber:788,columnNumber:25},this)]},void 0,!0,{fileName:L,lineNumber:782,columnNumber:23},this),(0,F.jsxDEV)(`span`,{className:`absolute top-2 right-2 px-2 py-0.5 rounded-full bg-[#7d2ae8] text-white text-[10px] font-bold`,children:[e.project.pages.length,` Pages`]},void 0,!0,{fileName:L,lineNumber:790,columnNumber:23},this)]},void 0,!0,{fileName:L,lineNumber:781,columnNumber:21},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h3`,{className:`text-[14px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] group-hover:text-[#7d2ae8] transition-colors truncate`,children:e.name},void 0,!1,{fileName:L,lineNumber:796,columnNumber:23},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] line-clamp-2 mt-1 mb-3`,children:e.description},void 0,!1,{fileName:L,lineNumber:799,columnNumber:23},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),Ce(e.id)},className:`w-full py-2 rounded-xl bg-[#7d2ae8] hover:bg-[#6b21ce] text-white text-[12.5px] font-semibold shadow-apple-sm transition-all cursor-pointer`,children:`Use Template`},void 0,!1,{fileName:L,lineNumber:802,columnNumber:23},this)]},void 0,!0,{fileName:L,lineNumber:795,columnNumber:21},this)]},e.id,!0,{fileName:L,lineNumber:776,columnNumber:19},this))},void 0,!1,{fileName:L,lineNumber:774,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:755,columnNumber:13},this),(0,F.jsxDEV)(`section`,{className:`space-y-4 pt-2`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between border-b border-[#e5e5ea] dark:border-[#38383a] pb-3`,children:[(0,F.jsxDEV)(`h2`,{className:`text-[20px] font-extrabold tracking-tight text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Recents`},void 0,!1,{fileName:L,lineNumber:822,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#38383a] rounded-full px-3 py-1 text-[12px] font-medium shadow-2xs gap-1.5 cursor-pointer`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#86868b]`,children:`Type:`},void 0,!1,{fileName:L,lineNumber:829,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`font-semibold capitalize`,children:c},void 0,!1,{fileName:L,lineNumber:830,columnNumber:19},this),(0,F.jsxDEV)(fe,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:L,lineNumber:831,columnNumber:19},this)]},void 0,!0,{fileName:L,lineNumber:828,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#38383a] rounded-full px-3 py-1 text-[12px] font-medium shadow-2xs gap-1.5 cursor-pointer`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#86868b]`,children:`Owner:`},void 0,!1,{fileName:L,lineNumber:836,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`font-semibold`,children:`Any`},void 0,!1,{fileName:L,lineNumber:837,columnNumber:19},this),(0,F.jsxDEV)(fe,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:L,lineNumber:838,columnNumber:19},this)]},void 0,!0,{fileName:L,lineNumber:835,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>d(u===`updated_desc`?`name_asc`:`updated_desc`),className:`p-1.5 rounded-full bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#38383a] text-[#6e6e73] hover:text-[#1d1d1f] transition-colors cursor-pointer shadow-2xs`,title:`Sort Order`,children:(0,F.jsxDEV)(w,{className:`w-4 h-4`},void 0,!1,{fileName:L,lineNumber:848,columnNumber:19},this)},void 0,!1,{fileName:L,lineNumber:842,columnNumber:17},this)]},void 0,!0,{fileName:L,lineNumber:826,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:821,columnNumber:13},this),oe?(0,F.jsxDEV)(`div`,{className:`py-20 text-center text-[#86868b]`,children:`Loading your designs...`},void 0,!1,{fileName:L,lineNumber:855,columnNumber:15},this):xe.length===0?(0,F.jsxDEV)(`div`,{className:`py-16 bg-white dark:bg-[#1c1c1e] rounded-3xl border border-[#e5e5ea] dark:border-[#38383a] flex flex-col items-center justify-center p-8 text-center shadow-2xs`,children:[(0,F.jsxDEV)(`div`,{className:`w-14 h-14 rounded-2xl bg-[#7d2ae8]/10 text-[#7d2ae8] flex items-center justify-center mb-3`,children:(0,F.jsxDEV)(Jr,{className:`w-7 h-7`},void 0,!1,{fileName:L,lineNumber:859,columnNumber:19},this)},void 0,!1,{fileName:L,lineNumber:858,columnNumber:17},this),(0,F.jsxDEV)(`h3`,{className:`text-[17px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`No recent designs`},void 0,!1,{fileName:L,lineNumber:861,columnNumber:17},this),(0,F.jsxDEV)(`p`,{className:`text-[13px] text-[#86868b] max-w-sm mt-1 mb-4`,children:`Start from scratch or pick a template to create your first design.`},void 0,!1,{fileName:L,lineNumber:862,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>Se(),className:`px-5 py-2 rounded-full bg-[#7d2ae8] hover:bg-[#6b21ce] text-white text-[13px] font-semibold transition-colors cursor-pointer shadow-apple-sm`,children:`Create Design`},void 0,!1,{fileName:L,lineNumber:865,columnNumber:17},this)]},void 0,!0,{fileName:L,lineNumber:857,columnNumber:15},this):(0,F.jsxDEV)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-5`,children:xe.map(t=>(0,F.jsxDEV)(`div`,{onClick:()=>e(t.id),className:`group bg-white dark:bg-[#1c1c1e] rounded-2xl border border-[#e5e5ea] dark:border-[#38383a] hover:border-[#7d2ae8]/50 p-3 shadow-apple-xs hover:shadow-apple-md transition-all duration-200 cursor-pointer flex flex-col justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`w-full h-36 rounded-xl bg-[#f4f4f7] dark:bg-[#2c2c2e]/60 border border-[#e5e5ea] dark:border-[#38383a] overflow-hidden relative p-3 flex flex-col justify-between mb-2.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-full h-full relative rounded bg-white dark:bg-[#1c1c1e] shadow-2xs p-2 overflow-hidden flex flex-col justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`w-2/3 h-2 bg-[#7d2ae8]/80 rounded-sm`},void 0,!1,{fileName:L,lineNumber:885,columnNumber:27},this),(0,F.jsxDEV)(`div`,{className:`space-y-1`,children:[(0,F.jsxDEV)(`div`,{className:`w-full h-1.5 bg-[#e5e5ea] dark:bg-[#38383a] rounded-sm`},void 0,!1,{fileName:L,lineNumber:887,columnNumber:29},this),(0,F.jsxDEV)(`div`,{className:`w-4/5 h-1.5 bg-[#e5e5ea] dark:bg-[#38383a] rounded-sm`},void 0,!1,{fileName:L,lineNumber:888,columnNumber:29},this)]},void 0,!0,{fileName:L,lineNumber:886,columnNumber:27},this),(0,F.jsxDEV)(`div`,{className:`w-1/3 h-2 bg-[#0071e3] rounded-sm`},void 0,!1,{fileName:L,lineNumber:890,columnNumber:27},this)]},void 0,!0,{fileName:L,lineNumber:884,columnNumber:25},this),(0,F.jsxDEV)(`div`,{className:`absolute top-2 right-2 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>we(e,t),className:`p-1 rounded-md bg-white/90 dark:bg-[#1c1c1e]/90 text-slate-600 dark:text-slate-300 hover:text-amber-500 shadow-xs backdrop-blur-sm cursor-pointer`,title:`Favorite`,children:(0,F.jsxDEV)(Wr,{className:j(`w-3.5 h-3.5`,t.isFavorite&&`fill-amber-400 text-amber-500`)},void 0,!1,{fileName:L,lineNumber:901,columnNumber:29},this)},void 0,!1,{fileName:L,lineNumber:895,columnNumber:27},this),(0,F.jsxDEV)(`div`,{className:`relative`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),O(re===t.id?null:t.id)},className:`p-1 rounded-md bg-white/90 dark:bg-[#1c1c1e]/90 text-slate-600 dark:text-slate-300 hover:text-slate-900 shadow-xs backdrop-blur-sm cursor-pointer`,title:`More options`,children:(0,F.jsxDEV)(Ae,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:L,lineNumber:913,columnNumber:31},this)},void 0,!1,{fileName:L,lineNumber:904,columnNumber:29},this),re===t.id&&(0,F.jsxDEV)(`div`,{onClick:e=>e.stopPropagation(),className:`absolute right-0 top-full mt-1 w-36 bg-white dark:bg-[#1c1c1e] rounded-xl border border-[#e5e5ea] dark:border-[#38383a] shadow-apple-md py-1 z-30 flex flex-col text-xs text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>De(e,t),className:`w-full px-3 py-1.5 text-left hover:bg-slate-100 dark:hover:bg-[#2c2c2e] flex items-center gap-2 cursor-pointer`,children:[(0,F.jsxDEV)(C,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:L,lineNumber:926,columnNumber:35},this),` Rename`]},void 0,!0,{fileName:L,lineNumber:921,columnNumber:33},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>Te(e,t),className:`w-full px-3 py-1.5 text-left hover:bg-slate-100 dark:hover:bg-[#2c2c2e] flex items-center gap-2 cursor-pointer`,children:[(0,F.jsxDEV)(Dn,{className:`w-3.5 h-3.5 text-[#7d2ae8]`},void 0,!1,{fileName:L,lineNumber:933,columnNumber:35},this),` Duplicate`]},void 0,!0,{fileName:L,lineNumber:928,columnNumber:33},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>Ee(e,t),className:`w-full px-3 py-1.5 text-left hover:bg-slate-100 dark:hover:bg-[#2c2c2e] flex items-center gap-2 cursor-pointer`,children:[(0,F.jsxDEV)(g,{className:`w-3.5 h-3.5 text-emerald-500`},void 0,!1,{fileName:L,lineNumber:940,columnNumber:35},this),` Export JSON`]},void 0,!0,{fileName:L,lineNumber:935,columnNumber:33},this),(0,F.jsxDEV)(`div`,{className:`border-t border-[#e5e5ea] dark:border-[#38383a] my-1`},void 0,!1,{fileName:L,lineNumber:942,columnNumber:33},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),O(null),me({id:t.id,name:t.name})},className:`w-full px-3 py-1.5 text-left hover:bg-red-50 dark:hover:bg-red-950/30 text-rose-600 flex items-center gap-2 cursor-pointer`,children:[(0,F.jsxDEV)(Oe,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:L,lineNumber:952,columnNumber:35},this),` Delete`]},void 0,!0,{fileName:L,lineNumber:943,columnNumber:33},this)]},void 0,!0,{fileName:L,lineNumber:917,columnNumber:31},this)]},void 0,!0,{fileName:L,lineNumber:903,columnNumber:27},this)]},void 0,!0,{fileName:L,lineNumber:894,columnNumber:25},this)]},void 0,!0,{fileName:L,lineNumber:883,columnNumber:23},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h3`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] group-hover:text-[#7d2ae8] dark:group-hover:text-[#9d52ff] transition-colors truncate`,children:t.name},void 0,!1,{fileName:L,lineNumber:961,columnNumber:25},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between text-[11px] text-[#86868b] mt-0.5`,children:[(0,F.jsxDEV)(`span`,{className:`capitalize`,children:t.type},void 0,!1,{fileName:L,lineNumber:965,columnNumber:27},this),(0,F.jsxDEV)(`span`,{children:Rc(t.updatedAt)},void 0,!1,{fileName:L,lineNumber:966,columnNumber:27},this)]},void 0,!0,{fileName:L,lineNumber:964,columnNumber:25},this)]},void 0,!0,{fileName:L,lineNumber:960,columnNumber:23},this)]},t.id,!0,{fileName:L,lineNumber:877,columnNumber:21},this))},void 0,!1,{fileName:L,lineNumber:874,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:820,columnNumber:11},this)]},void 0,!0,{fileName:L,lineNumber:712,columnNumber:9},this)]},void 0,!0,{fileName:L,lineNumber:610,columnNumber:7},this),ce&&(0,F.jsxDEV)(gs,{isOpen:!0,onClose:()=>le(null),title:`Rename Design`,children:(0,F.jsxDEV)(`div`,{className:`space-y-4`,children:[(0,F.jsxDEV)(ms,{value:k,onChange:e=>de(e.target.value),placeholder:`Design name...`,autoFocus:!0},void 0,!1,{fileName:L,lineNumber:986,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex justify-end gap-2`,children:[(0,F.jsxDEV)(fs,{variant:`secondary`,onClick:()=>le(null),children:`Cancel`},void 0,!1,{fileName:L,lineNumber:993,columnNumber:15},this),(0,F.jsxDEV)(fs,{variant:`primary`,onClick:async()=>{if(!ce||!k.trim())return;let e=r.find(e=>e.id===ce.id);if(e){let t={...e,name:k.trim(),updatedAt:new Date().toISOString()};await _o(t),A(`Renamed to "${k.trim()}"`,`success`),be()}le(null)},children:`Save`},void 0,!1,{fileName:L,lineNumber:996,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:992,columnNumber:13},this)]},void 0,!0,{fileName:L,lineNumber:985,columnNumber:11},this)},void 0,!1,{fileName:L,lineNumber:980,columnNumber:9},this),pe&&(0,F.jsxDEV)(gs,{isOpen:!0,onClose:()=>me(null),title:`Delete Design`,children:(0,F.jsxDEV)(`div`,{className:`space-y-4`,children:[(0,F.jsxDEV)(`p`,{className:`text-[13.5px] text-[#6e6e73] dark:text-[#8e8e93]`,children:[`Are you sure you want to permanently delete `,(0,F.jsxDEV)(`strong`,{className:`text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[`"`,pe.name,`"`]},void 0,!0,{fileName:L,lineNumber:1013,columnNumber:59},this),`? This cannot be undone.`]},void 0,!0,{fileName:L,lineNumber:1012,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex justify-end gap-2`,children:[(0,F.jsxDEV)(fs,{variant:`secondary`,onClick:()=>me(null),children:`Cancel`},void 0,!1,{fileName:L,lineNumber:1016,columnNumber:15},this),(0,F.jsxDEV)(fs,{variant:`destructive`,onClick:async()=>{pe&&(await go(pe.id),A(`Deleted "${pe.name}"`,`info`),me(null),be())},children:`Delete Permanently`},void 0,!1,{fileName:L,lineNumber:1019,columnNumber:15},this)]},void 0,!0,{fileName:L,lineNumber:1015,columnNumber:13},this)]},void 0,!0,{fileName:L,lineNumber:1011,columnNumber:11},this)},void 0,!1,{fileName:L,lineNumber:1006,columnNumber:9},this),(0,F.jsxDEV)(N.Suspense,{fallback:null,children:[y&&(0,F.jsxDEV)(Fc,{isOpen:y,onClose:()=>b(!1),onCreated:t=>e(t)},void 0,!1,{fileName:L,lineNumber:1030,columnNumber:11},this),x&&(0,F.jsxDEV)(Ic,{isOpen:x,onClose:()=>S(!1),onSelectProject:t=>e(t)},void 0,!1,{fileName:L,lineNumber:1037,columnNumber:11},this),T&&(0,F.jsxDEV)(Lc,{isOpen:T,onClose:()=>ee(!1),onProjectOpened:t=>e(t)},void 0,!1,{fileName:L,lineNumber:1044,columnNumber:11},this)]},void 0,!0,{fileName:L,lineNumber:1028,columnNumber:7},this),(0,F.jsxDEV)(Is,{isOpen:E,onClose:()=>te(!1),onOpenProject:e},void 0,!1,{fileName:L,lineNumber:1053,columnNumber:7},this)]},void 0,!0,{fileName:L,lineNumber:490,columnNumber:5},this)}var R=`C:/Users/Shadow/Desktop/cyrus/src/editor/topbar/EditorTopBar.tsx`;function Bc({onBack:e,onOpenCodingMode:n}){let{activeProject:r,updateProjectName:i,saveCurrentProject:a,undo:o,redo:s,past:c,future:l,isSaving:u,lastSavedAt:d}=I(),{viewportMode:f,setViewportMode:p,togglePreviewMode:m,setCreateAppOpen:h,setShareOpen:_,setSaveDesignOpen:v,setHistoryOpen:y,setShortcutsOpen:b,setCommandPaletteOpen:x,isDevMode:S,toggleDevMode:C}=P(),{addToast:w}=oo(),{session:T,openProfileDialog:ee,openAuthDialog:te,signOut:D}=cs(),[ne,re]=(0,N.useState)(!1),ie=(0,N.useRef)(null);return(0,N.useEffect)(()=>{let e=e=>{ie.current&&!ie.current.contains(e.target)&&re(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,F.jsxDEV)(`header`,{className:`h-[46px] w-full bg-white/90 dark:bg-[#1c1c1e]/90 backdrop-blur-md border-b border-[#e5e5ea] dark:border-[#38383a] px-3 flex items-center justify-between text-[#1d1d1f] dark:text-[#f5f5f7] select-none z-40 shrink-0`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`button`,{onClick:e,className:`flex items-center gap-1.5 px-2 py-1 hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] rounded-lg transition-colors cursor-pointer`,title:`Back to Dashboard`,children:(0,F.jsxDEV)(`span`,{className:`font-['Satisfy',cursive] text-[24px] text-[#7d2ae8] dark:text-[#9d52ff] tracking-normal select-none leading-none`,children:`Cyrus`},void 0,!1,{fileName:R,lineNumber:94,columnNumber:11},this)},void 0,!1,{fileName:R,lineNumber:89,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center max-w-[220px] border-l border-[#e5e5ea] dark:border-[#38383a] pl-2.5 ml-1`,children:(0,F.jsxDEV)(`input`,{type:`text`,value:r?.name||``,onChange:e=>i(e.target.value),placeholder:`Untitled design`,className:`w-full bg-transparent text-[12.5px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] focus:bg-white dark:focus:bg-[#1c1c1e] px-2 py-1 rounded-md border border-transparent focus:border-[#7d2ae8] focus:outline-none truncate transition-colors`,title:`Click to rename design`},void 0,!1,{fileName:R,lineNumber:101,columnNumber:11},this)},void 0,!1,{fileName:R,lineNumber:100,columnNumber:9},this)]},void 0,!0,{fileName:R,lineNumber:88,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex items-center`,children:(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{p(f===`desktop`?`tablet`:f===`tablet`?`mobile`:`desktop`)},className:`h-7.5 px-3 flex items-center gap-2 text-[12px] font-semibold rounded-lg bg-[#f4f4f6] dark:bg-[#2c2c2e] hover:bg-white dark:hover:bg-[#1c1c1e] text-[#1d1d1f] dark:text-[#f5f5f7] border border-[#e5e5ea] dark:border-[#38383a] hover:border-[#7d2ae8]/40 shadow-2xs hover:shadow-sm transition-all cursor-pointer select-none active:scale-[0.97]`,title:`Current view: ${f===`desktop`?`Desktop (1440px)`:f===`tablet`?`Tablet (768px)`:`Mobile (390px)`} • Click to switch to ${f===`desktop`?`Tablet`:f===`tablet`?`Mobile`:`Desktop`}`,children:[f===`desktop`&&(0,F.jsxDEV)(dn,{className:`w-3.5 h-3.5 text-[#0071e3] shrink-0`},void 0,!1,{fileName:R,lineNumber:120,columnNumber:42},this),f===`tablet`&&(0,F.jsxDEV)(t,{className:`w-3.5 h-3.5 text-[#7d2ae8] dark:text-[#9d52ff] shrink-0`},void 0,!1,{fileName:R,lineNumber:121,columnNumber:41},this),f===`mobile`&&(0,F.jsxDEV)(Ar,{className:`w-3.5 h-3.5 text-[#34c759] shrink-0`},void 0,!1,{fileName:R,lineNumber:122,columnNumber:41},this),(0,F.jsxDEV)(`span`,{className:`capitalize leading-none`,children:f},void 0,!1,{fileName:R,lineNumber:123,columnNumber:11},this)]},void 0,!0,{fileName:R,lineNumber:114,columnNumber:9},this)},void 0,!1,{fileName:R,lineNumber:113,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center mr-1`,children:[(0,F.jsxDEV)(`button`,{onClick:o,disabled:c.length===0,className:`p-1.5 text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] rounded-md transition-colors disabled:opacity-30 cursor-pointer`,title:`Undo (⌘Z)`,children:(0,F.jsxDEV)(E,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:R,lineNumber:139,columnNumber:13},this)},void 0,!1,{fileName:R,lineNumber:133,columnNumber:11},this),(0,F.jsxDEV)(`button`,{onClick:s,disabled:l.length===0,className:`p-1.5 text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] rounded-md transition-colors disabled:opacity-30 cursor-pointer`,title:`Redo (⇧⌘Z)`,children:(0,F.jsxDEV)(Ot,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:R,lineNumber:147,columnNumber:13},this)},void 0,!1,{fileName:R,lineNumber:141,columnNumber:11},this)]},void 0,!0,{fileName:R,lineNumber:132,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:C,className:j(`inline-flex items-center justify-center gap-1.5 h-7 px-2.5 rounded-lg text-[12px] font-medium transition-all active:scale-[0.98] cursor-pointer border select-none shrink-0 whitespace-nowrap`,S?`bg-[#34c759] text-white border-[#34c759] font-bold shadow-2xs`:`bg-transparent border-[#e5e5ea] dark:border-[#38383a] text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#34c759] hover:border-[#34c759]/40 hover:bg-[#34c759]/5`),title:`Dev Mode 2.0 (Live React / Flutter / SwiftUI Code Inspector)`,children:[(0,F.jsxDEV)(Di,{className:j(`w-3.5 h-3.5 shrink-0`,S?`text-white`:`text-[#34c759]`)},void 0,!1,{fileName:R,lineNumber:163,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`whitespace-nowrap leading-none`,children:`Dev Mode`},void 0,!1,{fileName:R,lineNumber:164,columnNumber:11},this),S&&(0,F.jsxDEV)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-white animate-pulse shrink-0`},void 0,!1,{fileName:R,lineNumber:165,columnNumber:25},this)]},void 0,!0,{fileName:R,lineNumber:152,columnNumber:9},this),(0,F.jsxDEV)(`button`,{onClick:m,className:`flex items-center gap-1.5 px-3 py-1.5 text-[12.5px] font-medium bg-[#f4f4f6] dark:bg-[#2c2c2e] hover:bg-[#ebebee] dark:hover:bg-[#3a3a3c] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] transition-all active:scale-[0.98] cursor-pointer`,title:`Interactive Preview (⌘P)`,children:[(0,F.jsxDEV)(ci,{className:`w-3.5 h-3.5 fill-current text-[#7d2ae8] dark:text-[#9d52ff]`},void 0,!1,{fileName:R,lineNumber:174,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:`Preview`},void 0,!1,{fileName:R,lineNumber:175,columnNumber:11},this)]},void 0,!0,{fileName:R,lineNumber:169,columnNumber:9},this),(0,F.jsxDEV)(`button`,{onClick:()=>v(!0),className:`flex items-center gap-1.5 px-3.5 py-1.5 text-[12.5px] font-bold bg-gradient-to-r from-[#7d2ae8] to-[#0071e3] hover:opacity-95 text-white rounded-lg shadow-sm transition-all active:scale-[0.98] cursor-pointer`,title:`Download Design (PNG, JPG, PDF, SVG, Cyrus)`,children:[(0,F.jsxDEV)(g,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:R,lineNumber:184,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:`Download`},void 0,!1,{fileName:R,lineNumber:185,columnNumber:11},this)]},void 0,!0,{fileName:R,lineNumber:179,columnNumber:9},this),(0,F.jsxDEV)(`button`,{onClick:()=>_(!0),className:`hidden sm:flex items-center gap-1.5 px-2.5 py-1.5 text-[12.5px] font-medium text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] rounded-lg transition-colors cursor-pointer`,title:`Share Project`,children:[(0,F.jsxDEV)(gt,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:R,lineNumber:194,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:`Share`},void 0,!1,{fileName:R,lineNumber:195,columnNumber:11},this)]},void 0,!0,{fileName:R,lineNumber:189,columnNumber:9},this),(0,F.jsxDEV)(`button`,{onClick:()=>w(`This feature is still in production`,`info`),className:`flex items-center gap-1.5 px-3.5 py-1.5 text-[12.5px] font-semibold bg-[#7d2ae8] hover:bg-[#6b21ce] text-white rounded-lg shadow-sm transition-all active:scale-[0.98] cursor-pointer`,title:`Create`,children:[(0,F.jsxDEV)(Ge,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:R,lineNumber:204,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:`Create`},void 0,!1,{fileName:R,lineNumber:205,columnNumber:11},this)]},void 0,!0,{fileName:R,lineNumber:199,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`relative ml-1`,ref:ie,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>re(!ne),className:`w-8 h-8 rounded-full bg-gradient-to-tr from-[#7d2ae8] to-[#0071e3] text-white flex items-center justify-center font-bold text-[12px] shadow-2xs hover:scale-105 transition-transform cursor-pointer border-2 border-white dark:border-[#1c1c1e]`,title:`User Account & Login`,children:T?.user?T.user.avatarUrl?(0,F.jsxDEV)(`img`,{src:T.user.avatarUrl,alt:`Profile`,className:`w-full h-full rounded-full object-cover`},void 0,!1,{fileName:R,lineNumber:219,columnNumber:17},this):(0,F.jsxDEV)(`span`,{children:T.user.email?.charAt(0).toUpperCase()||`U`},void 0,!1,{fileName:R,lineNumber:225,columnNumber:17},this):(0,F.jsxDEV)(Na,{className:`w-4 h-4`},void 0,!1,{fileName:R,lineNumber:228,columnNumber:15},this)},void 0,!1,{fileName:R,lineNumber:211,columnNumber:11},this),ne&&(0,F.jsxDEV)(`div`,{className:`absolute right-0 top-full mt-2 w-64 bg-white dark:bg-[#1c1c1e] rounded-2xl border border-[#e5e5ea] dark:border-[#38383a] shadow-apple-lg p-2 z-50 flex flex-col text-[12.5px] animate-fade-in select-none`,children:[(0,F.jsxDEV)(`div`,{className:`p-2.5 bg-[#f8f8fa] dark:bg-[#2c2c2e] rounded-xl mb-1.5 flex items-center gap-3`,children:[(0,F.jsxDEV)(`div`,{className:`w-9 h-9 rounded-full bg-gradient-to-tr from-[#7d2ae8] to-[#0071e3] text-white flex items-center justify-center font-bold text-[13px] shrink-0`,children:T?.user?.email?.charAt(0).toUpperCase()||`C`},void 0,!1,{fileName:R,lineNumber:237,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,F.jsxDEV)(`div`,{className:`font-bold text-[#1d1d1f] dark:text-[#f5f5f7] truncate text-[13px]`,children:T?.user?.name||T?.user?.email?.split(`@`)[0]||`Cyrus Creator`},void 0,!1,{fileName:R,lineNumber:241,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`text-[11px] text-[#86868b] dark:text-[#636366] truncate`,children:T?.user?.email||`guest@cyrus.design`},void 0,!1,{fileName:R,lineNumber:244,columnNumber:19},this)]},void 0,!0,{fileName:R,lineNumber:240,columnNumber:17},this)]},void 0,!0,{fileName:R,lineNumber:236,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{re(!1),ee()},className:`w-full px-3 py-2 rounded-xl text-left hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] flex items-center gap-2.5 text-[#1d1d1f] dark:text-[#f5f5f7] cursor-pointer`,children:[(0,F.jsxDEV)(Na,{className:`w-4 h-4 text-[#7d2ae8]`},void 0,!1,{fileName:R,lineNumber:259,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`My Profile & Account`},void 0,!1,{fileName:R,lineNumber:260,columnNumber:17},this)]},void 0,!0,{fileName:R,lineNumber:251,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{re(!1),te()},className:`w-full px-3 py-2 rounded-xl text-left hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] flex items-center gap-2.5 text-[#1d1d1f] dark:text-[#f5f5f7] cursor-pointer`,children:[(0,F.jsxDEV)(lr,{className:`w-4 h-4 text-[#0071e3]`},void 0,!1,{fileName:R,lineNumber:271,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Sign In / Register`},void 0,!1,{fileName:R,lineNumber:272,columnNumber:17},this)]},void 0,!0,{fileName:R,lineNumber:263,columnNumber:15},this),n&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{re(!1),n()},className:`w-full px-3 py-2 rounded-xl text-left hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] flex items-center gap-2.5 text-[#1d1d1f] dark:text-[#f5f5f7] cursor-pointer`,children:[(0,F.jsxDEV)(Di,{className:`w-4 h-4 text-[#34c759]`},void 0,!1,{fileName:R,lineNumber:284,columnNumber:19},this),(0,F.jsxDEV)(`span`,{children:`Code Workspace (⌘J)`},void 0,!1,{fileName:R,lineNumber:285,columnNumber:19},this)]},void 0,!0,{fileName:R,lineNumber:276,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{re(!1),x(!0)},className:`w-full px-3 py-2 rounded-xl text-left hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] flex items-center gap-2.5 text-[#1d1d1f] dark:text-[#f5f5f7] cursor-pointer`,children:[(0,F.jsxDEV)(sa,{className:`w-4 h-4 text-[#ff9500]`},void 0,!1,{fileName:R,lineNumber:297,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Command Palette (⌘K)`},void 0,!1,{fileName:R,lineNumber:298,columnNumber:17},this)]},void 0,!0,{fileName:R,lineNumber:289,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`h-[1px] bg-[#f4f4f6] dark:bg-[#2c2c2e] my-1`},void 0,!1,{fileName:R,lineNumber:301,columnNumber:15},this),T?(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{re(!1),D(),w(`Signed out successfully`,`info`)},className:`w-full px-3 py-2 rounded-xl text-left hover:bg-rose-50 dark:hover:bg-rose-950/30 flex items-center gap-2.5 text-rose-600 font-medium cursor-pointer`,children:[(0,F.jsxDEV)(Sr,{className:`w-4 h-4`},void 0,!1,{fileName:R,lineNumber:313,columnNumber:19},this),(0,F.jsxDEV)(`span`,{children:`Log Out`},void 0,!1,{fileName:R,lineNumber:314,columnNumber:19},this)]},void 0,!0,{fileName:R,lineNumber:304,columnNumber:17},this):(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{re(!1),te()},className:`w-full px-3 py-2 rounded-xl text-left hover:bg-[#7d2ae8]/10 flex items-center gap-2.5 text-[#7d2ae8] font-bold cursor-pointer`,children:[(0,F.jsxDEV)(lr,{className:`w-4 h-4`},void 0,!1,{fileName:R,lineNumber:325,columnNumber:19},this),(0,F.jsxDEV)(`span`,{children:`Log In to Cyrus`},void 0,!1,{fileName:R,lineNumber:326,columnNumber:19},this)]},void 0,!0,{fileName:R,lineNumber:317,columnNumber:17},this)]},void 0,!0,{fileName:R,lineNumber:234,columnNumber:13},this)]},void 0,!0,{fileName:R,lineNumber:210,columnNumber:9},this)]},void 0,!0,{fileName:R,lineNumber:130,columnNumber:7},this)]},void 0,!0,{fileName:R,lineNumber:86,columnNumber:5},this)}var Vc=`C:/Users/Shadow/Desktop/cyrus/src/components/ui/Tooltip.tsx`;function Hc({content:e,shortcut:t,position:n=`top`,children:r,delay:i=300}){let[a,o]=(0,N.useState)(!1),[s,c]=(0,N.useState)(null);N.useEffect(()=>()=>{s&&clearTimeout(s)},[s]);let l=()=>{let e=window.setTimeout(()=>{o(!0)},i);c(e)},u=()=>{s&&clearTimeout(s),o(!1)};return(0,F.jsxDEV)(`div`,{className:`relative inline-flex items-center`,onMouseEnter:l,onMouseLeave:u,onFocus:l,onBlur:u,children:[r,a&&(0,F.jsxDEV)(`div`,{className:j(`absolute z-50 pointer-events-none whitespace-nowrap px-2 py-1 bg-[#1d1d1f] text-white text-[11px] font-medium rounded-[5px] shadow-apple-md flex items-center gap-1.5 animate-in fade-in zoom-in-95 duration-100`,{top:`bottom-full left-1/2 -translate-x-1/2 mb-1.5`,bottom:`top-full left-1/2 -translate-x-1/2 mt-1.5`,left:`right-full top-1/2 -translate-y-1/2 mr-1.5`,right:`left-full top-1/2 -translate-y-1/2 ml-1.5`}[n]),children:[(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:Vc,lineNumber:63,columnNumber:11},this),t&&(0,F.jsxDEV)(`kbd`,{className:`px-1 py-0.5 bg-white/20 text-[10px] font-mono rounded text-white/90`,children:t},void 0,!1,{fileName:Vc,lineNumber:65,columnNumber:13},this)]},void 0,!0,{fileName:Vc,lineNumber:57,columnNumber:9},this)]},void 0,!0,{fileName:Vc,lineNumber:48,columnNumber:5},this)}var z=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/LayersPanel.tsx`;function Uc(){let{setActiveSidebarTab:e}=P(),{activeProject:t,activePageId:n,selectedElementIds:r,selectElement:i,updateElement:a,deleteSelectedElements:o,duplicateSelectedElements:s,bringForward:c,sendBackward:u,groupSelectedElements:d,ungroupSelectedElements:f}=I(),[p,m]=(0,N.useState)(``),[h,g]=(0,N.useState)([]),[_,v]=(0,N.useState)(null),[y,b]=(0,N.useState)(``),[x,S]=(0,N.useState)(null),[w,T]=(0,N.useState)(null),ee=(0,N.useMemo)(()=>t&&(t.pages.find(e=>e.id===n)||t.pages[0])||null,[t,n]),E=ee?.elements||[],te=(0,N.useMemo)(()=>{if(!p.trim())return E;let e=p.toLowerCase();return E.filter(t=>t.name.toLowerCase().includes(e)||t.type.toLowerCase().includes(e))},[E,p]),D=(0,N.useMemo)(()=>p.trim()?te:E.filter(e=>!e.parentId||!E.some(t=>t.id===e.parentId)).sort((e,t)=>t.zIndex-e.zIndex),[E,te,p]),[ne,re]=(0,N.useState)(0),O=(0,N.useMemo)(()=>{let e=[],t=new Map;for(let e of E)t.set(e.id,e);function n(r,i){for(let a of r){e.push({element:a,depth:i});let r=a.type===`container`||a.children&&a.children.length>0,o=h.includes(a.id);if(r&&!o&&a.children){let e=a.children.map(e=>t.get(e)).filter(Boolean);e.length>0&&n(e,i+1)}}}return n(D,0),e},[E,D,h]);if(!t||!ee)return null;let ae=e=>{g(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},oe=e=>{v(e.id),b(e.name),S(null)},se=e=>{y.trim()&&a(e,{name:y.trim()}),v(null)},ce=e=>{switch(e){case`button`:return(0,F.jsxDEV)(an,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:z,lineNumber:148,columnNumber:16},this);case`heading`:case`paragraph`:case`text`:return(0,F.jsxDEV)(ut,{className:`w-3.5 h-3.5 text-[#6e6e73]`},void 0,!1,{fileName:z,lineNumber:152,columnNumber:16},this);case`image`:return(0,F.jsxDEV)(he,{className:`w-3.5 h-3.5 text-[#5856d6]`},void 0,!1,{fileName:z,lineNumber:154,columnNumber:16},this);case`navbar`:case`sidebar`:case`bottomNav`:return(0,F.jsxDEV)(pt,{className:`w-3.5 h-3.5 text-[#ff9500]`},void 0,!1,{fileName:z,lineNumber:158,columnNumber:16},this);case`container`:return(0,F.jsxDEV)(di,{className:`w-3.5 h-3.5 text-[#34c759]`},void 0,!1,{fileName:z,lineNumber:160,columnNumber:16},this);default:return(0,F.jsxDEV)(ie,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:z,lineNumber:162,columnNumber:16},this)}},ue=(e,t)=>{e.preventDefault(),e.stopPropagation(),i(t),S({elementId:t,x:e.clientX,y:e.clientY})},k=()=>S(null),de=(e,t)=>{e.dataTransfer.setData(`text/plain`,t),T(t)},pe=(e,t)=>{if(e.preventDefault(),!w||w===t)return;let n=E.find(e=>e.id===w),r=E.find(e=>e.id===t);n&&r&&(r.type===`container`&&Array.isArray(r.children)?(a(n.id,{parentId:r.id}),a(r.id,{children:[...r.children||[],n.id]})):a(n.id,{zIndex:r.zIndex+1})),T(null)},me=(e,t=0)=>{let n=r.includes(e.id),o=_===e.id,s=e.type===`container`||e.children&&e.children.length>0,c=h.includes(e.id);return(0,F.jsxDEV)(`div`,{className:`flex flex-col select-none`,children:(0,F.jsxDEV)(`div`,{draggable:!0,onDragStart:t=>de(t,e.id),onDragOver:e=>e.preventDefault(),onDrop:t=>pe(t,e.id),onClick:t=>{t.shiftKey||t.metaKey||t.ctrlKey?i(e.id,!0):i(e.id,!1)},onContextMenu:t=>ue(t,e.id),style:{paddingLeft:`${8+t*16}px`},className:j(`group flex items-center justify-between h-7.5 pr-2 rounded-[6px] transition-apple cursor-pointer`,n?`bg-[#e8f2fc] text-[#0071e3] font-medium`:`hover:bg-[#f4f4f6] text-[#1d1d1f]`),children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 min-w-0 flex-1`,children:[s?(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),ae(e.id)},className:`p-0.5 rounded text-[#86868b] hover:text-[#1d1d1f] cursor-pointer`,children:c?(0,F.jsxDEV)(at,{className:`w-3 h-3`},void 0,!1,{fileName:z,lineNumber:246,columnNumber:19},this):(0,F.jsxDEV)(fe,{className:`w-3 h-3`},void 0,!1,{fileName:z,lineNumber:248,columnNumber:19},this)},void 0,!1,{fileName:z,lineNumber:237,columnNumber:15},this):(0,F.jsxDEV)(`div`,{className:`w-3`},void 0,!1,{fileName:z,lineNumber:252,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`shrink-0`,children:ce(e.type)},void 0,!1,{fileName:z,lineNumber:255,columnNumber:13},this),o?(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 flex-1 min-w-0`,onClick:e=>e.stopPropagation(),children:[(0,F.jsxDEV)(`input`,{type:`text`,value:y,onChange:e=>b(e.target.value),onKeyDown:t=>{t.key===`Enter`&&se(e.id),t.key===`Escape`&&v(null)},autoFocus:!0,className:`w-full text-[11.5px] bg-white px-1.5 py-0.2 rounded border border-[#0071e3] focus:outline-none`},void 0,!1,{fileName:z,lineNumber:262,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>se(e.id),className:`p-0.5 text-[#0071e3] hover:bg-white rounded cursor-pointer`,children:(0,F.jsxDEV)(ke,{className:`w-3 h-3`},void 0,!1,{fileName:z,lineNumber:278,columnNumber:19},this)},void 0,!1,{fileName:z,lineNumber:273,columnNumber:17},this)]},void 0,!0,{fileName:z,lineNumber:258,columnNumber:15},this):(0,F.jsxDEV)(`span`,{onDoubleClick:()=>oe(e),className:j(`truncate text-[11.5px] flex-1`,e.hidden&&`opacity-40 italic`),children:e.name},void 0,!1,{fileName:z,lineNumber:282,columnNumber:15},this)]},void 0,!0,{fileName:z,lineNumber:235,columnNumber:11},this),!o&&(0,F.jsxDEV)(`div`,{className:`flex items-center gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),a(e.id,{locked:!e.locked})},title:e.locked?`Unlock Layer`:`Lock Layer`,className:j(`p-1 rounded transition-apple cursor-pointer`,e.locked?`opacity-100 text-[#0071e3]`:`text-[#86868b] hover:text-[#1d1d1f]`),children:e.locked?(0,F.jsxDEV)(Ri,{className:`w-3 h-3`},void 0,!1,{fileName:z,lineNumber:312,columnNumber:30},this):(0,F.jsxDEV)(_i,{className:`w-3 h-3`},void 0,!1,{fileName:z,lineNumber:312,columnNumber:61},this)},void 0,!1,{fileName:z,lineNumber:298,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),a(e.id,{hidden:!e.hidden})},title:e.hidden?`Show Layer`:`Hide Layer`,className:j(`p-1 rounded transition-apple cursor-pointer`,e.hidden?`opacity-100 text-[#ff3b30]`:`text-[#86868b] hover:text-[#1d1d1f]`),children:e.hidden?(0,F.jsxDEV)(qr,{className:`w-3 h-3`},void 0,!1,{fileName:z,lineNumber:330,columnNumber:30},this):(0,F.jsxDEV)(l,{className:`w-3 h-3`},void 0,!1,{fileName:z,lineNumber:330,columnNumber:63},this)},void 0,!1,{fileName:z,lineNumber:316,columnNumber:15},this)]},void 0,!0,{fileName:z,lineNumber:296,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:213,columnNumber:9},this)},e.id,!1,{fileName:z,lineNumber:212,columnNumber:7},this)};return(0,F.jsxDEV)(`div`,{onClick:k,className:`flex flex-col h-full select-none text-[12px]`,children:[(0,F.jsxDEV)(`div`,{className:`p-3.5 border-b border-[#f4f4f6] flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[13px] font-semibold text-[#1d1d1f]`,children:`Layers Tree`},void 0,!1,{fileName:z,lineNumber:347,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`text-[11px] text-[#86868b] mt-0.5`,children:[E.length,` element(s) on canvas`]},void 0,!0,{fileName:z,lineNumber:348,columnNumber:11},this)]},void 0,!0,{fileName:z,lineNumber:346,columnNumber:9},this),r.length>1&&(0,F.jsxDEV)(Hc,{content:`Group Selection (⌘G)`,position:`bottom`,children:(0,F.jsxDEV)(`button`,{type:`button`,onClick:d,className:`p-1 rounded text-[#86868b] hover:text-[#0071e3] hover:bg-[#e8f2fc] transition-apple`,children:(0,F.jsxDEV)(vn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:z,lineNumber:360,columnNumber:15},this)},void 0,!1,{fileName:z,lineNumber:355,columnNumber:13},this)},void 0,!1,{fileName:z,lineNumber:354,columnNumber:11},this)]},void 0,!0,{fileName:z,lineNumber:345,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`p-2.5 border-b border-[#f4f4f6]`,children:(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[(0,F.jsxDEV)(lt,{className:`w-3.5 h-3.5 text-[#86868b] absolute left-2.5 pointer-events-none`},void 0,!1,{fileName:z,lineNumber:369,columnNumber:11},this),(0,F.jsxDEV)(`input`,{type:`text`,value:p,onChange:e=>m(e.target.value),placeholder:`Search layers...`,className:`w-full h-7.5 pl-7 pr-7 bg-[#f4f4f6] text-[11.5px] text-[#1d1d1f] placeholder:text-[#86868b] rounded-[6px] border border-transparent focus:border-[#0071e3] focus:bg-white focus:outline-none transition-apple`},void 0,!1,{fileName:z,lineNumber:370,columnNumber:11},this),p&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>m(``),className:`absolute right-2 p-0.5 rounded text-[#86868b] hover:text-[#1d1d1f]`,children:(0,F.jsxDEV)(Ln,{className:`w-3 h-3`},void 0,!1,{fileName:z,lineNumber:383,columnNumber:15},this)},void 0,!1,{fileName:z,lineNumber:378,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:368,columnNumber:9},this)},void 0,!1,{fileName:z,lineNumber:367,columnNumber:7},this),(0,F.jsxDEV)(`div`,{onScroll:e=>{O.length>35&&re(e.currentTarget.scrollTop)},className:`flex-1 overflow-y-auto p-2 flex flex-col gap-0.5`,children:O.length===0?(0,F.jsxDEV)(`div`,{className:`py-8 flex flex-col items-center justify-center text-center px-3`,children:[(0,F.jsxDEV)(`div`,{className:`w-10 h-10 rounded-2xl bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center mb-3 shadow-xs`,children:(0,F.jsxDEV)(ie,{className:`w-5 h-5`},void 0,!1,{fileName:z,lineNumber:401,columnNumber:15},this)},void 0,!1,{fileName:z,lineNumber:400,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`No layers on this artboard`},void 0,!1,{fileName:z,lineNumber:403,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b] mt-1 mb-4 max-w-[200px] leading-relaxed`,children:`Layers visualize element hierarchy, nested containers, and z-index ordering.`},void 0,!1,{fileName:z,lineNumber:406,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1.5 w-full`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>e(`icons`),className:`w-full flex items-center justify-center gap-1.5 px-3 py-1.5 rounded-lg bg-[#0071e3] text-white text-[11.5px] font-semibold hover:bg-[#0062c4] transition-colors cursor-pointer shadow-xs`,children:[(0,F.jsxDEV)(wt,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:z,lineNumber:416,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Browse Icons & Controls`},void 0,!1,{fileName:z,lineNumber:417,columnNumber:17},this)]},void 0,!0,{fileName:z,lineNumber:411,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>e(`ai`),className:`w-full flex items-center justify-center gap-1.5 px-3 py-1.5 rounded-lg bg-[#f4f4f6] dark:bg-[#2c2c2e] hover:bg-[#e5e5ea] text-[#1d1d1f] dark:text-[#f5f5f7] text-[11.5px] font-medium transition-colors cursor-pointer`,children:[(0,F.jsxDEV)(vi,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:z,lineNumber:425,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Synthesize with AI`},void 0,!1,{fileName:z,lineNumber:426,columnNumber:17},this)]},void 0,!0,{fileName:z,lineNumber:420,columnNumber:15},this)]},void 0,!0,{fileName:z,lineNumber:410,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:399,columnNumber:11},this):O.length>35?(()=>{let e=O.length*30,t=Math.max(0,Math.floor(ne/30)-5),n=Math.min(O.length,t+30),r=O.slice(t,n),i=t*30;return(0,F.jsxDEV)(`div`,{style:{height:`${e}px`,position:`relative`,width:`100%`},children:(0,F.jsxDEV)(`div`,{style:{transform:`translateY(${i}px)`,position:`absolute`,left:0,right:0,top:0},className:`flex flex-col gap-0.5`,children:r.map(({element:e,depth:t})=>me(e,t))},void 0,!1,{fileName:z,lineNumber:441,columnNumber:17},this)},void 0,!1,{fileName:z,lineNumber:440,columnNumber:15},this)})():O.map(({element:e,depth:t})=>me(e,t))},void 0,!1,{fileName:z,lineNumber:390,columnNumber:7},this),x&&(0,F.jsxDEV)(`div`,{style:{position:`fixed`,left:`${x.x}px`,top:`${x.y}px`},onClick:e=>e.stopPropagation(),className:`w-48 bg-white/95 backdrop-blur-md border border-[#e5e5ea] rounded-[10px] shadow-apple-lg p-1 z-[999999] flex flex-col text-[11.5px] select-none animate-in fade-in zoom-in-95 duration-100`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{let e=E.find(e=>e.id===x.elementId);e&&oe(e)},className:`flex items-center gap-2 px-2.5 py-1.5 rounded-[6px] text-[#1d1d1f] hover:bg-[#f4f4f6] text-left cursor-pointer`,children:[(0,F.jsxDEV)(C,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:z,lineNumber:480,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Rename Layer`},void 0,!1,{fileName:z,lineNumber:481,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:472,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{s(),k()},className:`flex items-center justify-between px-2.5 py-1.5 rounded-[6px] text-[#1d1d1f] hover:bg-[#f4f4f6] text-left cursor-pointer`,children:[(0,F.jsxDEV)(`span`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(Dn,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:z,lineNumber:493,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Duplicate`},void 0,!1,{fileName:z,lineNumber:494,columnNumber:15},this)]},void 0,!0,{fileName:z,lineNumber:492,columnNumber:13},this),(0,F.jsxDEV)(`kbd`,{className:`text-[9px] font-mono text-[#86868b]`,children:`⌘D`},void 0,!1,{fileName:z,lineNumber:496,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:484,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`h-[1px] bg-[#f4f4f6] my-1`},void 0,!1,{fileName:z,lineNumber:499,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{c(x.elementId),k()},className:`flex items-center gap-2 px-2.5 py-1.5 rounded-[6px] text-[#1d1d1f] hover:bg-[#f4f4f6] text-left cursor-pointer`,children:[(0,F.jsxDEV)(zt,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:z,lineNumber:509,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Bring Forward`},void 0,!1,{fileName:z,lineNumber:510,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:501,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{u(x.elementId),k()},className:`flex items-center gap-2 px-2.5 py-1.5 rounded-[6px] text-[#1d1d1f] hover:bg-[#f4f4f6] text-left cursor-pointer`,children:[(0,F.jsxDEV)(le,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:z,lineNumber:521,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Send Backward`},void 0,!1,{fileName:z,lineNumber:522,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:513,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`h-[1px] bg-[#f4f4f6] my-1`},void 0,!1,{fileName:z,lineNumber:525,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{o(),k()},className:`flex items-center gap-2 px-2.5 py-1.5 rounded-[6px] text-[#ff3b30] hover:bg-[#ff3b30]/10 text-left cursor-pointer`,children:[(0,F.jsxDEV)(Oe,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:z,lineNumber:535,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Delete`},void 0,!1,{fileName:z,lineNumber:536,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:527,columnNumber:11},this)]},void 0,!0,{fileName:z,lineNumber:463,columnNumber:9},this)]},void 0,!0,{fileName:z,lineNumber:340,columnNumber:5},this)}var Wc=`cyrus_user_templates_v1`;async function Gc(e){let t=e.project,n=M(`proj`),r=new Map;t.pages.forEach(e=>{r.set(e.id,M(`page`))}),t.pages.forEach(e=>{e.elements.forEach(e=>{r.set(e.id,M(`elem`))})});let i=t.pages.map(e=>{let t=r.get(e.id)||M(`page`),n=e.elements.map(e=>{let t=r.get(e.id)||M(`elem`),n=e.parentId&&r.get(e.parentId)||null,i=e.children?e.children.map(e=>r.get(e)||e):void 0,a=(e.interactions||[]).map(e=>{let t=e.target&&r.has(e.target)?r.get(e.target):e.target;return{...e,id:M(`act`),target:t}});return{...JSON.parse(JSON.stringify(e)),id:t,parentId:n,children:i,interactions:a}});return{...JSON.parse(JSON.stringify(e)),id:t,elements:n}}),a={...JSON.parse(JSON.stringify(t)),id:n,name:`${e.name}`,pages:i,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};return await _o(a),a}async function Kc(){try{return await no(Wc)||[]}catch{return[]}}async function qc(e){let t=(await Kc()).filter(t=>t.id!==e);await io(Wc,t)}var Jc=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/PageThumbnail.tsx`;function Yc({page:e,className:t}){let n=e.elements||[],r=1440;return(0,F.jsxDEV)(`div`,{style:{backgroundColor:e.settings.backgroundColor||`#ffffff`},className:`relative w-full h-24 rounded-[6px] border border-[#e5e5ea] overflow-hidden bg-dot-grid-sm shadow-2xs select-none ${t||``}`,children:[n.map(e=>{let t=e.x/r*100,n=e.y/900*100,i=e.width/r*100,a=Math.min(60,e.height/900*100),o=e.styles.backgroundColor||`#e5e5ea`;return e.type===`button`&&(o=e.styles.backgroundColor||`#0071e3`),(e.type===`navbar`||e.type===`card`)&&(o=e.styles.backgroundColor||`#ffffff`),(e.type===`heading`||e.type===`text`)&&(o=`#1d1d1f`),e.type===`paragraph`&&(o=`#86868b`),(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`${t}%`,top:`${n}%`,width:`${Math.max(2,i)}%`,height:`${Math.max(2,a)}%`,backgroundColor:o,borderRadius:`2px`,border:e.styles.borderWidth?`0.5px solid #d1d1d6`:void 0,opacity:e.styles.opacity??1},className:`shadow-3xs`},e.id,!1,{fileName:Jc,lineNumber:36,columnNumber:11},this)}),n.length===0&&(0,F.jsxDEV)(`div`,{className:`absolute inset-0 flex items-center justify-center text-[9px] text-[#86868b]`,children:`Blank Page`},void 0,!1,{fileName:Jc,lineNumber:55,columnNumber:9},this)]},void 0,!0,{fileName:Jc,lineNumber:14,columnNumber:5},this)}var Xc=`C:/Users/Shadow/Desktop/cyrus/src/editor/templates/TemplatePreviewModal.tsx`;function Zc({template:e,isOpen:t,onClose:n}){let{setProject:r,setActivePage:i}=I(),{addToast:a}=oo(),o=e.project.pages||[],[s,c]=(0,N.useState)(0),[l,u]=(0,N.useState)(!1);if(!t)return null;let d=o[s]||o[0];return(0,F.jsxDEV)(`div`,{onClick:n,className:`fixed inset-0 bg-black/40 backdrop-blur-xs flex items-center justify-center p-6 z-[999999] animate-in fade-in duration-150 select-none`,children:(0,F.jsxDEV)(`div`,{onClick:e=>e.stopPropagation(),className:`w-full max-w-4xl bg-white rounded-[18px] border border-[#e5e5ea] shadow-apple-lg flex flex-col max-h-[90vh] overflow-hidden animate-in zoom-in-95 duration-150`,children:[(0,F.jsxDEV)(`div`,{className:`p-4 px-6 border-b border-[#f4f4f6] flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsxDEV)(`div`,{className:`w-8 h-8 rounded-[8px] bg-[#e8f2fc] text-[#0071e3] flex items-center justify-center font-semibold`,children:(0,F.jsxDEV)(vi,{className:`w-4 h-4`},void 0,!1,{fileName:Xc,lineNumber:70,columnNumber:15},this)},void 0,!1,{fileName:Xc,lineNumber:69,columnNumber:13},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`h3`,{className:`text-[15px] font-semibold text-[#1d1d1f]`,children:e.name},void 0,!1,{fileName:Xc,lineNumber:74,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full text-[10px] font-medium bg-[#f4f4f6] text-[#6e6e73] capitalize`,children:e.category},void 0,!1,{fileName:Xc,lineNumber:77,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full text-[10px] font-medium bg-[#e8f2fc] text-[#0071e3] capitalize`,children:[e.style,` Style`]},void 0,!0,{fileName:Xc,lineNumber:80,columnNumber:17},this)]},void 0,!0,{fileName:Xc,lineNumber:73,columnNumber:15},this),(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b] mt-0.5`,children:e.description},void 0,!1,{fileName:Xc,lineNumber:84,columnNumber:15},this)]},void 0,!0,{fileName:Xc,lineNumber:72,columnNumber:13},this)]},void 0,!0,{fileName:Xc,lineNumber:68,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:n,className:`w-7 h-7 rounded-full bg-[#f4f4f6] text-[#86868b] hover:text-[#1d1d1f] flex items-center justify-center transition-apple cursor-pointer`,children:(0,F.jsxDEV)(Ln,{className:`w-4 h-4`},void 0,!1,{fileName:Xc,lineNumber:95,columnNumber:13},this)},void 0,!1,{fileName:Xc,lineNumber:90,columnNumber:11},this)]},void 0,!0,{fileName:Xc,lineNumber:67,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-6 flex flex-col gap-6 bg-[#fafafc]`,children:[(0,F.jsxDEV)(`div`,{className:`w-full h-80 rounded-[12px] border border-[#e5e5ea] overflow-hidden bg-white shadow-apple-sm relative flex flex-col`,children:[(0,F.jsxDEV)(`div`,{className:`h-7 bg-[#f4f4f6] border-b border-[#e5e5ea] px-3 flex items-center justify-between text-[11px] text-[#86868b]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 font-medium text-[#1d1d1f]`,children:[(0,F.jsxDEV)(dn,{className:`w-3 h-3 text-[#0071e3]`},void 0,!1,{fileName:Xc,lineNumber:105,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:[`Previewing: `,d.name,` (/`,d.slug,`)`]},void 0,!0,{fileName:Xc,lineNumber:106,columnNumber:17},this)]},void 0,!0,{fileName:Xc,lineNumber:104,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`1440 × 900 px`},void 0,!1,{fileName:Xc,lineNumber:108,columnNumber:15},this)]},void 0,!0,{fileName:Xc,lineNumber:103,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex-1 p-4 flex items-center justify-center bg-[#f5f5f7]`,children:(0,F.jsxDEV)(Yc,{page:d,className:`h-full w-full max-w-2xl`},void 0,!1,{fileName:Xc,lineNumber:111,columnNumber:15},this)},void 0,!1,{fileName:Xc,lineNumber:110,columnNumber:13},this)]},void 0,!0,{fileName:Xc,lineNumber:102,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`space-y-2`,children:[(0,F.jsxDEV)(`span`,{className:`text-[11.5px] font-semibold text-[#86868b] uppercase tracking-wider flex items-center gap-1.5`,children:[(0,F.jsxDEV)(ie,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:Xc,lineNumber:118,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:[`Included Project Pages (`,o.length,`)`]},void 0,!0,{fileName:Xc,lineNumber:119,columnNumber:15},this)]},void 0,!0,{fileName:Xc,lineNumber:117,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-5 gap-3`,children:o.map((e,t)=>{let n=t===s;return(0,F.jsxDEV)(`div`,{onClick:()=>c(t),className:j(`p-2.5 rounded-[10px] border transition-apple cursor-pointer select-none bg-white flex flex-col gap-1.5`,n?`border-[#0071e3] shadow-apple-sm ring-2 ring-[#0071e3]/20`:`border-[#e5e5ea] hover:border-[#d1d1d6]`),children:[(0,F.jsxDEV)(Yc,{page:e,className:`h-14`},void 0,!1,{fileName:Xc,lineNumber:136,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between text-[11px] font-medium text-[#1d1d1f]`,children:[(0,F.jsxDEV)(`span`,{className:`truncate`,children:e.name},void 0,!1,{fileName:Xc,lineNumber:138,columnNumber:23},this),n&&(0,F.jsxDEV)(ke,{className:`w-3 h-3 text-[#0071e3]`},void 0,!1,{fileName:Xc,lineNumber:139,columnNumber:38},this)]},void 0,!0,{fileName:Xc,lineNumber:137,columnNumber:21},this)]},e.id,!0,{fileName:Xc,lineNumber:126,columnNumber:19},this)})},void 0,!1,{fileName:Xc,lineNumber:122,columnNumber:13},this)]},void 0,!0,{fileName:Xc,lineNumber:116,columnNumber:11},this)]},void 0,!0,{fileName:Xc,lineNumber:100,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`p-4 px-6 border-t border-[#f4f4f6] flex items-center justify-between bg-white`,children:[(0,F.jsxDEV)(`div`,{className:`text-[11.5px] text-[#86868b]`,children:[`Creates a new standalone project with `,o.length,` real responsive pages and design tokens.`]},void 0,!0,{fileName:Xc,lineNumber:150,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(fs,{variant:`secondary`,size:`sm`,onClick:n,children:`Cancel`},void 0,!1,{fileName:Xc,lineNumber:155,columnNumber:13},this),(0,F.jsxDEV)(fs,{variant:`primary`,size:`sm`,isLoading:l,onClick:async()=>{try{u(!0);let t=await Gc(e);r(t),i(t.pages[0]?.id||``),a(`Created new project from "${e.name}"`,`success`),n()}catch(e){console.error(`Failed to instantiate template:`,e),a(`Error applying template`,`error`)}finally{u(!1)}},icon:(0,F.jsxDEV)(Aa,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Xc,lineNumber:163,columnNumber:21},this),children:`Use This Template`},void 0,!1,{fileName:Xc,lineNumber:158,columnNumber:13},this)]},void 0,!0,{fileName:Xc,lineNumber:154,columnNumber:11},this)]},void 0,!0,{fileName:Xc,lineNumber:149,columnNumber:9},this)]},void 0,!0,{fileName:Xc,lineNumber:62,columnNumber:7},this)},void 0,!1,{fileName:Xc,lineNumber:58,columnNumber:5},this)}var Qc=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/TemplatesPanel.tsx`;function $c(){let{activeProject:e}=I(),{addToast:t}=oo(),[n,r]=(0,N.useState)(``),[i,a]=(0,N.useState)([]),[o,s]=(0,N.useState)(null),c=async()=>{let e=await Kc();a(e)};(0,N.useEffect)(()=>{c()},[]);let l=(0,N.useMemo)(()=>[...As,...i],[i]),u=(0,N.useMemo)(()=>{if(!n.trim())return l;let e=n.toLowerCase();return l.filter(t=>t.name.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||t.category.toLowerCase().includes(e))},[l,n]),d=async(e,n)=>{e.stopPropagation(),await qc(n),await c(),t(`Template deleted`,`info`)};return(0,F.jsxDEV)(`div`,{className:`flex flex-col h-full select-none text-[12px] bg-white dark:bg-[#1c1c1e]`,children:[(0,F.jsxDEV)(`div`,{className:`p-3 border-b border-[#f4f4f6] dark:border-[#2c2c2e] flex flex-col gap-2.5`,children:[(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[(0,F.jsxDEV)(`input`,{type:`text`,value:n,onChange:e=>r(e.target.value),placeholder:`+ Describe your ideal design`,className:`w-full h-10 pl-4 pr-10 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12.5px] text-[#1d1d1f] dark:text-[#f5f5f7] placeholder:text-[#86868b] dark:placeholder:text-[#636366] rounded-full border border-[#e5e5ea] dark:border-[#38383a] focus:border-[#7d2ae8] focus:bg-white dark:focus:bg-[#1c1c1e] outline-none transition-all`},void 0,!1,{fileName:Qc,lineNumber:63,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,className:`absolute right-3 p-1 text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#7d2ae8] transition-colors`,title:`Voice Prompt`,children:(0,F.jsxDEV)(Le,{className:`w-4 h-4`},void 0,!1,{fileName:Qc,lineNumber:75,columnNumber:13},this)},void 0,!1,{fileName:Qc,lineNumber:70,columnNumber:11},this)]},void 0,!0,{fileName:Qc,lineNumber:62,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`button`,{type:`button`,className:`flex-1 h-9 px-3 rounded-xl bg-[#f4f4f6] dark:bg-[#2c2c2e] border border-[#e5e5ea] dark:border-[#38383a] text-[#1d1d1f] dark:text-[#f5f5f7] text-[12px] font-medium flex items-center justify-center gap-1.5 hover:bg-[#ebebee] dark:hover:bg-[#3a3a3c] transition-colors cursor-pointer`,children:[(0,F.jsxDEV)(vi,{className:`w-3.5 h-3.5 text-[#7d2ae8] dark:text-[#9d52ff]`},void 0,!1,{fileName:Qc,lineNumber:85,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Generate`},void 0,!1,{fileName:Qc,lineNumber:86,columnNumber:13},this),(0,F.jsxDEV)(fe,{className:`w-3 h-3 text-[#86868b]`},void 0,!1,{fileName:Qc,lineNumber:87,columnNumber:13},this)]},void 0,!0,{fileName:Qc,lineNumber:81,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{n.trim()&&t(`Searching templates for "${n}"`,`info`)},className:`flex-1 h-9 px-4 rounded-xl bg-[#7d2ae8] hover:bg-[#6b21ce] text-white text-[12.5px] font-semibold flex items-center justify-center shadow-apple-sm transition-all active:scale-[0.98] cursor-pointer`,children:`Search`},void 0,!1,{fileName:Qc,lineNumber:90,columnNumber:11},this)]},void 0,!0,{fileName:Qc,lineNumber:80,columnNumber:9},this)]},void 0,!0,{fileName:Qc,lineNumber:60,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-3 grid grid-cols-2 gap-2.5`,children:u.map(e=>{let t=e.project.pages[0];return(0,F.jsxDEV)(`div`,{onClick:()=>s(e),className:`group rounded-xl border border-[#e5e5ea] dark:border-[#38383a] bg-white dark:bg-[#2c2c2e] hover:border-[#7d2ae8] hover:shadow-apple-sm transition-all cursor-pointer flex flex-col overflow-hidden select-none`,children:[(0,F.jsxDEV)(`div`,{className:`w-full h-24 bg-[#f4f4f6] dark:bg-[#1c1c1e] relative overflow-hidden flex items-center justify-center`,children:[t?(0,F.jsxDEV)(Yc,{page:t,className:`h-full w-full object-cover`},void 0,!1,{fileName:Qc,lineNumber:118,columnNumber:19},this):(0,F.jsxDEV)(`div`,{className:`text-[11px] text-[#86868b]`,children:e.name},void 0,!1,{fileName:Qc,lineNumber:120,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`absolute bottom-1.5 left-1.5 w-5 h-5 rounded-full bg-black/40 text-white flex items-center justify-center backdrop-blur-xs`,children:(0,F.jsxDEV)(ci,{className:`w-2.5 h-2.5 fill-current ml-0.5`},void 0,!1,{fileName:Qc,lineNumber:124,columnNumber:19},this)},void 0,!1,{fileName:Qc,lineNumber:123,columnNumber:17},this)]},void 0,!0,{fileName:Qc,lineNumber:116,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`p-2 flex items-center justify-between min-w-0`,children:[(0,F.jsxDEV)(`span`,{className:`text-[11.5px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] group-hover:text-[#7d2ae8] dark:group-hover:text-[#9d52ff] transition-colors truncate`,children:e.name},void 0,!1,{fileName:Qc,lineNumber:130,columnNumber:17},this),e.isUserTemplate&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>d(t,e.id),className:`p-1 rounded text-[#86868b] hover:text-[#ff3b30]`,children:(0,F.jsxDEV)(Oe,{className:`w-3 h-3`},void 0,!1,{fileName:Qc,lineNumber:139,columnNumber:21},this)},void 0,!1,{fileName:Qc,lineNumber:134,columnNumber:19},this)]},void 0,!0,{fileName:Qc,lineNumber:129,columnNumber:15},this)]},e.id,!0,{fileName:Qc,lineNumber:110,columnNumber:13},this)})},void 0,!1,{fileName:Qc,lineNumber:105,columnNumber:7},this),o&&(0,F.jsxDEV)(Zc,{template:o,isOpen:!!o,onClose:()=>s(null)},void 0,!1,{fileName:Qc,lineNumber:150,columnNumber:9},this)]},void 0,!0,{fileName:Qc,lineNumber:58,columnNumber:5},this)}var B=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/AssetsPanel.tsx`,el=[{id:`all`,label:`All`},{id:`images`,label:`Images`},{id:`illustrations`,label:`Illustrations`},{id:`videos`,label:`Videos`},{id:`uploaded`,label:`Uploaded`}],tl={ArrowRight:Aa,ArrowLeft:Kt,ArrowUp:zt,ArrowDown:le,ChevronRight:at,ChevronLeft:vt,Search:lt,Home:Me,Menu:hr,Plus:na,Check:ke,X:Ln,Trash2:Oe,Edit2:C,Copy:Dn,Download:g,Share2:gt,RotateCcw:pn,User:vi,Settings:Ea,Lock:Ri,Unlock:_i,Eye:l,Sparkles:vi,Zap:Ki,Heart:v,Star:Wr,Bell:li,Mail:ia,Calendar:Ce,CreditCard:Ie,Layers:ie,Globe:a,Shield:Ma,Smartphone:Ar,Monitor:dn};function nl(){let{activeProject:e,addElement:t}=I(),{addToast:n}=oo(),[r,i]=(0,N.useState)([]),[a,o]=(0,N.useState)(``),[s,c]=(0,N.useState)(`all`),[l,u]=(0,N.useState)(!1),[d,f]=(0,N.useState)(null),[p,m]=(0,N.useState)(``),h=(0,N.useRef)(null),g=async()=>{let t=await Wo(e?.id);i(t)};(0,N.useEffect)(()=>{g()},[e?.id]);let _=(0,N.useMemo)(()=>{let e=r;if(s===`images`?e=e.filter(e=>e.type===`image`||e.type===`background`):s===`icons`?e=e.filter(e=>e.type===`icon`):s===`illustrations`?e=e.filter(e=>e.type===`illustration`):s===`videos`?e=e.filter(e=>e.type===`video`):s===`uploaded`&&(e=e.filter(e=>!e.isPreset)),!a.trim())return e;let t=a.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(t)||e.type.toLowerCase().includes(t)||e.keywords?.some(e=>e.toLowerCase().includes(t)))},[r,s,a]),v=async t=>{let r=t.target.files;if(!r||r.length===0)return;u(!0);let i=0;for(let t=0;t<r.length;t++){let a=r[t];try{await Zo(a,e?.id),i++}catch(e){n(e.message||`Failed to upload ${a.name}`,`error`)}}i>0&&(n(`Uploaded ${i} asset(s)`,`success`),await g()),u(!1),h.current&&(h.current.value=``)},y=e=>{let r=`image`,i=360,a=240,o={url:e.url};e.type===`video`?(r=`video`,i=480,a=270,o={url:e.url,autoplay:!0,loop:!0,muted:!0,controls:!0}):e.type===`icon`?(r=`icon`,i=48,a=48,o={iconName:e.metadata?.iconName||e.url||`Sparkles`}):e.type===`svg`&&(r=`svg`,i=120,a=120,o={svg:e.url}),t({type:r,name:e.name,width:i,height:a,styles:{borderRadius:r===`icon`?0:12},content:o}),n(`Inserted "${e.name}" into canvas`,`success`)},b=(e,t)=>{e.dataTransfer.setData(`application/cyrus-asset`,JSON.stringify(t)),e.dataTransfer.effectAllowed=`copy`},x=async(e,t)=>{e.stopPropagation(),await qo(t),await g(),n(`Asset deleted`,`info`)},S=async e=>{p.trim()&&(await Jo(e,p.trim()),f(null),await g(),n(`Asset renamed`,`success`))};return(0,F.jsxDEV)(`div`,{className:`flex flex-col h-full select-none text-[12px] bg-white`,children:[(0,F.jsxDEV)(`input`,{ref:h,type:`file`,multiple:!0,accept:`image/png,image/jpeg,image/jpg,image/webp,image/svg+xml,image/gif,video/mp4`,onChange:v,className:`hidden`},void 0,!1,{fileName:B,lineNumber:243,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`p-3.5 border-b border-[#f4f4f6] flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[13px] font-semibold text-[#1d1d1f] flex items-center gap-1.5`,children:[(0,F.jsxDEV)(he,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:B,lineNumber:256,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Asset Library`},void 0,!1,{fileName:B,lineNumber:257,columnNumber:13},this)]},void 0,!0,{fileName:B,lineNumber:255,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`text-[11px] text-[#86868b] mt-0.5`,children:[r.length,` images, icons & media assets`]},void 0,!0,{fileName:B,lineNumber:259,columnNumber:11},this)]},void 0,!0,{fileName:B,lineNumber:254,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,disabled:l,onClick:()=>h.current?.click(),className:`flex items-center gap-1 px-2.5 py-1.5 bg-[#0071e3] hover:bg-[#0077ed] text-white rounded-[7px] text-[11px] font-medium transition-apple shadow-2xs cursor-pointer`,children:[(0,F.jsxDEV)(ae,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:B,lineNumber:270,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:l?`Uploading...`:`Upload`},void 0,!1,{fileName:B,lineNumber:271,columnNumber:11},this)]},void 0,!0,{fileName:B,lineNumber:264,columnNumber:9},this)]},void 0,!0,{fileName:B,lineNumber:253,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`p-2.5 border-b border-[#f4f4f6]`,children:(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[(0,F.jsxDEV)(lt,{className:`w-3.5 h-3.5 text-[#86868b] absolute left-2.5 pointer-events-none`},void 0,!1,{fileName:B,lineNumber:278,columnNumber:11},this),(0,F.jsxDEV)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:`Search assets (e.g. arrow, workspace)...`,className:`w-full h-7.5 pl-7 pr-7 bg-[#f4f4f6] text-[11.5px] text-[#1d1d1f] placeholder:text-[#86868b] rounded-[6px] border border-transparent focus:border-[#0071e3] focus:bg-white focus:outline-none transition-apple`},void 0,!1,{fileName:B,lineNumber:279,columnNumber:11},this),a&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>o(``),className:`absolute right-2 p-0.5 rounded text-[#86868b] hover:text-[#1d1d1f]`,children:(0,F.jsxDEV)(Ln,{className:`w-3 h-3`},void 0,!1,{fileName:B,lineNumber:292,columnNumber:15},this)},void 0,!1,{fileName:B,lineNumber:287,columnNumber:13},this)]},void 0,!0,{fileName:B,lineNumber:277,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:276,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 overflow-x-auto no-scrollbar p-2 border-b border-[#f4f4f6] bg-[#fafafc]`,children:el.map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>c(e.id),className:j(`px-2.5 py-1 rounded-full text-[10.5px] font-medium whitespace-nowrap transition-apple cursor-pointer`,s===e.id?`bg-[#0071e3] text-white shadow-2xs`:`bg-white border border-[#e5e5ea] text-[#6e6e73] hover:text-[#1d1d1f]`),children:e.label},e.id,!1,{fileName:B,lineNumber:301,columnNumber:11},this))},void 0,!1,{fileName:B,lineNumber:299,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-3`,children:_.length===0?(0,F.jsxDEV)(`div`,{className:`py-8 flex flex-col items-center justify-center p-4 text-center`,children:[(0,F.jsxDEV)(`div`,{className:`w-10 h-10 rounded-2xl bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center mb-3 shadow-xs`,children:(0,F.jsxDEV)(he,{className:`w-5 h-5`},void 0,!1,{fileName:B,lineNumber:322,columnNumber:15},this)},void 0,!1,{fileName:B,lineNumber:321,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`No assets in library`},void 0,!1,{fileName:B,lineNumber:324,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b] mt-1 mb-4 max-w-[210px] leading-relaxed`,children:`Upload photography, vectors, and media to organize your design assets and drag them onto the artboard.`},void 0,!1,{fileName:B,lineNumber:327,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>h.current?.click(),className:`w-full flex items-center justify-center gap-1.5 px-3 py-1.5 rounded-lg bg-[#0071e3] text-white text-[11.5px] font-semibold hover:bg-[#0062c4] transition-colors cursor-pointer shadow-xs`,children:[(0,F.jsxDEV)(na,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:B,lineNumber:336,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Upload Local Images`},void 0,!1,{fileName:B,lineNumber:337,columnNumber:15},this)]},void 0,!0,{fileName:B,lineNumber:331,columnNumber:13},this)]},void 0,!0,{fileName:B,lineNumber:320,columnNumber:11},this):(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2.5`,children:_.map(e=>{let t=d===e.id,n=e.type===`icon`?tl[e.metadata?.iconName||e.url]||vi:null;return(0,F.jsxDEV)(`div`,{draggable:!0,onDragStart:t=>b(t,e),onClick:()=>y(e),className:`group relative flex flex-col rounded-[10px] border border-[#e5e5ea] bg-white overflow-hidden hover:border-[#0071e3] hover:shadow-apple-sm transition-apple cursor-pointer select-none`,children:[(0,F.jsxDEV)(`div`,{className:`h-24 bg-[#f4f4f6] flex items-center justify-center overflow-hidden relative`,children:[e.type===`icon`&&n?(0,F.jsxDEV)(`div`,{className:`text-[#0071e3] group-hover:scale-110 transition-transform`,children:(0,F.jsxDEV)(n,{className:`w-8 h-8`},void 0,!1,{fileName:B,lineNumber:358,columnNumber:25},this)},void 0,!1,{fileName:B,lineNumber:357,columnNumber:23},this):e.type===`video`?(0,F.jsxDEV)(`div`,{className:`relative w-full h-full flex items-center justify-center bg-black/10`,children:(0,F.jsxDEV)(Nn,{className:`w-6 h-6 text-white drop-shadow-md`},void 0,!1,{fileName:B,lineNumber:362,columnNumber:25},this)},void 0,!1,{fileName:B,lineNumber:361,columnNumber:23},this):(0,F.jsxDEV)(`img`,{src:e.thumbnailUrl||e.url,alt:e.name,loading:`lazy`,className:`w-full h-full object-cover group-hover:scale-105 transition-transform duration-200`},void 0,!1,{fileName:B,lineNumber:365,columnNumber:23},this),(0,F.jsxDEV)(`div`,{className:`absolute inset-0 bg-black/40 backdrop-blur-2xs opacity-0 group-hover:opacity-100 flex items-center justify-center transition-opacity`,children:(0,F.jsxDEV)(`span`,{className:`px-2.5 py-1 bg-white text-[#1d1d1f] font-semibold text-[10.5px] rounded-full shadow-apple-sm flex items-center gap-1`,children:[(0,F.jsxDEV)(na,{className:`w-3 h-3`},void 0,!1,{fileName:B,lineNumber:376,columnNumber:25},this),(0,F.jsxDEV)(`span`,{children:`Insert`},void 0,!1,{fileName:B,lineNumber:377,columnNumber:25},this)]},void 0,!0,{fileName:B,lineNumber:375,columnNumber:23},this)},void 0,!1,{fileName:B,lineNumber:374,columnNumber:21},this)]},void 0,!0,{fileName:B,lineNumber:355,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`p-2 flex flex-col gap-0.5 bg-white`,children:[t?(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1`,onClick:e=>e.stopPropagation(),children:[(0,F.jsxDEV)(`input`,{type:`text`,value:p,autoFocus:!0,onChange:e=>m(e.target.value),onKeyDown:t=>{t.key===`Enter`&&S(e.id),t.key===`Escape`&&f(null)},className:`w-full h-5 px-1 bg-[#f4f4f6] rounded text-[10.5px] text-[#1d1d1f] border border-[#0071e3] focus:outline-none`},void 0,!1,{fileName:B,lineNumber:386,columnNumber:25},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>S(e.id),className:`text-[#0071e3] hover:underline text-[10px]`,children:`Save`},void 0,!1,{fileName:B,lineNumber:397,columnNumber:25},this)]},void 0,!0,{fileName:B,lineNumber:385,columnNumber:23},this):(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[11px] font-medium text-[#1d1d1f] truncate flex-1`,title:e.name,children:e.name},void 0,!1,{fileName:B,lineNumber:407,columnNumber:25},this),!e.isPreset&&(0,F.jsxDEV)(`div`,{className:`flex items-center gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),f(e.id),m(e.name)},className:`p-0.5 text-[#86868b] hover:text-[#1d1d1f] rounded`,children:(0,F.jsxDEV)(C,{className:`w-2.5 h-2.5`},void 0,!1,{fileName:B,lineNumber:422,columnNumber:31},this)},void 0,!1,{fileName:B,lineNumber:413,columnNumber:29},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>x(t,e.id),className:`p-0.5 text-[#86868b] hover:text-[#ff3b30] rounded`,children:(0,F.jsxDEV)(Oe,{className:`w-2.5 h-2.5`},void 0,!1,{fileName:B,lineNumber:429,columnNumber:31},this)},void 0,!1,{fileName:B,lineNumber:424,columnNumber:29},this)]},void 0,!0,{fileName:B,lineNumber:412,columnNumber:27},this)]},void 0,!0,{fileName:B,lineNumber:406,columnNumber:23},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between text-[9.5px] text-[#86868b]`,children:[(0,F.jsxDEV)(`span`,{className:`capitalize`,children:e.type},void 0,!1,{fileName:B,lineNumber:437,columnNumber:23},this),e.size&&(0,F.jsxDEV)(`span`,{children:[(e.size/1024).toFixed(0),` KB`]},void 0,!0,{fileName:B,lineNumber:439,columnNumber:25},this)]},void 0,!0,{fileName:B,lineNumber:436,columnNumber:21},this)]},void 0,!0,{fileName:B,lineNumber:383,columnNumber:19},this)]},e.id,!0,{fileName:B,lineNumber:347,columnNumber:17},this)})},void 0,!1,{fileName:B,lineNumber:341,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:318,columnNumber:7},this)]},void 0,!0,{fileName:B,lineNumber:241,columnNumber:5},this)}var rl=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/HistoryPanel.tsx`;function il(){let{activeProject:e,past:t,restoreSnapshot:n,setProject:r}=I(),{session:i}=cs(),{addToast:a}=oo(),[o,s]=(0,N.useState)([]),[c,l]=(0,N.useState)(`versions`),[u,d]=(0,N.useState)(``),[f,p]=(0,N.useState)(!1),m=async()=>{if(!e)return;let t=await ss.getVersions(e.id);s(t)};(0,N.useEffect)(()=>{m()},[e]);let h=async()=>{if(!(!e||!u.trim())){p(!0);try{await ss.createVersion(e.id,u.trim(),e,i.user),d(``),await m(),a(`Created version snapshot`,`success`)}catch{a(`Failed to create version`,`error`)}finally{p(!1)}}},g=async t=>{if(e)try{let n=await ss.restoreVersion(e.id,t);r(n),await m(),a(`Restored project version`,`success`)}catch{a(`Failed to restore version`,`error`)}},_=e=>{n(e),a(`Restored to "${e.description}"`,`success`)};return(0,F.jsxDEV)(`div`,{className:`flex flex-col h-full select-none text-[12px]`,children:[(0,F.jsxDEV)(`div`,{className:`p-3.5 border-b border-[#f4f4f6] flex flex-col gap-2.5`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(xe,{className:`w-4 h-4 text-[#0071e3]`},void 0,!1,{fileName:rl,lineNumber:73,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[13px] font-semibold text-[#1d1d1f]`,children:`Version History`},void 0,!1,{fileName:rl,lineNumber:74,columnNumber:13},this)]},void 0,!0,{fileName:rl,lineNumber:72,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#86868b]`,children:[o.length,` versions`]},void 0,!0,{fileName:rl,lineNumber:76,columnNumber:11},this)]},void 0,!0,{fileName:rl,lineNumber:71,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center bg-[#f4f4f6] p-0.5 rounded-[8px]`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>l(`versions`),className:`flex-1 py-1 rounded-[6px] text-[11px] font-medium transition-apple cursor-pointer ${c===`versions`?`bg-white text-[#1d1d1f] shadow-2xs`:`text-[#86868b] hover:text-[#1d1d1f]`}`,children:[`Named Versions (`,o.length,`)`]},void 0,!0,{fileName:rl,lineNumber:81,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>l(`session`),className:`flex-1 py-1 rounded-[6px] text-[11px] font-medium transition-apple cursor-pointer ${c===`session`?`bg-white text-[#1d1d1f] shadow-2xs`:`text-[#86868b] hover:text-[#1d1d1f]`}`,children:[`Session Undo (`,t.length,`)`]},void 0,!0,{fileName:rl,lineNumber:90,columnNumber:11},this)]},void 0,!0,{fileName:rl,lineNumber:80,columnNumber:9},this)]},void 0,!0,{fileName:rl,lineNumber:70,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-3 flex flex-col gap-2.5`,children:c===`versions`?(0,F.jsxDEV)(F.Fragment,{children:[(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1.5 p-2.5 bg-[#fafafc] rounded-[10px] border border-[#e5e5ea]`,children:[(0,F.jsxDEV)(`input`,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:`Name snapshot (e.g. 'Hero redesign')...`,className:`w-full h-7 px-2 bg-white rounded-[6px] border border-[#e5e5ea] text-[11.5px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3]`},void 0,!1,{fileName:rl,lineNumber:108,columnNumber:15},this),(0,F.jsxDEV)(fs,{variant:`primary`,size:`xs`,disabled:!u.trim(),isLoading:f,onClick:h,icon:(0,F.jsxDEV)(na,{className:`w-3 h-3`},void 0,!1,{fileName:rl,lineNumber:121,columnNumber:23},this),className:`w-full justify-center`,children:`Save Version Snapshot`},void 0,!1,{fileName:rl,lineNumber:115,columnNumber:15},this)]},void 0,!0,{fileName:rl,lineNumber:107,columnNumber:13},this),o.length===0?(0,F.jsxDEV)(`div`,{className:`py-12 text-center text-[#86868b] text-[11.5px]`,children:`No named versions saved yet.`},void 0,!1,{fileName:rl,lineNumber:130,columnNumber:15},this):o.map(e=>(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between p-2.5 rounded-[10px] border border-[#e5e5ea] bg-white hover:border-[#0071e3] transition-apple shadow-2xs`,children:[(0,F.jsxDEV)(`div`,{className:`min-w-0 pr-2`,children:[(0,F.jsxDEV)(`div`,{className:`text-[12px] font-semibold text-[#1d1d1f] truncate`,children:e.description},void 0,!1,{fileName:rl,lineNumber:140,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`text-[10px] text-[#86868b] flex items-center gap-1 mt-0.5`,children:[(0,F.jsxDEV)(Tr,{className:`w-2.5 h-2.5`},void 0,!1,{fileName:rl,lineNumber:144,columnNumber:23},this),(0,F.jsxDEV)(`span`,{children:new Date(e.createdAt).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})},void 0,!1,{fileName:rl,lineNumber:145,columnNumber:23},this),(0,F.jsxDEV)(`span`,{children:`•`},void 0,!1,{fileName:rl,lineNumber:146,columnNumber:23},this),(0,F.jsxDEV)(`span`,{children:e.author.name},void 0,!1,{fileName:rl,lineNumber:147,columnNumber:23},this)]},void 0,!0,{fileName:rl,lineNumber:143,columnNumber:21},this)]},void 0,!0,{fileName:rl,lineNumber:139,columnNumber:19},this),(0,F.jsxDEV)(fs,{variant:`secondary`,size:`xs`,onClick:()=>g(e.id),icon:(0,F.jsxDEV)(pn,{className:`w-3 h-3`},void 0,!1,{fileName:rl,lineNumber:154,columnNumber:27},this),children:`Restore`},void 0,!1,{fileName:rl,lineNumber:150,columnNumber:19},this)]},e.id,!0,{fileName:rl,lineNumber:135,columnNumber:17},this))]},void 0,!0,{fileName:rl,lineNumber:105,columnNumber:11},this):t.length===0?(0,F.jsxDEV)(`div`,{className:`py-12 text-center text-[#86868b] text-[11.5px]`,children:`No modifications recorded in this session yet.`},void 0,!1,{fileName:rl,lineNumber:165,columnNumber:13},this):t.map(e=>(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between p-2.5 rounded-[10px] border border-[#e5e5ea] bg-white hover:border-[#0071e3] transition-apple shadow-2xs`,children:[(0,F.jsxDEV)(`div`,{className:`min-w-0 pr-2`,children:[(0,F.jsxDEV)(`div`,{className:`text-[12px] font-semibold text-[#1d1d1f] truncate`,children:e.description},void 0,!1,{fileName:rl,lineNumber:175,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`text-[10px] text-[#86868b]`,children:new Date(e.timestamp).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})},void 0,!1,{fileName:rl,lineNumber:178,columnNumber:19},this)]},void 0,!0,{fileName:rl,lineNumber:174,columnNumber:17},this),(0,F.jsxDEV)(fs,{variant:`secondary`,size:`xs`,onClick:()=>_(e),icon:(0,F.jsxDEV)(pn,{className:`w-3 h-3`},void 0,!1,{fileName:rl,lineNumber:186,columnNumber:25},this),children:`Revert`},void 0,!1,{fileName:rl,lineNumber:182,columnNumber:17},this)]},e.id,!0,{fileName:rl,lineNumber:170,columnNumber:15},this))},void 0,!1,{fileName:rl,lineNumber:103,columnNumber:7},this)]},void 0,!0,{fileName:rl,lineNumber:68,columnNumber:5},this)}var al=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/TextPanel.tsx`;function ol(){let{addElement:e}=I(),{addToast:t}=oo(),[n,r]=(0,N.useState)(``),[i,a]=(0,N.useState)(`all`),o=()=>{e({type:`heading`,name:`Heading`,width:600,height:70,styles:{fontSize:44,fontWeight:`800`,textColor:`#1d1d1f`,fontFamily:`Inter, sans-serif`},content:{text:`Add a heading`}}),t(`Added Heading to canvas`,`success`)},s=()=>{e({type:`heading`,name:`Subheading`,width:480,height:48,styles:{fontSize:24,fontWeight:`600`,textColor:`#424245`,fontFamily:`Inter, sans-serif`},content:{text:`Add a subheading`}}),t(`Added Subheading to canvas`,`success`)},c=()=>{e({type:`paragraph`,name:`Body Text`,width:440,height:60,styles:{fontSize:15,fontWeight:`400`,textColor:`#6e6e73`,fontFamily:`Inter, sans-serif`},content:{text:`Add a little bit of body text. Clear, legible, and perfectly aligned.`}}),t(`Added Body Text to canvas`,`success`)},l=[{id:`saas_hero`,category:`headings`,title:`AI Platform Hero`,preview:`Next-Gen Intelligence`,subtitle:`Build autonomous workflows in seconds.`,tag:`Tech / SaaS`,action:()=>{e({type:`heading`,name:`Hero Title`,width:640,height:80,styles:{fontSize:48,fontWeight:`800`,textColor:`#7d2ae8`,fontFamily:`Inter, sans-serif`,letterSpacing:`-1px`},content:{text:`Next-Gen Intelligence`}})}},{id:`cursive_hand`,category:`creative`,title:`Cursive Signature`,preview:`Handcrafted with Love`,subtitle:`Satisfy Script Font`,tag:`Creative Script`,action:()=>{e({type:`heading`,name:`Signature Text`,width:480,height:64,styles:{fontSize:38,fontWeight:`400`,textColor:`#0071e3`,fontFamily:`Satisfy, cursive`},content:{text:`Handcrafted with Love`}})}},{id:`cyber_mono`,category:`monospace`,title:`Monospace Code Badge`,preview:`SYSTEM_LOG // v2.4.0`,subtitle:`JetBrains Code Style`,tag:`Developer`,action:()=>{e({type:`paragraph`,name:`Monospace Badge`,width:320,height:36,styles:{fontSize:13,fontWeight:`600`,textColor:`#34c759`,backgroundColor:`#1c1c1e`,borderRadius:8,paddingLeft:14,paddingTop:8,fontFamily:`monospace`},content:{text:`SYSTEM_LOG // v2.4.0`}})}},{id:`pill_badge`,category:`badges`,title:`Status Pill Badge`,preview:`✦ NEW FEATURE 2026`,subtitle:`Rounded Accent Pill`,tag:`Badge`,action:()=>{e({type:`paragraph`,name:`Pill Label`,width:220,height:32,styles:{fontSize:11,fontWeight:`700`,textColor:`#7d2ae8`,backgroundColor:`#f0e6ff`,borderRadius:999,paddingLeft:16,paddingTop:7,letterSpacing:`1px`},content:{text:`✦ NEW FEATURE 2026`}})}},{id:`quote_block`,category:`creative`,title:`Editorial Quote Block`,preview:`“Simplicity is the ultimate sophistication.”`,subtitle:`— Leonardo da Vinci`,tag:`Serif Quote`,action:()=>{e({type:`paragraph`,name:`Quote Text`,width:520,height:80,styles:{fontSize:20,fontWeight:`500`,textColor:`#1d1d1f`,fontFamily:`Georgia, serif`,fontStyle:`italic`},content:{text:`“Simplicity is the ultimate sophistication.”`}})}},{id:`stat_counter`,category:`headings`,title:`Big KPI Metric`,preview:`99.9% Uptime`,subtitle:`High Impact Number`,tag:`Metric`,action:()=>{e({type:`heading`,name:`KPI Metric`,width:360,height:70,styles:{fontSize:52,fontWeight:`800`,textColor:`#1d1d1f`,letterSpacing:`-2px`},content:{text:`99.9% Uptime`}})}}],u=[{id:`all`,label:`All Styles`},{id:`headings`,label:`Headings`},{id:`creative`,label:`Creative`},{id:`monospace`,label:`Monospace`},{id:`badges`,label:`Badges`}],d=(0,N.useMemo)(()=>{let e=l;if(i!==`all`&&(e=e.filter(e=>e.category===i)),n.trim()){let t=n.toLowerCase();e=e.filter(e=>e.title.toLowerCase().includes(t)||e.preview.toLowerCase().includes(t))}return e},[i,n]);return(0,F.jsxDEV)(`div`,{className:`flex flex-col h-full bg-white dark:bg-[#1c1c1e] text-[12px] select-none`,children:[(0,F.jsxDEV)(`div`,{className:`p-3 border-b border-[#f4f4f6] dark:border-[#2c2c2e] space-y-2`,children:(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[(0,F.jsxDEV)(lt,{className:`w-3.5 h-3.5 text-[#86868b] dark:text-[#636366] absolute left-3 pointer-events-none`},void 0,!1,{fileName:al,lineNumber:199,columnNumber:11},this),(0,F.jsxDEV)(`input`,{type:`text`,value:n,onChange:e=>r(e.target.value),placeholder:`Search fonts & typography...`,className:`w-full h-8 pl-8 pr-3 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] placeholder:text-[#86868b] dark:placeholder:text-[#636366] rounded-xl border border-transparent focus:border-[#7d2ae8] outline-none transition-all`},void 0,!1,{fileName:al,lineNumber:200,columnNumber:11},this)]},void 0,!0,{fileName:al,lineNumber:198,columnNumber:9},this)},void 0,!1,{fileName:al,lineNumber:197,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-3 space-y-4`,children:[(0,F.jsxDEV)(`div`,{className:`space-y-2`,children:[(0,F.jsxDEV)(`div`,{className:`text-[11px] font-bold text-[#86868b] dark:text-[#636366] uppercase tracking-wider px-1`,children:`Default Text Styles`},void 0,!1,{fileName:al,lineNumber:213,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:o,className:`w-full p-3.5 rounded-2xl bg-gradient-to-r from-[#7d2ae8] to-[#9d52ff] hover:opacity-95 text-white flex items-center justify-between shadow-apple-sm transition-all active:scale-[0.98] cursor-pointer group`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsxDEV)(`div`,{className:`w-8 h-8 rounded-xl bg-white/20 flex items-center justify-center`,children:(0,F.jsxDEV)(fn,{className:`w-4 h-4 text-white`},void 0,!1,{fileName:al,lineNumber:225,columnNumber:17},this)},void 0,!1,{fileName:al,lineNumber:224,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[18px] font-extrabold tracking-tight`,children:`Add a heading`},void 0,!1,{fileName:al,lineNumber:227,columnNumber:15},this)]},void 0,!0,{fileName:al,lineNumber:223,columnNumber:13},this),(0,F.jsxDEV)(na,{className:`w-4 h-4 opacity-80 group-hover:scale-110 transition-transform`},void 0,!1,{fileName:al,lineNumber:229,columnNumber:13},this)]},void 0,!0,{fileName:al,lineNumber:218,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:s,className:`w-full p-3 rounded-xl bg-[#f4f4f6] dark:bg-[#2c2c2e] hover:bg-[#ebebee] dark:hover:bg-[#3a3a3c] text-[#1d1d1f] dark:text-[#f5f5f7] flex items-center justify-between border border-[#e5e5ea] dark:border-[#38383a] transition-all active:scale-[0.98] cursor-pointer group`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[(0,F.jsxDEV)($t,{className:`w-4 h-4 text-[#7d2ae8] dark:text-[#9d52ff]`},void 0,!1,{fileName:al,lineNumber:239,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[14px] font-bold`,children:`Add a subheading`},void 0,!1,{fileName:al,lineNumber:240,columnNumber:15},this)]},void 0,!0,{fileName:al,lineNumber:238,columnNumber:13},this),(0,F.jsxDEV)(na,{className:`w-4 h-4 text-[#86868b]`},void 0,!1,{fileName:al,lineNumber:242,columnNumber:13},this)]},void 0,!0,{fileName:al,lineNumber:233,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:c,className:`w-full p-2.5 rounded-xl bg-[#f4f4f6] dark:bg-[#2c2c2e] hover:bg-[#ebebee] dark:hover:bg-[#3a3a3c] text-[#1d1d1f] dark:text-[#f5f5f7] flex items-center justify-between border border-[#e5e5ea] dark:border-[#38383a] transition-all active:scale-[0.98] cursor-pointer group`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[(0,F.jsxDEV)(Bi,{className:`w-3.5 h-3.5 text-[#6e6e73]`},void 0,!1,{fileName:al,lineNumber:252,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[12.5px] font-normal`,children:`Add a little bit of body text`},void 0,!1,{fileName:al,lineNumber:253,columnNumber:15},this)]},void 0,!0,{fileName:al,lineNumber:251,columnNumber:13},this),(0,F.jsxDEV)(na,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:al,lineNumber:255,columnNumber:13},this)]},void 0,!0,{fileName:al,lineNumber:246,columnNumber:11},this)]},void 0,!0,{fileName:al,lineNumber:212,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`pt-2 border-t border-[#f4f4f6] dark:border-[#2c2c2e]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 overflow-x-auto no-scrollbar pb-2 mb-2`,children:u.map(e=>(0,F.jsxDEV)(`button`,{onClick:()=>a(e.id),className:j(`px-2.5 py-1 rounded-full text-[11px] font-medium whitespace-nowrap transition-colors cursor-pointer`,i===e.id?`bg-[#7d2ae8] text-white font-semibold`:`bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7]`),children:e.label},e.id,!1,{fileName:al,lineNumber:263,columnNumber:15},this))},void 0,!1,{fileName:al,lineNumber:261,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`space-y-2`,children:[d.map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:e.action,className:`w-full p-3 rounded-xl border border-[#e5e5ea] dark:border-[#38383a] bg-white dark:bg-[#1c1c1e] hover:border-[#7d2ae8]/50 hover:shadow-apple-sm transition-all flex flex-col items-center justify-center gap-1.5 text-center cursor-pointer group`,children:[(0,F.jsxDEV)(`span`,{className:`block font-medium text-[#1d1d1f] dark:text-[#f5f5f7] truncate w-full`,style:{fontSize:e.id===`saas_hero`?`22px`:e.id===`stat_counter`?`26px`:`18px`,fontFamily:e.id===`cursive_hand`?`Satisfy, cursive`:e.id===`cyber_mono`?`monospace`:e.id===`quote_block`?`Georgia, serif`:`Inter, sans-serif`,fontWeight:e.id.includes(`hero`)||e.id.includes(`stat`)?`800`:`400`,fontStyle:e.id===`quote_block`?`italic`:`normal`},children:e.preview},void 0,!1,{fileName:al,lineNumber:286,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#86868b] dark:text-[#636366] font-medium`,children:e.subtitle},void 0,!1,{fileName:al,lineNumber:298,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`px-1.5 py-0.5 rounded-full bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#6e6e73] dark:text-[#8e8e93] text-[9px] font-semibold uppercase tracking-wider`,children:e.tag},void 0,!1,{fileName:al,lineNumber:301,columnNumber:19},this)]},void 0,!0,{fileName:al,lineNumber:297,columnNumber:17},this)]},e.id,!0,{fileName:al,lineNumber:280,columnNumber:15},this)),d.length===0&&(0,F.jsxDEV)(`div`,{className:`py-6 text-center text-[11.5px] text-[#86868b] dark:text-[#636366]`,children:`No presets found`},void 0,!1,{fileName:al,lineNumber:308,columnNumber:15},this)]},void 0,!0,{fileName:al,lineNumber:278,columnNumber:11},this)]},void 0,!0,{fileName:al,lineNumber:260,columnNumber:9},this)]},void 0,!0,{fileName:al,lineNumber:210,columnNumber:7},this)]},void 0,!0,{fileName:al,lineNumber:195,columnNumber:5},this)}var sl=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/IconsPanel.tsx`,cl=[{name:`Loader2`,category:`loading`,icon:kr,keywords:[`spinner`,`loading`,`busy`,`wait`,`progress`,`ajax`,`spin`]},{name:`Loader`,category:`loading`,icon:Ir,keywords:[`spinner`,`loading`,`dots`,`wait`,`progress`]},{name:`RefreshCw`,category:`loading`,icon:yn,keywords:[`reload`,`refresh`,`sync`,`rotate`,`cycle`]},{name:`RefreshCcw`,category:`loading`,icon:An,keywords:[`reload`,`refresh`,`sync`,`counter`]},{name:`RotateCw`,category:`loading`,icon:en,keywords:[`rotate`,`spin`,`clockwise`,`loading`]},{name:`RotateCcw`,category:`loading`,icon:pn,keywords:[`undo`,`rotate`,`reset`,`restart`]},{name:`CircleDotDashed`,category:`loading`,icon:te,keywords:[`loading`,`spinner`,`processing`,`progress`]},{name:`Hourglass`,category:`loading`,icon:Xe,keywords:[`wait`,`pending`,`loading`,`time`,`process`]},{name:`Timer`,category:`loading`,icon:tn,keywords:[`stopwatch`,`timer`,`duration`,`time`]},{name:`Clock`,category:`loading`,icon:Tr,keywords:[`time`,`recent`,`schedule`,`history`]},{name:`Square`,category:`shapes`,icon:Un,keywords:[`box`,`rectangle`,`quadrilateral`,`shape`]},{name:`Circle`,category:`shapes`,icon:Gn,keywords:[`round`,`ellipse`,`dot`,`shape`]},{name:`Triangle`,category:`shapes`,icon:Qe,keywords:[`polygon`,`delta`,`sharp`,`shape`]},{name:`Hexagon`,category:`shapes`,icon:Za,keywords:[`6-sided`,`polygon`,`badge`,`shape`]},{name:`Octagon`,category:`shapes`,icon:bt,keywords:[`8-sided`,`stop`,`polygon`,`shape`]},{name:`Pentagon`,category:`shapes`,icon:Ia,keywords:[`5-sided`,`polygon`,`shape`]},{name:`Diamond`,category:`shapes`,icon:Zt,keywords:[`rhombus`,`gem`,`crystal`,`shape`]},{name:`Star`,category:`shapes`,icon:Wr,keywords:[`favorite`,`rating`,`badge`,`shape`]},{name:`Heart`,category:`shapes`,icon:v,keywords:[`like`,`love`,`favorite`,`shape`]},{name:`Minus`,category:`shapes`,icon:ye,keywords:[`line`,`divider`,`rule`,`separator`,`shape`]},{name:`RectangleHorizontal`,category:`shapes`,icon:pr,keywords:[`bar`,`rectangle`,`wide`,`shape`]},{name:`RectangleVertical`,category:`shapes`,icon:o,keywords:[`tall`,`rectangle`,`pillar`,`shape`]},{name:`CircleDot`,category:`shapes`,icon:oe,keywords:[`target`,`bullseye`,`radio`,`shape`]},{name:`CircleDashed`,category:`shapes`,icon:dt,keywords:[`dashed circle`,`outline`,`ring`,`shape`]},{name:`SquareDashed`,category:`shapes`,icon:di,keywords:[`dashed box`,`placeholder`,`outline`,`shape`]},{name:`Shield`,category:`shapes`,icon:Ma,keywords:[`badge`,`security`,`protection`,`shape`]},{name:`Spline`,category:`shapes`,icon:Cr,keywords:[`curve`,`bezier`,`vector`,`shape`]},{name:`Shapes`,category:`shapes`,icon:ii,keywords:[`geometry`,`primitives`,`elements`,`shape`]},{name:`Component`,category:`shapes`,icon:r,keywords:[`symbol`,`widget`,`module`,`shape`]},{name:`Frame`,category:`shapes`,icon:$n,keywords:[`artboard`,`bounding`,`canvas`,`shape`]},{name:`MousePointer`,category:`controls`,icon:_,keywords:[`cursor`,`select`,`arrow`]},{name:`MousePointer2`,category:`controls`,icon:Te,keywords:[`cursor`,`pointer`]},{name:`MousePointerClick`,category:`controls`,icon:an,keywords:[`click`,`tap`,`press`]},{name:`Hand`,category:`controls`,icon:Wi,keywords:[`drag`,`pan`,`touch`]},{name:`Grab`,category:`controls`,icon:Re,keywords:[`drag`,`move`,`hold`]},{name:`Touchpad`,category:`controls`,icon:kt,keywords:[`trackpad`,`gesture`,`input`]},{name:`Sliders`,category:`controls`,icon:Ea,keywords:[`filter`,`adjust`,`settings`,`range`]},{name:`SlidersHorizontal`,category:`controls`,icon:Ka,keywords:[`controls`,`tune`,`levels`]},{name:`ToggleLeft`,category:`controls`,icon:m,keywords:[`switch`,`off`,`inactive`]},{name:`ToggleRight`,category:`controls`,icon:qa,keywords:[`switch`,`on`,`active`]},{name:`Radio`,category:`controls`,icon:Si,keywords:[`radio button`,`option`,`choice`]},{name:`CheckSquare`,category:`controls`,icon:ya,keywords:[`checkbox`,`checked`,`todo`]},{name:`TextCursorInput`,category:`controls`,icon:Be,keywords:[`input`,`text field`,`type`,`form`]},{name:`AlignLeft`,category:`controls`,icon:Bi,keywords:[`text`,`textarea`,`paragraph`]},{name:`ArrowRight`,category:`navigation`,icon:Aa,keywords:[`next`,`forward`,`right`]},{name:`ArrowLeft`,category:`navigation`,icon:Kt,keywords:[`back`,`previous`,`left`]},{name:`ArrowUp`,category:`navigation`,icon:zt,keywords:[`up`,`top`,`ascending`]},{name:`ArrowDown`,category:`navigation`,icon:le,keywords:[`down`,`bottom`,`descending`]},{name:`ChevronRight`,category:`navigation`,icon:at,keywords:[`next`,`expand`,`accordion`]},{name:`ChevronLeft`,category:`navigation`,icon:vt,keywords:[`back`,`collapse`,`accordion`]},{name:`ChevronUp`,category:`navigation`,icon:$e,keywords:[`up`,`collapse`,`menu`]},{name:`ChevronDown`,category:`navigation`,icon:fe,keywords:[`down`,`dropdown`,`expand`]},{name:`ExternalLink`,category:`navigation`,icon:et,keywords:[`open`,`new tab`,`url`,`link`]},{name:`Move`,category:`navigation`,icon:Xa,keywords:[`drag`,`pan`,`reorder`,`arrows`]},{name:`CornerDownRight`,category:`navigation`,icon:gn,keywords:[`indent`,`arrow`,`return`]},{name:`MoreHorizontal`,category:`navigation`,icon:pe,keywords:[`menu`,`options`,`dots`,`more`]},{name:`MoreVertical`,category:`navigation`,icon:Ae,keywords:[`menu`,`options`,`kebab`,`more`]},{name:`Search`,category:`actions`,icon:lt,keywords:[`find`,`lookup`,`filter`,`explore`]},{name:`Plus`,category:`actions`,icon:na,keywords:[`add`,`create`,`new`,`insert`]},{name:`X`,category:`actions`,icon:Ln,keywords:[`close`,`delete`,`cancel`,`clear`,`dismiss`]},{name:`Check`,category:`actions`,icon:ke,keywords:[`confirm`,`ok`,`accept`,`done`,`yes`]},{name:`CheckCheck`,category:`actions`,icon:qe,keywords:[`read`,`double check`,`verified`]},{name:`Edit`,category:`actions`,icon:rr,keywords:[`pencil`,`modify`,`rename`,`draft`]},{name:`Trash2`,category:`actions`,icon:Oe,keywords:[`delete`,`remove`,`trash`,`bin`]},{name:`Copy`,category:`actions`,icon:Dn,keywords:[`duplicate`,`clone`,`clipboard`]},{name:`Save`,category:`actions`,icon:y,keywords:[`disk`,`store`,`floppy`,`persist`]},{name:`Download`,category:`actions`,icon:g,keywords:[`export`,`get`,`fetch`,`save`]},{name:`Upload`,category:`actions`,icon:ae,keywords:[`import`,`send`,`file`]},{name:`UploadCloud`,category:`actions`,icon:Qn,keywords:[`cloud`,`backup`,`sync`]},{name:`Share2`,category:`actions`,icon:gt,keywords:[`share`,`social`,`link`,`collaborate`]},{name:`Send`,category:`actions`,icon:rt,keywords:[`message`,`dispatch`,`submit`,`publish`]},{name:`Undo2`,category:`actions`,icon:E,keywords:[`revert`,`back`,`step back`]},{name:`Redo2`,category:`actions`,icon:Ot,keywords:[`forward`,`reapply`]},{name:`Filter`,category:`actions`,icon:Oi,keywords:[`funnel`,`sort`,`refine`]},{name:`ZoomIn`,category:`actions`,icon:yi,keywords:[`magnify`,`scale up`]},{name:`ZoomOut`,category:`actions`,icon:oa,keywords:[`shrink`,`scale down`]},{name:`Eye`,category:`actions`,icon:l,keywords:[`view`,`show`,`preview`,`visible`]},{name:`EyeOff`,category:`actions`,icon:qr,keywords:[`hide`,`hidden`,`invisible`]},{name:`Lock`,category:`actions`,icon:Ri,keywords:[`secure`,`protected`,`private`,`password`]},{name:`Unlock`,category:`actions`,icon:_i,keywords:[`public`,`open`,`accessible`]},{name:`Key`,category:`actions`,icon:Xr,keywords:[`auth`,`access`,`token`,`secret`]},{name:`Power`,category:`actions`,icon:Bn,keywords:[`on`,`off`,`restart`,`shutdown`]},{name:`LogIn`,category:`actions`,icon:lr,keywords:[`signin`,`enter`,`join`]},{name:`LogOut`,category:`actions`,icon:Sr,keywords:[`signout`,`exit`,`leave`]},{name:`Wand2`,category:`actions`,icon:_r,keywords:[`magic`,`ai`,`generate`,`auto`]},{name:`Palette`,category:`actions`,icon:Jr,keywords:[`colors`,`theme`,`design`]},{name:`Crop`,category:`actions`,icon:Hi,keywords:[`trim`,`resize`,`frame`]},{name:`Home`,category:`interface`,icon:Me,keywords:[`main`,`dashboard`,`house`,`landing`]},{name:`Menu`,category:`interface`,icon:hr,keywords:[`hamburger`,`nav`,`sidebar`,`drawer`]},{name:`Grid`,category:`interface`,icon:kn,keywords:[`matrix`,`tiles`,`cards`,`gallery`]},{name:`List`,category:`interface`,icon:In,keywords:[`rows`,`items`,`menu`,`table`]},{name:`ListOrdered`,category:`interface`,icon:Ga,keywords:[`numbers`,`steps`,`ranked`]},{name:`ListTodo`,category:`interface`,icon:Ta,keywords:[`tasks`,`checklist`,`todo`]},{name:`Layers`,category:`interface`,icon:ie,keywords:[`stack`,`depth`,`z-index`,`canvas`]},{name:`Settings`,category:`interface`,icon:p,keywords:[`gear`,`cog`,`preferences`,`config`]},{name:`Layout`,category:`interface`,icon:pt,keywords:[`template`,`structure`,`wireframe`]},{name:`Sidebar`,category:`interface`,icon:u,keywords:[`dock`,`drawer`,`panel`,`aside`]},{name:`PanelLeft`,category:`interface`,icon:u,keywords:[`dock`,`navigation`,`panel`]},{name:`PanelTop`,category:`interface`,icon:ti,keywords:[`header`,`topbar`,`navbar`]},{name:`Maximize2`,category:`interface`,icon:Ur,keywords:[`fullscreen`,`expand`]},{name:`Minimize2`,category:`interface`,icon:Ui,keywords:[`shrink`,`exit fullscreen`]},{name:`Columns`,category:`interface`,icon:bi,keywords:[`grid`,`split`,`vertical`]},{name:`Rows`,category:`interface`,icon:sn,keywords:[`horizontal`,`stack`,`sections`]},{name:`Split`,category:`interface`,icon:ur,keywords:[`divide`,`bifurcate`,`layout`]},{name:`Table`,category:`interface`,icon:gr,keywords:[`data`,`spreadsheet`,`grid`]},{name:`User`,category:`users`,icon:Na,keywords:[`person`,`profile`,`account`,`avatar`]},{name:`Users`,category:`users`,icon:Wn,keywords:[`team`,`group`,`community`,`members`]},{name:`UserPlus`,category:`users`,icon:b,keywords:[`invite`,`add member`,`signup`]},{name:`UserCheck`,category:`users`,icon:Ht,keywords:[`verified`,`authorized`,`member`]},{name:`UserMinus`,category:`users`,icon:Da,keywords:[`remove`,`kick`,`delete user`]},{name:`UserX`,category:`users`,icon:Ft,keywords:[`block`,`ban`,`remove`]},{name:`ThumbsUp`,category:`users`,icon:Yt,keywords:[`like`,`agree`,`approve`,`upvote`]},{name:`ThumbsDown`,category:`users`,icon:cn,keywords:[`dislike`,`reject`,`downvote`]},{name:`Bookmark`,category:`users`,icon:ua,keywords:[`save`,`favorite`,`ribbon`]},{name:`Award`,category:`users`,icon:Jn,keywords:[`badge`,`achievement`,`prize`]},{name:`Trophy`,category:`users`,icon:Gr,keywords:[`winner`,`leaderboard`,`success`]},{name:`Crown`,category:`users`,icon:He,keywords:[`vip`,`premium`,`king`,`owner`,`pro`]},{name:`Sparkles`,category:`users`,icon:vi,keywords:[`ai`,`magic`,`new`,`special`,`featured`]},{name:`AtSign`,category:`users`,icon:La,keywords:[`mention`,`handle`,`username`,`email`]},{name:`Hash`,category:`users`,icon:be,keywords:[`tag`,`channel`,`hashtag`,`topic`]},{name:`Bell`,category:`alerts`,icon:li,keywords:[`notification`,`alert`,`reminder`]},{name:`BellRing`,category:`alerts`,icon:_a,keywords:[`ringing`,`unread`,`alert`]},{name:`BellOff`,category:`alerts`,icon:cr,keywords:[`mute`,`silent`,`dnd`]},{name:`Mail`,category:`alerts`,icon:ia,keywords:[`email`,`letter`,`message`,`contact`]},{name:`MailOpen`,category:`alerts`,icon:nr,keywords:[`read email`,`envelope`]},{name:`Inbox`,category:`alerts`,icon:xt,keywords:[`received`,`tray`,`messages`]},{name:`Phone`,category:`alerts`,icon:Pr,keywords:[`call`,`contact`,`telephone`]},{name:`PhoneCall`,category:`alerts`,icon:Ua,keywords:[`active call`,`dial`]},{name:`PhoneOff`,category:`alerts`,icon:Pn,keywords:[`hangup`,`end call`]},{name:`MessageSquare`,category:`alerts`,icon:On,keywords:[`chat`,`comment`,`dialogue`,`speech`]},{name:`MessageCircle`,category:`alerts`,icon:i,keywords:[`bubble`,`chat`,`discussion`]},{name:`AlertCircle`,category:`alerts`,icon:Kr,keywords:[`warning`,`error`,`danger`,`notice`]},{name:`AlertTriangle`,category:`alerts`,icon:it,keywords:[`caution`,`warning`,`hazard`]},{name:`CheckCircle2`,category:`alerts`,icon:$r,keywords:[`success`,`valid`,`passed`]},{name:`XCircle`,category:`alerts`,icon:Pa,keywords:[`error`,`failed`,`invalid`]},{name:`Info`,category:`alerts`,icon:nt,keywords:[`help`,`tooltip`,`information`,`details`]},{name:`HelpCircle`,category:`alerts`,icon:x,keywords:[`faq`,`question`,`support`]},{name:`ShieldCheck`,category:`alerts`,icon:k,keywords:[`secure`,`protected`,`verified`]},{name:`ShieldAlert`,category:`alerts`,icon:O,keywords:[`vulnerability`,`warning`,`security`]},{name:`ShoppingCart`,category:`commerce`,icon:za,keywords:[`cart`,`store`,`ecommerce`,`buy`]},{name:`ShoppingBag`,category:`commerce`,icon:Vt,keywords:[`bag`,`purchase`,`retail`]},{name:`CreditCard`,category:`commerce`,icon:Ie,keywords:[`payment`,`billing`,`visa`,`mastercard`,`card`]},{name:`DollarSign`,category:`commerce`,icon:rn,keywords:[`usd`,`money`,`price`,`cost`,`revenue`]},{name:`Wallet`,category:`commerce`,icon:Ni,keywords:[`funds`,`crypto`,`balance`,`purse`]},{name:`Coins`,category:`commerce`,icon:qi,keywords:[`tokens`,`credits`,`currency`,`cash`]},{name:`Receipt`,category:`commerce`,icon:la,keywords:[`invoice`,`bill`,`transaction`]},{name:`Tag`,category:`commerce`,icon:Ct,keywords:[`label`,`discount`,`category`,`offer`]},{name:`Package`,category:`commerce`,icon:tt,keywords:[`order`,`delivery`,`box`,`shipping`]},{name:`Percent`,category:`commerce`,icon:qn,keywords:[`discount`,`sale`,`percentage`]},{name:`BadgePercent`,category:`commerce`,icon:Wa,keywords:[`coupon`,`promo`,`deal`]},{name:`TrendingUp`,category:`commerce`,icon:_t,keywords:[`growth`,`analytics`,`profit`,`chart`]},{name:`TrendingDown`,category:`commerce`,icon:de,keywords:[`decline`,`loss`,`bear`]},{name:`QrCode`,category:`commerce`,icon:Vr,keywords:[`scan`,`barcode`,`qr`,`pay`]},{name:`Calendar`,category:`files`,icon:Ce,keywords:[`date`,`schedule`,`event`,`month`]},{name:`CalendarDays`,category:`files`,icon:Xt,keywords:[`agenda`,`planner`,`days`]},{name:`Pin`,category:`files`,icon:br,keywords:[`stick`,`anchor`,`favorite`]},{name:`History`,category:`files`,icon:xe,keywords:[`recent`,`log`,`timeline`,`rewind`]},{name:`Paperclip`,category:`files`,icon:ne,keywords:[`attachment`,`link`,`append`]},{name:`Archive`,category:`files`,icon:re,keywords:[`store`,`backup`,`vault`]},{name:`Clipboard`,category:`files`,icon:Mn,keywords:[`copy`,`notes`,`paste`]},{name:`ClipboardList`,category:`files`,icon:xa,keywords:[`audit`,`survey`,`checklist`]},{name:`ClipboardCheck`,category:`files`,icon:Va,keywords:[`completed`,`approved`,`tested`]},{name:`Briefcase`,category:`files`,icon:hn,keywords:[`work`,`portfolio`,`job`,`business`]},{name:`Folder`,category:`files`,icon:si,keywords:[`directory`,`files`,`folder`]},{name:`FolderOpen`,category:`files`,icon:or,keywords:[`browse`,`explorer`]},{name:`FolderPlus`,category:`files`,icon:ha,keywords:[`new folder`,`create directory`]},{name:`File`,category:`files`,icon:Ha,keywords:[`document`,`page`,`blank`]},{name:`FileText`,category:`files`,icon:Kn,keywords:[`article`,`content`,`doc`,`text`]},{name:`FileCode`,category:`files`,icon:S,keywords:[`source code`,`script`,`ts`,`js`]},{name:`Smartphone`,category:`tech`,icon:Ar,keywords:[`mobile`,`iphone`,`android`,`phone`,`device`]},{name:`Tablet`,category:`tech`,icon:t,keywords:[`ipad`,`tablet`,`screen`]},{name:`Monitor`,category:`tech`,icon:dn,keywords:[`desktop`,`display`,`screen`]},{name:`Laptop`,category:`tech`,icon:ht,keywords:[`macbook`,`pc`,`computer`]},{name:`Cpu`,category:`tech`,icon:Sn,keywords:[`chip`,`processor`,`hardware`,`compute`]},{name:`Database`,category:`tech`,icon:un,keywords:[`sql`,`storage`,`data`,`postgres`]},{name:`Server`,category:`tech`,icon:Zr,keywords:[`backend`,`hosting`,`cloud`,`rack`]},{name:`HardDrive`,category:`tech`,icon:We,keywords:[`disk`,`storage`,`ssd`]},{name:`Wifi`,category:`tech`,icon:ai,keywords:[`wireless`,`internet`,`network`,`signal`]},{name:`WifiOff`,category:`tech`,icon:pa,keywords:[`offline`,`disconnected`,`no internet`]},{name:`Bluetooth`,category:`tech`,icon:Vn,keywords:[`wireless`,`pairing`,`ble`]},{name:`Battery`,category:`tech`,icon:xr,keywords:[`power`,`charge`,`level`]},{name:`BatteryCharging`,category:`tech`,icon:Or,keywords:[`charging`,`plugged in`]},{name:`Terminal`,category:`tech`,icon:En,keywords:[`console`,`cli`,`bash`,`command line`]},{name:`Code2`,category:`tech`,icon:Di,keywords:[`develop`,`brackets`,`syntax`,`programming`]},{name:`Bug`,category:`tech`,icon:Fe,keywords:[`defect`,`issue`,`debug`,`error`]},{name:`Globe`,category:`tech`,icon:a,keywords:[`web`,`internet`,`world`,`domain`,`i18n`]},{name:`Fingerprint`,category:`tech`,icon:Er,keywords:[`biometrics`,`touchid`,`security`]},{name:`Scan`,category:`tech`,icon:Ne,keywords:[`faceid`,`sensor`,`scanner`]},{name:`Bot`,category:`tech`,icon:mr,keywords:[`robot`,`ai`,`agent`,`automation`]},{name:`Cloud`,category:`tech`,icon:ea,keywords:[`aws`,`gcp`,`serverless`,`hosting`]},{name:`Camera`,category:`media`,icon:nn,keywords:[`photo`,`picture`,`snapshot`,`lens`]},{name:`Video`,category:`media`,icon:ba,keywords:[`cam`,`film`,`record`,`movie`]},{name:`Mic`,category:`media`,icon:Le,keywords:[`microphone`,`audio`,`voice`,`record`]},{name:`MicOff`,category:`media`,icon:Cn,keywords:[`muted`,`silence`]},{name:`Volume2`,category:`media`,icon:wr,keywords:[`sound`,`audio`,`speaker`,`loud`]},{name:`VolumeX`,category:`media`,icon:jr,keywords:[`mute`,`no sound`]},{name:`Play`,category:`media`,icon:ci,keywords:[`start`,`resume`,`media`,`player`]},{name:`Pause`,category:`media`,icon:ce,keywords:[`stop`,`freeze`,`hold`]},{name:`FastForward`,category:`media`,icon:se,keywords:[`speed`,`skip`,`forward`]},{name:`Rewind`,category:`media`,icon:ze,keywords:[`back`,`reverse`,`seek`]},{name:`Music`,category:`media`,icon:Mt,keywords:[`audio`,`song`,`tune`,`sound`]},{name:`Image`,category:`media`,icon:he,keywords:[`picture`,`graphic`,`thumbnail`,`photo`]},{name:`Headphones`,category:`media`,icon:Ee,keywords:[`listen`,`earphones`,`headset`]},{name:`Cast`,category:`media`,icon:Ja,keywords:[`chromecast`,`stream`,`broadcast`,`airplay`]}],ll=[{id:`all`,label:`All`},{id:`loading`,label:`Loading & Spinners`},{id:`shapes`,label:`Shapes & Vectors`},{id:`controls`,label:`Controls & Inputs`},{id:`navigation`,label:`Navigation`},{id:`actions`,label:`Actions`},{id:`interface`,label:`Interface`},{id:`users`,label:`Users & Profiles`},{id:`alerts`,label:`Alerts & Messages`},{id:`commerce`,label:`Commerce`},{id:`files`,label:`Files & Storage`},{id:`tech`,label:`Tech & Devices`},{id:`media`,label:`Media & Audio`}],ul=N.memo(function(){let[e,t]=(0,N.useState)(``),[n,r]=(0,N.useState)(`all`),[i,a]=(0,N.useState)(!1),o=(0,N.useMemo)(()=>cl.filter(t=>{let r=n===`all`||t.category===n,i=e.trim().toLowerCase();if(!i)return r;let a=t.name.toLowerCase().includes(i),o=t.keywords?t.keywords.some(e=>e.toLowerCase().includes(i)):!1;return r&&(a||o)}),[e,n]),s=(0,N.useCallback)(()=>{let e=I.getState(),t=e.addElement({type:`button`,name:`Primary Button`,width:160,height:44,styles:{backgroundColor:`#7d2ae8`,textColor:`#ffffff`,fontSize:14,fontWeight:`600`,borderRadius:12,borderWidth:0,shadow:`sm`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,paddingLeft:20,paddingRight:20},content:{label:`Button`}});t?.id&&e.selectElement(t.id),oo.getState().addToast(`Added Button to page`,`success`)},[]),c=(0,N.useCallback)(()=>{let e=I.getState(),t=e.addElement({type:`switch`,name:`Toggle Switch`,width:90,height:40,styles:{backgroundColor:`transparent`,textColor:`#1d1d1f`,borderRadius:12,borderWidth:0,borderColor:`transparent`,shadow:`subtle`},content:{enabled:!0}});t?.id&&e.selectElement(t.id),oo.getState().addToast(`Added Toggle Switch to page`,`success`)},[]),l=(0,N.useCallback)(()=>{let e=I.getState(),t=e.addElement({type:`searchBar`,name:`Search Bar`,width:300,height:44,styles:{backgroundColor:`#ffffff`,textColor:`#1d1d1f`,fontSize:14,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`,shadow:`subtle`},content:{}});t?.id&&e.selectElement(t.id),oo.getState().addToast(`Added Search Bar to page`,`success`)},[]),u=(0,N.useCallback)(e=>{let t=I.getState(),n=t.addElement({type:`icon`,name:`${e} Icon`,width:48,height:48,styles:{textColor:`#1d1d1f`,backgroundColor:`transparent`},content:{iconName:e,icon:e}});n?.id&&t.selectElement(n.id),oo.getState().addToast(`Added ${e} icon to page`,`success`)},[]);return(0,F.jsxDEV)(`div`,{className:`flex flex-col h-full select-none bg-[#f2f2f6] dark:bg-[#161618] text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[(0,F.jsxDEV)(`div`,{className:`p-3 bg-white dark:bg-[#1c1c1e] border-b border-[#e5e5ea] dark:border-[#2c2c2e] flex flex-col gap-2.5 shadow-2xs`,children:[(0,F.jsxDEV)(`div`,{className:j(`relative flex items-center bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-xl border transition-all duration-150`,i?`border-[#7d2ae8] bg-white dark:bg-[#1c1c1e] ring-2 ring-[#7d2ae8]/20`:`border-[#e5e5ea] dark:border-[#38383a]`),children:[(0,F.jsxDEV)(lt,{className:`w-4 h-4 text-[#86868b] dark:text-[#636366] absolute left-3 pointer-events-none`},void 0,!1,{fileName:sl,lineNumber:629,columnNumber:11},this),(0,F.jsxDEV)(`input`,{type:`text`,value:e,onChange:e=>t(e.target.value),onFocus:()=>a(!0),onBlur:()=>a(!1),placeholder:`Search icons & shapes (loading, user, star, check)...`,className:`w-full h-9 pl-9 pr-8 bg-transparent text-[12.5px] text-[#1d1d1f] dark:text-[#f5f5f7] placeholder:text-[#86868b] dark:placeholder:text-[#636366] focus:outline-none`},void 0,!1,{fileName:sl,lineNumber:630,columnNumber:11},this),e&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>t(``),className:`absolute right-2.5 p-0.5 text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] rounded cursor-pointer`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:sl,lineNumber:645,columnNumber:15},this)},void 0,!1,{fileName:sl,lineNumber:640,columnNumber:13},this)]},void 0,!0,{fileName:sl,lineNumber:621,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 overflow-x-auto no-scrollbar pb-1 -mb-1`,children:ll.map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>r(e.id),className:j(`px-2.5 py-1 rounded-full text-[11px] font-medium whitespace-nowrap transition-all duration-150 cursor-pointer shrink-0`,n===e.id?`bg-[#7d2ae8] text-white font-semibold shadow-apple-xs`:`bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#e5e5ea] dark:hover:bg-[#38383a]`),children:e.label},e.id,!1,{fileName:sl,lineNumber:653,columnNumber:13},this))},void 0,!1,{fileName:sl,lineNumber:651,columnNumber:9},this)]},void 0,!0,{fileName:sl,lineNumber:620,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-3 no-scrollbar space-y-4`,children:[n===`all`&&!e&&(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[11px] font-bold text-[#86868b] dark:text-[#8e8e93] uppercase tracking-wider mb-2 px-1`,children:`UI Controls`},void 0,!1,{fileName:sl,lineNumber:675,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-3 gap-2`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:s,className:`p-3 rounded-2xl bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#2c2c2e] hover:border-[#7d2ae8] dark:hover:border-[#9d52ff] hover:shadow-apple-sm transition-all flex flex-col items-center justify-center gap-1.5 cursor-pointer group active:scale-95`,title:`Add Button`,children:[(0,F.jsxDEV)(`div`,{className:`w-full py-1.5 px-2 bg-[#7d2ae8] text-white text-[10px] font-bold rounded-lg text-center shadow-2xs group-hover:scale-105 transition-transform`,children:`Button`},void 0,!1,{fileName:sl,lineNumber:686,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] font-medium text-[#6e6e73] dark:text-[#8e8e93]`,children:`Button`},void 0,!1,{fileName:sl,lineNumber:689,columnNumber:17},this)]},void 0,!0,{fileName:sl,lineNumber:680,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:c,className:`p-3 rounded-2xl bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#2c2c2e] hover:border-[#7d2ae8] dark:hover:border-[#9d52ff] hover:shadow-apple-sm transition-all flex flex-col items-center justify-center gap-1.5 cursor-pointer group active:scale-95`,title:`Add Toggle Switch`,children:[(0,F.jsxDEV)(`div`,{className:`w-10 h-5.5 rounded-full bg-[#34c759] p-0.5 flex items-center justify-end shadow-2xs group-hover:scale-105 transition-transform`,children:(0,F.jsxDEV)(`div`,{className:`w-4.5 h-4.5 rounded-full bg-white shadow-sm`},void 0,!1,{fileName:sl,lineNumber:700,columnNumber:19},this)},void 0,!1,{fileName:sl,lineNumber:699,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] font-medium text-[#6e6e73] dark:text-[#8e8e93]`,children:`Toggle`},void 0,!1,{fileName:sl,lineNumber:702,columnNumber:17},this)]},void 0,!0,{fileName:sl,lineNumber:693,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:l,className:`p-3 rounded-2xl bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#2c2c2e] hover:border-[#7d2ae8] dark:hover:border-[#9d52ff] hover:shadow-apple-sm transition-all flex flex-col items-center justify-center gap-1.5 cursor-pointer group active:scale-95`,title:`Add Search Bar`,children:[(0,F.jsxDEV)(`div`,{className:`w-full h-5.5 bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] flex items-center px-1.5 gap-1 group-hover:scale-105 transition-transform`,children:[(0,F.jsxDEV)(lt,{className:`w-3 h-3 text-[#86868b]`},void 0,!1,{fileName:sl,lineNumber:713,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`w-6 h-1 bg-[#86868b]/30 rounded-full`},void 0,!1,{fileName:sl,lineNumber:714,columnNumber:19},this)]},void 0,!0,{fileName:sl,lineNumber:712,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] font-medium text-[#6e6e73] dark:text-[#8e8e93]`,children:`Search`},void 0,!1,{fileName:sl,lineNumber:716,columnNumber:17},this)]},void 0,!0,{fileName:sl,lineNumber:706,columnNumber:15},this)]},void 0,!0,{fileName:sl,lineNumber:678,columnNumber:13},this)]},void 0,!0,{fileName:sl,lineNumber:674,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between text-[11px] font-bold text-[#86868b] dark:text-[#8e8e93] uppercase tracking-wider mb-2 px-1`,children:[(0,F.jsxDEV)(`span`,{children:`Icons & Vectors`},void 0,!1,{fileName:sl,lineNumber:725,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] font-normal text-[#86868b] dark:text-[#636366]`,children:[`(`,o.length,` items)`]},void 0,!0,{fileName:sl,lineNumber:726,columnNumber:13},this)]},void 0,!0,{fileName:sl,lineNumber:724,columnNumber:11},this),o.length===0?(0,F.jsxDEV)(`div`,{className:`flex flex-col items-center justify-center h-48 text-center p-4`,children:[(0,F.jsxDEV)(lt,{className:`w-8 h-8 text-[#86868b] dark:text-[#636366] mb-2 stroke-[1.5]`},void 0,!1,{fileName:sl,lineNumber:731,columnNumber:15},this),(0,F.jsxDEV)(`p`,{className:`text-[13px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`No matching icons or shapes`},void 0,!1,{fileName:sl,lineNumber:732,columnNumber:15},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] dark:text-[#636366] mt-0.5`,children:`Try searching for spinner, loader, square, user, or cart`},void 0,!1,{fileName:sl,lineNumber:733,columnNumber:15},this)]},void 0,!0,{fileName:sl,lineNumber:730,columnNumber:13},this):(0,F.jsxDEV)(`div`,{className:`grid grid-cols-4 gap-2`,children:o.map(e=>{let t=e.icon;return(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>u(e.name),title:`Add ${e.name}`,className:`group relative flex flex-col items-center justify-center p-2.5 rounded-xl bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#2c2c2e] hover:border-[#7d2ae8] dark:hover:border-[#9d52ff] hover:shadow-apple-sm transition-all duration-150 cursor-pointer active:scale-95 text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[(0,F.jsxDEV)(`div`,{className:`w-6 h-6 flex items-center justify-center group-hover:scale-115 transition-transform duration-150 text-[#1d1d1f] dark:text-[#f5f5f7] group-hover:text-[#7d2ae8] dark:group-hover:text-[#9d52ff]`,children:(0,F.jsxDEV)(t,{className:j(`w-5 h-5 stroke-[1.8]`,e.category===`loading`&&(e.name===`Loader2`||e.name===`CircleDotDashed`)&&`animate-spin`)},void 0,!1,{fileName:sl,lineNumber:748,columnNumber:23},this)},void 0,!1,{fileName:sl,lineNumber:747,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#86868b] dark:text-[#636366] group-hover:text-[#1d1d1f] dark:group-hover:text-[#f5f5f7] truncate w-full text-center mt-1.5 transition-colors`,children:e.name},void 0,!1,{fileName:sl,lineNumber:750,columnNumber:21},this)]},e.name,!0,{fileName:sl,lineNumber:740,columnNumber:19},this)})},void 0,!1,{fileName:sl,lineNumber:736,columnNumber:13},this)]},void 0,!0,{fileName:sl,lineNumber:723,columnNumber:9},this)]},void 0,!0,{fileName:sl,lineNumber:671,columnNumber:7},this)]},void 0,!0,{fileName:sl,lineNumber:618,columnNumber:5},this)}),dl=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/GraphsPanel.tsx`,fl=[{id:`graph_line_growth`,type:`lineChart`,category:`lines`,name:`Growth Line Chart`,description:`Smooth gradient area and line graph with trends & monthly data.`,defaultWidth:460,defaultHeight:250,styles:{backgroundColor:`#ffffff`,textColor:`#7d2ae8`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{title:`Monthly Revenue`,subtitle:`In USD ($)`,format:`currency`,showGrid:!0,showAxes:!0,showLegend:!0,data:[{label:`Jan`,value:14e3},{label:`Feb`,value:21e3},{label:`Mar`,value:33500},{label:`Apr`,value:48e3},{label:`May`,value:69e3},{label:`Jun`,value:96e3}]},preview:(0,F.jsxDEV)(`div`,{className:`w-full h-16 flex items-end justify-between px-2 pb-1 gap-1`,children:[25,40,52,68,82,100].map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col items-center gap-1`,children:(0,F.jsxDEV)(`div`,{style:{height:`${e}%`},className:`w-full rounded-t-sm bg-gradient-to-t from-[#7d2ae8]/30 to-[#7d2ae8] transition-all group-hover:from-[#7d2ae8]/50`},void 0,!1,{fileName:dl,lineNumber:67,columnNumber:13},void 0)},t,!1,{fileName:dl,lineNumber:66,columnNumber:11},void 0))},void 0,!1,{fileName:dl,lineNumber:64,columnNumber:7},void 0)},{id:`graph_multi_line`,type:`multiLineChart`,category:`lines`,name:`Multi-Line Comparison`,description:`Compare 2 distinct metric trends (e.g. 2025 vs 2026).`,defaultWidth:480,defaultHeight:260,styles:{backgroundColor:`#ffffff`,textColor:`#7d2ae8`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{title:`Annual Performance Comparison`,subtitle:`2025 vs 2026`,format:`compact`,secondaryColor:`#0071e3`,showGrid:!0,showAxes:!0,showLegend:!0,data:[{label:`Q1`,value:42e3,secondary:28e3},{label:`Q2`,value:68e3,secondary:45e3},{label:`Q3`,value:92e3,secondary:64e3},{label:`Q4`,value:145e3,secondary:98e3}]},preview:(0,F.jsxDEV)(`div`,{className:`w-full h-16 flex items-center justify-center px-2`,children:(0,F.jsxDEV)(`svg`,{className:`w-full h-10`,viewBox:`0 0 100 40`,fill:`none`,children:[(0,F.jsxDEV)(`path`,{d:`M5 32 Q 25 15, 50 22 T 95 8`,stroke:`#7d2ae8`,strokeWidth:`2.5`,strokeLinecap:`round`},void 0,!1,{fileName:dl,lineNumber:112,columnNumber:11},void 0),(0,F.jsxDEV)(`path`,{d:`M5 38 Q 25 28, 50 30 T 95 18`,stroke:`#0071e3`,strokeWidth:`2`,strokeDasharray:`3 3`,strokeLinecap:`round`},void 0,!1,{fileName:dl,lineNumber:113,columnNumber:11},void 0)]},void 0,!0,{fileName:dl,lineNumber:111,columnNumber:9},void 0)},void 0,!1,{fileName:dl,lineNumber:110,columnNumber:7},void 0)},{id:`graph_bar_columns`,type:`barChart`,category:`bars`,name:`Vertical Bar Chart`,description:`Categorical column comparison across days or months.`,defaultWidth:460,defaultHeight:250,styles:{backgroundColor:`#ffffff`,textColor:`#34c759`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{title:`Weekly Active Users`,subtitle:`Daily Signups`,format:`number`,showGrid:!0,showAxes:!0,data:[{label:`Mon`,value:420},{label:`Tue`,value:680},{label:`Wed`,value:590},{label:`Thu`,value:890},{label:`Fri`,value:1120},{label:`Sat`,value:510},{label:`Sun`,value:460}]},preview:(0,F.jsxDEV)(`div`,{className:`w-full h-16 flex items-end justify-between px-3 pb-1 gap-2`,children:[35,60,50,80,100,45,40].map((e,t)=>(0,F.jsxDEV)(`div`,{style:{height:`${e}%`},className:`w-2.5 rounded-t-sm bg-[#34c759] transition-all`},t,!1,{fileName:dl,lineNumber:155,columnNumber:11},void 0))},void 0,!1,{fileName:dl,lineNumber:153,columnNumber:7},void 0)},{id:`graph_horizontal_bars`,type:`horizontalBarChart`,category:`bars`,name:`Horizontal Bar Rankings`,description:`Rankings & horizontal categorical distribution.`,defaultWidth:460,defaultHeight:250,styles:{backgroundColor:`#ffffff`,textColor:`#0071e3`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{title:`Top Traffic Channels`,subtitle:`Sessions`,format:`compact`,showGrid:!0,showAxes:!0,data:[{label:`Google Search`,value:54e3},{label:`Direct URL`,value:38e3},{label:`Product Hunt`,value:24e3},{label:`Twitter / X`,value:18500},{label:`GitHub`,value:12e3}]},preview:(0,F.jsxDEV)(`div`,{className:`w-full h-16 flex flex-col justify-between py-1 px-3`,children:[100,75,50,35].map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:(0,F.jsxDEV)(`div`,{style:{width:`${e}%`},className:`h-2 rounded bg-[#0071e3]`},void 0,!1,{fileName:dl,lineNumber:200,columnNumber:13},void 0)},t,!1,{fileName:dl,lineNumber:199,columnNumber:11},void 0))},void 0,!1,{fileName:dl,lineNumber:197,columnNumber:7},void 0)},{id:`graph_donut_share`,type:`donutChart`,category:`pies`,name:`Traffic Share Donut`,description:`Segmented breakdown distribution donut with center total.`,defaultWidth:360,defaultHeight:260,styles:{backgroundColor:`#ffffff`,textColor:`#1d1d1f`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{title:`Acquisition Channels`,subtitle:`Distribution`,format:`percentage`,showLegend:!0,data:[{label:`Organic Search`,value:45,color:`#7d2ae8`},{label:`Direct Traffic`,value:30,color:`#0071e3`},{label:`Referral Link`,value:15,color:`#34c759`},{label:`Social Media`,value:10,color:`#ff9500`}]},preview:(0,F.jsxDEV)(`div`,{className:`w-full h-16 flex items-center justify-center`,children:(0,F.jsxDEV)(`div`,{className:`w-12 h-12 rounded-full border-[5px] border-[#7d2ae8] border-r-[#0071e3] border-b-[#34c759] flex items-center justify-center`,children:(0,F.jsxDEV)(`div`,{className:`w-4 h-4 rounded-full bg-white dark:bg-[#1c1c1e]`},void 0,!1,{fileName:dl,lineNumber:239,columnNumber:11},void 0)},void 0,!1,{fileName:dl,lineNumber:238,columnNumber:9},void 0)},void 0,!1,{fileName:dl,lineNumber:237,columnNumber:7},void 0)}],pl=[{id:`all`,label:`All Graphs`},{id:`lines`,label:`Lines & Trends`},{id:`bars`,label:`Bars & Rankings`},{id:`pies`,label:`Donut & Share`}],ml=N.memo(function(){let[e,t]=(0,N.useState)(``),[n,r]=(0,N.useState)(`all`),[i,a]=(0,N.useState)(!1),o=(0,N.useMemo)(()=>fl.filter(t=>{let r=n===`all`||t.category===n,i=e.toLowerCase().trim(),a=!i||t.name.toLowerCase().includes(i)||t.description.toLowerCase().includes(i);return r&&a}),[e,n]),s=(0,N.useCallback)(e=>{let t=I.getState(),n=t.addElement({type:e.type,name:e.name,width:e.defaultWidth,height:e.defaultHeight,styles:{...e.styles},content:{...e.content}});n?.id&&t.selectElement(n.id),oo.getState().addToast(`Added ${e.name} to page`,`success`)},[]);return(0,F.jsxDEV)(`div`,{className:`flex flex-col h-full select-none bg-[#f2f2f6] dark:bg-[#161618] text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[(0,F.jsxDEV)(`div`,{className:`p-3 bg-white dark:bg-[#1c1c1e] border-b border-[#e5e5ea] dark:border-[#2c2c2e] flex flex-col gap-2.5 shadow-2xs`,children:[(0,F.jsxDEV)(`div`,{className:j(`relative flex items-center bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-xl border transition-all duration-150`,i?`border-[#7d2ae8] bg-white dark:bg-[#1c1c1e] ring-2 ring-[#7d2ae8]/20`:`border-[#e5e5ea] dark:border-[#38383a]`),children:[(0,F.jsxDEV)(lt,{className:`w-4 h-4 text-[#86868b] dark:text-[#636366] absolute left-3 pointer-events-none`},void 0,!1,{fileName:dl,lineNumber:295,columnNumber:11},this),(0,F.jsxDEV)(`input`,{type:`text`,value:e,onChange:e=>t(e.target.value),onFocus:()=>a(!0),onBlur:()=>a(!1),placeholder:`Search graphs & charts...`,className:`w-full h-9 pl-9 pr-8 bg-transparent text-[12.5px] text-[#1d1d1f] dark:text-[#f5f5f7] placeholder:text-[#86868b] dark:placeholder:text-[#636366] focus:outline-none`},void 0,!1,{fileName:dl,lineNumber:296,columnNumber:11},this),e&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>t(``),className:`absolute right-2.5 p-0.5 text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] rounded cursor-pointer`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:dl,lineNumber:311,columnNumber:15},this)},void 0,!1,{fileName:dl,lineNumber:306,columnNumber:13},this)]},void 0,!0,{fileName:dl,lineNumber:287,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 overflow-x-auto no-scrollbar pb-1 -mb-1`,children:pl.map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>r(e.id),className:j(`px-2.5 py-1 rounded-full text-[11px] font-medium whitespace-nowrap transition-all duration-150 cursor-pointer shrink-0`,n===e.id?`bg-[#7d2ae8] text-white font-semibold shadow-apple-xs`:`bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#e5e5ea] dark:hover:bg-[#38383a]`),children:e.label},e.id,!1,{fileName:dl,lineNumber:319,columnNumber:13},this))},void 0,!1,{fileName:dl,lineNumber:317,columnNumber:9},this)]},void 0,!0,{fileName:dl,lineNumber:286,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-3 no-scrollbar space-y-3`,children:o.length===0?(0,F.jsxDEV)(`div`,{className:`flex flex-col items-center justify-center h-48 text-center p-4`,children:[(0,F.jsxDEV)(d,{className:`w-8 h-8 text-[#86868b] dark:text-[#636366] mb-2 stroke-[1.5]`},void 0,!1,{fileName:dl,lineNumber:340,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[13px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`No graphs found`},void 0,!1,{fileName:dl,lineNumber:341,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] dark:text-[#636366] mt-0.5`,children:`Try searching for line, bar, gauge, or funnel`},void 0,!1,{fileName:dl,lineNumber:342,columnNumber:13},this)]},void 0,!0,{fileName:dl,lineNumber:339,columnNumber:11},this):o.map(e=>(0,F.jsxDEV)(`div`,{onClick:()=>s(e),className:`group relative bg-white dark:bg-[#1c1c1e] rounded-2xl border border-[#e5e5ea] dark:border-[#2c2c2e] hover:border-[#7d2ae8] dark:hover:border-[#9d52ff] shadow-apple-xs hover:shadow-apple-md transition-all p-3.5 cursor-pointer flex flex-col gap-2.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-full bg-[#f8f8fa] dark:bg-[#252528] rounded-xl border border-[#e5e5ea]/60 dark:border-[#38383a]/60 p-2 flex items-center justify-center overflow-hidden`,children:e.preview},void 0,!1,{fileName:dl,lineNumber:352,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h4`,{className:`text-[12.5px] font-bold text-[#1d1d1f] dark:text-white group-hover:text-[#7d2ae8] dark:group-hover:text-[#9d52ff] transition-colors`,children:e.name},void 0,!1,{fileName:dl,lineNumber:359,columnNumber:19},this),(0,F.jsxDEV)(`p`,{className:`text-[10.5px] text-[#86868b] dark:text-[#8e8e93] line-clamp-1`,children:e.description},void 0,!1,{fileName:dl,lineNumber:362,columnNumber:19},this)]},void 0,!0,{fileName:dl,lineNumber:358,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`w-6 h-6 rounded-lg bg-[#7d2ae8]/10 text-[#7d2ae8] dark:text-[#9d52ff] flex items-center justify-center group-hover:bg-[#7d2ae8] group-hover:text-white transition-all shrink-0`,children:(0,F.jsxDEV)(na,{className:`w-3.5 h-3.5 stroke-[2.5]`},void 0,!1,{fileName:dl,lineNumber:367,columnNumber:19},this)},void 0,!1,{fileName:dl,lineNumber:366,columnNumber:17},this)]},void 0,!0,{fileName:dl,lineNumber:357,columnNumber:15},this)]},e.id,!0,{fileName:dl,lineNumber:346,columnNumber:13},this))},void 0,!1,{fileName:dl,lineNumber:337,columnNumber:7},this)]},void 0,!0,{fileName:dl,lineNumber:284,columnNumber:5},this)}),V=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/ToolsPanel.tsx`,hl=[{id:`rectangle`,name:`Rectangle`,width:240,height:140,type:`container`,defaultStyles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{shapeType:`rectangle`},icon:(0,F.jsxDEV)(`svg`,{className:`w-5 h-5 text-[#1d1d1f] dark:text-white`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,F.jsxDEV)(`rect`,{x:`3`,y:`6`,width:`18`,height:`12`,rx:`2`,fill:`currentColor`,fillOpacity:`0.1`},void 0,!1,{fileName:V,lineNumber:20,columnNumber:9},void 0)},void 0,!1,{fileName:V,lineNumber:19,columnNumber:7},void 0)},{id:`square`,name:`Square`,width:140,height:140,type:`container`,defaultStyles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{shapeType:`square`},icon:(0,F.jsxDEV)(`svg`,{className:`w-5 h-5 text-[#1d1d1f] dark:text-white`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,F.jsxDEV)(`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,fill:`currentColor`,fillOpacity:`0.1`},void 0,!1,{fileName:V,lineNumber:34,columnNumber:9},void 0)},void 0,!1,{fileName:V,lineNumber:33,columnNumber:7},void 0)},{id:`circle`,name:`Circle`,width:140,height:140,type:`container`,defaultStyles:{backgroundColor:`#ffffff`,borderRadius:9999,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`},content:{shapeType:`circle`},icon:(0,F.jsxDEV)(`svg`,{className:`w-5 h-5 text-[#1d1d1f] dark:text-white`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,F.jsxDEV)(`circle`,{cx:`12`,cy:`12`,r:`9`,fill:`currentColor`,fillOpacity:`0.1`},void 0,!1,{fileName:V,lineNumber:48,columnNumber:9},void 0)},void 0,!1,{fileName:V,lineNumber:47,columnNumber:7},void 0)}];function gl(){let e=P(e=>e.toolMode),t=P(e=>e.setToolMode),n=P(e=>e.setActiveSidebarTab),{addElement:r,selectElement:i}=I(),{addToast:a}=oo(),[o,s]=(0,N.useState)(null),[c,l]=(0,N.useState)(!1),u=(e,n,r)=>{try{t(`select`);let i=I.getState();if(!i.activeProject)return;let o=i.addElement({type:e,name:n,width:r.width||240,height:r.height||160,styles:r.styles||{},content:r.content||{}});o?.id&&i.selectElement(o.id),a(`Added ${n} to page`,`success`)}catch(e){console.error(`Error inserting element:`,e)}};return(0,F.jsxDEV)(`div`,{className:`flex flex-col items-center gap-2 select-none relative`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{l(!1),t(`select`),n(null)},className:`w-8 h-8 rounded-full bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#38383a] shadow-apple-md flex items-center justify-center text-[#1d1d1f] dark:text-white hover:bg-[#f5f5f7] dark:hover:bg-[#2c2c2e] transition-all cursor-pointer`,title:`Close tools`,children:(0,F.jsxDEV)(Ln,{className:`w-4 h-4 text-[#1d1d1f] dark:text-white stroke-[2.5]`},void 0,!1,{fileName:V,lineNumber:99,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:89,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`w-[50px] bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#38383a] shadow-[0_12px_40px_rgba(0,0,0,0.14)] rounded-[28px] py-2 px-1 flex flex-col items-center gap-1.5 relative`,children:[(0,F.jsxDEV)(`div`,{className:`relative group flex items-center`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{l(!1),t(`select`),a(`Select Tool active`,`info`)},onMouseEnter:()=>s(`select`),onMouseLeave:()=>s(null),className:j(`w-10 h-10 rounded-[14px] flex items-center justify-center transition-all cursor-pointer`,e===`select`?`bg-[#f0e6ff] text-[#7d2ae8]`:`hover:bg-[#f5f5f7] dark:hover:bg-[#2c2c2e] text-[#5c24b8]`),"aria-label":`Select`,title:`Select`,children:(0,F.jsxDEV)(`svg`,{className:`w-5 h-5 text-[#6c28d9]`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,F.jsxDEV)(`path`,{d:`m3 3 7.07 16.97 2.51-7.39 7.39-2.51L3 3z`},void 0,!1,{fileName:V,lineNumber:133,columnNumber:15},this)},void 0,!1,{fileName:V,lineNumber:124,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:106,columnNumber:11},this),o===`select`&&!c&&(0,F.jsxDEV)(`div`,{className:`absolute left-[54px] z-50 bg-[#1c1c1e] text-white text-[11px] font-semibold px-2.5 py-1 rounded-[8px] shadow-lg whitespace-nowrap pointer-events-none animate-in fade-in-50 zoom-in-95 duration-100`,children:[`Select`,(0,F.jsxDEV)(`div`,{className:`absolute -left-1 top-1/2 -translate-y-1/2 w-2 h-2 bg-[#1c1c1e] rotate-45`},void 0,!1,{fileName:V,lineNumber:139,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:137,columnNumber:13},this)]},void 0,!0,{fileName:V,lineNumber:105,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`relative group flex items-center`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{l(!1),e===`draw`?(t(`select`),a(`Select Tool active`,`info`)):(t(`draw`),a(`Draw Tool active — Draw anywhere (Click pencil again or press Esc to exit)`,`info`))},onMouseEnter:()=>s(`draw`),onMouseLeave:()=>s(null),className:j(`w-10 h-10 rounded-[14px] flex items-center justify-center transition-all cursor-pointer`,e===`draw`?`bg-[#ffe5e5] ring-2 ring-[#ff3b30]/30`:`hover:bg-[#f5f5f7] dark:hover:bg-[#2c2c2e]`),"aria-label":e===`draw`?`Draw (Active - click to unequip)`:`Draw`,title:e===`draw`?`Draw (Active - click to unequip)`:`Draw`,children:(0,F.jsxDEV)(`svg`,{className:`w-5 h-5`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,F.jsxDEV)(`path`,{d:`M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z`,fill:`#ff3b30`},void 0,!1,{fileName:V,lineNumber:170,columnNumber:15},this),(0,F.jsxDEV)(`path`,{d:`M15 5l4 4`,stroke:`#ffffff`,strokeWidth:`1.5`,strokeLinecap:`round`},void 0,!1,{fileName:V,lineNumber:171,columnNumber:15},this),(0,F.jsxDEV)(`path`,{d:`M4 21c2-1 4-1 6-2s4 1 6 0`,stroke:`#ff3b30`,strokeWidth:`2`,strokeLinecap:`round`},void 0,!1,{fileName:V,lineNumber:172,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:169,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:146,columnNumber:11},this),o===`draw`&&!c&&(0,F.jsxDEV)(`div`,{className:`absolute left-[54px] z-50 bg-[#1c1c1e] text-white text-[11px] font-semibold px-2.5 py-1 rounded-[8px] shadow-lg whitespace-nowrap pointer-events-none animate-in fade-in-50 zoom-in-95 duration-100`,children:[e===`draw`?`Draw (Click to exit)`:`Draw`,(0,F.jsxDEV)(`div`,{className:`absolute -left-1 top-1/2 -translate-y-1/2 w-2 h-2 bg-[#1c1c1e] rotate-45`},void 0,!1,{fileName:V,lineNumber:178,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:176,columnNumber:13},this)]},void 0,!0,{fileName:V,lineNumber:145,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`relative group flex items-center`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{l(!1),e===`eraser`?(t(`select`),a(`Select Tool active`,`info`)):(t(`eraser`),a(`Eraser Tool active (Click eraser again or press Esc to exit)`,`info`))},onMouseEnter:()=>s(`eraser`),onMouseLeave:()=>s(null),className:j(`w-10 h-10 rounded-[14px] flex items-center justify-center transition-all cursor-pointer`,e===`eraser`?`bg-[#ffe8d6] ring-2 ring-[#ff9500]/30`:`hover:bg-[#f5f5f7] dark:hover:bg-[#2c2c2e]`),"aria-label":e===`eraser`?`Eraser (Active - click to unequip)`:`Eraser`,title:e===`eraser`?`Eraser (Active - click to unequip)`:`Eraser`,children:(0,F.jsxDEV)(`svg`,{className:`w-5 h-5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`#ff9500`,strokeWidth:`2.2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,F.jsxDEV)(`path`,{d:`m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21`},void 0,!1,{fileName:V,lineNumber:209,columnNumber:15},this),(0,F.jsxDEV)(`path`,{d:`M22 21H7`},void 0,!1,{fileName:V,lineNumber:210,columnNumber:15},this),(0,F.jsxDEV)(`path`,{d:`m5 11 9 9`},void 0,!1,{fileName:V,lineNumber:211,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:208,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:185,columnNumber:11},this),o===`eraser`&&!c&&(0,F.jsxDEV)(`div`,{className:`absolute left-[54px] z-50 bg-[#1c1c1e] text-white text-[11px] font-semibold px-2.5 py-1 rounded-[8px] shadow-lg whitespace-nowrap pointer-events-none animate-in fade-in-50 zoom-in-95 duration-100 flex items-center`,children:[e===`eraser`?`Eraser (Click to exit)`:`Eraser`,(0,F.jsxDEV)(`div`,{className:`absolute -left-1 top-1/2 -translate-y-1/2 w-2 h-2 bg-[#1c1c1e] rotate-45`},void 0,!1,{fileName:V,lineNumber:217,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:215,columnNumber:13},this)]},void 0,!0,{fileName:V,lineNumber:184,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`relative group flex items-center`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{l(!1),e===`pen`?(t(`select`),a(`Select Tool active`,`info`)):(t(`pen`),a(`Pen Tool active — Click to add points, drag handles. Enter to commit. Esc to cancel.`,`info`))},onMouseEnter:()=>s(`pen`),onMouseLeave:()=>s(null),className:j(`w-10 h-10 rounded-[14px] flex items-center justify-center transition-all cursor-pointer`,e===`pen`?`bg-[#f0e6ff] ring-2 ring-[#7d2ae8]/40`:`hover:bg-[#f5f5f7] dark:hover:bg-[#2c2c2e]`),"aria-label":e===`pen`?`Pen Tool (Active — click to exit)`:`Pen Tool [P]`,title:e===`pen`?`Pen Tool (Active — click to exit)`:`Pen Tool [P]`,children:(0,F.jsxDEV)(ka,{className:j(`w-5 h-5 transition-colors`,e===`pen`?`text-[#7d2ae8]`:`text-[#6c28d9]`)},void 0,!1,{fileName:V,lineNumber:247,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:224,columnNumber:11},this),o===`pen`&&!c&&(0,F.jsxDEV)(`div`,{className:`absolute left-[54px] z-50 bg-[#1c1c1e] text-white text-[11px] font-semibold px-2.5 py-1 rounded-[8px] shadow-lg whitespace-nowrap pointer-events-none animate-in fade-in-50 zoom-in-95 duration-100 flex items-center gap-1`,children:[e===`pen`?`Pen (Click to exit)`:`Vector Pen [P]`,(0,F.jsxDEV)(`div`,{className:`absolute -left-1 top-1/2 -translate-y-1/2 w-2 h-2 bg-[#1c1c1e] rotate-45`},void 0,!1,{fileName:V,lineNumber:252,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:250,columnNumber:13},this)]},void 0,!0,{fileName:V,lineNumber:223,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`relative group flex items-center`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>l(e=>!e),onMouseEnter:()=>s(`shapes`),onMouseLeave:()=>s(null),className:j(`w-10 h-10 rounded-[14px] flex items-center justify-center transition-all cursor-pointer`,c?`bg-[#f0e6ff] ring-2 ring-[#7d2ae8]/30`:`hover:bg-[#f5f5f7] dark:hover:bg-[#2c2c2e]`),"aria-label":`Shapes`,title:`Shapes`,children:(0,F.jsxDEV)(`svg`,{className:`w-5 h-5`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,F.jsxDEV)(`rect`,{x:`7`,y:`7`,width:`13`,height:`13`,rx:`3`,fill:`#1d1d1f`},void 0,!1,{fileName:V,lineNumber:275,columnNumber:15},this),(0,F.jsxDEV)(`circle`,{cx:`9`,cy:`9`,r:`6`,fill:`#6e6e73`},void 0,!1,{fileName:V,lineNumber:276,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:274,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:260,columnNumber:11},this),o===`shapes`&&!c&&(0,F.jsxDEV)(`div`,{className:`absolute left-[54px] z-50 bg-[#1c1c1e] text-white text-[11px] font-semibold px-2.5 py-1 rounded-[8px] shadow-lg whitespace-nowrap pointer-events-none animate-in fade-in-50 zoom-in-95 duration-100`,children:[`Shapes`,(0,F.jsxDEV)(`div`,{className:`absolute -left-1 top-1/2 -translate-y-1/2 w-2 h-2 bg-[#1c1c1e] rotate-45`},void 0,!1,{fileName:V,lineNumber:282,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:280,columnNumber:13},this)]},void 0,!0,{fileName:V,lineNumber:259,columnNumber:9},this),c&&(0,F.jsxDEV)(`div`,{className:`absolute left-[58px] top-24 z-[60] w-[210px] bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#38383a] shadow-[0_16px_40px_rgba(0,0,0,0.18)] rounded-2xl p-3 flex flex-col gap-2.5 animate-in fade-in-50 zoom-in-95 duration-150`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between px-0.5 border-b border-[#f4f4f6] dark:border-[#2c2c2e] pb-2`,children:[(0,F.jsxDEV)(`span`,{className:`text-[12px] font-bold text-[#1d1d1f] dark:text-white`,children:`Geometric Shapes`},void 0,!1,{fileName:V,lineNumber:291,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>l(!1),className:`w-5 h-5 rounded-md flex items-center justify-center text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-white hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-colors cursor-pointer`,"aria-label":`Close shapes`,title:`Close shapes`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:V,lineNumber:301,columnNumber:17},this)},void 0,!1,{fileName:V,lineNumber:294,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:290,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-3 gap-2`,children:hl.map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{u(e.type||`container`,e.name,{width:e.width,height:e.height,styles:e.defaultStyles,content:{...e.content}}),l(!1)},className:`h-12 rounded-xl bg-[#f4f4f6] dark:bg-[#2c2c2e] hover:bg-[#eaeaea] dark:hover:bg-[#38383a] hover:scale-105 transition-all flex flex-col items-center justify-center cursor-pointer shadow-2xs group gap-0.5`,"aria-label":e.name,title:e.name,children:[e.icon,(0,F.jsxDEV)(`span`,{className:`text-[9.5px] font-semibold text-[#1d1d1f] dark:text-white`,children:e.name},void 0,!1,{fileName:V,lineNumber:324,columnNumber:19},this)]},e.id,!0,{fileName:V,lineNumber:307,columnNumber:17},this))},void 0,!1,{fileName:V,lineNumber:305,columnNumber:13},this)]},void 0,!0,{fileName:V,lineNumber:289,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`relative group flex items-center`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{l(!1),u(`line`,`Line`,{width:320,height:2,styles:{backgroundColor:`#0071e3`,borderRadius:1},content:{}})},onMouseEnter:()=>s(`line`),onMouseLeave:()=>s(null),className:`w-10 h-10 rounded-[14px] flex items-center justify-center hover:bg-[#f5f5f7] dark:hover:bg-[#2c2c2e] transition-all cursor-pointer`,"aria-label":`Line`,title:`Line`,children:(0,F.jsxDEV)(`svg`,{className:`w-5 h-5`,viewBox:`0 0 24 24`,fill:`none`,children:(0,F.jsxDEV)(`line`,{x1:`4`,y1:`12`,x2:`20`,y2:`12`,stroke:`#0071e3`,strokeWidth:`3`,strokeLinecap:`round`},void 0,!1,{fileName:V,lineNumber:350,columnNumber:15},this)},void 0,!1,{fileName:V,lineNumber:349,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:332,columnNumber:11},this),o===`line`&&!c&&(0,F.jsxDEV)(`div`,{className:`absolute left-[54px] z-50 bg-[#1c1c1e] text-white text-[11px] font-semibold px-2.5 py-1 rounded-[8px] shadow-lg whitespace-nowrap pointer-events-none animate-in fade-in-50 zoom-in-95 duration-100`,children:[`Line`,(0,F.jsxDEV)(`div`,{className:`absolute -left-1 top-1/2 -translate-y-1/2 w-2 h-2 bg-[#1c1c1e] rotate-45`},void 0,!1,{fileName:V,lineNumber:356,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:354,columnNumber:13},this)]},void 0,!0,{fileName:V,lineNumber:331,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`relative group flex items-center`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{l(!1),u(`card`,`Sticky Note`,{width:220,height:220,styles:{backgroundColor:`#fff4a3`,borderRadius:12,shadow:`md`},content:{title:`Sticky Note`}})},onMouseEnter:()=>s(`sticky`),onMouseLeave:()=>s(null),className:`w-10 h-10 rounded-[14px] flex items-center justify-center hover:bg-[#f5f5f7] dark:hover:bg-[#2c2c2e] transition-all cursor-pointer`,"aria-label":`Sticky note`,title:`Sticky note`,children:(0,F.jsxDEV)(`svg`,{className:`w-5 h-5`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,F.jsxDEV)(`path`,{d:`M4 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10l-6 6H6a2 2 0 0 1-2-2V4z`,fill:`#ffb700`},void 0,!1,{fileName:V,lineNumber:381,columnNumber:15},this),(0,F.jsxDEV)(`path`,{d:`M14 14h6l-6 6v-6z`,fill:`#e09e00`},void 0,!1,{fileName:V,lineNumber:382,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:380,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:363,columnNumber:11},this),o===`sticky`&&!c&&(0,F.jsxDEV)(`div`,{className:`absolute left-[54px] z-50 bg-[#1c1c1e] text-white text-[11px] font-semibold px-2.5 py-1 rounded-[8px] shadow-lg whitespace-nowrap pointer-events-none animate-in fade-in-50 zoom-in-95 duration-100`,children:[`Sticky note`,(0,F.jsxDEV)(`div`,{className:`absolute -left-1 top-1/2 -translate-y-1/2 w-2 h-2 bg-[#1c1c1e] rotate-45`},void 0,!1,{fileName:V,lineNumber:388,columnNumber:15},this)]},void 0,!0,{fileName:V,lineNumber:386,columnNumber:13},this)]},void 0,!0,{fileName:V,lineNumber:362,columnNumber:9},this)]},void 0,!0,{fileName:V,lineNumber:103,columnNumber:7},this)]},void 0,!0,{fileName:V,lineNumber:87,columnNumber:5},this)}var _l=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/ProjectsPanel.tsx`;function vl(e){try{let t=new Date,n=new Date(e),r=t.getTime()-n.getTime(),i=Math.floor(r/6e4),a=Math.floor(i/60),o=Math.floor(a/24);return i<1?`Just now`:i<60?`${i}m ago`:a<24?`${a}h ago`:o===1?`Yesterday`:o<7?`${o}d ago`:n.toLocaleDateString([],{month:`short`,day:`numeric`})}catch{return`Recently`}}function yl(){let{activeProject:e,loadProjectFromStorage:t}=I(),{addToast:n}=oo(),[r,i]=(0,N.useState)([]),[a,o]=(0,N.useState)(``),[s,c]=(0,N.useState)(`all`),[l,u]=(0,N.useState)(!0),d=async()=>{u(!0);let e=await so();i(e),u(!1)};(0,N.useEffect)(()=>{d()},[]);let f=(0,N.useMemo)(()=>{let e=r;if(s===`starred`&&(e=e.filter(e=>e.isFavorite)),a.trim()){let t=a.toLowerCase().trim();e=e.filter(e=>e.name.toLowerCase().includes(t)||e.type.toLowerCase().includes(t))}return e.sort((e,t)=>new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime())},[r,a,s]),p=async(e,t)=>{e.stopPropagation();let r={...t,isFavorite:!t.isFavorite};await _o(r),n(r.isFavorite?`Starred project`:`Unstarred project`,`info`),d()},m=async(e,t)=>{e.stopPropagation();let r={...t,id:`proj_${Date.now()}`,name:`${t.name} (Copy)`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};await _o(r),n(`Duplicated "${t.name}"`,`success`),d()},h=async(e,t)=>{if(e.stopPropagation(),r.length<=1){n(`Cannot delete the only project`,`warning`);return}await go(t.id),n(`Deleted "${t.name}"`,`info`),d()};return(0,F.jsxDEV)(`div`,{className:`flex flex-col h-full bg-white dark:bg-[#1c1c1e] select-none text-[12px]`,children:[(0,F.jsxDEV)(`div`,{className:`p-3 border-b border-[#f4f4f6] dark:border-[#2c2c2e] space-y-2`,children:[(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[(0,F.jsxDEV)(lt,{className:`w-3.5 h-3.5 text-[#86868b] dark:text-[#636366] absolute left-3 pointer-events-none`},void 0,!1,{fileName:_l,lineNumber:110,columnNumber:11},this),(0,F.jsxDEV)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:`Search recent projects...`,className:`w-full h-8 pl-8 pr-3 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] placeholder:text-[#86868b] dark:placeholder:text-[#636366] rounded-xl border border-transparent focus:border-[#7d2ae8] outline-none transition-all`},void 0,!1,{fileName:_l,lineNumber:111,columnNumber:11},this)]},void 0,!0,{fileName:_l,lineNumber:109,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 pt-0.5`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>c(`all`),className:j(`px-2.5 py-1 rounded-full text-[11px] font-medium transition-colors cursor-pointer`,s===`all`?`bg-[#7d2ae8] text-white font-semibold`:`bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7]`),children:[`All Projects (`,r.length,`)`]},void 0,!0,{fileName:_l,lineNumber:122,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>c(`starred`),className:j(`px-2.5 py-1 rounded-full text-[11px] font-medium transition-colors cursor-pointer flex items-center gap-1`,s===`starred`?`bg-amber-500 text-white font-semibold`:`bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7]`),children:[(0,F.jsxDEV)(Wr,{className:`w-3 h-3 fill-current`},void 0,!1,{fileName:_l,lineNumber:144,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Starred`},void 0,!1,{fileName:_l,lineNumber:145,columnNumber:13},this)]},void 0,!0,{fileName:_l,lineNumber:134,columnNumber:11},this)]},void 0,!0,{fileName:_l,lineNumber:121,columnNumber:9},this)]},void 0,!0,{fileName:_l,lineNumber:108,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-2 space-y-1.5`,children:l?(0,F.jsxDEV)(`div`,{className:`py-10 text-center text-[#86868b]`,children:`Loading projects...`},void 0,!1,{fileName:_l,lineNumber:153,columnNumber:11},this):f.length===0?(0,F.jsxDEV)(`div`,{className:`py-10 text-center text-[#86868b]`,children:`No projects found`},void 0,!1,{fileName:_l,lineNumber:155,columnNumber:11},this):f.map(i=>{let a=e?.id===i.id;return(0,F.jsxDEV)(`div`,{onClick:()=>{a||(t(i.id),n(`Switched to "${i.name}"`,`info`))},className:j(`group p-2.5 rounded-xl border transition-all cursor-pointer flex items-center justify-between gap-2.5`,a?`border-[#7d2ae8] bg-[#7d2ae8]/5 dark:bg-[#7d2ae8]/15 shadow-2xs`:`border-[#e5e5ea] dark:border-[#38383a] bg-white dark:bg-[#2c2c2e] hover:border-[#7d2ae8]/50`),children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5 min-w-0 flex-1`,children:[(0,F.jsxDEV)(`div`,{className:j(`w-8 h-8 rounded-lg flex items-center justify-center font-bold text-[12px] shrink-0`,a?`bg-[#7d2ae8] text-white`:`bg-[#f4f4f6] dark:bg-[#1c1c1e] text-[#7d2ae8] dark:text-[#9d52ff]`),children:i.name.charAt(0).toUpperCase()},void 0,!1,{fileName:_l,lineNumber:178,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(`h4`,{className:`text-[12.5px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] truncate`,children:i.name},void 0,!1,{fileName:_l,lineNumber:188,columnNumber:23},this),a&&(0,F.jsxDEV)(`span`,{className:`px-1.5 py-0.5 rounded bg-[#7d2ae8] text-white text-[9px] font-bold`,children:`Active`},void 0,!1,{fileName:_l,lineNumber:192,columnNumber:25},this)]},void 0,!0,{fileName:_l,lineNumber:187,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 text-[10.5px] text-[#86868b] dark:text-[#636366] mt-0.5`,children:[(0,F.jsxDEV)(Tr,{className:`w-2.5 h-2.5`},void 0,!1,{fileName:_l,lineNumber:198,columnNumber:23},this),(0,F.jsxDEV)(`span`,{children:vl(i.updatedAt)},void 0,!1,{fileName:_l,lineNumber:199,columnNumber:23},this),(0,F.jsxDEV)(`span`,{children:`•`},void 0,!1,{fileName:_l,lineNumber:200,columnNumber:23},this),(0,F.jsxDEV)(`span`,{children:[i.pages.length,` `,i.pages.length===1?`page`:`pages`]},void 0,!0,{fileName:_l,lineNumber:201,columnNumber:23},this)]},void 0,!0,{fileName:_l,lineNumber:197,columnNumber:21},this)]},void 0,!0,{fileName:_l,lineNumber:186,columnNumber:19},this)]},void 0,!0,{fileName:_l,lineNumber:177,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>p(e,i),className:j(`p-1.5 rounded-md transition-colors`,i.isFavorite?`text-amber-500 bg-amber-50`:`text-[#86868b] hover:text-[#1d1d1f] hover:bg-[#f4f4f6]`),title:i.isFavorite?`Starred`:`Star project`,children:(0,F.jsxDEV)(Wr,{className:j(`w-3.5 h-3.5`,i.isFavorite&&`fill-current`)},void 0,!1,{fileName:_l,lineNumber:217,columnNumber:21},this)},void 0,!1,{fileName:_l,lineNumber:208,columnNumber:19},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>m(e,i),className:`p-1.5 rounded-md text-[#86868b] hover:text-[#1d1d1f] hover:bg-[#f4f4f6] transition-colors`,title:`Duplicate project`,children:(0,F.jsxDEV)(Dn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:_l,lineNumber:225,columnNumber:21},this)},void 0,!1,{fileName:_l,lineNumber:219,columnNumber:19},this),r.length>1&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>h(e,i),className:`p-1.5 rounded-md text-[#86868b] hover:text-rose-600 hover:bg-rose-50 transition-colors`,title:`Delete project`,children:(0,F.jsxDEV)(Oe,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:_l,lineNumber:234,columnNumber:23},this)},void 0,!1,{fileName:_l,lineNumber:228,columnNumber:21},this)]},void 0,!0,{fileName:_l,lineNumber:207,columnNumber:17},this)]},i.id,!0,{fileName:_l,lineNumber:161,columnNumber:15},this)})},void 0,!1,{fileName:_l,lineNumber:151,columnNumber:7},this)]},void 0,!0,{fileName:_l,lineNumber:106,columnNumber:5},this)}var bl=`C:/Users/Shadow/Desktop/cyrus/src/editor/sidebar/EditorSidebar.tsx`,xl=[{id:`icons`,label:`Icons`,icon:(0,F.jsxDEV)(r,{className:`w-[20px] h-[20px]`},void 0,!1,{fileName:bl,lineNumber:52,columnNumber:40},void 0)},{id:`charts`,label:`Graphs`,icon:(0,F.jsxDEV)(At,{className:`w-[20px] h-[20px]`},void 0,!1,{fileName:bl,lineNumber:53,columnNumber:42},void 0)},{id:`text`,label:`Text`,icon:(0,F.jsxDEV)(ut,{className:`w-[20px] h-[20px]`},void 0,!1,{fileName:bl,lineNumber:54,columnNumber:38},void 0)},{id:`assets`,label:`Uploads`,icon:(0,F.jsxDEV)(Qn,{className:`w-[20px] h-[20px]`},void 0,!1,{fileName:bl,lineNumber:55,columnNumber:43},void 0)},{id:`tools`,label:`Tools`,icon:(0,F.jsxDEV)(`div`,{className:`w-[26px] h-[26px] rounded-full bg-emerald-50 dark:bg-emerald-950/40 flex items-center justify-center text-emerald-600 dark:text-emerald-400`,children:(0,F.jsxDEV)(`svg`,{className:`w-4 h-4`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,F.jsxDEV)(`path`,{d:`m18 2 4 4-14 14H4v-4L18 2z`},void 0,!1,{fileName:bl,lineNumber:62,columnNumber:11},void 0),(0,F.jsxDEV)(`path`,{d:`M4 22h16`},void 0,!1,{fileName:bl,lineNumber:63,columnNumber:11},void 0)]},void 0,!0,{fileName:bl,lineNumber:61,columnNumber:9},void 0)},void 0,!1,{fileName:bl,lineNumber:60,columnNumber:7},void 0)},{id:`pages`,label:`Projects`,icon:(0,F.jsxDEV)(yr,{className:`w-[20px] h-[20px]`},void 0,!1,{fileName:bl,lineNumber:68,columnNumber:43},void 0)},{id:`templates`,label:`Templates`,icon:(0,F.jsxDEV)(ue,{className:`w-[20px] h-[20px]`},void 0,!1,{fileName:bl,lineNumber:69,columnNumber:48},void 0)},{id:`ai`,label:`AI Magic`,icon:(0,F.jsxDEV)(Ms,{className:`w-[20px] h-[20px]`},void 0,!1,{fileName:bl,lineNumber:70,columnNumber:40},void 0)}],Sl=[],Cl=N.memo(function({onNavigateSettings:e}){let t=P(e=>e.activeSidebarTab),n=P(e=>e.isSidebarOpen),r=P(e=>e.toggleSidebarTab),i=P(e=>e.setActiveSidebarTab);P(e=>e.toolMode);let a=P(e=>e.setToolMode),o=()=>{switch(t){case`templates`:return`Design Templates`;case`icons`:case`elements`:return`Icons`;case`charts`:case`graphs`:return`Graphs & Charts`;case`text`:return`Text & Typography`;case`assets`:return`Uploads & Media`;case`pages`:return`Recent Projects`;case`ai`:return`AI Magic Studio`;case`layers`:return`Layers`;case`history`:return`Version History`;default:return`Icons`}},s=()=>{switch(t){case`templates`:return(0,F.jsxDEV)($c,{},void 0,!1,{fileName:bl,lineNumber:103,columnNumber:16},this);case`icons`:case`elements`:return(0,F.jsxDEV)(ul,{},void 0,!1,{fileName:bl,lineNumber:106,columnNumber:16},this);case`charts`:case`graphs`:return(0,F.jsxDEV)(ml,{},void 0,!1,{fileName:bl,lineNumber:109,columnNumber:16},this);case`text`:return(0,F.jsxDEV)(ol,{},void 0,!1,{fileName:bl,lineNumber:111,columnNumber:16},this);case`assets`:return(0,F.jsxDEV)(nl,{},void 0,!1,{fileName:bl,lineNumber:113,columnNumber:16},this);case`pages`:return(0,F.jsxDEV)(yl,{},void 0,!1,{fileName:bl,lineNumber:115,columnNumber:16},this);case`ai`:return(0,F.jsxDEV)(Ac,{},void 0,!1,{fileName:bl,lineNumber:117,columnNumber:16},this);case`layers`:return(0,F.jsxDEV)(Uc,{},void 0,!1,{fileName:bl,lineNumber:119,columnNumber:16},this);case`history`:return(0,F.jsxDEV)(il,{},void 0,!1,{fileName:bl,lineNumber:121,columnNumber:16},this);default:return(0,F.jsxDEV)(ul,{},void 0,!1,{fileName:bl,lineNumber:123,columnNumber:16},this)}},c=n&&t!==null;return(0,F.jsxDEV)(`aside`,{className:`flex h-full z-30 select-none shrink-0 relative`,children:[(0,F.jsxDEV)(`div`,{className:`w-16 h-full bg-white dark:bg-[#1c1c1e] border-r border-[#e5e5ea] dark:border-[#38383a] flex flex-col items-center py-2 justify-between z-20 overflow-y-auto no-scrollbar`,children:[(0,F.jsxDEV)(`div`,{className:`flex flex-col items-center gap-1 w-full px-1`,children:xl.map(e=>{let n=c&&t===e.id;return(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>{t.preventDefault(),t.stopPropagation(),e.id!==`tools`&&a(`select`),r(e.id)},className:j(`w-full py-2.5 px-1 rounded-xl flex flex-col items-center justify-center gap-1 transition-all cursor-pointer group`,n?`bg-[#7d2ae8]/10 text-[#7d2ae8] dark:text-[#9d52ff] font-semibold shadow-2xs`:`text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e]`),"aria-label":e.label,children:[(0,F.jsxDEV)(`div`,{className:j(`transition-transform duration-200 group-hover:scale-115 group-hover:-translate-y-0.5`,n?`text-[#7d2ae8] dark:text-[#9d52ff]`:`text-[#6e6e73] dark:text-[#8e8e93]`),children:e.icon},void 0,!1,{fileName:bl,lineNumber:157,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] leading-none tracking-tight truncate max-w-full text-center`,children:e.label},void 0,!1,{fileName:bl,lineNumber:160,columnNumber:17},this)]},e.id,!0,{fileName:bl,lineNumber:138,columnNumber:15},this)})},void 0,!1,{fileName:bl,lineNumber:134,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col items-center gap-1 w-full px-1 pt-2 border-t border-[#f4f4f6] dark:border-[#2c2c2e]`,children:[Sl.map(e=>{let n=c&&t===e.id;return(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>{t.preventDefault(),t.stopPropagation(),r(e.id)},className:j(`w-full py-1.5 px-1 rounded-xl flex flex-col items-center justify-center gap-0.5 transition-all cursor-pointer`,n?`bg-[#7d2ae8]/10 text-[#7d2ae8] dark:text-[#9d52ff] font-semibold`:`text-[#86868b] dark:text-[#636366] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e]`),"aria-label":e.label,children:[e.icon,(0,F.jsxDEV)(`span`,{className:`text-[9.5px] leading-none tracking-tight`,children:e.label},void 0,!1,{fileName:bl,lineNumber:190,columnNumber:17},this)]},e.id,!0,{fileName:bl,lineNumber:173,columnNumber:15},this)}),(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>{t.preventDefault(),t.stopPropagation(),e()},className:`w-full py-1.5 px-1 rounded-xl flex flex-col items-center justify-center gap-0.5 text-[#86868b] dark:text-[#636366] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-colors cursor-pointer`,"aria-label":`Settings`,children:[(0,F.jsxDEV)(p,{className:`w-[18px] h-[18px]`},void 0,!1,{fileName:bl,lineNumber:205,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[9.5px] leading-none tracking-tight`,children:`Settings`},void 0,!1,{fileName:bl,lineNumber:206,columnNumber:13},this)]},void 0,!0,{fileName:bl,lineNumber:195,columnNumber:11},this)]},void 0,!0,{fileName:bl,lineNumber:169,columnNumber:9},this)]},void 0,!0,{fileName:bl,lineNumber:132,columnNumber:7},this),c&&t===`tools`&&(0,F.jsxDEV)(`div`,{className:`absolute left-[72px] top-6 z-50 animate-in fade-in slide-in-from-left-2 duration-150`,children:(0,F.jsxDEV)(gl,{},void 0,!1,{fileName:bl,lineNumber:214,columnNumber:11},this)},void 0,!1,{fileName:bl,lineNumber:213,columnNumber:9},this),c&&t!==`tools`&&(0,F.jsxDEV)(`div`,{className:`w-[300px] h-full bg-white dark:bg-[#1c1c1e] border-r border-[#e5e5ea] dark:border-[#38383a] flex flex-col z-10 animate-in fade-in slide-in-from-left-2 duration-150 shadow-sm`,children:[(0,F.jsxDEV)(`div`,{className:`h-10 px-3.5 border-b border-[#f4f4f6] dark:border-[#2c2c2e] flex items-center justify-between shrink-0 bg-[#fbfbfd] dark:bg-[#1c1c1e]`,children:[(0,F.jsxDEV)(`span`,{className:`text-[12.5px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:o()},void 0,!1,{fileName:bl,lineNumber:225,columnNumber:13},this),(0,F.jsxDEV)(`button`,{onClick:()=>i(null),className:`p-1 rounded-md text-[#86868b] dark:text-[#636366] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-colors cursor-pointer`,title:`Close panel`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:bl,lineNumber:233,columnNumber:15},this)},void 0,!1,{fileName:bl,lineNumber:228,columnNumber:13},this)]},void 0,!0,{fileName:bl,lineNumber:224,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:s()},void 0,!1,{fileName:bl,lineNumber:238,columnNumber:11},this)]},void 0,!0,{fileName:bl,lineNumber:220,columnNumber:9},this)]},void 0,!0,{fileName:bl,lineNumber:130,columnNumber:5},this)});function wl(e,t){if(e==null||!t)return;let n=t.trim(),r=!1;n.startsWith(`!`)&&(r=!0,n=n.slice(1).trim()),n=n.replace(/\[(\w+)\]/g,`.$1`);let i=n.split(`.`).filter(Boolean),a=e;for(let e of i){if(a==null)return;a=a[e]}return r?!a:a}function Tl(e=[],t=!0){let n={};for(let r of e){let e=t&&r.sampleValue!==void 0?r.sampleValue:r.defaultValue;n[r.name]=e}return n}function El(e,t=[],n=!0,r){let i={...Tl(t,n)};r&&(i[r.alias||`item`]=r.data);let a={...e.content},o={...e.styles},s=!!e.hidden,c=[];if(!e.bindings||Object.keys(e.bindings).length===0)return{content:a,styles:o,hidden:s,boundProperties:c};for(let[t,n]of Object.entries(e.bindings)){if(!n)continue;let e=wl(i,n);if(e!==void 0){if(c.push(t),t===`hidden`)s=!!e;else if(t.startsWith(`content.`)){let n=t.replace(`content.`,``);a[n]=e}else if(t.startsWith(`styles.`)){let n=t.replace(`styles.`,``);o[n]=e}else a[t]=e}}return{content:a,styles:o,hidden:s,boundProperties:c}}var Dl=`1.0.0`;function Ol(e,t=Dl){if(!e||e===`*`||e===`latest`)return!0;let n=e.trim(),[r,i,a]=t.split(`.`).map(Number);if(/^\d+\.\d+\.\d+$/.test(n))return n===t;if(n.startsWith(`^`))return r===Number(n.slice(1).split(`.`)[0]);if(n.startsWith(`~`)){let e=n.slice(1).split(`.`).map(Number);return r===e[0]&&i===e[1]}return!/^\d+\.(x|\*)/.test(n)||r===Number(n.split(`.`)[0])}function kl(e,t){let n=t=>e.permissions.includes(t),r=(t,r)=>{if(!n(t))throw Error(`[Plugin Permission Error] Plugin "${e.name}" (${e.id}) attempted to ${r} without the required permission "${t}".`)},i=`cyrus_plugin_storage_${e.id}_`;return{pluginId:e.id,manifest:e,widgets:{register:n=>{r(`widgets:register`,`register widget "${n.name}"`),t.onRegisterWidget(e.id,n)},unregister:n=>{r(`widgets:register`,`unregister widget "${n}"`),t.onUnregisterWidget(e.id,n)}},ai:{registerTool:n=>{r(`ai:register_tool`,`register AI tool "${n.name}"`),t.onRegisterAITool(e.id,n)}},data:{registerConnector:n=>{r(`data:connector`,`register data connector "${n.name}"`),t.onRegisterDataConnector(e.id,n)}},export:{registerTarget:n=>{r(`export:target`,`register export target "${n.name}"`),t.onRegisterExportTarget(e.id,n)}},storage:{get:e=>{r(`storage:read_write`,`read isolated storage`);try{let t=localStorage.getItem(`${i}${e}`);return t?JSON.parse(t):null}catch{return null}},set:(t,n)=>{r(`storage:read_write`,`write to isolated storage`);try{localStorage.setItem(`${i}${t}`,JSON.stringify(n))}catch(n){console.warn(`[Plugin: ${e.name}] Failed to write storage key "${t}":`,n)}},remove:e=>{r(`storage:read_write`,`delete isolated storage key`);try{localStorage.removeItem(`${i}${e}`)}catch{}}},logger:{info:(t,...n)=>{console.log(`%c[Plugin: ${e.name}]%c ${t}`,`color: #0071e3; font-weight: bold;`,`color: inherit;`,...n)},warn:(t,...n)=>{console.warn(`[Plugin: ${e.name}] ${t}`,...n)},error:(t,...n)=>{console.error(`[Plugin: ${e.name}] ${t}`,...n)}}}}var Al=new class{installed=new Map;widgetDefinitions=new Map;widgetRenderers=new Map;aiTools=new Map;dataConnectors=new Map;exportTargets=new Map;listeners=[];constructor(){this.loadPersistedState()}subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}notify(){this.listeners.forEach(e=>e())}async installPlugin(e,t){let n=Ol(e.targetCyrusVersion),r={manifest:e,implementation:t,status:n?`active`:`incompatible`,isCompatible:n,installedAt:new Date().toISOString(),registeredWidgetTypes:[]};if(!n)return this.installed.set(e.id,r),this.persistState(),this.notify(),{success:!1,error:`Incompatible version: Plugin requires Cyrus ${e.targetCyrusVersion}.`};try{let n=kl(e,{onRegisterWidget:(e,t)=>{this.widgetDefinitions.set(t.type,t),this.widgetRenderers.set(t.type,t.renderer),r.registeredWidgetTypes.push(t.type)},onUnregisterWidget:(e,t)=>{this.widgetDefinitions.delete(t),this.widgetRenderers.delete(t)},onRegisterAITool:(e,t)=>{this.aiTools.set(t.name,t)},onRegisterDataConnector:(e,t)=>{this.dataConnectors.set(t.id,t)},onRegisterExportTarget:(e,t)=>{this.exportTargets.set(t.id,t)}});return await t.initialize(n),r.status=`active`,this.installed.set(e.id,r),this.persistState(),this.notify(),{success:!0}}catch(t){return console.error(`Failed to initialize plugin "${e.name}":`,t),r.status=`error`,r.error=t?.message||`Initialization failed`,this.installed.set(e.id,r),this.persistState(),this.notify(),{success:!1,error:r.error}}}async uninstallPlugin(e){let t=this.installed.get(e);if(!t)return!1;try{return t.implementation.destroy&&await t.implementation.destroy(),t.registeredWidgetTypes.forEach(e=>{this.widgetDefinitions.delete(e),this.widgetRenderers.delete(e)}),this.installed.delete(e),this.persistState(),this.notify(),!0}catch(t){return console.error(`Error during uninstall of plugin "${e}":`,t),!1}}async disablePlugin(e){let t=this.installed.get(e);return!t||t.status!==`active`?!1:(t.implementation.destroy&&await t.implementation.destroy(),t.registeredWidgetTypes.forEach(e=>{this.widgetDefinitions.delete(e),this.widgetRenderers.delete(e)}),t.status=`disabled`,this.persistState(),this.notify(),!0)}async enablePlugin(e){let t=this.installed.get(e);return!t||t.status===`active`?!1:(await this.installPlugin(t.manifest,t.implementation)).success}getInstalledPlugins(){return Array.from(this.installed.values())}isPluginInstalled(e){return this.installed.has(e)}getPlugin(e){return this.installed.get(e)}getCustomWidgetRenderer(e){return this.widgetRenderers.get(e)}getAllPluginWidgets(){return Array.from(this.widgetDefinitions.values())}persistState(){try{let e=Array.from(this.installed.keys());localStorage.setItem(`cyrus_active_plugin_ids`,JSON.stringify(e))}catch{}}loadPersistedState(){}},H=`C:/Users/Shadow/Desktop/cyrus/src/widgets/charts/ChartEngine.tsx`;function jl(e,t,n,r,i){let a=r||``,o=i||``;if(e==null)return`${a}${t+1}${o}`;let s=String(e);return n===`uppercase`?s=s.toUpperCase():n===`numeric`?s=String(t+1):n===`short`&&(s=s.slice(0,3)),`${a}${s}${o}`}function Ml(e,t,n,r){if(e==null||isNaN(e))return`0`;let i=n===void 0?t===`currency`?`$`:``:n,a=r===void 0?t===`percentage`?`%`:``:r;switch(t){case`currency`:return`${i}${e.toLocaleString(`en-US`,{minimumFractionDigits:0,maximumFractionDigits:2})}${a}`;case`percentage`:return`${i}${e.toFixed(1)}${a}`;case`compact`:return Math.abs(e)>=1e6?`${i}${(e/1e6).toFixed(1)}M${a}`:Math.abs(e)>=1e3?`${i}${(e/1e3).toFixed(1)}k${a}`:`${i}${e.toString()}${a}`;default:return`${i}${e.toLocaleString(`en-US`)}${a}`}}function Nl({type:e,data:t,series:n,labels:r,width:i=380,height:a=220,showLegend:o=!0,showGrid:s=!0,showAxes:c=!0,format:l=`number`,secondaryFormat:u,color:d=`#7d2ae8`,secondaryColor:f=`#0071e3`,primaryName:p,secondaryName:m,title:h,subtitle:g,className:_,donutThickness:v=16,percentage:y=68,prefix:b,suffix:x,secondaryPrefix:S,secondarySuffix:C,showRightAxis:w,minRange:T,maxRange:ee,yAxisTitle:E,xFormat:te=`default`,xPrefix:D,xSuffix:ne,xMinRange:re,xMaxRange:ie,xAxisTitle:O,xLabelAngle:ae=`horizontal`,secondaryMinRange:oe,secondaryMaxRange:se}){let[ce,le]=(0,N.useState)(null),ue=(0,N.useMemo)(()=>!t||!Array.isArray(t)||t.length===0?[{label:`Jan`,value:35,secondary:24},{label:`Feb`,value:52,secondary:38},{label:`Mar`,value:45,secondary:42},{label:`Apr`,value:78,secondary:55},{label:`May`,value:64,secondary:60},{label:`Jun`,value:92,secondary:74}]:typeof t[0]==`number`?t.map((e,t)=>({label:r&&r[t]?r[t]:`Pt ${t+1}`,value:typeof e==`number`&&!isNaN(e)?e:0})):t.map((e,t)=>({label:e.label===void 0?`Item ${t+1}`:String(e.label),value:Number(e.value)||0,secondary:e.secondary===void 0?void 0:Number(e.secondary),color:e.color})),[t,r]),k=(0,N.useMemo)(()=>{let e=ue;if(re!==void 0&&re!==``){let t=typeof re==`number`||!isNaN(Number(re))?Math.max(0,Number(re)-1):e.findIndex(e=>e.label.toLowerCase()===String(re).toLowerCase());t>=0&&(e=e.slice(t))}if(ie!==void 0&&ie!==``){let t=typeof ie==`number`||!isNaN(Number(ie))?Number(ie):e.findIndex(e=>e.label.toLowerCase()===String(ie).toLowerCase())+1;t>0&&(e=e.slice(0,t))}return e.length>0?e:ue},[ue,re,ie]),de=(0,N.useMemo)(()=>n&&n.length>0?n:e===`multiLine`||e===`multiLineChart`||e===`stackedBar`||e===`stackedBarChart`?[{name:p||`Primary (Left)`,color:d,dataKey:`value`},{name:m||`Secondary (Right)`,color:f,dataKey:`secondary`}]:[{name:p||`Value`,color:d,dataKey:`value`}],[n,d,f,e,p,m]),fe=k.map(e=>e.value),pe=k.map(e=>e.secondary??0),me=e.includes(`multi`)||e.includes(`stacked`)||k.some(e=>e.secondary!==void 0),he=T!==void 0&&T!==``&&!isNaN(Number(T))?Number(T):void 0,ge=ee!==void 0&&ee!==``&&!isNaN(Number(ee))?Number(ee):void 0,A=me?[...fe,...pe]:fe,_e=he===void 0?Math.min(0,...A):he,ve=(ge===void 0?Math.max(...A,10):ge)-_e||1,ye=_e,be=ve,xe=c?48:14,Se=h?42:E?28:16,Ce=c?O?42:ae===`slanted`?38:30:12,we=Math.max(i-xe-18,40),Te=Math.max(a-Se-Ce,40),Ee=(0,N.useMemo)(()=>{let t=Ml(k[0]?.value||0,l),n=Ml(k[k.length-1]?.value||0,l);return`${h||e.toUpperCase()+` Chart`}: ${t} to ${n} (${k.length} data points)`},[h,e,k,l]),De=(0,N.useMemo)(()=>k.map((e,t)=>({x:xe+t/Math.max(k.length-1,1)*we,y:Se+Te-(e.value-_e)/ve*Te,...e})),[k,xe,Se,we,Te,_e,ve]),Oe=(0,N.useMemo)(()=>k.map((e,t)=>{let n=e.secondary??0;return{x:xe+t/Math.max(k.length-1,1)*we,y:Se+Te-(n-_e)/ve*Te,value:n,label:e.label}}),[k,xe,Se,we,Te,_e,ve]),ke=e=>{if(e.length===0)return``;if(e.length===1)return`M ${e[0].x} ${e[0].y}`;let t=`M ${e[0].x} ${e[0].y}`;for(let n=0;n<e.length-1;n++){let r=e[n],i=e[n+1],a=r.x+(i.x-r.x)/3,o=r.y,s=r.x+(i.x-r.x)*2/3,c=i.y;t+=` C ${a} ${o}, ${s} ${c}, ${i.x} ${i.y}`}return t},Ae=(0,N.useMemo)(()=>ke(De),[De]),je=(0,N.useMemo)(()=>ke(Oe),[Oe]),Me=(0,N.useMemo)(()=>{if(De.length===0)return``;let e=Se+Te;return`${Ae} L ${De[De.length-1].x} ${e} L ${De[0].x} ${e} Z`},[Ae,De,Se,Te]),Ne=[0,.25,.5,.75,1],Pe=[`#7d2ae8`,`#0071e3`,`#34c759`,`#ff9500`,`#af52de`,`#ff2d55`,`#5856d6`,`#00c7be`];if(e===`progress`||e===`progressBar`){let e=Math.min(Math.max(y??(k[0]?.value||0),0),100);return(0,F.jsxDEV)(`div`,{className:j(`w-full flex flex-col justify-center gap-2 select-none p-1`,_),children:[h&&(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between text-[12px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[(0,F.jsxDEV)(`span`,{children:h},void 0,!1,{fileName:H,lineNumber:322,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`font-mono text-[#7d2ae8] font-bold`,children:[e,`%`]},void 0,!0,{fileName:H,lineNumber:323,columnNumber:13},this)]},void 0,!0,{fileName:H,lineNumber:321,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`w-full h-3.5 rounded-full bg-[#f4f4f6] dark:bg-[#2c2c2e] overflow-hidden p-0.5 border border-[#e5e5ea] dark:border-[#38383a]`,children:(0,F.jsxDEV)(`div`,{style:{width:`${e}%`,backgroundColor:d},className:`h-full rounded-full transition-all duration-500 ease-out shadow-2xs`},void 0,!1,{fileName:H,lineNumber:327,columnNumber:11},this)},void 0,!1,{fileName:H,lineNumber:326,columnNumber:9},this),g&&(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b] dark:text-[#8e8e93]`,children:g},void 0,!1,{fileName:H,lineNumber:332,columnNumber:22},this)]},void 0,!0,{fileName:H,lineNumber:319,columnNumber:7},this)}if(e===`gauge`||e===`gaugeChart`||e===`radialChart`){let e=Math.min(Math.max(k[0]?.value||y||75,0),100),t=Math.min(i,a)/2,n=t-20,r=Math.PI*n,o=r*(1-e/100);return(0,F.jsxDEV)(`div`,{className:j(`relative flex flex-col items-center justify-center select-none w-full h-full`,_),children:[h&&(0,F.jsxDEV)(`div`,{className:`w-full text-center mb-1`,children:[(0,F.jsxDEV)(`h4`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-white`,children:h},void 0,!1,{fileName:H,lineNumber:351,columnNumber:13},this),g&&(0,F.jsxDEV)(`p`,{className:`text-[10.5px] text-[#86868b] dark:text-[#8e8e93]`,children:g},void 0,!1,{fileName:H,lineNumber:352,columnNumber:26},this)]},void 0,!0,{fileName:H,lineNumber:350,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`relative flex items-center justify-center`,children:[(0,F.jsxDEV)(`svg`,{width:i,height:a*.75,viewBox:`0 0 ${i} ${a*.75}`,children:[(0,F.jsxDEV)(`path`,{d:`M ${t-n} ${t} A ${n} ${n} 0 0 1 ${t+n} ${t}`,fill:`none`,stroke:`#e5e5ea`,strokeWidth:`16`,strokeLinecap:`round`,className:`dark:stroke-[#2c2c2e]`},void 0,!1,{fileName:H,lineNumber:359,columnNumber:13},this),(0,F.jsxDEV)(`path`,{d:`M ${t-n} ${t} A ${n} ${n} 0 0 1 ${t+n} ${t}`,fill:`none`,stroke:d,strokeWidth:`16`,strokeLinecap:`round`,strokeDasharray:r,strokeDashoffset:o,className:`transition-all duration-700 ease-out`},void 0,!1,{fileName:H,lineNumber:368,columnNumber:13},this)]},void 0,!0,{fileName:H,lineNumber:357,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-end pb-2`,children:[(0,F.jsxDEV)(`span`,{className:`text-[22px] font-extrabold text-[#1d1d1f] dark:text-white`,children:[e,`%`]},void 0,!0,{fileName:H,lineNumber:380,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] uppercase font-semibold text-[#86868b]`,children:`Target Score`},void 0,!1,{fileName:H,lineNumber:381,columnNumber:13},this)]},void 0,!0,{fileName:H,lineNumber:379,columnNumber:11},this)]},void 0,!0,{fileName:H,lineNumber:356,columnNumber:9},this)]},void 0,!0,{fileName:H,lineNumber:348,columnNumber:7},this)}if(e===`donut`||e===`donutChart`||e===`pie`||e===`pieChart`){let t=e===`pie`||e===`pieChart`,n=k.reduce((e,t)=>e+t.value,0)||1,r=Math.min(i,a)/2,s=Math.max(r-28,20),c=2*Math.PI*s,u=0;return(0,F.jsxDEV)(`div`,{className:j(`relative flex flex-col items-center justify-between select-none w-full h-full`,_),children:[h&&(0,F.jsxDEV)(`div`,{className:`w-full text-left mb-1`,children:[(0,F.jsxDEV)(`h4`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-white`,children:h},void 0,!1,{fileName:H,lineNumber:404,columnNumber:13},this),g&&(0,F.jsxDEV)(`p`,{className:`text-[10.5px] text-[#86868b] dark:text-[#8e8e93]`,children:g},void 0,!1,{fileName:H,lineNumber:405,columnNumber:26},this)]},void 0,!0,{fileName:H,lineNumber:403,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`relative flex items-center justify-center flex-1`,children:[(0,F.jsxDEV)(`svg`,{width:i,height:a-(o?40:10),viewBox:`0 0 ${i} ${a-(o?40:10)}`,role:`img`,"aria-label":Ee,className:`overflow-visible`,children:(0,F.jsxDEV)(`g`,{transform:`rotate(-90 ${r} ${r})`,children:k.map((e,i)=>{let a=e.value/n,o=`${a*c} ${c}`,l=-u;u+=a*c;let d=e.color||Pe[i%Pe.length];return(0,F.jsxDEV)(`circle`,{cx:r,cy:r,r:s,fill:t?d:`none`,stroke:d,strokeWidth:t?0:v,strokeDasharray:o,strokeDashoffset:l,className:`transition-all duration-300 hover:opacity-85 cursor-pointer`,onMouseEnter:()=>le(i),onMouseLeave:()=>le(null)},i,!1,{fileName:H,lineNumber:427,columnNumber:19},this)})},void 0,!1,{fileName:H,lineNumber:418,columnNumber:13},this)},void 0,!1,{fileName:H,lineNumber:410,columnNumber:11},this),!t&&(0,F.jsxDEV)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center pointer-events-none text-center`,children:[(0,F.jsxDEV)(`span`,{className:`text-[10px] uppercase tracking-wider text-[#86868b] font-semibold`,children:ce===null?`Total`:k[ce]?.label},void 0,!1,{fileName:H,lineNumber:449,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[16px] font-extrabold text-[#1d1d1f] dark:text-white`,children:Ml(ce===null?n:k[ce]?.value,l)},void 0,!1,{fileName:H,lineNumber:452,columnNumber:15},this)]},void 0,!0,{fileName:H,lineNumber:448,columnNumber:13},this)]},void 0,!0,{fileName:H,lineNumber:409,columnNumber:9},this),o&&(0,F.jsxDEV)(`div`,{className:`flex flex-wrap items-center justify-center gap-2.5 mt-2 w-full`,children:k.map((e,t)=>(0,F.jsxDEV)(`div`,{onMouseEnter:()=>le(t),onMouseLeave:()=>le(null),className:j(`flex items-center gap-1.5 text-[10.5px] px-1.5 py-0.5 rounded cursor-pointer transition-all`,ce===t?`bg-[#f4f4f6] dark:bg-[#2c2c2e] font-bold`:`text-[#6e6e73] dark:text-[#8e8e93]`),children:[(0,F.jsxDEV)(`div`,{className:`w-2 h-2 rounded-full shrink-0`,style:{backgroundColor:e.color||Pe[t%Pe.length]}},void 0,!1,{fileName:H,lineNumber:475,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`truncate max-w-[80px]`,children:e.label},void 0,!1,{fileName:H,lineNumber:479,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f] dark:text-white`,children:Ml(e.value,l)},void 0,!1,{fileName:H,lineNumber:480,columnNumber:17},this)]},t,!0,{fileName:H,lineNumber:466,columnNumber:15},this))},void 0,!1,{fileName:H,lineNumber:464,columnNumber:11},this)]},void 0,!0,{fileName:H,lineNumber:401,columnNumber:7},this)}if(e===`horizontalBar`||e===`horizontalBarChart`){let e=Te/k.length,t=Math.max(e*.55,10);return(0,F.jsxDEV)(`div`,{className:j(`relative w-full h-full flex flex-col select-none`,_),children:[h&&(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between mb-1.5`,children:(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h4`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-white tracking-tight`,children:h},void 0,!1,{fileName:H,lineNumber:503,columnNumber:15},this),g&&(0,F.jsxDEV)(`p`,{className:`text-[10.5px] text-[#86868b] dark:text-[#8e8e93] mt-0.5`,children:g},void 0,!1,{fileName:H,lineNumber:504,columnNumber:28},this)]},void 0,!0,{fileName:H,lineNumber:502,columnNumber:13},this)},void 0,!1,{fileName:H,lineNumber:501,columnNumber:11},this),(0,F.jsxDEV)(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${i} ${a}`,preserveAspectRatio:`none`,className:`flex-1 overflow-visible`,children:[s&&Ne.map((e,t)=>{let n=xe+we*e,r=ye+be*e;return(0,F.jsxDEV)(`g`,{children:[(0,F.jsxDEV)(`line`,{x1:n,y1:Se,x2:n,y2:Se+Te,stroke:`#e5e5ea`,strokeDasharray:`3 3`,strokeWidth:`1`,className:`dark:stroke-[#38383a]`},void 0,!1,{fileName:H,lineNumber:523,columnNumber:19},this),c&&(0,F.jsxDEV)(`text`,{x:n,y:Se+Te+16,textAnchor:`middle`,className:`text-[9.5px] fill-[#86868b] font-mono`,children:Ml(r,`compact`)},void 0,!1,{fileName:H,lineNumber:534,columnNumber:21},this)]},t,!0,{fileName:H,lineNumber:522,columnNumber:17},this)}),k.map((n,r)=>{let i=(n.value-ye)/be*we,a=Se+r*e+(e-t)/2,o=n.color||Pe[r%Pe.length];return(0,F.jsxDEV)(`g`,{className:`group cursor-pointer`,children:[c&&(0,F.jsxDEV)(`text`,{x:xe-8,y:a+t/2+3.5,textAnchor:`end`,className:`text-[10px] fill-[#86868b] font-medium`,children:n.label},void 0,!1,{fileName:H,lineNumber:556,columnNumber:19},this),(0,F.jsxDEV)(`rect`,{x:xe,y:a,width:Math.max(i,4),height:t,rx:4,fill:o,className:`hover:opacity-85 transition-opacity`},void 0,!1,{fileName:H,lineNumber:565,columnNumber:17},this),(0,F.jsxDEV)(`text`,{x:xe+i+6,y:a+t/2+3.5,className:`text-[10px] fill-[#1d1d1f] dark:fill-[#f5f5f7] font-semibold font-mono`,children:Ml(n.value,l)},void 0,!1,{fileName:H,lineNumber:574,columnNumber:17},this)]},r,!0,{fileName:H,lineNumber:554,columnNumber:15},this)})]},void 0,!0,{fileName:H,lineNumber:509,columnNumber:9},this)]},void 0,!0,{fileName:H,lineNumber:499,columnNumber:7},this)}if(e===`funnel`||e===`funnelChart`){let e=k[0]?.value||1;return Te/k.length,(0,F.jsxDEV)(`div`,{className:j(`relative w-full h-full flex flex-col select-none`,_),children:[h&&(0,F.jsxDEV)(`div`,{className:`mb-2`,children:[(0,F.jsxDEV)(`h4`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-white`,children:h},void 0,!1,{fileName:H,lineNumber:600,columnNumber:13},this),g&&(0,F.jsxDEV)(`p`,{className:`text-[10.5px] text-[#86868b] dark:text-[#8e8e93]`,children:g},void 0,!1,{fileName:H,lineNumber:601,columnNumber:26},this)]},void 0,!0,{fileName:H,lineNumber:599,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col justify-between gap-1.5`,children:k.map((t,n)=>{let r=Math.max(t.value/e*100,15),i=(t.value/e*100).toFixed(0),a=Pe[n%Pe.length];return(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between text-[11px]`,children:[(0,F.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:t.label},void 0,!1,{fileName:H,lineNumber:614,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#86868b] font-mono text-[10px]`,children:[i,`%`]},void 0,!0,{fileName:H,lineNumber:616,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`font-bold font-mono text-[#1d1d1f] dark:text-white`,children:Ml(t.value,l)},void 0,!1,{fileName:H,lineNumber:617,columnNumber:21},this)]},void 0,!0,{fileName:H,lineNumber:615,columnNumber:19},this)]},void 0,!0,{fileName:H,lineNumber:613,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`w-full h-4 bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-md overflow-hidden flex items-center`,children:(0,F.jsxDEV)(`div`,{style:{width:`${r}%`,backgroundColor:a},className:`h-full rounded-md transition-all duration-500 shadow-2xs`},void 0,!1,{fileName:H,lineNumber:623,columnNumber:19},this)},void 0,!1,{fileName:H,lineNumber:622,columnNumber:17},this)]},n,!0,{fileName:H,lineNumber:612,columnNumber:15},this)})},void 0,!1,{fileName:H,lineNumber:605,columnNumber:9},this)]},void 0,!0,{fileName:H,lineNumber:597,columnNumber:7},this)}if(e===`sparkline`)return(0,F.jsxDEV)(`div`,{className:j(`relative w-full h-full flex flex-col justify-center select-none`,_),children:(0,F.jsxDEV)(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${i} ${a}`,preserveAspectRatio:`none`,children:[(0,F.jsxDEV)(`path`,{d:Ae,fill:`none`,stroke:d,strokeWidth:`3`,strokeLinecap:`round`,strokeLinejoin:`round`},void 0,!1,{fileName:H,lineNumber:643,columnNumber:11},this),De.map((e,t)=>(0,F.jsxDEV)(`circle`,{cx:e.x,cy:e.y,r:`3.5`,fill:`#ffffff`,stroke:d,strokeWidth:`2`},t,!1,{fileName:H,lineNumber:652,columnNumber:13},this))]},void 0,!0,{fileName:H,lineNumber:642,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:641,columnNumber:7},this);let Fe=`grad_${d.replace(/[^a-zA-Z0-9]/g,``)}`;return(0,F.jsxDEV)(`div`,{className:j(`relative w-full h-full flex flex-col select-none`,_),children:[h&&(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between mb-1.5`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h4`,{className:`text-[13.5px] font-bold text-[#1d1d1f] dark:text-white tracking-tight`,children:h},void 0,!1,{fileName:H,lineNumber:677,columnNumber:13},this),g&&(0,F.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b] dark:text-[#8e8e93] mt-0.5`,children:g},void 0,!1,{fileName:H,lineNumber:678,columnNumber:26},this)]},void 0,!0,{fileName:H,lineNumber:676,columnNumber:11},this),o&&(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:de.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-[11px] text-[#6e6e73] dark:text-[#8e8e93]`,children:[(0,F.jsxDEV)(`div`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:e.color}},void 0,!1,{fileName:H,lineNumber:684,columnNumber:19},this),(0,F.jsxDEV)(`span`,{children:e.name},void 0,!1,{fileName:H,lineNumber:685,columnNumber:19},this)]},t,!0,{fileName:H,lineNumber:683,columnNumber:17},this))},void 0,!1,{fileName:H,lineNumber:681,columnNumber:13},this)]},void 0,!0,{fileName:H,lineNumber:675,columnNumber:9},this),(0,F.jsxDEV)(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${i} ${a}`,preserveAspectRatio:`none`,role:`img`,"aria-label":Ee,className:`flex-1 overflow-visible`,children:[(0,F.jsxDEV)(`defs`,{children:[(0,F.jsxDEV)(`linearGradient`,{id:Fe,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,F.jsxDEV)(`stop`,{offset:`0%`,stopColor:d,stopOpacity:.35},void 0,!1,{fileName:H,lineNumber:704,columnNumber:13},this),(0,F.jsxDEV)(`stop`,{offset:`60%`,stopColor:d,stopOpacity:.08},void 0,!1,{fileName:H,lineNumber:705,columnNumber:13},this),(0,F.jsxDEV)(`stop`,{offset:`100%`,stopColor:d,stopOpacity:0},void 0,!1,{fileName:H,lineNumber:706,columnNumber:13},this)]},void 0,!0,{fileName:H,lineNumber:703,columnNumber:11},this),(0,F.jsxDEV)(`filter`,{id:`shadow_${Fe}`,x:`-20%`,y:`-20%`,width:`140%`,height:`140%`,children:(0,F.jsxDEV)(`feDropShadow`,{dx:`0`,dy:`3`,stdDeviation:`3`,floodColor:d,floodOpacity:`0.3`},void 0,!1,{fileName:H,lineNumber:709,columnNumber:13},this)},void 0,!1,{fileName:H,lineNumber:708,columnNumber:11},this)]},void 0,!0,{fileName:H,lineNumber:702,columnNumber:9},this),c&&E&&(0,F.jsxDEV)(`text`,{x:xe-6,y:Se-8,textAnchor:`end`,className:`text-[9.5px] fill-[#86868b] font-semibold tracking-wide`,children:E},void 0,!1,{fileName:H,lineNumber:715,columnNumber:11},this),c&&O&&(0,F.jsxDEV)(`text`,{x:xe+we/2,y:Se+Te+(ae===`slanted`?36:28),textAnchor:`middle`,className:`text-[9.5px] fill-[#86868b] font-semibold tracking-wide`,children:O},void 0,!1,{fileName:H,lineNumber:727,columnNumber:11},this),s&&Ne.map((e,t)=>{let n=Se+Te*(1-e),r=_e+ve*e;return(0,F.jsxDEV)(`g`,{children:[(0,F.jsxDEV)(`line`,{x1:xe,y1:n,x2:xe+we,y2:n,stroke:`#e5e5ea`,strokeDasharray:`3 3`,strokeWidth:`1`,className:`dark:stroke-[#2c2c2e]`},void 0,!1,{fileName:H,lineNumber:744,columnNumber:17},this),c&&(0,F.jsxDEV)(`text`,{x:xe-8,y:n+3.5,textAnchor:`end`,className:`text-[9.5px] fill-[#86868b] font-mono font-medium`,children:Ml(r,l,b,x)},void 0,!1,{fileName:H,lineNumber:755,columnNumber:19},this)]},t,!0,{fileName:H,lineNumber:743,columnNumber:15},this)}),(e===`stackedBar`||e===`stackedBarChart`)&&(0,F.jsxDEV)(`g`,{children:k.map((e,t)=>{let n=k.length,r=we/n,i=Math.max(r*.55,10),a=(e.value-ye)/be*Te,o=((e.secondary||0)-ye)/be*Te,s=xe+t*r+(r-i)/2,l=Se+Te-a,u=l-o,p=s+i/2,m=Se+Te+16,h=jl(e.label,t,te,D,ne);return(0,F.jsxDEV)(`g`,{className:`group cursor-pointer`,children:[(0,F.jsxDEV)(`rect`,{x:s,y:l,width:i,height:Math.max(a,2),rx:2,fill:d,className:`hover:opacity-85 transition-opacity`},void 0,!1,{fileName:H,lineNumber:787,columnNumber:19},this),(0,F.jsxDEV)(`rect`,{x:s,y:u,width:i,height:Math.max(o,2),rx:2,fill:f,className:`hover:opacity-85 transition-opacity`},void 0,!1,{fileName:H,lineNumber:797,columnNumber:19},this),c&&(0,F.jsxDEV)(`text`,{x:p,y:m,transform:ae===`slanted`?`rotate(-35 ${p} ${m})`:void 0,textAnchor:ae===`slanted`?`end`:`middle`,className:`text-[10px] fill-[#86868b] font-medium`,children:h},void 0,!1,{fileName:H,lineNumber:807,columnNumber:21},this)]},t,!0,{fileName:H,lineNumber:785,columnNumber:17},this)})},void 0,!1,{fileName:H,lineNumber:770,columnNumber:11},this),(e===`bar`||e===`barChart`)&&(0,F.jsxDEV)(`g`,{children:k.map((e,t)=>{let n=k.length,r=we/n,i=Math.max(r*.55,8),a=(e.value-ye)/be*Te,o=xe+t*r+(r-i)/2,s=Se+Te-a,l=e.color||d,u=o+i/2,f=Se+Te+16,p=jl(e.label,t,te,D,ne);return(0,F.jsxDEV)(`g`,{className:`group cursor-pointer`,children:[(0,F.jsxDEV)(`rect`,{x:o,y:s,width:i,height:Math.max(a,2),rx:4,fill:l,className:`hover:opacity-85 transition-opacity`},void 0,!1,{fileName:H,lineNumber:840,columnNumber:19},this),c&&(0,F.jsxDEV)(`text`,{x:u,y:f,transform:ae===`slanted`?`rotate(-35 ${u} ${f})`:void 0,textAnchor:ae===`slanted`?`end`:`middle`,className:`text-[10px] fill-[#86868b] font-medium`,children:p},void 0,!1,{fileName:H,lineNumber:850,columnNumber:21},this)]},t,!0,{fileName:H,lineNumber:839,columnNumber:17},this)})},void 0,!1,{fileName:H,lineNumber:825,columnNumber:11},this),(e===`area`||e===`areaChart`)&&(0,F.jsxDEV)(`path`,{d:Me,fill:`url(#${Fe})`,className:`transition-all duration-300`},void 0,!1,{fileName:H,lineNumber:868,columnNumber:11},this),(e===`line`||e===`lineChart`||e===`area`||e===`areaChart`)&&(0,F.jsxDEV)(`g`,{children:[(0,F.jsxDEV)(`path`,{d:Ae,fill:`none`,stroke:d,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`},void 0,!1,{fileName:H,lineNumber:874,columnNumber:13},this),De.map((e,t)=>{let n=e.x,r=Se+Te+16,i=jl(e.label,t,te,D,ne);return(0,F.jsxDEV)(`g`,{children:[(0,F.jsxDEV)(`circle`,{cx:e.x,cy:e.y,r:`4`,fill:`#ffffff`,stroke:d,strokeWidth:`2`,className:`hover:r-5 transition-all shadow-xs cursor-pointer`},void 0,!1,{fileName:H,lineNumber:889,columnNumber:19},this),c&&(0,F.jsxDEV)(`text`,{x:n,y:r,transform:ae===`slanted`?`rotate(-35 ${n} ${r})`:void 0,textAnchor:ae===`slanted`?`end`:`middle`,className:`text-[10px] fill-[#86868b] font-medium`,children:i},void 0,!1,{fileName:H,lineNumber:899,columnNumber:21},this)]},t,!0,{fileName:H,lineNumber:888,columnNumber:17},this)})]},void 0,!0,{fileName:H,lineNumber:873,columnNumber:11},this),(e===`multiLine`||e===`multiLineChart`)&&(0,F.jsxDEV)(`g`,{children:[(0,F.jsxDEV)(`path`,{d:Ae,fill:`none`,stroke:d,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`},void 0,!1,{fileName:H,lineNumber:919,columnNumber:13},this),(0,F.jsxDEV)(`path`,{d:je,fill:`none`,stroke:f,strokeWidth:`2.5`,strokeDasharray:`4 4`,strokeLinecap:`round`,strokeLinejoin:`round`},void 0,!1,{fileName:H,lineNumber:928,columnNumber:13},this),De.map((e,t)=>{let n=e.x,r=Se+Te+16,i=jl(e.label,t,te,D,ne);return(0,F.jsxDEV)(`g`,{children:[(0,F.jsxDEV)(`circle`,{cx:e.x,cy:e.y,r:`3.5`,fill:`#ffffff`,stroke:d,strokeWidth:`2`},void 0,!1,{fileName:H,lineNumber:944,columnNumber:19},this),(0,F.jsxDEV)(`circle`,{cx:Oe[t].x,cy:Oe[t].y,r:`3.5`,fill:`#ffffff`,stroke:f,strokeWidth:`2`},void 0,!1,{fileName:H,lineNumber:945,columnNumber:19},this),c&&(0,F.jsxDEV)(`text`,{x:n,y:r,transform:ae===`slanted`?`rotate(-35 ${n} ${r})`:void 0,textAnchor:ae===`slanted`?`end`:`middle`,className:`text-[10px] fill-[#86868b] font-medium`,children:i},void 0,!1,{fileName:H,lineNumber:954,columnNumber:21},this)]},t,!0,{fileName:H,lineNumber:943,columnNumber:17},this)})]},void 0,!0,{fileName:H,lineNumber:917,columnNumber:11},this)]},void 0,!0,{fileName:H,lineNumber:693,columnNumber:7},this)]},void 0,!0,{fileName:H,lineNumber:673,columnNumber:5},this)}var U=`C:/Users/Shadow/Desktop/cyrus/src/widgets/ElementRenderer.tsx`,Pl={ArrowRight:Aa,ArrowLeft:Kt,ArrowUp:zt,ArrowDown:le,ChevronRight:at,ChevronLeft:vt,ChevronUp:$e,ChevronDown:fe,MoreHorizontal:pe,MoreVertical:Ae,Compass:dr,MapPin:ji,Navigation:je,Route:De,ExternalLink:et,Move:Xa,CornerDownRight:gn,Plus:na,Minus:ye,X:Ln,Check:ke,CheckCheck:qe,Search:lt,Edit:rr,Trash2:Oe,Copy:Dn,Save:y,Download:g,Upload:ae,UploadCloud:Qn,Share2:gt,RefreshCw:yn,RotateCcw:pn,Undo2:E,Redo2:Ot,Filter:Oi,Sliders:Ea,SlidersHorizontal:Ka,ZoomIn:yi,ZoomOut:oa,Eye:l,EyeOff:qr,Maximize2:Ur,Minimize2:Ui,Lock:Ri,Unlock:_i,Key:Xr,Power:Bn,LogOut:Sr,LogIn:lr,Home:Me,Menu:hr,Grid:kn,List:In,Layers:ie,Settings:p,Layout:pt,Sidebar:u,PanelLeft:u,PanelTop:ti,User:Na,Users:Wn,UserPlus:b,UserCheck:Ht,UserX:Ft,Heart:v,Star:Wr,ThumbsUp:Yt,ThumbsDown:cn,Smile:D,Bookmark:ua,Award:Jn,Crown:He,Sparkles:vi,AtSign:La,Hash:be,Bell:li,BellRing:_a,BellOff:cr,Mail:ia,Inbox:xt,Phone:Pr,PhoneCall:Ua,PhoneOff:Pn,MessageSquare:On,MessageCircle:i,Megaphone:da,ShoppingCart:za,ShoppingBag:Vt,CreditCard:Ie,DollarSign:rn,Wallet:Ni,Coins:qi,Receipt:la,Banknote:Fn,Percent:qn,BadgePercent:Wa,Gift:Br,Tag:Ct,Package:tt,Truck:s,Scale:Qa,QrCode:Vr,PiggyBank:hi,Calculator:ln,TrendingUp:_t,TrendingDown:de,ListTodo:Ta,CheckSquare:ya,Calendar:Ce,CalendarDays:Xt,Clock:Tr,Timer:tn,AlarmClock:mt,Pin:br,History:xe,Paperclip:ne,Archive:re,Clipboard:Mn,ClipboardList:xa,Briefcase:hn,Folder:si,FolderPlus:ha,FolderKanban:yr,FileText:Kn,Smartphone:Ar,Tablet:t,Monitor:dn,Laptop:ht,Tv:Qr,Cpu:Sn,Database:un,Server:Zr,HardDrive:We,Wifi:ai,WifiOff:pa,Bluetooth:Vn,Battery:xr,BatteryCharging:Or,Terminal:En,Code2:Di,Globe:a,Fingerprint:Er,Scan:Ne,Bot:mr,Cloud:ea,CloudUpload:Qn,CloudDownload:Mr,Camera:nn,Video:ba,Mic:Le,MicOff:Cn,Volume2:wr,VolumeX:jr,Play:ci,Pause:ce,Square:Un,Circle:Gn,Music:Mt,Film:Nn,Image:he,Radio:Si,Headphones:Ee,Wand2:_r,Palette:Jr,Brush:xn,Crop:Hi,Scissors:St,Cast:Ja,Airplay:ni,Disc:we,Plane:ga,Car:h,Bike:tr,Train:Ke,Fuel:ta,Building:Ve,Hotel:Nt,Store:Ti,Ticket:Se,Luggage:va,Utensils:Ba,Coffee:Rn,Pizza:sr,HeartPulse:on,Activity:d,Stethoscope:Qi,Pill:Ii,Dumbbell:Je,Shield:Ma,ShieldCheck:k,ShieldAlert:O,AlertCircle:Kr,AlertTriangle:it,CheckCircle2:$r,XCircle:Pa,Info:nt,HelpCircle:x,LifeBuoy:T,Gauge:zn,Flag:Nr,Sun:fa,Moon:Qt,CloudRain:ar,Snowflake:Lr,Wind:Zn,Droplet:Ya,Thermometer:A,Leaf:qt,CircleDot:oe,AlignLeft:Bi,TextCursorInput:Be,Triangle:Qe,Hexagon:Za,Octagon:bt,Pentagon:Ia,Diamond:Zt,Box:n,Boxes:wt,Cone:Tt,Cylinder:ve,Spline:Cr,CircleDashed:dt,SquareDashed:di,RectangleHorizontal:pr,RectangleVertical:o,Shapes:ii,ToggleLeft:m,ToggleRight:qa,MousePointer:_,MousePointer2:Te,MousePointerClick:an,Hand:Wi,Grab:Re,Touchpad:kt,RadioTower:Yi,Orbit:st,Infinity:ct,Binary:ra,Barcode:wa,ScanLine:Ze,ScanFace:Pt,Euro:ot,PoundSterling:ki,Bitcoin:Ai,Trophy:Gr,Medal:Zi,Frown:ft,Meh:ei,Building2:Vi,Landmark:ri,School:ge,GraduationCap:Dt,Book:Xi,BookOpen:Hr,Library:ja,BookmarkCheck:Ci,File:Ha,FileCode:S,FileSpreadsheet:Fa,FilePlus:Lt,FileCheck:Wt,Files:Sa,FolderOpen:or,FolderArchive:Fi,MailOpen:nr,MailCheck:ui,MessagesSquare:_n,PhoneIncoming:Ca,PhoneOutgoing:Dr,Speaker:zi,Volume:fi,Volume1:jn,PlayCircle:Oa,PauseCircle:Ut,StopCircle:It,FastForward:se,Rewind:ze,Shuffle:Xn,Repeat:Tn,Maximize:wi,Minimize:Ue,Watch:ir,BatteryFull:Fr,BatteryMedium:Li,BatteryLow:gi,Plug:er,ZapOff:Rr,CloudSnow:ma,CloudLightning:Pi,CloudDrizzle:pi,CloudSun:oi,CloudMoon:vr,Droplets:jt,Map:Hn,Navigation2:Ye,Bus:_e,Ship:ee,ShieldX:Jt,AlertOctagon:me,CheckCircle:c,Hourglass:Xe,Workflow:$i,GitBranch:Ji,GitCommit:xi,GitMerge:ca,GitPullRequest:fr,Code:zr,Bug:Fe,Wrench:Ei,Hammer:wn,Eraser:yt,ClipboardCheck:Va,ListOrdered:Ga,Table:gr,Columns:bi,Rows:sn,Split:ur,SquareSplitHorizontal:aa,SquareSplitVertical:Mi,UserMinus:Da,Component:r,Frame:$n,Send:rt,Zap:Ki,Flame:mi,Link:Yn,Loader:Ir,Loader2:kr,RotateCw:en,RefreshCcw:An,CircleDotDashed:te,RadioBroadcast:Si};function Fl(e){if(!e)return vi;if(Pl[e])return Pl[e];let t=e.trim();if(Pl[t])return Pl[t];let n=t.replace(/[-_\s]+(.)?/g,(e,t)=>t?t.toUpperCase():``),r=n.charAt(0).toUpperCase()+n.slice(1);if(Pl[r])return Pl[r];let i=Object.keys(Pl).find(e=>e.toLowerCase()===t.toLowerCase()||e.toLowerCase()===t.replace(/[^a-z0-9]/gi,``).toLowerCase());return i&&Pl[i]?Pl[i]:vi}function Il(e,t,n=``){if(!e)return n;for(let n of t)if(n in e&&e[n]!==void 0&&e[n]!==null)return String(e[n]);return n}function Ll({elementId:e,fieldKey:t,value:n,defaultFallback:r=``,placeholder:i=`Type text...`,multiline:a=!1,className:o=``,style:s={},as:c=`span`}){let l=P(e=>e.isPreviewMode),[u,d]=N.useState(!1),f=N.useRef(null),p=n??r;N.useEffect(()=>{f.current&&!u&&(f.current.innerText=p)},[p,u]);let m=e=>{l||(e.stopPropagation(),d(!0),setTimeout(()=>{if(f.current){f.current.focus();let e=document.createRange();e.selectNodeContents(f.current);let t=window.getSelection();t&&(t.removeAllRanges(),t.addRange(e))}},10))},h=()=>{if(!u)return;d(!1);let n=f.current?f.current.innerText.trimEnd():p,r=I.getState(),i=r.activeProject;if(!i)return;let a=i.pages.find(e=>e.id===r.activePageId)?.elements.find(t=>t.id===e);if(a){let i={...a.content,[t]:n};r.pushSnapshot(`Edit ${t}`),r.updateElement(e,{content:i},!1)}};return(0,F.jsxDEV)(c,{ref:f,contentEditable:u&&!l,suppressContentEditableWarning:!0,onDoubleClick:m,onBlur:h,onKeyDown:u?e=>{e.key===`Escape`?(e.preventDefault(),d(!1),f.current&&(f.current.innerText=p)):e.key===`Enter`&&(!a||e.metaKey||e.ctrlKey)&&(e.preventDefault(),h())}:void 0,onMouseDown:e=>{u&&e.stopPropagation()},onClick:e=>{u&&e.stopPropagation()},style:{...s,cursor:l?void 0:`text`,pointerEvents:l?void 0:`auto`,outline:u?`1.5px dashed #0071e3`:void 0,outlineOffset:u?`1px`:void 0,borderRadius:u?`2px`:void 0},className:j(o,u&&`bg-[#0071e3]/10 select-text`,!l&&!u&&`hover:outline-dashed hover:outline-1 hover:outline-[#0071e3]/30 transition-all cursor-text`),title:l?void 0:`Double-click to edit`,children:p||(l?``:(0,F.jsxDEV)(`span`,{className:`opacity-30 italic`,children:i},void 0,!1,{fileName:U,lineNumber:827,columnNumber:40},this))},void 0,!1,{fileName:U,lineNumber:799,columnNumber:5},this)}function Rl({element:e,styles:t,content:n}){let r=n.html||n.src||``;return N.useEffect(()=>{let t=t=>{if(t.data?.type===`CYRUS_HTML_PAGE_HEIGHT`&&typeof t.data.height==`number`){let n=Math.ceil(t.data.height);if(n>200&&Math.abs(n-(e.height||0))>30){I.getState().updateElement(e.id,{height:n},!1);let t=I.getState().activePageId;t&&I.getState().updatePageSettings(t,{minHeight:n})}}};return window.addEventListener(`message`,t),()=>window.removeEventListener(`message`,t)},[e.id,e.height]),r?(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,borderRadius:`${t.borderRadius??0}px`,overflow:`hidden`,opacity:t.opacity??1,position:`relative`},className:`relative group select-none`,children:[(0,F.jsxDEV)(`div`,{className:`absolute top-4 left-1/2 -translate-x-1/2 z-50 pointer-events-auto flex items-center gap-3 px-4 py-2 rounded-full bg-[#1c1c1e]/90 text-white backdrop-blur-md shadow-2xl border border-white/20 transition-all hover:scale-105`,children:[(0,F.jsxDEV)(`span`,{className:`text-[12.5px] font-medium text-white/90`,children:`Single HTML Page`},void 0,!1,{fileName:U,lineNumber:917,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),t.preventDefault();let n=I.getState().activeProject,i=I.getState().activePageId;if(!n||!i||!n.pages.find(e=>e.id===i))return;I.getState().pushSnapshot(`Convert to Editable Canvas Elements`);let a=hc(r,e.name||`AI Design`),o=n.pages.map(e=>e.id===i?{...e,settings:{...e.settings,backgroundColor:a.theme===`dark`?`#09090b`:`#f8f9fa`,minHeight:a.minHeight},elements:a.elements}:e);I.getState().setProject({...n,pages:o,updatedAt:new Date().toISOString()}),a.elements.length>0&&I.getState().selectElement(a.elements[0].id)},className:`px-3.5 py-1 bg-gradient-to-r from-[#7d2ae8] to-[#0071e3] hover:from-[#6c1fd4] hover:to-[#005bb5] text-white rounded-full text-[12px] font-semibold transition-all shadow-md active:scale-95 cursor-pointer flex items-center gap-1.5`,children:`✨ Convert to Editable Elements`},void 0,!1,{fileName:U,lineNumber:918,columnNumber:9},this)]},void 0,!0,{fileName:U,lineNumber:916,columnNumber:7},this),(0,F.jsxDEV)(`iframe`,{srcDoc:r,sandbox:`allow-same-origin allow-scripts`,style:{width:`100%`,height:`100%`,border:`none`,display:`block`,transformOrigin:`top left`,pointerEvents:`none`},scrolling:`no`},void 0,!1,{fileName:U,lineNumber:927,columnNumber:7},this)]},void 0,!0,{fileName:U,lineNumber:904,columnNumber:5},this):(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:`#0f0f0f`,borderRadius:`${t.borderRadius??0}px`,pointerEvents:`none`},className:`flex items-center justify-center text-white/30 text-[13px] select-none pointer-events-none`,children:`No HTML content`},void 0,!1,{fileName:U,lineNumber:894,columnNumber:7},this)}function zl({element:e,isSelected:t,childElements:n,itemContext:r}){let i=I(e=>e.activeProject?.designSystem),a=I(e=>e.activeProject?.variables),o=I(e=>e.activeProject?.useSampleData??!0),s=El(e,a,o,r),c=s.content,l=s.styles,{type:u}=e;if(s.hidden)return null;if(e.collectionBinding?.variableKey&&!r&&!n){let t=wl(Tl(a,o),e.collectionBinding.variableKey);if(Array.isArray(t)&&t.length>0){let{layout:n=`grid`,columns:r=3,gap:i=16,itemAlias:a=`item`}=e.collectionBinding;return(0,F.jsxDEV)(`div`,{style:{display:n===`grid`?`grid`:`flex`,gridTemplateColumns:n===`grid`?`repeat(${r}, 1fr)`:void 0,flexDirection:n===`column`?`column`:`row`,gap:`${i}px`,width:`100%`,height:`100%`},children:t.map((t,n)=>(0,F.jsxDEV)(Bl,{element:{...e,collectionBinding:void 0},itemContext:{alias:a,data:t}},`${e.id}_rep_${n}`,!1,{fileName:U,lineNumber:975,columnNumber:13},this))},void 0,!1,{fileName:U,lineNumber:964,columnNumber:9},this)}}let f=i?.components,p=f?.button,m=f?.card;f?.input;let h=p?.primaryBackground||i?.colors?.primary||`#0071e3`;m?.background||i?.colors?.surface;let g=i?.colors?.text||`#1d1d1f`,_=i?.colors?.textSecondary||`#86868b`,v=m?.border||i?.colors?.border||`#e5e5ea`,y=i?.typography?.body?.fontFamily,x={none:``,subtle:`shadow-apple-sm`,sm:`shadow-apple-sm`,md:`shadow-apple-md`,lg:`shadow-apple-lg`}[l.shadow||`none`]||``,S=I(e=>e.customComponents)?.[u];if(S){let e=l.backgroundColor||S.defaultStyles?.backgroundColor||`#18181b`,t=l.textColor||S.defaultStyles?.textColor||`#ffffff`,n=l.borderRadius??S.defaultStyles?.borderRadius??12,r=c.title||c.headline||S.title||`Custom Component`,i=c.description||c.text||S.description||``,a=c.badge||S.defaultContent?.badge,o=c.icon||S.icon,s=o&&Pl[o]?Pl[o]:vi;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,backgroundColor:e,color:t,borderRadius:`${n}px`,padding:`${l.padding??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`rgba(255, 255, 255, 0.1)`,display:`flex`,flexDirection:`column`,justifyContent:`space-between`,overflow:`hidden`},className:j(`relative shadow-sm transition-all`,x),children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between w-full mb-2`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`w-7 h-7 rounded-lg bg-white/10 flex items-center justify-center`,children:(0,F.jsxDEV)(s,{className:`w-4 h-4`},void 0,!1,{fileName:U,lineNumber:1045,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:1044,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`font-semibold text-[14px]`,children:r},void 0,!1,{fileName:U,lineNumber:1047,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1043,columnNumber:11},this),a&&(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full text-[10px] font-bold bg-[#0071e3]/20 text-[#0071e3] border border-[#0071e3]/30`,children:a},void 0,!1,{fileName:U,lineNumber:1050,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1042,columnNumber:9},this),i&&(0,F.jsxDEV)(`p`,{className:`text-[12px] opacity-80 leading-relaxed`,children:i},void 0,!1,{fileName:U,lineNumber:1055,columnNumber:18},this),c.buttonText&&(0,F.jsxDEV)(`button`,{type:`button`,className:`mt-3 px-3 py-1.5 rounded-lg bg-[#0071e3] text-white text-[12px] font-semibold flex items-center justify-center gap-1 hover:opacity-90`,children:[(0,F.jsxDEV)(`span`,{children:c.buttonText},void 0,!1,{fileName:U,lineNumber:1061,columnNumber:13},this),(0,F.jsxDEV)(Aa,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:U,lineNumber:1062,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1057,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:1024,columnNumber:7},this)}switch(u){case`heading`:{let t=l.textColor||g,n=Il(c,[`text`,`title`,`headline`,`content`],`Add a heading`);return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,fontFamily:l.fontFamily||y,color:t,fontSize:`${l.fontSize||32}px`,fontWeight:l.fontWeight||`800`,fontStyle:l.fontStyle||`normal`,textAlign:l.textAlign||`left`,lineHeight:l.lineHeight||1.2,letterSpacing:l.letterSpacing?`${l.letterSpacing}px`:void 0,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:l.backgroundColor||`transparent`,borderRadius:`${l.borderRadius??0}px`,borderWidth:`${l.borderWidth??0}px`,borderColor:l.borderColor||`transparent`,padding:`${l.padding??0}px`,paddingLeft:`${l.paddingLeft??l.padding??0}px`,paddingRight:`${l.paddingRight??l.padding??0}px`,paddingTop:`${l.paddingTop??l.padding??0}px`,paddingBottom:`${l.paddingBottom??l.padding??0}px`,opacity:l.opacity??1,display:`flex`,alignItems:l.alignItems||`center`,justifyContent:l.textAlign===`center`?`center`:l.textAlign===`right`?`flex-end`:`flex-start`,overflow:`hidden`},className:`select-none ${x}`,children:(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`text`,value:n,defaultFallback:`Add a heading`,placeholder:`Add a heading`,as:`span`,className:`w-full`},void 0,!1,{fileName:U,lineNumber:1105,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:1074,columnNumber:9},this)}case`paragraph`:case`text`:{let t=l.textColor||_,n=Il(c,[`text`,`description`,`content`],`Add body text...`);return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,fontFamily:l.fontFamily||y,color:t,fontSize:`${l.fontSize||15}px`,fontWeight:l.fontWeight||`400`,fontStyle:l.fontStyle||`normal`,textAlign:l.textAlign||`left`,lineHeight:l.lineHeight||1.5,letterSpacing:l.letterSpacing?`${l.letterSpacing}px`:void 0,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:l.backgroundColor||`transparent`,borderRadius:`${l.borderRadius??0}px`,borderWidth:`${l.borderWidth??0}px`,borderColor:l.borderColor||`transparent`,padding:`${l.padding??0}px`,paddingLeft:`${l.paddingLeft??l.padding??0}px`,paddingRight:`${l.paddingRight??l.padding??0}px`,paddingTop:`${l.paddingTop??l.padding??0}px`,paddingBottom:`${l.paddingBottom??l.padding??0}px`,opacity:l.opacity??1,display:`flex`,alignItems:l.alignItems||`flex-start`,justifyContent:l.textAlign===`center`?`center`:l.textAlign===`right`?`flex-end`:`flex-start`,overflow:`hidden`},className:`select-none ${x}`,children:(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`text`,value:n,defaultFallback:`Add body text...`,placeholder:`Add body text...`,multiline:!0,as:`p`,className:`w-full leading-relaxed`},void 0,!1,{fileName:U,lineNumber:1154,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:1123,columnNumber:9},this)}case`badge`:{let t=l.backgroundColor||`${h}15`,n=l.textColor||h,r=l.borderRadius??999,i=Il(c,[`text`,`label`,`badge`],`Badge`),a=c.icon,o=a&&Pl[a]?Pl[a]:null;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,fontFamily:l.fontFamily||y,backgroundColor:t,color:n,fontSize:`${l.fontSize||11}px`,fontWeight:l.fontWeight||`600`,borderRadius:`${r}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`${n}30`,paddingLeft:`${l.paddingLeft??12}px`,paddingRight:`${l.paddingRight??12}px`,paddingTop:`${l.paddingTop??4}px`,paddingBottom:`${l.paddingBottom??4}px`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,gap:`4px`,opacity:l.opacity??1},className:`select-none ${x}`,children:[o&&(0,F.jsxDEV)(o,{className:`w-3 h-3 shrink-0`},void 0,!1,{fileName:U,lineNumber:1202,columnNumber:24},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`text`,value:i,defaultFallback:`Badge`,placeholder:`Badge`,as:`span`},void 0,!1,{fileName:U,lineNumber:1203,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:1177,columnNumber:9},this)}case`navbar`:{let t=l.backgroundColor||`#0f0f11`,n=l.textColor||`#ffffff`,r=l.borderRadius??12,i=Il(c,[`brandName`,`title`],`Brand`),a=c.icon,o=a&&Pl[a]?Pl[a]:vi,s=Array.isArray(c.links)?c.links:[`Features`,`Pricing`,`Docs`,`About`],u=Il(c,[`buttonText`],``),d=c.iconBgColor||`${n}18`,f=c.iconColor||n,p=c.linkColor||`${n}cc`,m=c.buttonBgColor||n,h=c.buttonTextColor||t;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,fontFamily:l.fontFamily||y,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:t,color:n,borderRadius:`${r}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#27272a`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,paddingLeft:`${l.paddingLeft??l.padding??24}px`,paddingRight:`${l.paddingRight??l.padding??24}px`,paddingTop:`${l.paddingTop??12}px`,paddingBottom:`${l.paddingBottom??12}px`,opacity:l.opacity??1,backdropFilter:l.backdropBlur?`blur(${l.backdropBlur}px)`:void 0},className:`flex items-center justify-between select-none pointer-events-none overflow-hidden ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5 shrink-0`,children:[(0,F.jsxDEV)(`div`,{style:{backgroundColor:d,color:f},className:`w-8 h-8 rounded-lg flex items-center justify-center font-bold`,children:(0,F.jsxDEV)(o,{className:`w-4 h-4`},void 0,!1,{fileName:U,lineNumber:1259,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:1255,columnNumber:13},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`brandName`,value:i,defaultFallback:`Brand`,placeholder:`Brand`,as:`span`,style:{color:n,fontSize:`${l.fontSize||16}px`,fontWeight:l.fontWeight||`700`}},void 0,!1,{fileName:U,lineNumber:1261,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1254,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`hidden md:flex items-center gap-6 text-[13px] font-medium`,style:{color:p},children:s.map((e,t)=>(0,F.jsxDEV)(`span`,{className:`hover:opacity-100 transition-opacity truncate max-w-[120px]`,children:e},t,!1,{fileName:U,lineNumber:1274,columnNumber:15},this))},void 0,!1,{fileName:U,lineNumber:1272,columnNumber:11},this),(0,F.jsxDEV)(`div`,{style:{backgroundColor:m,color:h},className:`px-4 py-1.5 rounded-lg text-[12px] font-semibold shrink-0 shadow-sm`,children:(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`buttonText`,value:u,defaultFallback:`Get Started`,placeholder:`Button`,as:`span`},void 0,!1,{fileName:U,lineNumber:1284,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:1280,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:1232,columnNumber:9},this)}case`hero`:case`heroSection`:{let t=l.backgroundColor||`#18181b`,n=l.textColor||`#ffffff`,r=l.borderRadius??16,i=c.badge,a=Il(c,[`headline`,`title`,`text`],`Transform Your Digital Experience`),o=Il(c,[`subhead`,`subtitle`,`text`,`description`],`Build, deploy, and scale world-class visual user interfaces with generative intelligence.`),s=Il(c,[`buttonText`],`Get Started`),u=Il(c,[`secondaryButtonText`],``),d=c.imageUrl||c.src,f=c.badgeBgColor||`${n}15`,p=c.badgeTextColor||n,m=c.subheadColor||`${n}aa`,h=c.buttonBgColor||n,g=c.buttonTextColor||t,_=c.secondaryButtonBgColor||`rgba(255,255,255,0.05)`,v=c.secondaryButtonTextColor||n,b=c.secondaryButtonBorderColor||`${n}30`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,fontFamily:l.fontFamily||y,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:t,color:n,borderRadius:`${r}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#27272a`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,padding:`${l.padding??32}px`,opacity:l.opacity??1,backdropFilter:l.backdropBlur?`blur(${l.backdropBlur}px)`:void 0},className:`flex flex-col items-center justify-center text-center select-none pointer-events-none overflow-hidden ${x}`,children:[(0,F.jsxDEV)(`div`,{style:{backgroundColor:f,color:p,borderColor:`${n}25`},className:`inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-[11px] font-semibold border mb-4`,children:(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`badge`,value:i,defaultFallback:`New Feature`,placeholder:`Badge`,as:`span`},void 0,!1,{fileName:U,lineNumber:1342,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:1338,columnNumber:11},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`headline`,value:a,defaultFallback:`Transform Your Digital Experience`,placeholder:`Headline`,as:`h1`,multiline:!0,style:{color:n,fontSize:`${l.fontSize||32}px`,fontWeight:l.fontWeight||`800`},className:`max-w-3xl leading-tight tracking-tight`},void 0,!1,{fileName:U,lineNumber:1352,columnNumber:11},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`subhead`,value:o,defaultFallback:`Build, deploy, and scale world-class visual user interfaces with generative intelligence.`,placeholder:`Subhead description`,as:`p`,multiline:!0,style:{color:m},className:`mt-3 text-[14px] max-w-xl leading-relaxed`},void 0,!1,{fileName:U,lineNumber:1364,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`mt-6 flex items-center justify-center gap-3 flex-wrap`,children:[(0,F.jsxDEV)(`div`,{style:{backgroundColor:h,color:g},className:`px-5 py-2 rounded-xl text-[13px] font-bold shadow-md flex items-center gap-1.5`,children:[(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`buttonText`,value:s,defaultFallback:`Get Started`,placeholder:`Button`,as:`span`},void 0,!1,{fileName:U,lineNumber:1381,columnNumber:15},this),(0,F.jsxDEV)(Aa,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:U,lineNumber:1389,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:1377,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{backgroundColor:_,color:v,borderColor:b},className:`px-5 py-2 rounded-xl text-[13px] font-semibold border`,children:(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`secondaryButtonText`,value:u,defaultFallback:`Learn More`,placeholder:`Secondary button`,as:`span`},void 0,!1,{fileName:U,lineNumber:1395,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:1391,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1376,columnNumber:11},this),d&&(0,F.jsxDEV)(`div`,{className:`mt-8 w-full max-w-2xl rounded-xl overflow-hidden border border-white/10 shadow-xl`,children:(0,F.jsxDEV)(`img`,{src:d,alt:`Hero`,className:`w-full h-auto object-cover max-h-64`},void 0,!1,{fileName:U,lineNumber:1408,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:1407,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1319,columnNumber:9},this)}case`featureCard`:case`card`:{let t=l.backgroundColor||`#18181b`,n=l.textColor||`#ffffff`,r=l.borderRadius??14,i=Il(c,[`title`,`headline`],`Feature Card`),a=Il(c,[`subtitle`],``),o=Il(c,[`text`,`description`],`Feature description details and benefits.`),s=c.icon,u=s&&Pl[s]?Pl[s]:vi,d=Il(c,[`buttonText`],``),f=c.iconBgColor||`${n}18`,p=c.iconColor||n,m=c.badgeBgColor||`${n}15`,h=c.badgeTextColor||n,g=c.subtitleColor||`${n}88`,_=c.descColor||`${n}aa`,v=c.buttonBgColor||n,b=c.buttonTextColor||t;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,fontFamily:l.fontFamily||y,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:t,color:n,borderRadius:`${r}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#27272a`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,padding:`${l.padding??24}px`,opacity:l.opacity??1,backdropFilter:l.backdropBlur?`blur(${l.backdropBlur}px)`:void 0},className:`flex flex-col justify-between select-none pointer-events-none overflow-hidden ${x}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,F.jsxDEV)(`div`,{style:{backgroundColor:f,color:p},className:`w-10 h-10 rounded-xl flex items-center justify-center font-bold`,children:(0,F.jsxDEV)(u,{className:`w-5 h-5`},void 0,!1,{fileName:U,lineNumber:1462,columnNumber:17},this)},void 0,!1,{fileName:U,lineNumber:1458,columnNumber:15},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`badge`,value:c.badge,placeholder:`Badge`,as:`span`,style:{backgroundColor:m,color:h},className:`text-[10px] font-semibold px-2 py-0.5 rounded-md`},void 0,!1,{fileName:U,lineNumber:1464,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:1457,columnNumber:13},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`subtitle`,value:a,placeholder:`Subtitle`,as:`span`,style:{color:g},className:`text-[11px] font-semibold uppercase tracking-wider block mb-1`},void 0,!1,{fileName:U,lineNumber:1475,columnNumber:13},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`title`,value:i,defaultFallback:`Feature Card`,placeholder:`Card title`,as:`h3`,style:{color:n,fontSize:`${l.fontSize||16}px`,fontWeight:l.fontWeight||`700`}},void 0,!1,{fileName:U,lineNumber:1485,columnNumber:13},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`text`,value:o,defaultFallback:`Feature description details and benefits.`,placeholder:`Description`,as:`p`,multiline:!0,style:{color:_},className:`text-[12px] mt-1.5 leading-relaxed`},void 0,!1,{fileName:U,lineNumber:1495,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1456,columnNumber:11},this),(0,F.jsxDEV)(`div`,{style:{backgroundColor:c.buttonBgColor?v:`transparent`,color:b},className:`mt-4 inline-flex items-center gap-1.5 text-[12px] font-semibold ${c.buttonBgColor?`px-3 py-1.5 rounded-lg`:``}`,children:[(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`buttonText`,value:d,placeholder:`Button`,as:`span`},void 0,!1,{fileName:U,lineNumber:1512,columnNumber:13},this),(0,F.jsxDEV)(Aa,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:U,lineNumber:1519,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1508,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:1437,columnNumber:9},this)}case`pricingCard`:{let t=l.backgroundColor||`#18181b`,n=l.textColor||`#ffffff`,r=l.borderRadius??16,i=Il(c,[`planName`,`title`],`Pro Plan`),a=Il(c,[`price`],`$29/mo`),o=c.badge,s=Array.isArray(c.features)?c.features:[`Unlimited Projects`,`Custom Domains`,`Priority 24/7 Support`],u=Il(c,[`buttonText`],`Choose Plan`),d=c.badgeBgColor||`${n}20`,f=c.badgeTextColor||n,p=c.priceColor||n,m=c.featuresColor||`${n}dd`,h=c.buttonBgColor||n,g=c.buttonTextColor||t;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,fontFamily:l.fontFamily||y,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:t,color:n,borderRadius:`${r}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#27272a`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,padding:`${l.padding??24}px`,opacity:l.opacity??1,backdropFilter:l.backdropBlur?`blur(${l.backdropBlur}px)`:void 0},className:`flex flex-col justify-between select-none pointer-events-none overflow-hidden ${x}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`planName`,value:i,defaultFallback:`Pro Plan`,placeholder:`Plan name`,as:`h3`,style:{color:n,fontSize:`${l.fontSize||18}px`,fontWeight:l.fontWeight||`700`}},void 0,!1,{fileName:U,lineNumber:1564,columnNumber:15},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`badge`,value:o,placeholder:`Popular`,as:`span`,style:{backgroundColor:d,color:f},className:`text-[10.5px] font-bold px-2 py-0.5 rounded-full`},void 0,!1,{fileName:U,lineNumber:1573,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:1563,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`mt-3 flex items-baseline gap-1`,children:(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`price`,value:a,defaultFallback:`$29/mo`,placeholder:`$0/mo`,as:`span`,style:{color:p},className:`text-[28px] font-extrabold tracking-tight`},void 0,!1,{fileName:U,lineNumber:1585,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:1584,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`mt-5 space-y-2 text-[12px]`,children:s.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,style:{color:m},children:[(0,F.jsxDEV)($r,{className:`w-3.5 h-3.5 text-[#34c759] shrink-0`},void 0,!1,{fileName:U,lineNumber:1600,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`truncate`,children:e},void 0,!1,{fileName:U,lineNumber:1601,columnNumber:19},this)]},t,!0,{fileName:U,lineNumber:1599,columnNumber:17},this))},void 0,!1,{fileName:U,lineNumber:1597,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1562,columnNumber:11},this),(0,F.jsxDEV)(`div`,{style:{backgroundColor:h,color:g},className:`mt-6 w-full py-2 rounded-xl text-[12.5px] font-bold text-center shadow-sm`,children:(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`buttonText`,value:u,defaultFallback:`Choose Plan`,placeholder:`Button`,as:`span`},void 0,!1,{fileName:U,lineNumber:1611,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:1607,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:1543,columnNumber:9},this)}case`metricCard`:case`statCard`:case`kpiCard`:case`metric`:{let t=l.backgroundColor||`#18181b`,n=l.textColor||`#ffffff`,r=l.borderRadius??14,i=Il(c,[`value`],`100%`),a=Il(c,[`title`,`label`],`Total Metric`),o=Il(c,[`trend`,`change`],``),s=c.icon,u=s&&Pl[s]?Pl[s]:_t,d=c.valueColor||n,f=c.labelColor||`${n}88`,p=c.trendColor||`#34c759`,m=c.iconBgColor||`${n}15`,h=c.iconColor||n;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,fontFamily:l.fontFamily||y,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:t,color:n,borderRadius:`${r}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#27272a`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,padding:`${l.padding??20}px`,opacity:l.opacity??1,backdropFilter:l.backdropBlur?`blur(${l.backdropBlur}px)`:void 0},className:`flex items-center justify-between select-none pointer-events-none overflow-hidden ${x}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`title`,value:a,defaultFallback:`Total Metric`,placeholder:`Metric title`,as:`span`,style:{color:f},className:`text-[11px] font-semibold uppercase tracking-wider block`},void 0,!1,{fileName:U,lineNumber:1664,columnNumber:13},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`value`,value:i,defaultFallback:`100%`,placeholder:`100%`,as:`div`,style:{color:d,fontSize:`${l.fontSize||24}px`,fontWeight:l.fontWeight||`800`},className:`mt-1 leading-tight`},void 0,!1,{fileName:U,lineNumber:1674,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{color:p},className:`text-[11px] font-bold flex items-center gap-1 mt-1.5`,children:[(0,F.jsxDEV)(_t,{className:`w-3 h-3`},void 0,!1,{fileName:U,lineNumber:1685,columnNumber:15},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`trend`,value:o,placeholder:`+0%`,as:`span`},void 0,!1,{fileName:U,lineNumber:1686,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:1684,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1663,columnNumber:11},this),(0,F.jsxDEV)(`div`,{style:{backgroundColor:m,color:h},className:`w-10 h-10 rounded-xl flex items-center justify-center shrink-0`,children:(0,F.jsxDEV)(u,{className:`w-5 h-5`},void 0,!1,{fileName:U,lineNumber:1700,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:1696,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:1644,columnNumber:9},this)}case`testimonialCard`:{let t=l.backgroundColor||`#18181b`,n=l.textColor||`#ffffff`,r=l.borderRadius??14,i=Il(c,[`text`,`quote`],`This tool has completely revolutionized our design and development workflow.`),a=Il(c,[`title`,`author`,`name`],`Alex Morgan`),o=Il(c,[`subtitle`,`role`],`Product Lead at Acme`),s=c.imageUrl||c.avatar,u=c.rating??5,d=c.quoteColor||`${n}dd`,f=c.authorColor||n,p=c.roleColor||`${n}77`,m=c.starColor||`#ff9500`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,fontFamily:l.fontFamily||y,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:t,color:n,borderRadius:`${r}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#27272a`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,padding:`${l.padding??24}px`,opacity:l.opacity??1,backdropFilter:l.backdropBlur?`blur(${l.backdropBlur}px)`:void 0},className:`flex flex-col justify-between select-none pointer-events-none overflow-hidden ${x}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 mb-3`,style:{color:m},children:[...[,,,,,]].map((e,t)=>(0,F.jsxDEV)(Wr,{className:`w-3.5 h-3.5 ${t<u?`fill-current`:`opacity-20`}`},t,!1,{fileName:U,lineNumber:1744,columnNumber:17},this))},void 0,!1,{fileName:U,lineNumber:1742,columnNumber:13},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`text`,value:i,defaultFallback:`This tool has completely revolutionized our design and development workflow.`,placeholder:`Quote text`,as:`p`,multiline:!0,style:{color:d},className:`text-[13px] leading-relaxed italic`},void 0,!1,{fileName:U,lineNumber:1748,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1741,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3 mt-4 pt-3 border-t`,style:{borderColor:`${n}15`},children:[s?(0,F.jsxDEV)(`img`,{src:s,alt:a,className:`w-9 h-9 rounded-full object-cover shrink-0`},void 0,!1,{fileName:U,lineNumber:1763,columnNumber:15},this):(0,F.jsxDEV)(`div`,{style:{backgroundColor:`${n}20`,color:n},className:`w-9 h-9 rounded-full flex items-center justify-center font-bold text-xs`,children:a.charAt(0)||`A`},void 0,!1,{fileName:U,lineNumber:1765,columnNumber:15},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`title`,value:a,defaultFallback:`Alex Morgan`,placeholder:`Author name`,as:`div`,style:{color:f},className:`text-[12.5px] font-bold leading-tight`},void 0,!1,{fileName:U,lineNumber:1770,columnNumber:15},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`subtitle`,value:o,defaultFallback:`Product Lead`,placeholder:`Role / Title`,as:`div`,style:{color:p},className:`text-[11px]`},void 0,!1,{fileName:U,lineNumber:1780,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:1769,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1761,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:1722,columnNumber:9},this)}case`footer`:{let t=l.backgroundColor||`#0f0f11`,n=l.textColor||`#ffffff`,r=l.borderRadius??0,i=Il(c,[`brandName`,`title`],`Cyrus`),a=Il(c,[`text`,`copyright`],`© 2026 All rights reserved.`),o=Array.isArray(c.links)?c.links:[`Privacy`,`Terms`,`Docs`,`GitHub`];return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,fontFamily:l.fontFamily||y,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:t,color:n,borderRadius:`${r}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#27272a`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,paddingLeft:`${l.paddingLeft??l.padding??24}px`,paddingRight:`${l.paddingRight??l.padding??24}px`,paddingTop:`${l.paddingTop??16}px`,paddingBottom:`${l.paddingBottom??16}px`,opacity:l.opacity??1,backdropFilter:l.backdropBlur?`blur(${l.backdropBlur}px)`:void 0},className:`flex items-center justify-between select-none pointer-events-none overflow-hidden ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`brandName`,value:i,defaultFallback:`Cyrus`,placeholder:`Brand`,as:`span`,style:{color:n},className:`font-bold text-[14px]`},void 0,!1,{fileName:U,lineNumber:1828,columnNumber:13},this),(0,F.jsxDEV)(`span`,{style:{color:`${n}66`},className:`text-[11px] flex items-center gap-1`,children:[`—`,(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`copyright`,value:a,defaultFallback:`© 2026 All rights reserved.`,placeholder:`Copyright`,as:`span`},void 0,!1,{fileName:U,lineNumber:1840,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:1838,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1827,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-5 text-[11.5px]`,style:{color:`${n}99`},children:o.map((e,t)=>(0,F.jsxDEV)(`span`,{children:e},t,!1,{fileName:U,lineNumber:1853,columnNumber:15},this))},void 0,!1,{fileName:U,lineNumber:1851,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:1805,columnNumber:9},this)}case`button`:{let t=l.backgroundColor||h,n=l.textColor||p?.primaryText||`#ffffff`,r=Il(c,[`label`,`text`,`buttonText`],`Button`),a=c.icon,o=a&&a!==`none`?Pl[a]:null,s=c.iconPosition||`right`,u=l.borderRadius??p?.borderRadius??i?.radius?.medium??10,d=l.paddingTop??p?.paddingY??10,f=l.paddingBottom??p?.paddingY??10,m=l.paddingLeft??p?.paddingX??18,g=l.paddingRight??p?.paddingX??18;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,fontFamily:l.fontFamily||y,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:t,color:n,fontSize:`${l.fontSize||p?.fontSize||14}px`,fontWeight:l.fontWeight||p?.fontWeight||`500`,fontStyle:l.fontStyle||`normal`,borderRadius:`${u}px`,borderWidth:`${l.borderWidth??0}px`,borderColor:l.borderColor||v,borderStyle:l.borderStyle||`solid`,paddingTop:`${d}px`,paddingBottom:`${f}px`,paddingLeft:`${m}px`,paddingRight:`${g}px`,opacity:l.opacity??1,backdropFilter:l.backdropBlur?`blur(${l.backdropBlur}px)`:void 0},className:`inline-flex items-center justify-center gap-2 select-none pointer-events-none transition-apple ${x}`,children:[o&&s===`left`&&(0,F.jsxDEV)(o,{className:`w-4 h-4 shrink-0`},void 0,!1,{fileName:U,lineNumber:1899,columnNumber:51},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`label`,value:r,defaultFallback:`Button`,placeholder:`Button text`,as:`span`,className:`truncate`},void 0,!1,{fileName:U,lineNumber:1900,columnNumber:11},this),o&&s===`right`&&(0,F.jsxDEV)(o,{className:`w-4 h-4 shrink-0`},void 0,!1,{fileName:U,lineNumber:1909,columnNumber:52},this)]},void 0,!0,{fileName:U,lineNumber:1874,columnNumber:9},this)}case`sidebar`:{let e=c.brandName??``,t=Array.isArray(c.items)?c.items:[],n=c.userName??``,r=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:r||`#1d1d1f`,borderRadius:`${l.borderRadius??14}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,padding:`20px 16px`,opacity:l.opacity??1},className:`flex flex-col justify-between select-none pointer-events-none ${x}`,children:[(e||t.length>0)&&(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-5`,children:[e&&(0,F.jsxDEV)(`div`,{style:{color:r||`#1d1d1f`},className:`text-[14px] font-bold flex items-center gap-2 px-2`,children:[(0,F.jsxDEV)(`div`,{className:`w-6 h-6 rounded-[6px] bg-[#1d1d1f] text-white flex items-center justify-center text-[11px]`,children:`C`},void 0,!1,{fileName:U,lineNumber:1940,columnNumber:19},this),(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:U,lineNumber:1943,columnNumber:19},this)]},void 0,!0,{fileName:U,lineNumber:1939,columnNumber:17},this),t.length>0&&(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:t.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5 px-2.5 py-1.5 rounded-[7px] text-[13px] font-medium ${t===0?`bg-[#e8f2fc] text-[#0071e3]`:``}`,style:t===0?void 0:{color:r?`${r}cc`:`#6e6e73`},children:[(0,F.jsxDEV)(yr,{className:`w-4 h-4`},void 0,!1,{fileName:U,lineNumber:1957,columnNumber:23},this),(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:U,lineNumber:1958,columnNumber:23},this)]},t,!0,{fileName:U,lineNumber:1950,columnNumber:21},this))},void 0,!1,{fileName:U,lineNumber:1948,columnNumber:17},this)]},void 0,!0,{fileName:U,lineNumber:1937,columnNumber:13},this),n&&(0,F.jsxDEV)(`div`,{className:`pt-3 border-t border-[#f4f4f6] flex items-center justify-between px-1`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`w-7 h-7 rounded-full bg-[#f4f4f6] border border-[#e5e5ea] flex items-center justify-center text-[#6e6e73] text-[11px] font-semibold`,children:`AR`},void 0,!1,{fileName:U,lineNumber:1969,columnNumber:17},this),(0,F.jsxDEV)(`span`,{style:{color:r||`#1d1d1f`},className:`text-[12px] font-medium`,children:n},void 0,!1,{fileName:U,lineNumber:1972,columnNumber:17},this)]},void 0,!0,{fileName:U,lineNumber:1968,columnNumber:15},this),(0,F.jsxDEV)(Sr,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:U,lineNumber:1974,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:1967,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:1921,columnNumber:9},this)}case`bottomNav`:{let e=c.items||[`Home`,`Search`,`Activity`,`Profile`],t=c.activeIndex||0,n=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:n||`#1d1d1f`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,opacity:l.opacity??1},className:`flex items-center justify-around px-4 select-none pointer-events-none ${x}`,children:e.map((e,r)=>{let i=r===t;return(0,F.jsxDEV)(`div`,{className:`flex flex-col items-center gap-0.5 text-[10px] font-medium ${i?`text-[#0071e3]`:``}`,style:i?void 0:{color:n?`${n}aa`:`#86868b`},children:[r===0&&(0,F.jsxDEV)(Me,{className:`w-4 h-4`},void 0,!1,{fileName:U,lineNumber:2011,columnNumber:31},this),r===1&&(0,F.jsxDEV)(lt,{className:`w-4 h-4`},void 0,!1,{fileName:U,lineNumber:2012,columnNumber:31},this),r===2&&(0,F.jsxDEV)(d,{className:`w-4 h-4`},void 0,!1,{fileName:U,lineNumber:2013,columnNumber:31},this),r===3&&(0,F.jsxDEV)(Na,{className:`w-4 h-4`},void 0,!1,{fileName:U,lineNumber:2014,columnNumber:31},this),(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:U,lineNumber:2015,columnNumber:17},this)]},r,!0,{fileName:U,lineNumber:2004,columnNumber:15},this)})},void 0,!1,{fileName:U,lineNumber:1987,columnNumber:9},this)}case`cta`:{let t=Il(c,[`headline`,`title`],`Ready to ship?`),n=Il(c,[`subhead`,`subtitle`,`text`,`description`],`Start building today.`),r=Il(c,[`buttonText`,`ctaText`,`label`],`Get Started`),i=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#1d1d1f`,color:i||`#ffffff`,borderRadius:`${l.borderRadius??18}px`,borderWidth:`${l.borderWidth??0}px`,borderColor:l.borderColor||`transparent`,borderStyle:(l.borderWidth??0)>0?`solid`:`none`,padding:`32px 40px`,opacity:l.opacity??1},className:`flex items-center justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`headline`,value:t,defaultFallback:`Ready to ship?`,placeholder:`Headline`,as:`h2`,style:{color:i||`#ffffff`},className:`text-[24px] font-bold tracking-tight mb-1`},void 0,!1,{fileName:U,lineNumber:2048,columnNumber:13},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`subhead`,value:n,defaultFallback:`Start building today.`,placeholder:`Subhead`,as:`p`,style:{color:i?`${i}cc`:`#a1a1a6`},className:`text-[14px]`},void 0,!1,{fileName:U,lineNumber:2058,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:2047,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`px-6 py-3 rounded-[10px] bg-[#0071e3] text-white text-[14px] font-medium shadow-apple-sm`,children:(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`buttonText`,value:r,defaultFallback:`Get Started`,placeholder:`Button`,as:`span`},void 0,!1,{fileName:U,lineNumber:2070,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:2069,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:2032,columnNumber:9},this)}case`statCard`:{let e=Il(c,[`title`],`Total Revenue`),t=Il(c,[`value`],`$128,450.00`),n=Il(c,[`change`],`+14.2%`),r=c.isPositive!==!1,i=Il(c,[`timeframe`],`vs last month`),a=Pl[c.icon]||_t,o=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:o||`#1d1d1f`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??20}px`,paddingRight:`${l.paddingRight??20}px`},className:`flex flex-col justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{style:{color:o?`${o}bb`:`#86868b`},className:`text-[12px] font-semibold`,children:e},void 0,!1,{fileName:U,lineNumber:2111,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`w-7 h-7 rounded-lg bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center`,children:(0,F.jsxDEV)(a,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:U,lineNumber:2113,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:2112,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:2110,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{style:{color:o||`#1d1d1f`},className:`text-[24px] font-extrabold tracking-tight`,children:t},void 0,!1,{fileName:U,lineNumber:2118,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 mt-1 text-[11px]`,children:[(0,F.jsxDEV)(`span`,{className:j(`inline-flex items-center gap-0.5 font-bold px-1.5 py-0.2 rounded-full`,r?`bg-[#34c759]/10 text-[#34c759]`:`bg-[#ff3b30]/10 text-[#ff3b30]`),children:[r?(0,F.jsxDEV)(_t,{className:`w-3 h-3`},void 0,!1,{fileName:U,lineNumber:2126,columnNumber:26},this):(0,F.jsxDEV)(de,{className:`w-3 h-3`},void 0,!1,{fileName:U,lineNumber:2126,columnNumber:63},this),n]},void 0,!0,{fileName:U,lineNumber:2120,columnNumber:15},this),(0,F.jsxDEV)(`span`,{style:{color:o?`${o}aa`:`#86868b`},children:i},void 0,!1,{fileName:U,lineNumber:2129,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:2119,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:2117,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:2093,columnNumber:9},this)}case`kpiCard`:{let e=c.title||`Quarterly Conversion Goal`,t=c.current||`$84,200`,n=c.target||`$100,000`,r=c.percentage||84,i=c.status||`On Track`,a=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:a||`#1d1d1f`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??20}px`,paddingRight:`${l.paddingRight??20}px`},className:`flex flex-col justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{style:{color:a?`${a}bb`:`#86868b`},className:`text-[12px] font-semibold`,children:e},void 0,!1,{fileName:U,lineNumber:2163,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full text-[10px] font-bold bg-[#34c759]/10 text-[#34c759]`,children:i},void 0,!1,{fileName:U,lineNumber:2164,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:2162,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`flex items-baseline justify-between mb-1.5`,children:[(0,F.jsxDEV)(`span`,{style:{color:a||`#1d1d1f`},className:`text-[22px] font-extrabold tracking-tight`,children:t},void 0,!1,{fileName:U,lineNumber:2171,columnNumber:15},this),(0,F.jsxDEV)(`span`,{style:{color:a?`${a}aa`:`#86868b`},className:`text-[11.5px] font-medium`,children:[`Goal: `,n]},void 0,!0,{fileName:U,lineNumber:2172,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:2170,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`w-full h-2 rounded-full bg-[#f4f4f6] overflow-hidden`,children:(0,F.jsxDEV)(`div`,{style:{width:`${Math.min(r,100)}%`},className:`h-full rounded-full bg-[#0071e3] transition-all`},void 0,!1,{fileName:U,lineNumber:2176,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:2175,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:2169,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:2145,columnNumber:9},this)}case`metric`:{let e=c.label||`Active Users`,t=c.value||`48,290`,n=c.badge,r=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`transparent`,color:r||`#1d1d1f`,borderRadius:`${l.borderRadius??0}px`,borderWidth:`${l.borderWidth??0}px`,borderColor:l.borderColor||`transparent`,borderStyle:(l.borderWidth??0)>0?`solid`:`none`,paddingLeft:`${l.paddingLeft??12}px`,paddingRight:`${l.paddingRight??12}px`,opacity:l.opacity??1},className:`flex flex-col justify-center select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{style:{color:r?`${r}bb`:`#86868b`},className:`flex items-center gap-1.5 text-[11px] font-semibold`,children:[(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:U,lineNumber:2210,columnNumber:13},this),n&&(0,F.jsxDEV)(`span`,{className:`px-1.5 py-0.2 rounded-full bg-[#34c759]/10 text-[#34c759] text-[9.5px] font-bold`,children:n},void 0,!1,{fileName:U,lineNumber:2212,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:2209,columnNumber:11},this),(0,F.jsxDEV)(`div`,{style:{color:r||`#1d1d1f`},className:`text-[28px] font-extrabold tracking-tight leading-none mt-1`,children:t},void 0,!1,{fileName:U,lineNumber:2217,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:2193,columnNumber:9},this)}case`chart`:case`lineChart`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??20}px`,paddingRight:`${l.paddingRight??20}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(Nl,{type:`line`,title:c.title||`Revenue Growth`,subtitle:c.subtitle,data:c.data,format:c.format||`currency`,secondaryFormat:c.secondaryFormat,prefix:c.prefix,suffix:c.suffix,primaryName:c.primaryName,secondaryName:c.secondaryName,minRange:c.minRange,maxRange:c.maxRange,yAxisTitle:c.yAxisTitle,xFormat:c.xFormat,xPrefix:c.xPrefix,xSuffix:c.xSuffix,xMinRange:c.xMinRange,xMaxRange:c.xMaxRange,xAxisTitle:c.xAxisTitle,xLabelAngle:c.xLabelAngle,color:l.textColor||`#7d2ae8`,width:e.width-40,height:e.height-40,showGrid:c.showGrid!==!1,showAxes:c.showAxes!==!1,showLegend:c.showLegend!==!1,showRightAxis:c.showRightAxis},void 0,!1,{fileName:U,lineNumber:2242,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:2227,columnNumber:9},this);case`multiLine`:case`multiLineChart`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??20}px`,paddingRight:`${l.paddingRight??20}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(Nl,{type:`multiLine`,title:c.title||`Comparison Analytics`,subtitle:c.subtitle,data:c.data,format:c.format||`currency`,secondaryFormat:c.secondaryFormat,prefix:c.prefix,suffix:c.suffix,secondaryPrefix:c.secondaryPrefix,secondarySuffix:c.secondarySuffix,primaryName:c.primaryName,secondaryName:c.secondaryName,minRange:c.minRange,maxRange:c.maxRange,secondaryMinRange:c.secondaryMinRange,secondaryMaxRange:c.secondaryMaxRange,yAxisTitle:c.yAxisTitle,xFormat:c.xFormat,xPrefix:c.xPrefix,xSuffix:c.xSuffix,xMinRange:c.xMinRange,xMaxRange:c.xMaxRange,xAxisTitle:c.xAxisTitle,xLabelAngle:c.xLabelAngle,color:l.textColor||`#7d2ae8`,secondaryColor:c.secondaryColor||`#0071e3`,width:e.width-40,height:e.height-40,showGrid:c.showGrid!==!1,showAxes:c.showAxes!==!1,showLegend:c.showLegend!==!1,showRightAxis:c.showRightAxis},void 0,!1,{fileName:U,lineNumber:2293,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:2278,columnNumber:9},this);case`areaChart`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??20}px`,paddingRight:`${l.paddingRight??20}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(Nl,{type:`area`,title:c.title||`Ingestion Volume`,subtitle:c.subtitle,data:c.data,format:c.format||`compact`,secondaryFormat:c.secondaryFormat,prefix:c.prefix,suffix:c.suffix,primaryName:c.primaryName,secondaryName:c.secondaryName,minRange:c.minRange,maxRange:c.maxRange,yAxisTitle:c.yAxisTitle,xFormat:c.xFormat,xPrefix:c.xPrefix,xSuffix:c.xSuffix,xMinRange:c.xMinRange,xMaxRange:c.xMaxRange,xAxisTitle:c.xAxisTitle,xLabelAngle:c.xLabelAngle,color:l.textColor||`#7d2ae8`,width:e.width-40,height:e.height-40,showGrid:c.showGrid!==!1,showAxes:c.showAxes!==!1,showRightAxis:c.showRightAxis},void 0,!1,{fileName:U,lineNumber:2348,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:2333,columnNumber:9},this);case`barChart`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??20}px`,paddingRight:`${l.paddingRight??20}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(Nl,{type:`bar`,title:c.title||`Weekly Volume`,subtitle:c.subtitle,data:c.data,format:c.format||`number`,secondaryFormat:c.secondaryFormat,prefix:c.prefix,suffix:c.suffix,primaryName:c.primaryName,secondaryName:c.secondaryName,minRange:c.minRange,maxRange:c.maxRange,yAxisTitle:c.yAxisTitle,xFormat:c.xFormat,xPrefix:c.xPrefix,xSuffix:c.xSuffix,xMinRange:c.xMinRange,xMaxRange:c.xMaxRange,xAxisTitle:c.xAxisTitle,xLabelAngle:c.xLabelAngle,color:l.textColor||`#34c759`,width:e.width-40,height:e.height-40,showGrid:c.showGrid!==!1,showAxes:c.showAxes!==!1,showRightAxis:c.showRightAxis},void 0,!1,{fileName:U,lineNumber:2397,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:2382,columnNumber:9},this);case`horizontalBar`:case`horizontalBarChart`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??20}px`,paddingRight:`${l.paddingRight??20}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(Nl,{type:`horizontalBar`,title:c.title||`Top Channels`,subtitle:c.subtitle,data:c.data,format:c.format||`compact`,secondaryFormat:c.secondaryFormat,prefix:c.prefix,suffix:c.suffix,primaryName:c.primaryName,secondaryName:c.secondaryName,minRange:c.minRange,maxRange:c.maxRange,yAxisTitle:c.yAxisTitle,xFormat:c.xFormat,xPrefix:c.xPrefix,xSuffix:c.xSuffix,xMinRange:c.xMinRange,xMaxRange:c.xMaxRange,xAxisTitle:c.xAxisTitle,xLabelAngle:c.xLabelAngle,color:l.textColor||`#0071e3`,width:e.width-40,height:e.height-40,showGrid:c.showGrid!==!1,showAxes:c.showAxes!==!1,showRightAxis:c.showRightAxis},void 0,!1,{fileName:U,lineNumber:2447,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:2432,columnNumber:9},this);case`stackedBar`:case`stackedBarChart`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??20}px`,paddingRight:`${l.paddingRight??20}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(Nl,{type:`stackedBar`,title:c.title||`Revenue vs Cost Breakdown`,subtitle:c.subtitle,data:c.data,format:c.format||`currency`,secondaryFormat:c.secondaryFormat,prefix:c.prefix,suffix:c.suffix,secondaryPrefix:c.secondaryPrefix,secondarySuffix:c.secondarySuffix,primaryName:c.primaryName,secondaryName:c.secondaryName,minRange:c.minRange,maxRange:c.maxRange,secondaryMinRange:c.secondaryMinRange,secondaryMaxRange:c.secondaryMaxRange,yAxisTitle:c.yAxisTitle,xFormat:c.xFormat,xPrefix:c.xPrefix,xSuffix:c.xSuffix,xMinRange:c.xMinRange,xMaxRange:c.xMaxRange,xAxisTitle:c.xAxisTitle,xLabelAngle:c.xLabelAngle,color:l.textColor||`#7d2ae8`,secondaryColor:c.secondaryColor||`#ff9500`,width:e.width-40,height:e.height-40,showGrid:c.showGrid!==!1,showAxes:c.showAxes!==!1,showLegend:c.showLegend!==!1,showRightAxis:c.showRightAxis},void 0,!1,{fileName:U,lineNumber:2497,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:2482,columnNumber:9},this);case`donutChart`:case`pieChart`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??20}px`,paddingRight:`${l.paddingRight??20}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(Nl,{type:e.type===`pieChart`?`pie`:`donut`,title:c.title||`Traffic Share`,subtitle:c.subtitle,data:c.data,format:c.format||`percentage`,width:e.width-40,height:e.height-50,showLegend:c.showLegend!==!1},void 0,!1,{fileName:U,lineNumber:2553,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:2538,columnNumber:9},this);case`gauge`:case`gaugeChart`:case`radialChart`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??20}px`,paddingRight:`${l.paddingRight??20}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(Nl,{type:`gauge`,title:c.title||`Goal Completion`,subtitle:c.subtitle,data:c.data,percentage:c.percentage??84,color:l.textColor||`#34c759`,width:e.width-40,height:e.height-40},void 0,!1,{fileName:U,lineNumber:2586,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:2571,columnNumber:9},this);case`funnel`:case`funnelChart`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??20}px`,paddingRight:`${l.paddingRight??20}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(Nl,{type:`funnel`,title:c.title||`Conversion Funnel`,subtitle:c.subtitle,data:c.data,format:c.format||`number`,width:e.width-40,height:e.height-40},void 0,!1,{fileName:U,lineNumber:2618,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:2603,columnNumber:9},this);case`sparkline`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??12}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,padding:`${l.paddingTop??10}px`},className:`flex flex-col justify-center select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(Nl,{type:`sparkline`,data:c.data,color:l.textColor||`#0071e3`,width:e.width-20,height:e.height-20},void 0,!1,{fileName:U,lineNumber:2645,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:2633,columnNumber:9},this);case`progressBar`:case`progress`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??14}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??14}px`,paddingBottom:`${l.paddingBottom??14}px`,paddingLeft:`${l.paddingLeft??16}px`,paddingRight:`${l.paddingRight??16}px`},className:`flex flex-col justify-center select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(Nl,{type:`progress`,title:c.title||`Task Progress`,subtitle:c.subtitle,percentage:c.percentage??76,color:l.textColor||`#7d2ae8`},void 0,!1,{fileName:U,lineNumber:2674,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:2659,columnNumber:9},this);case`table`:case`dataTable`:{let e=c.title||`Data Table`,t=c.columns||[`Customer`,`Plan`,`Amount`,`Status`,`Date`],n=c.rows||[{customer:`Acme Corp`,plan:`Enterprise`,amount:`$4,800.00`,status:`Completed`,date:`Just now`},{customer:`Linear Labs`,plan:`Pro Studio`,amount:`$590.00`,status:`Completed`,date:`5m ago`},{customer:`Vercel Edge`,plan:`Enterprise`,amount:`$12,400.00`,status:`Processing`,date:`22m ago`}],r=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:r||`#1d1d1f`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,padding:`${l.paddingTop??18}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:[e&&(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,F.jsxDEV)(`h4`,{style:{color:r||`#1d1d1f`},className:`text-[13.5px] font-bold`,children:e},void 0,!1,{fileName:U,lineNumber:2712,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#0071e3] font-medium`,children:`Export CSV`},void 0,!1,{fileName:U,lineNumber:2713,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:2711,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`w-full flex-1 flex flex-col justify-around text-[11.5px]`,children:[(0,F.jsxDEV)(`div`,{style:{color:r?`${r}bb`:`#86868b`},className:`grid grid-cols-5 pb-2 border-b border-[#f4f4f6] font-semibold`,children:t.map((e,t)=>(0,F.jsxDEV)(`span`,{children:e},t,!1,{fileName:U,lineNumber:2720,columnNumber:17},this))},void 0,!1,{fileName:U,lineNumber:2718,columnNumber:13},this),n.map((e,t)=>(0,F.jsxDEV)(`div`,{style:{color:r||`#1d1d1f`},className:`grid grid-cols-5 py-2 border-b border-[#f4f4f6] items-center`,children:[(0,F.jsxDEV)(`span`,{style:{color:r||`#1d1d1f`},className:`font-semibold`,children:e.customer||e.name},void 0,!1,{fileName:U,lineNumber:2726,columnNumber:17},this),(0,F.jsxDEV)(`span`,{style:{color:r?`${r}cc`:`#6e6e73`},children:e.plan||e.category||`-`},void 0,!1,{fileName:U,lineNumber:2727,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`font-mono font-medium`,children:e.amount||e.value||`-`},void 0,!1,{fileName:U,lineNumber:2728,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:(0,F.jsxDEV)(`span`,{className:j(`inline-flex items-center px-2 py-0.5 rounded-full text-[10px] font-bold`,e.status===`Completed`||e.status===`Paid`?`bg-[#34c759]/10 text-[#34c759]`:`bg-[#ff9500]/10 text-[#ff9500]`),children:e.status||`Active`},void 0,!1,{fileName:U,lineNumber:2730,columnNumber:19},this)},void 0,!1,{fileName:U,lineNumber:2729,columnNumber:17},this),(0,F.jsxDEV)(`span`,{style:{color:r?`${r}aa`:`#86868b`},className:`text-[10.5px]`,children:e.date||`Today`},void 0,!1,{fileName:U,lineNumber:2741,columnNumber:17},this)]},t,!0,{fileName:U,lineNumber:2725,columnNumber:15},this))]},void 0,!0,{fileName:U,lineNumber:2717,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:2697,columnNumber:9},this)}case`dataList`:{let e=c.title||`Top Performing Items`,t=c.items||[{label:`North America (us-east)`,value:`$64,200`,badge:`52%`},{label:`Europe (eu-west)`,value:`$42,800`,badge:`34%`},{label:`Asia Pacific (ap-northeast)`,value:`$18,450`,badge:`14%`}],n=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:n||`#1d1d1f`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??16}px`,paddingBottom:`${l.paddingBottom??16}px`,paddingLeft:`${l.paddingLeft??18}px`,paddingRight:`${l.paddingRight??18}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:[e&&(0,F.jsxDEV)(`h4`,{style:{color:n||`#1d1d1f`},className:`text-[13px] font-bold mb-2`,children:e},void 0,!1,{fileName:U,lineNumber:2775,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col justify-around divide-y divide-[#f4f4f6]`,children:t.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between py-1.5 text-[11.5px]`,children:[(0,F.jsxDEV)(`span`,{style:{color:n||`#1d1d1f`},className:`font-medium`,children:e.label},void 0,!1,{fileName:U,lineNumber:2780,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`span`,{style:{color:n||`#1d1d1f`},className:`font-mono font-bold`,children:e.value},void 0,!1,{fileName:U,lineNumber:2782,columnNumber:19},this),e.badge&&(0,F.jsxDEV)(`span`,{className:`px-1.5 py-0.2 rounded bg-[#f4f4f6] text-[#6e6e73] font-semibold text-[10px]`,children:e.badge},void 0,!1,{fileName:U,lineNumber:2784,columnNumber:21},this)]},void 0,!0,{fileName:U,lineNumber:2781,columnNumber:17},this)]},t,!0,{fileName:U,lineNumber:2779,columnNumber:15},this))},void 0,!1,{fileName:U,lineNumber:2777,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:2759,columnNumber:9},this)}case`activityFeed`:{let e=c.title||`Live Activity Feed`,t=c.events||[{user:`Alex Rivera`,action:`upgraded to Enterprise`,time:`2m ago`,icon:`Sparkles`},{user:`Sarah Chen`,action:`invited 4 collaborators`,time:`14m ago`,icon:`User`},{user:`Cloud Scheduler`,action:`deployed 3 edge nodes`,time:`1h ago`,icon:`Zap`}],n=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:n||`#1d1d1f`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??16}px`,paddingBottom:`${l.paddingBottom??16}px`,paddingLeft:`${l.paddingLeft??18}px`,paddingRight:`${l.paddingRight??18}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:[e&&(0,F.jsxDEV)(`h4`,{style:{color:n||`#1d1d1f`},className:`text-[13px] font-bold mb-2`,children:e},void 0,!1,{fileName:U,lineNumber:2822,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col justify-around`,children:t.map((e,t)=>{let r=Pl[e.icon]||d;return(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5 py-1`,children:[(0,F.jsxDEV)(`div`,{className:`w-7 h-7 rounded-full bg-[#f4f4f6] text-[#0071e3] flex items-center justify-center shrink-0`,children:(0,F.jsxDEV)(r,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:U,lineNumber:2830,columnNumber:21},this)},void 0,!1,{fileName:U,lineNumber:2829,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`flex-1 min-w-0 text-[11.5px]`,children:[(0,F.jsxDEV)(`span`,{style:{color:n||`#1d1d1f`},className:`font-semibold`,children:[e.user,` `]},void 0,!0,{fileName:U,lineNumber:2833,columnNumber:21},this),(0,F.jsxDEV)(`span`,{style:{color:n?`${n}cc`:`#6e6e73`},children:e.action},void 0,!1,{fileName:U,lineNumber:2834,columnNumber:21},this)]},void 0,!0,{fileName:U,lineNumber:2832,columnNumber:19},this),(0,F.jsxDEV)(`span`,{style:{color:n?`${n}aa`:`#86868b`},className:`text-[10px] shrink-0`,children:e.time},void 0,!1,{fileName:U,lineNumber:2836,columnNumber:19},this)]},t,!0,{fileName:U,lineNumber:2828,columnNumber:17},this)})},void 0,!1,{fileName:U,lineNumber:2824,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:2806,columnNumber:9},this)}case`timeline`:{let e=c.title||`Deployment Timeline`,t=c.steps||[{label:`Production V2.4 Released`,date:`Today, 14:30`,completed:!0},{label:`WCAG 2.1 AA Audit Passed`,date:`Yesterday`,completed:!0},{label:`Database Sharding Migration`,date:`Scheduled Friday`,completed:!1}],n=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:n||`#1d1d1f`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??16}px`,paddingBottom:`${l.paddingBottom??16}px`,paddingLeft:`${l.paddingLeft??18}px`,paddingRight:`${l.paddingRight??18}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:[e&&(0,F.jsxDEV)(`h4`,{style:{color:n||`#1d1d1f`},className:`text-[13px] font-bold mb-2`,children:e},void 0,!1,{fileName:U,lineNumber:2871,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col justify-around`,children:t.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-start gap-2.5 relative`,children:[(0,F.jsxDEV)(`div`,{className:j(`w-4 h-4 rounded-full border-2 flex items-center justify-center shrink-0 mt-0.5`,e.completed?`border-[#0071e3] bg-[#0071e3] text-white`:`border-[#d1d1d6] bg-white`),children:e.completed&&(0,F.jsxDEV)(ke,{className:`w-2.5 h-2.5 stroke-[3]`},void 0,!1,{fileName:U,lineNumber:2884,columnNumber:36},this)},void 0,!1,{fileName:U,lineNumber:2876,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex-1`,children:[(0,F.jsxDEV)(`div`,{style:{color:n||`#1d1d1f`},className:`text-[12px] font-semibold`,children:e.label},void 0,!1,{fileName:U,lineNumber:2887,columnNumber:19},this),(0,F.jsxDEV)(`div`,{style:{color:n?`${n}aa`:`#86868b`},className:`text-[10px]`,children:e.date},void 0,!1,{fileName:U,lineNumber:2888,columnNumber:19},this)]},void 0,!0,{fileName:U,lineNumber:2886,columnNumber:17},this)]},t,!0,{fileName:U,lineNumber:2875,columnNumber:15},this))},void 0,!1,{fileName:U,lineNumber:2873,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:2855,columnNumber:9},this)}case`calendar`:{let e=c.month||`August 2026`,t=c.selectedDay||15,n=c.eventDays||[3,8,15,22,28],r=[`S`,`M`,`T`,`W`,`T`,`F`,`S`],i=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:i||`#1d1d1f`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,padding:`16px`},className:`flex flex-col justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,F.jsxDEV)(`span`,{style:{color:i||`#1d1d1f`},className:`text-[12px] font-bold`,children:e},void 0,!1,{fileName:U,lineNumber:2919,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{color:i?`${i}aa`:`#86868b`},className:`flex items-center gap-1`,children:[(0,F.jsxDEV)(vt,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:U,lineNumber:2921,columnNumber:15},this),(0,F.jsxDEV)(at,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:U,lineNumber:2922,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:2920,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:2918,columnNumber:11},this),(0,F.jsxDEV)(`div`,{style:{color:i?`${i}aa`:`#86868b`},className:`grid grid-cols-7 text-center text-[10px] font-semibold mb-1`,children:r.map((e,t)=>(0,F.jsxDEV)(`span`,{children:e},t,!1,{fileName:U,lineNumber:2928,columnNumber:15},this))},void 0,!1,{fileName:U,lineNumber:2926,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-7 gap-1 text-center text-[11px]`,children:Array.from({length:31},(e,t)=>t+1).map(e=>{let r=e===t,a=n.includes(e);return(0,F.jsxDEV)(`div`,{style:r?void 0:{color:i||`#1d1d1f`},className:j(`h-6 rounded-md flex items-center justify-center relative font-medium`,r?`bg-[#0071e3] text-white font-bold`:`hover:bg-[#f4f4f6]`),children:[(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:U,lineNumber:2948,columnNumber:19},this),a&&!r&&(0,F.jsxDEV)(`span`,{className:`w-1 h-1 rounded-full bg-[#0071e3] absolute bottom-0.5`},void 0,!1,{fileName:U,lineNumber:2950,columnNumber:21},this)]},e,!0,{fileName:U,lineNumber:2938,columnNumber:17},this)})},void 0,!1,{fileName:U,lineNumber:2932,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:2905,columnNumber:9},this)}case`loginForm`:{let e=c.title||`Sign In`,t=c.subtitle||`Enter your email to continue`,n=c.buttonLabel||`Continue`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??18}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,padding:`28px`,opacity:l.opacity??1},className:`flex flex-col justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h3`,{className:`text-[18px] font-bold text-[#1d1d1f] tracking-tight`,children:e},void 0,!1,{fileName:U,lineNumber:2980,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b] mt-1`,children:t},void 0,!1,{fileName:U,lineNumber:2981,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:2979,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5 my-4`,children:[(0,F.jsxDEV)(`div`,{className:`h-9 px-3 rounded-[8px] bg-[#f4f4f6] border border-[#e5e5ea] flex items-center text-[12px] text-[#86868b]`,children:`name@work-email.com`},void 0,!1,{fileName:U,lineNumber:2984,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`h-9 px-3 rounded-[8px] bg-[#f4f4f6] border border-[#e5e5ea] flex items-center text-[12px] text-[#86868b]`,children:`••••••••••••`},void 0,!1,{fileName:U,lineNumber:2987,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:2983,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`w-full py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[13px] font-medium text-center shadow-apple-sm`,children:n},void 0,!1,{fileName:U,lineNumber:2991,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:2966,columnNumber:9},this)}case`productCard`:{let t=c.title||c.name||`Product Item`,n=c.price||c.value||``,r=c.subtitle||c.description||c.text||``,i=c.image||c.imageUrl,a=c.buttonText||c.label||`Learn More`,o=c.icon,s=o&&Pl[o]?Pl[o]:Sn,u=l.textColor,d=c.priceColor||`#0071e3`,f=c.subtitleColor||(u?`${u}cc`:`#86868b`),p=c.buttonBgColor||`#0071e3`,m=c.buttonTextColor||`#ffffff`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:u||`#1d1d1f`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,opacity:l.opacity??1,backdropFilter:l.backdropBlur?`blur(${l.backdropBlur}px)`:void 0},className:`flex flex-col overflow-hidden select-none pointer-events-none ${x}`,children:[i?(0,F.jsxDEV)(`div`,{className:`w-full h-44 bg-[#f4f4f6] dark:bg-white/5 overflow-hidden`,children:(0,F.jsxDEV)(`img`,{src:i,alt:t,className:`w-full h-full object-cover`},void 0,!1,{fileName:U,lineNumber:3031,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:3030,columnNumber:13},this):(0,F.jsxDEV)(`div`,{className:`w-full h-36 bg-gradient-to-br from-black/20 via-black/40 to-black/60 dark:from-white/5 dark:to-white/10 flex flex-col items-center justify-center p-4 border-b border-white/10 relative overflow-hidden`,children:[(0,F.jsxDEV)(`div`,{className:`w-12 h-12 rounded-2xl bg-white/10 border border-white/20 flex items-center justify-center text-[#0071e3] dark:text-[#9d52ff] mb-2 shadow-sm`,children:(0,F.jsxDEV)(s,{className:`w-6 h-6`},void 0,!1,{fileName:U,lineNumber:3036,columnNumber:17},this)},void 0,!1,{fileName:U,lineNumber:3035,columnNumber:15},this),n&&(0,F.jsxDEV)(`span`,{style:{color:d},className:`px-2.5 py-0.5 rounded-full bg-white/10 border border-white/20 text-[11px] font-bold`,children:n},void 0,!1,{fileName:U,lineNumber:3039,columnNumber:17},this)]},void 0,!0,{fileName:U,lineNumber:3034,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`p-4 flex flex-col justify-between flex-1`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`title`,value:t,defaultFallback:`Product Item`,placeholder:`Product title`,as:`h4`,style:{color:u||`#1d1d1f`},className:`text-[15px] font-bold truncate`},void 0,!1,{fileName:U,lineNumber:3047,columnNumber:15},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`subtitle`,value:r,placeholder:`Description`,as:`p`,multiline:!0,style:{color:f},className:`text-[12px] mt-1 line-clamp-2 leading-relaxed`},void 0,!1,{fileName:U,lineNumber:3057,columnNumber:15},this),i&&(0,F.jsxDEV)(`div`,{className:`mt-1.5`,children:(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`price`,value:n,placeholder:`$0.00`,as:`span`,style:{color:d},className:`text-[16px] font-bold`},void 0,!1,{fileName:U,lineNumber:3069,columnNumber:19},this)},void 0,!1,{fileName:U,lineNumber:3068,columnNumber:17},this)]},void 0,!0,{fileName:U,lineNumber:3046,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{backgroundColor:p,color:m},className:`w-full mt-3 py-2 rounded-[8px] text-[12px] font-semibold text-center shadow-sm`,children:(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`buttonText`,value:a,defaultFallback:`Learn More`,placeholder:`Button`,as:`span`},void 0,!1,{fileName:U,lineNumber:3082,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:3081,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:3045,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:3014,columnNumber:9},this)}case`switch`:case`toggleSwitch`:case`toggle`:{let t=c.label||``,n=c.enabled!==!1,r=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`transparent`,borderRadius:`${l.borderRadius??12}px`,borderWidth:`${l.borderWidth??0}px`,borderColor:l.borderColor||`transparent`,paddingLeft:t?`16px`:`0px`,paddingRight:t?`16px`:`0px`,opacity:l.opacity??1},className:`flex items-center ${t?`justify-between`:`justify-center`} select-none ${x}`,children:[t?(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`label`,value:t,defaultFallback:``,placeholder:``,as:`span`,style:{color:r||`#ffffff`},className:`text-[13px] font-medium`},void 0,!1,{fileName:U,lineNumber:3128,columnNumber:13},this):null,(0,F.jsxDEV)(`div`,{onClick:t=>{t.stopPropagation();let r=I.getState();r.pushSnapshot(`Toggle Switch`),r.updateElement(e.id,{content:{...e.content,enabled:!n}},!1)},onMouseDown:e=>e.stopPropagation(),title:`Click to toggle switch`,className:`w-11 h-6 rounded-full transition-colors flex items-center p-0.5 cursor-pointer pointer-events-auto shadow-sm ${n?`bg-[#34c759] justify-end`:`bg-zinc-600 justify-start`}`,children:(0,F.jsxDEV)(`div`,{className:`w-5 h-5 rounded-full bg-white shadow-md transition-transform`},void 0,!1,{fileName:U,lineNumber:3147,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:3139,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:3113,columnNumber:9},this)}case`mobileHeader`:{let e=c.title||`Screen Title`,t=c.actionLabel||`Done`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??12}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingLeft:`16px`,paddingRight:`16px`,opacity:l.opacity??1},className:`flex items-center justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 text-[#0071e3] text-[13px] font-medium`,children:[(0,F.jsxDEV)(vt,{className:`w-4 h-4`},void 0,!1,{fileName:U,lineNumber:3173,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Back`},void 0,!1,{fileName:U,lineNumber:3174,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:3172,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-[14px] font-semibold text-[#1d1d1f]`,children:e},void 0,!1,{fileName:U,lineNumber:3176,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] text-[13px] font-semibold`,children:t},void 0,!1,{fileName:U,lineNumber:3177,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:3158,columnNumber:9},this)}case`input`:{let t=c.label,n=c.placeholder||c.text||`Enter value...`,r=c.shortcutKey;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,opacity:l.opacity??1},className:`flex flex-col justify-center gap-1.5 select-none`,children:[t&&(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`label`,value:t,placeholder:`Input Label`,as:`span`,className:`text-[12px] font-medium text-[#6e6e73]`},void 0,!1,{fileName:U,lineNumber:3199,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`w-full h-9 px-3 rounded-[8px] bg-white border border-[#e5e5ea] flex items-center justify-between text-[13px] text-[#86868b] shadow-2xs`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[u===`searchBar`&&(0,F.jsxDEV)(lt,{className:`w-3.5 h-3.5 text-[#86868b] shrink-0`},void 0,!1,{fileName:U,lineNumber:3210,columnNumber:40},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`placeholder`,value:n,placeholder:`Placeholder text...`,as:`span`,className:`truncate flex-1 min-w-0`},void 0,!1,{fileName:U,lineNumber:3211,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:3209,columnNumber:13},this),r&&(0,F.jsxDEV)(`kbd`,{className:`px-1.5 py-0.5 rounded bg-[#f4f4f6] text-[10px] font-mono border border-[#e5e5ea] shrink-0`,children:r},void 0,!1,{fileName:U,lineNumber:3221,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:3208,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:3190,columnNumber:9},this)}case`searchBar`:case`inputBar`:{let t=l.backgroundColor||`#ffffff`,n=l.borderColor||`#e5e5ea`,r=l.borderWidth??1,i=l.borderRadius??12,a=c.text||c.placeholder||c.label||`Search...`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:t,borderRadius:`${i}px`,borderWidth:`${r}px`,borderColor:n,borderStyle:r>0?`solid`:`none`,opacity:l.opacity??1},className:`w-full h-full px-3.5 flex items-center select-none text-[#86868b] shadow-2xs`,children:(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 min-w-0 w-full`,children:[(0,F.jsxDEV)(lt,{className:`w-4 h-4 text-[#86868b] shrink-0`},void 0,!1,{fileName:U,lineNumber:3252,columnNumber:13},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`placeholder`,value:a,defaultFallback:`Search...`,placeholder:`Search placeholder...`,as:`span`,className:`text-[13px] text-[#1d1d1f] dark:text-white font-medium truncate flex-1 min-w-0`},void 0,!1,{fileName:U,lineNumber:3253,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:3251,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:3238,columnNumber:9},this)}case`icon`:{let t=Fl(c.iconName||c.icon||`Sparkles`),n=l.textColor||l.color||c.iconColor||h,r=c.strokeWidth||l.strokeWidth||1.8,i=c.rotation||l.rotation||0,a=c.label??c.text??``,o=Math.min(e.width,e.height)*(a?.5:.7);return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,opacity:l.opacity??1,color:n,backgroundColor:l.backgroundColor||c.iconBgColor||`transparent`,borderRadius:`${l.borderRadius??0}px`,borderWidth:`${l.borderWidth??0}px`,borderColor:l.borderColor||`transparent`,borderStyle:(l.borderWidth??0)>0?`solid`:`none`},className:`flex flex-col items-center justify-center select-none pointer-events-none gap-1 ${x}`,children:[(0,F.jsxDEV)(`div`,{style:{transform:i?`rotate(${i}deg)`:void 0,display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,F.jsxDEV)(t,{strokeWidth:r,style:{width:`${Math.max(14,o)}px`,height:`${Math.max(14,o)}px`}},void 0,!1,{fileName:U,lineNumber:3292,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:3291,columnNumber:11},this),a&&(0,F.jsxDEV)(`span`,{style:{color:n},className:`text-[12px] font-medium text-center truncate max-w-full leading-tight px-1`,children:a},void 0,!1,{fileName:U,lineNumber:3295,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:3277,columnNumber:9},this)}case`shape`:{let t=c.shapeType||c.shape||`appCard`,n=l.backgroundColor||l.fill||`#ffffff`,r=l.borderColor||l.stroke||`#e5e5ea`,i=l.borderWidth??1,a=l.borderRadius??16;switch(t){case`appCard`:case`card`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:n,borderRadius:`${a}px`,borderWidth:`${i}px`,borderColor:r,borderStyle:i>0?`solid`:`none`,opacity:l.opacity??1},className:`w-full h-full p-4 flex flex-col justify-between pointer-events-none select-none ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between w-full`,children:[(0,F.jsxDEV)(`div`,{className:`w-8 h-2 rounded-full bg-[#e5e5ea] dark:bg-[#38383a]`},void 0,!1,{fileName:U,lineNumber:3329,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`w-3 h-3 rounded-full bg-[#34c759]`},void 0,!1,{fileName:U,lineNumber:3330,columnNumber:17},this)]},void 0,!0,{fileName:U,lineNumber:3328,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-3/4 h-3.5 rounded bg-[#1d1d1f]/80 dark:bg-white/80`},void 0,!1,{fileName:U,lineNumber:3333,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`w-1/2 h-2.5 rounded bg-[#86868b]/50`},void 0,!1,{fileName:U,lineNumber:3334,columnNumber:17},this)]},void 0,!0,{fileName:U,lineNumber:3332,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:3315,columnNumber:13},this);case`pillChip`:case`pill`:case`chip`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:n||`#f2f2f7`,borderRadius:`9999px`,borderWidth:`${i}px`,borderColor:r,borderStyle:i>0?`solid`:`none`,opacity:l.opacity??1},className:`w-full h-full px-3 flex items-center justify-center gap-2 pointer-events-none select-none ${x}`,children:[(0,F.jsxDEV)(`span`,{className:`w-2 h-2 rounded-full bg-[#7d2ae8]`},void 0,!1,{fileName:U,lineNumber:3357,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[12px] font-semibold text-[#1d1d1f] dark:text-white truncate`,children:c.label||`Active Filter`},void 0,!1,{fileName:U,lineNumber:3358,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:3344,columnNumber:13},this);case`avatarCircle`:case`circle`:case`avatar`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:n||`#0071e3`,borderRadius:`9999px`,borderWidth:`${i}px`,borderColor:r||`#ffffff`,borderStyle:i>0?`solid`:`none`,opacity:l.opacity??1},className:`w-full h-full flex items-center justify-center pointer-events-none select-none text-white ${x}`,children:(0,F.jsxDEV)(`svg`,{className:`w-1/2 h-1/2`,viewBox:`0 0 24 24`,fill:`currentColor`,children:(0,F.jsxDEV)(`path`,{d:`M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z`},void 0,!1,{fileName:U,lineNumber:3383,columnNumber:17},this)},void 0,!1,{fileName:U,lineNumber:3382,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:3369,columnNumber:13},this);case`appIconTile`:case`squircle`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:n||`#1d1d1f`,borderRadius:`22%`,borderWidth:`${i}px`,borderColor:r,borderStyle:i>0?`solid`:`none`,opacity:l.opacity??1},className:`w-full h-full flex items-center justify-center pointer-events-none select-none text-white shadow-apple-md`,children:(0,F.jsxDEV)(`div`,{className:`w-7 h-7 rounded-[9px] bg-white/20 flex items-center justify-center`,children:(0,F.jsxDEV)(`div`,{className:`w-3.5 h-3.5 rounded-full bg-white`},void 0,!1,{fileName:U,lineNumber:3406,columnNumber:17},this)},void 0,!1,{fileName:U,lineNumber:3405,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:3392,columnNumber:13},this);case`actionButton`:case`buttonSurface`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:n||`#7d2ae8`,color:l.textColor||`#ffffff`,borderRadius:`${a||12}px`,borderWidth:`${i}px`,borderColor:r,borderStyle:i>0?`solid`:`none`,opacity:l.opacity??1},className:`w-full h-full flex items-center justify-center font-semibold text-[13px] px-4 pointer-events-none select-none shadow-apple-sm`,children:c.label||`Action Button`},void 0,!1,{fileName:U,lineNumber:3415,columnNumber:13},this);case`inputBar`:case`searchBar`:{let t=c.text||c.placeholder||c.label||`Search...`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:n||`#ffffff`,borderRadius:`${a||12}px`,borderWidth:`${i}px`,borderColor:r||`#e5e5ea`,borderStyle:i>0?`solid`:`none`,opacity:l.opacity??1},className:`w-full h-full px-3.5 flex items-center select-none text-[#86868b] shadow-2xs`,children:(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 min-w-0 w-full`,children:[(0,F.jsxDEV)(lt,{className:`w-4 h-4 text-[#86868b] shrink-0`},void 0,!1,{fileName:U,lineNumber:3452,columnNumber:17},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`placeholder`,value:t,defaultFallback:`Search...`,placeholder:`Search placeholder...`,as:`span`,className:`text-[13px] text-[#1d1d1f] dark:text-white font-medium truncate flex-1 min-w-0`},void 0,!1,{fileName:U,lineNumber:3453,columnNumber:17},this)]},void 0,!0,{fileName:U,lineNumber:3451,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:3438,columnNumber:13},this)}case`tooltipBubble`:case`callout`:case`tooltip`:return(0,F.jsxDEV)(`svg`,{viewBox:`0 0 100 50`,preserveAspectRatio:`none`,style:{width:`100%`,height:`100%`,opacity:l.opacity??1},className:`w-full h-full pointer-events-none select-none overflow-visible ${x}`,children:[(0,F.jsxDEV)(`path`,{d:`M 6,4 H 94 Q 98,4 98,8 V 36 Q 98,40 94,40 H 56 L 50,48 L 44,40 H 6 Q 2,40 2,36 V 8 Q 2,4 6,4 Z`,fill:n||`#1d1d1f`,stroke:r,strokeWidth:i,strokeLinejoin:`round`},void 0,!1,{fileName:U,lineNumber:3478,columnNumber:15},this),(0,F.jsxDEV)(`text`,{x:`50`,y:`24`,fill:`#ffffff`,fontSize:`9`,fontWeight:`600`,textAnchor:`middle`,dominantBaseline:`middle`,children:c.text||`Hint Tooltip`},void 0,!1,{fileName:U,lineNumber:3485,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:3472,columnNumber:13},this);case`bottomSheet`:case`sheet`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:n||`#ffffff`,borderTopLeftRadius:`${a||20}px`,borderTopRightRadius:`${a||20}px`,borderWidth:`${i}px`,borderColor:r||`#e5e5ea`,borderStyle:i>0?`solid`:`none`,opacity:l.opacity??1},className:`w-full h-full pt-2.5 px-4 flex flex-col items-center gap-3 pointer-events-none select-none shadow-apple-lg`,children:[(0,F.jsxDEV)(`div`,{className:`w-10 h-1 rounded-full bg-[#d1d1d6] dark:bg-[#38383a]`},void 0,!1,{fileName:U,lineNumber:3509,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`w-full flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-white`,children:c.title||`Sheet Modal`},void 0,!1,{fileName:U,lineNumber:3511,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[12px] font-semibold text-[#0071e3]`,children:`Done`},void 0,!1,{fileName:U,lineNumber:3512,columnNumber:17},this)]},void 0,!0,{fileName:U,lineNumber:3510,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`w-full h-10 rounded-xl bg-[#f4f4f6] dark:bg-[#2c2c2e]`},void 0,!1,{fileName:U,lineNumber:3514,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:3495,columnNumber:13},this);default:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:n,borderRadius:`${a}px`,borderWidth:`${i}px`,borderColor:r,borderStyle:i>0?`solid`:`none`,opacity:l.opacity??1},className:`w-full h-full pointer-events-none select-none ${x}`},void 0,!1,{fileName:U,lineNumber:3520,columnNumber:13},this)}}case`line`:case`divider`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||l.borderColor||`#0071e3`,borderRadius:`${l.borderRadius??2}px`,opacity:l.opacity??1},className:`w-full h-full select-none pointer-events-none`},void 0,!1,{fileName:U,lineNumber:3541,columnNumber:9},this);case`video`:{let e=c.url||c.src||`https://assets.mixkit.co/videos/preview/mixkit-software-developer-working-on-code-screen-close-up-1728-large.mp4`,t=c.autoplay!==!1,n=c.loop!==!1,r=c.muted!==!1,i=c.controls===!0,a=l.objectFit||`cover`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,borderRadius:`${l.borderRadius??14}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,opacity:l.opacity??1},className:`overflow-hidden bg-[#1d1d1f] pointer-events-none select-none ${x}`,children:(0,F.jsxDEV)(`video`,{src:e,autoPlay:t,loop:n,muted:r,controls:i,style:{width:`100%`,height:`100%`,objectFit:a}},void 0,!1,{fileName:U,lineNumber:3574,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:3563,columnNumber:9},this)}case`image`:{let t=c.url||c.src||`https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?w=800&auto=format&fit=crop&q=80`,n=c.objectFit||l.objectFit||`fill`,r=e.accessibility||{},i=r.isDecorative?``:r.altText||e.name||`Asset Image`,a=c.flipH||c.flipV?`scaleX(${c.flipH?-1:1}) scaleY(${c.flipV?-1:1})`:void 0;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,borderRadius:`${l.borderRadius??0}px`,borderWidth:`${l.borderWidth??0}px`,borderColor:l.borderColor||`transparent`,borderStyle:(l.borderWidth??0)>0?`solid`:`none`,opacity:l.opacity??1,backgroundColor:l.backgroundColor||`transparent`},className:`overflow-hidden pointer-events-none select-none ${x}`,children:(0,F.jsxDEV)(`img`,{src:t,alt:i,"aria-hidden":r.isDecorative?!0:void 0,style:{objectFit:n,width:`100%`,height:`100%`,transform:a},className:`w-full h-full block`,draggable:!1},void 0,!1,{fileName:U,lineNumber:3609,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:3596,columnNumber:9},this)}case`container`:{let t=c.title;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,padding:`${l.padding??16}px`,opacity:l.opacity??1,backdropFilter:l.backdropBlur?`blur(${l.backdropBlur}px)`:void 0},className:`relative flex flex-col select-none ${x}`,children:[t&&(0,F.jsxDEV)(`span`,{className:`text-[11px] font-medium text-[#86868b] uppercase tracking-wider mb-2 pointer-events-none`,children:t},void 0,!1,{fileName:U,lineNumber:3645,columnNumber:13},this),n&&n.map(t=>(0,F.jsxDEV)(`div`,{onClick:e=>{e.stopPropagation(),I.getState().selectElement(t.id,e.shiftKey||e.metaKey||e.ctrlKey)},style:{position:`absolute`,left:`${t.x-e.x}px`,top:`${t.y-e.y}px`,width:`${t.width}px`,height:`${t.height}px`,transform:`rotate(${t.rotation}deg)`,zIndex:t.zIndex,pointerEvents:`auto`,cursor:`pointer`},className:`group/child hover:ring-2 hover:ring-[#0071e3]/60 rounded transition-all`,children:(0,F.jsxDEV)(Bl,{element:t,isSelected:I.getState().selectedElementIds.includes(t.id)},void 0,!1,{fileName:U,lineNumber:3669,columnNumber:15},this)},t.id,!1,{fileName:U,lineNumber:3650,columnNumber:13},this))]},void 0,!0,{fileName:U,lineNumber:3629,columnNumber:9},this)}case`form`:{let e=c.title||`Form`,t=c.subtitle||``,r=c.submitLabel||`Submit`,i=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:i||`#1d1d1f`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,padding:`${l.padding??24}px`,opacity:l.opacity??1,display:`flex`,flexDirection:`column`,justifyContent:`space-between`,gap:`16px`},className:`select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{children:[e&&(0,F.jsxDEV)(`h3`,{style:{color:i||`#1d1d1f`},className:`text-[17px] font-bold tracking-tight`,children:e},void 0,!1,{fileName:U,lineNumber:3702,columnNumber:23},this),t&&(0,F.jsxDEV)(`p`,{style:{color:i?`${i}cc`:`#86868b`},className:`text-[12px] mt-0.5`,children:t},void 0,!1,{fileName:U,lineNumber:3703,columnNumber:26},this)]},void 0,!0,{fileName:U,lineNumber:3701,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col gap-3`,children:n&&n.length>0?n.map(e=>(0,F.jsxDEV)(`div`,{className:`w-full`,children:(0,F.jsxDEV)(Bl,{element:e},void 0,!1,{fileName:U,lineNumber:3710,columnNumber:19},this)},e.id,!1,{fileName:U,lineNumber:3709,columnNumber:17},this)):(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,F.jsxDEV)(`div`,{style:{color:i?`${i}aa`:`#86868b`},className:`h-8 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-2.5 flex items-center text-[12px]`,children:`Name`},void 0,!1,{fileName:U,lineNumber:3715,columnNumber:17},this),(0,F.jsxDEV)(`div`,{style:{color:i?`${i}aa`:`#86868b`},className:`h-8 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-2.5 flex items-center text-[12px]`,children:`Email`},void 0,!1,{fileName:U,lineNumber:3718,columnNumber:17},this)]},void 0,!0,{fileName:U,lineNumber:3714,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:3706,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`w-full py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[13px] font-semibold text-center shadow-apple-sm`,children:r},void 0,!1,{fileName:U,lineNumber:3725,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:3683,columnNumber:9},this)}case`input`:case`formField`:{let e=c.label||`Input Field`,t=c.placeholder||`Enter value...`,n=c.helperText,r=c.required===!0,i=c.value??``,a=c.state||`default`,o=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,opacity:l.opacity??(a===`disabled`?.6:1),color:o||`#1d1d1f`,display:`flex`,flexDirection:`column`,justifyContent:`center`,gap:`5px`},className:`select-none pointer-events-none`,children:[e&&(0,F.jsxDEV)(`label`,{style:{color:o||`#1d1d1f`},className:`text-[12px] font-semibold flex items-center gap-1`,children:[(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:U,lineNumber:3766,columnNumber:15},this),r&&(0,F.jsxDEV)(`span`,{className:`text-[#ff3b30] text-[11px]`,children:`*`},void 0,!1,{fileName:U,lineNumber:3767,columnNumber:25},this)]},void 0,!0,{fileName:U,lineNumber:3765,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{borderColor:{default:`#e5e5ea`,focused:`#0071e3`,error:`#ff3b30`,success:`#34c759`,disabled:`#e5e5ea`}[a]||l.borderColor||`#e5e5ea`,borderRadius:`${l.borderRadius??8}px`,backgroundColor:a===`disabled`?`#f4f4f6`:l.backgroundColor||`#ffffff`,color:o||`#1d1d1f`},className:`w-full h-9 px-3 border flex items-center text-[13px] shadow-2xs`,children:i?(0,F.jsxDEV)(`span`,{children:i},void 0,!1,{fileName:U,lineNumber:3780,columnNumber:15},this):(0,F.jsxDEV)(`span`,{style:{color:o?`${o}88`:`#86868b`},children:t},void 0,!1,{fileName:U,lineNumber:3782,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:3770,columnNumber:11},this),n&&(0,F.jsxDEV)(`span`,{className:`text-[11px] ${a===`error`?`text-[#ff3b30] font-medium`:a===`success`?`text-[#34c759] font-medium`:`text-[#86868b]`}`,children:n},void 0,!1,{fileName:U,lineNumber:3786,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:3751,columnNumber:9},this)}case`textarea`:{let e=c.label||`Message Field`,t=c.placeholder||`Type here...`,n=c.required===!0,r=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,opacity:l.opacity??1,color:r||`#1d1d1f`,display:`flex`,flexDirection:`column`,gap:`5px`},className:`select-none pointer-events-none`,children:[e&&(0,F.jsxDEV)(`label`,{style:{color:r||`#1d1d1f`},className:`text-[12px] font-semibold flex items-center gap-1`,children:[(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:U,lineNumber:3819,columnNumber:15},this),n&&(0,F.jsxDEV)(`span`,{className:`text-[#ff3b30] text-[11px]`,children:`*`},void 0,!1,{fileName:U,lineNumber:3820,columnNumber:25},this)]},void 0,!0,{fileName:U,lineNumber:3818,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{borderRadius:`${l.borderRadius??8}px`,borderColor:l.borderColor||`#e5e5ea`,backgroundColor:l.backgroundColor||`#ffffff`,color:r||`#1d1d1f`},className:`w-full flex-1 p-2.5 border text-[12.5px] shadow-2xs flex flex-col justify-between`,children:[(0,F.jsxDEV)(`span`,{style:{color:r?`${r}aa`:`#86868b`},children:t},void 0,!1,{fileName:U,lineNumber:3832,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`self-end text-[10px] text-[#c7c7cc]`,children:`0 / 500`},void 0,!1,{fileName:U,lineNumber:3833,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:3823,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:3805,columnNumber:9},this)}case`select`:{let t=c.label||`Select Option`,n=c.options||[`Option 1`,`Option 2`,`Option 3`],r=c.defaultValue||n[0]||`Select...`,i=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,color:i||`#1d1d1f`,display:`flex`,flexDirection:`column`,gap:`5px`},className:`select-none`,children:[t&&(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`label`,value:t,placeholder:`Select Label`,as:`label`,style:{color:i||`#1d1d1f`},className:`text-[12px] font-semibold`},void 0,!1,{fileName:U,lineNumber:3858,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{borderRadius:`${l.borderRadius??8}px`,borderColor:l.borderColor||`#e5e5ea`,backgroundColor:l.backgroundColor||`#ffffff`,color:i||`#1d1d1f`},className:`w-full h-9 px-3 border flex items-center justify-between text-[13px] shadow-2xs`,children:[(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`defaultValue`,value:r,placeholder:`Option Value`,as:`span`},void 0,!1,{fileName:U,lineNumber:3877,columnNumber:13},this),(0,F.jsxDEV)(at,{className:`w-3.5 h-3.5 text-[#86868b] rotate-90 shrink-0`},void 0,!1,{fileName:U,lineNumber:3884,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:3868,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:3846,columnNumber:9},this)}case`checkbox`:{let t=c.label||`I agree to the terms`,n=c.checked!==!1,r=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,color:r||`#1d1d1f`},className:`flex items-center gap-2.5 select-none`,children:[(0,F.jsxDEV)(`div`,{onClick:t=>{t.stopPropagation();let r=I.getState();r.pushSnapshot(`Toggle Checkbox`),r.updateElement(e.id,{content:{...e.content,checked:!n}},!1)},onMouseDown:e=>e.stopPropagation(),title:`Click to toggle checkbox`,className:`w-4.5 h-4.5 rounded-[5px] border flex items-center justify-center transition-colors cursor-pointer pointer-events-auto ${n?`bg-[#0071e3] border-[#0071e3] text-white`:`bg-white border-[#d2d2d7]`}`,children:n&&(0,F.jsxDEV)(ke,{className:`w-3 h-3 stroke-[2.5]`},void 0,!1,{fileName:U,lineNumber:3917,columnNumber:25},this)},void 0,!1,{fileName:U,lineNumber:3909,columnNumber:11},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`label`,value:t,defaultFallback:`Checkbox Label`,placeholder:`Label...`,as:`span`,style:{color:r||`#1d1d1f`},className:`text-[13px] font-medium leading-none`},void 0,!1,{fileName:U,lineNumber:3919,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:3905,columnNumber:9},this)}case`radioGroup`:{let t=c.label,n=c.options||[`Option A`,`Option B`],r=c.selectedIndex??0,i=l.textColor,a=(t,n)=>{n.stopPropagation();let r=I.getState();r.pushSnapshot(`Select Radio Option`),r.updateElement(e.id,{content:{...e.content,selectedIndex:t}},!1)};return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,color:i||`#1d1d1f`},className:`flex flex-col gap-2 select-none`,children:[t&&(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`label`,value:t,placeholder:`Radio Group Label`,as:`span`,style:{color:i||`#1d1d1f`},className:`text-[12px] font-semibold`},void 0,!1,{fileName:U,lineNumber:3954,columnNumber:13},this),n.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[(0,F.jsxDEV)(`div`,{onClick:e=>a(t,e),onMouseDown:e=>e.stopPropagation(),title:`Click to select`,className:`w-4.5 h-4.5 rounded-full border flex items-center justify-center cursor-pointer pointer-events-auto ${t===r?`border-[#0071e3]`:`border-[#d2d2d7]`}`,children:t===r&&(0,F.jsxDEV)(`div`,{className:`w-2.5 h-2.5 rounded-full bg-[#0071e3]`},void 0,!1,{fileName:U,lineNumber:3974,columnNumber:34},this)},void 0,!1,{fileName:U,lineNumber:3966,columnNumber:15},this),(0,F.jsxDEV)(`span`,{style:{color:i||`#1d1d1f`},className:`text-[13px]`,children:e},void 0,!1,{fileName:U,lineNumber:3976,columnNumber:15},this)]},e||t,!0,{fileName:U,lineNumber:3965,columnNumber:13},this))]},void 0,!0,{fileName:U,lineNumber:3949,columnNumber:9},this)}case`fileUpload`:{let e=c.label||`Upload Files`,t=c.helperText||`PNG, JPG or PDF up to 10MB`,n=c.buttonText||`Browse Files`,r=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,borderRadius:`${l.borderRadius??12}px`,borderColor:l.borderColor||`#d2d2d7`,backgroundColor:l.backgroundColor||`#fbfbfd`,color:r||`#1d1d1f`},className:`border-1.5 border-dashed flex flex-col items-center justify-center p-4 text-center select-none pointer-events-none gap-1.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-9 h-9 rounded-full bg-[#f4f4f6] flex items-center justify-center text-[#0071e3] mb-1`,children:(0,F.jsxDEV)(Qn,{className:`w-5 h-5`},void 0,!1,{fileName:U,lineNumber:4002,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:4001,columnNumber:11},this),(0,F.jsxDEV)(`span`,{style:{color:r||`#1d1d1f`},className:`text-[13px] font-semibold`,children:e},void 0,!1,{fileName:U,lineNumber:4004,columnNumber:11},this),(0,F.jsxDEV)(`span`,{style:{color:r?`${r}aa`:`#86868b`},className:`text-[11px]`,children:t},void 0,!1,{fileName:U,lineNumber:4005,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`mt-1 px-3 py-1 rounded-[6px] bg-white border border-[#e5e5ea] text-[11.5px] font-medium text-[#1d1d1f] shadow-2xs`,children:n},void 0,!1,{fileName:U,lineNumber:4006,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:3990,columnNumber:9},this)}case`submitButton`:{let e=c.label||`Submit`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||h,color:l.textColor||`#ffffff`,borderRadius:`${l.borderRadius??10}px`},className:`flex items-center justify-center gap-2 font-semibold text-[13.5px] select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(rt,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:U,lineNumber:4026,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:U,lineNumber:4027,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:4016,columnNumber:9},this)}case`loginForm`:{let e=c.title||`Sign In to Cyrus`,t=c.subtitle||`Enter your email and password`,n=c.submitLabel||`Sign In`,r=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:r||`#1d1d1f`,borderRadius:`${l.borderRadius??18}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,padding:`28px`},className:`flex flex-col justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`w-9 h-9 rounded-[10px] bg-[#0071e3] text-white flex items-center justify-center mb-3 shadow-apple-sm`,children:(0,F.jsxDEV)(Ri,{className:`w-4.5 h-4.5`},void 0,!1,{fileName:U,lineNumber:4054,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:4053,columnNumber:13},this),(0,F.jsxDEV)(`h3`,{style:{color:r||`#1d1d1f`},className:`text-[18px] font-bold tracking-tight`,children:e},void 0,!1,{fileName:U,lineNumber:4056,columnNumber:13},this),(0,F.jsxDEV)(`p`,{style:{color:r?`${r}cc`:`#86868b`},className:`text-[12px] mt-0.5`,children:t},void 0,!1,{fileName:U,lineNumber:4057,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4052,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-3 my-2`,children:[(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,F.jsxDEV)(`span`,{style:{color:r?`${r}cc`:`#6e6e73`},className:`text-[11.5px] font-medium`,children:`Email Address`},void 0,!1,{fileName:U,lineNumber:4062,columnNumber:15},this),(0,F.jsxDEV)(`div`,{style:{color:r||`#1d1d1f`},className:`h-8.5 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 flex items-center text-[12px]`,children:`alex@apple.com`},void 0,!1,{fileName:U,lineNumber:4063,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:4061,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,F.jsxDEV)(`div`,{className:`flex justify-between items-center text-[11.5px]`,children:[(0,F.jsxDEV)(`span`,{style:{color:r?`${r}cc`:`#6e6e73`},className:`font-medium`,children:`Password`},void 0,!1,{fileName:U,lineNumber:4069,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] font-medium`,children:`Forgot?`},void 0,!1,{fileName:U,lineNumber:4070,columnNumber:17},this)]},void 0,!0,{fileName:U,lineNumber:4068,columnNumber:15},this),(0,F.jsxDEV)(`div`,{style:{color:r?`${r}88`:`#86868b`},className:`h-8.5 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 flex items-center text-[12px]`,children:`••••••••••••`},void 0,!1,{fileName:U,lineNumber:4072,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:4067,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4060,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`w-full py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[13px] font-semibold text-center shadow-apple-sm`,children:n},void 0,!1,{fileName:U,lineNumber:4079,columnNumber:13},this),(0,F.jsxDEV)(`p`,{style:{color:r?`${r}aa`:`#86868b`},className:`text-[11.5px] text-center mt-2.5`,children:[`Don't have an account? `,(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] font-medium`,children:`Sign up`},void 0,!1,{fileName:U,lineNumber:4083,columnNumber:38},this)]},void 0,!0,{fileName:U,lineNumber:4082,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4078,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:4039,columnNumber:9},this)}case`signupForm`:{let e=c.title||`Create Your Account`,t=c.submitLabel||`Create Account`,n=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:n||`#1d1d1f`,borderRadius:`${l.borderRadius??18}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,padding:`28px`},className:`flex flex-col justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`w-9 h-9 rounded-[10px] bg-[#0071e3] text-white flex items-center justify-center mb-3 shadow-apple-sm`,children:(0,F.jsxDEV)(b,{className:`w-4.5 h-4.5`},void 0,!1,{fileName:U,lineNumber:4111,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:4110,columnNumber:13},this),(0,F.jsxDEV)(`h3`,{style:{color:n||`#1d1d1f`},className:`text-[18px] font-bold tracking-tight`,children:e},void 0,!1,{fileName:U,lineNumber:4113,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4109,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5 my-2`,children:[(0,F.jsxDEV)(`div`,{style:{color:n?`${n}88`:`#86868b`},className:`h-8 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 flex items-center text-[12px]`,children:`Full Name`},void 0,!1,{fileName:U,lineNumber:4117,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{color:n?`${n}88`:`#86868b`},className:`h-8 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 flex items-center text-[12px]`,children:`Work Email`},void 0,!1,{fileName:U,lineNumber:4120,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{color:n?`${n}88`:`#86868b`},className:`h-8 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 flex items-center text-[12px]`,children:`Create Password`},void 0,!1,{fileName:U,lineNumber:4123,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4116,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`w-full py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[13px] font-semibold text-center shadow-apple-sm`,children:t},void 0,!1,{fileName:U,lineNumber:4129,columnNumber:13},this),(0,F.jsxDEV)(`p`,{style:{color:n?`${n}aa`:`#86868b`},className:`text-[11.5px] text-center mt-2.5`,children:[`Already registered? `,(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] font-medium`,children:`Sign in`},void 0,!1,{fileName:U,lineNumber:4133,columnNumber:35},this)]},void 0,!0,{fileName:U,lineNumber:4132,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4128,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:4096,columnNumber:9},this)}case`contactForm`:{let e=c.title||`Get in Touch`,t=c.submitLabel||`Send Inquiry`,n=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:n||`#1d1d1f`,borderRadius:`${l.borderRadius??18}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,padding:`28px`},className:`flex flex-col justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`w-9 h-9 rounded-[10px] bg-[#0071e3] text-white flex items-center justify-center mb-3 shadow-apple-sm`,children:(0,F.jsxDEV)(ia,{className:`w-4.5 h-4.5`},void 0,!1,{fileName:U,lineNumber:4161,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:4160,columnNumber:13},this),(0,F.jsxDEV)(`h3`,{style:{color:n||`#1d1d1f`},className:`text-[18px] font-bold tracking-tight`,children:e},void 0,!1,{fileName:U,lineNumber:4163,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4159,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5 my-2`,children:[(0,F.jsxDEV)(`div`,{style:{color:n?`${n}88`:`#86868b`},className:`h-8 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 flex items-center text-[12px]`,children:`Your Name`},void 0,!1,{fileName:U,lineNumber:4167,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{color:n?`${n}88`:`#86868b`},className:`h-8 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 flex items-center text-[12px]`,children:`Your Email`},void 0,!1,{fileName:U,lineNumber:4170,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{color:n?`${n}88`:`#86868b`},className:`h-16 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] p-2.5 text-[12px]`,children:`How can we help?`},void 0,!1,{fileName:U,lineNumber:4173,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4166,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`w-full py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[13px] font-semibold text-center shadow-apple-sm`,children:t},void 0,!1,{fileName:U,lineNumber:4178,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:4146,columnNumber:9},this)}case`mobileHeader`:{let e=c.title||`Screen Title`,t=c.actionLabel||`Edit`,n=c.showBack!==!1,r=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:r||`#1d1d1f`,borderRadius:`${l.borderRadius??14}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingLeft:`${l.paddingLeft??16}px`,paddingRight:`${l.paddingRight??16}px`},className:`flex items-center justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-[#0071e3] font-medium text-[13px]`,children:[n&&(0,F.jsxDEV)(vt,{className:`w-4 h-4`},void 0,!1,{fileName:U,lineNumber:4207,columnNumber:26},this),(0,F.jsxDEV)(`span`,{className:`text-[12px]`,children:`Back`},void 0,!1,{fileName:U,lineNumber:4208,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4206,columnNumber:11},this),(0,F.jsxDEV)(`h4`,{style:{color:r||`#1d1d1f`},className:`text-[14px] font-bold tracking-tight truncate max-w-[160px]`,children:e},void 0,!1,{fileName:U,lineNumber:4211,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`text-[12px] font-semibold text-[#0071e3]`,children:t},void 0,!1,{fileName:U,lineNumber:4215,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:4192,columnNumber:9},this)}case`bottomNav`:case`tabBar`:{let e=c.activeTab||`Home`,t=c.tabs||[{label:`Home`,icon:`Home`,badge:``},{label:`Cards`,icon:`CreditCard`,badge:`2`},{label:`Transfer`,icon:`Send`,badge:``},{label:`Profile`,icon:`User`,badge:``}],n=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:n||`#1d1d1f`,borderRadius:`${l.borderRadius??20}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`},className:`flex items-center justify-around px-2 select-none pointer-events-none ${x}`,children:t.map((t,r)=>{let i=t.label===e,a=Pl[t.icon]||Me;return(0,F.jsxDEV)(`div`,{className:j(`flex flex-col items-center gap-0.5 transition-apple relative py-1 px-2.5 rounded-xl`,i?`text-[#0071e3] font-bold`:`text-[#86868b]`),style:i?void 0:{color:n?`${n}aa`:`#86868b`},children:[(0,F.jsxDEV)(`div`,{className:`relative`,children:[(0,F.jsxDEV)(a,{className:`w-5 h-5`},void 0,!1,{fileName:U,lineNumber:4260,columnNumber:19},this),t.badge&&(0,F.jsxDEV)(`span`,{className:`absolute -top-1 -right-2 px-1 py-0.2 rounded-full bg-[#ff3b30] text-white text-[9px] font-bold leading-none`,children:t.badge},void 0,!1,{fileName:U,lineNumber:4262,columnNumber:21},this)]},void 0,!0,{fileName:U,lineNumber:4259,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] tracking-tight`,children:t.label},void 0,!1,{fileName:U,lineNumber:4267,columnNumber:17},this)]},r,!0,{fileName:U,lineNumber:4251,columnNumber:15},this)})},void 0,!1,{fileName:U,lineNumber:4234,columnNumber:9},this)}case`mobileCard`:{let e=c.subtitle||`Available Balance`,t=c.amount||`$14,250.80`,n=c.tag||`Checking •• 4092`,r=c.trend||`+12.4% this month`,i=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#0071e3`,color:i||`#ffffff`,borderRadius:`${l.borderRadius??18}px`,borderWidth:`${l.borderWidth??0}px`,borderColor:l.borderColor||`transparent`,paddingTop:`${l.paddingTop??18}px`,paddingBottom:`${l.paddingBottom??18}px`,paddingLeft:`${l.paddingLeft??18}px`,paddingRight:`${l.paddingRight??18}px`},className:`flex flex-col justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{style:{color:i?`${i}cc`:`rgba(255,255,255,0.8)`},className:`text-[11px] font-medium`,children:e},void 0,!1,{fileName:U,lineNumber:4300,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full text-[10px] font-semibold bg-white/20 backdrop-blur-xs`,children:n},void 0,!1,{fileName:U,lineNumber:4301,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4299,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{style:{color:i||`#ffffff`},className:`text-[26px] font-extrabold tracking-tight leading-tight`,children:t},void 0,!1,{fileName:U,lineNumber:4307,columnNumber:13},this),(0,F.jsxDEV)(`div`,{style:{color:i?`${i}dd`:`rgba(255,255,255,0.85)`},className:`text-[11px] font-medium mt-0.5 flex items-center gap-1`,children:[(0,F.jsxDEV)(_t,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:U,lineNumber:4309,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:r},void 0,!1,{fileName:U,lineNumber:4310,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:4308,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4306,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:4283,columnNumber:9},this)}case`mobileList`:{let e=c.title||`Recent Transactions`,t=c.items||[{title:`Apple Store`,subtitle:`Hardware & Tech`,amount:`-$1,299.00`,icon:`ShoppingBag`,isDebit:!0},{title:`Stripe Payout`,subtitle:`Direct Deposit`,amount:`+$4,820.00`,icon:`ArrowDownLeft`,isDebit:!1},{title:`Uber Rides`,subtitle:`Transportation`,amount:`-$24.50`,icon:`Car`,isDebit:!0}],n=l.textColor;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,color:n||`#1d1d1f`,borderRadius:`${l.borderRadius??16}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??14}px`,paddingBottom:`${l.paddingBottom??14}px`,paddingLeft:`${l.paddingLeft??16}px`,paddingRight:`${l.paddingRight??16}px`},className:`flex flex-col select-none pointer-events-none ${x}`,children:[e&&(0,F.jsxDEV)(`div`,{className:`text-[12px] font-bold mb-2 flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{style:{color:n||`#1d1d1f`},children:e},void 0,!1,{fileName:U,lineNumber:4345,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#0071e3] font-medium`,children:`See All`},void 0,!1,{fileName:U,lineNumber:4346,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:4344,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col justify-around divide-y divide-[#f5f5f7]`,children:t.map((e,t)=>{let r=Pl[e.icon]||Ie;return(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between py-2`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-8 h-8 rounded-xl bg-[#f5f5f7] text-[#1d1d1f] flex items-center justify-center`,children:(0,F.jsxDEV)(r,{className:`w-4 h-4 text-[#0071e3]`},void 0,!1,{fileName:U,lineNumber:4358,columnNumber:23},this)},void 0,!1,{fileName:U,lineNumber:4357,columnNumber:21},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{style:{color:n||`#1d1d1f`},className:`text-[12px] font-semibold`,children:e.title},void 0,!1,{fileName:U,lineNumber:4361,columnNumber:23},this),(0,F.jsxDEV)(`div`,{style:{color:n?`${n}aa`:`#86868b`},className:`text-[10px]`,children:e.subtitle},void 0,!1,{fileName:U,lineNumber:4362,columnNumber:23},this)]},void 0,!0,{fileName:U,lineNumber:4360,columnNumber:21},this)]},void 0,!0,{fileName:U,lineNumber:4356,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`text-right`,children:[(0,F.jsxDEV)(`div`,{className:j(`text-[12px] font-bold`,e.isDebit?``:`text-[#34c759]`),style:e.isDebit?{color:n||`#1d1d1f`}:void 0,children:e.amount},void 0,!1,{fileName:U,lineNumber:4367,columnNumber:21},this),(0,F.jsxDEV)(at,{className:`w-3 h-3 text-[#c7c7cc] inline-block ml-1`},void 0,!1,{fileName:U,lineNumber:4376,columnNumber:21},this)]},void 0,!0,{fileName:U,lineNumber:4366,columnNumber:19},this)]},t,!0,{fileName:U,lineNumber:4355,columnNumber:17},this)})},void 0,!1,{fileName:U,lineNumber:4350,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:4327,columnNumber:9},this)}case`mobileSheet`:{let e=c.title||`Transfer Money`,t=c.subtitle||`Select payment method or contact.`,n=c.primaryAction||`Send Money`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??24}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??14}px`,paddingBottom:`${l.paddingBottom??16}px`,paddingLeft:`${l.paddingLeft??18}px`,paddingRight:`${l.paddingRight??18}px`},className:`flex flex-col justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`w-10 h-1 rounded-full bg-[#d1d1d6] mx-auto mb-2`},void 0,!1,{fileName:U,lineNumber:4408,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h4`,{className:`text-[15px] font-bold text-[#1d1d1f]`,children:e},void 0,!1,{fileName:U,lineNumber:4411,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b] mt-0.5`,children:t},void 0,!1,{fileName:U,lineNumber:4412,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4410,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#f5f5f7] border border-[#e5e5ea] flex items-center justify-between text-[11.5px]`,children:[(0,F.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:`Fast Wire Transfer`},void 0,!1,{fileName:U,lineNumber:4416,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] font-bold`,children:`Instant`},void 0,!1,{fileName:U,lineNumber:4417,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4415,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`w-full py-2.5 rounded-xl bg-[#0071e3] text-white text-[12.5px] font-semibold text-center shadow-2xs`,children:n},void 0,!1,{fileName:U,lineNumber:4420,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:4392,columnNumber:9},this)}case`mobileModal`:{let e=c.title||`Confirm Payment`,t=c.message||`Are you sure you want to send $500.00 to Alex Rivera?`,n=c.confirmLabel||`Confirm & Send`,r=c.cancelLabel||`Cancel`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#ffffff`,borderRadius:`${l.borderRadius??20}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??20}px`,paddingBottom:`${l.paddingBottom??20}px`,paddingLeft:`${l.paddingLeft??18}px`,paddingRight:`${l.paddingRight??18}px`},className:`flex flex-col justify-between text-center select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`w-10 h-10 rounded-2xl bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center mx-auto mb-2`,children:(0,F.jsxDEV)(rt,{className:`w-5 h-5`},void 0,!1,{fileName:U,lineNumber:4451,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:4450,columnNumber:13},this),(0,F.jsxDEV)(`h4`,{className:`text-[14px] font-bold text-[#1d1d1f]`,children:e},void 0,!1,{fileName:U,lineNumber:4453,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#6e6e73] mt-1 leading-relaxed`,children:t},void 0,!1,{fileName:U,lineNumber:4454,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4449,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`flex-1 py-2 rounded-xl bg-[#f5f5f7] text-[#1d1d1f] text-[11.5px] font-semibold text-center`,children:r},void 0,!1,{fileName:U,lineNumber:4458,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex-1 py-2 rounded-xl bg-[#0071e3] text-white text-[11.5px] font-semibold text-center shadow-2xs`,children:n},void 0,!1,{fileName:U,lineNumber:4461,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4457,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:4434,columnNumber:9},this)}case`media`:{let e=c.src||c.url||c.image||`https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?w=800&auto=format&fit=crop&q=80`,t=c.alt||`Canvas image`,n=l.borderRadius??12;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,borderRadius:`${n}px`,overflow:`hidden`,opacity:l.opacity??1},className:`relative select-none pointer-events-none ${x}`,children:(0,F.jsxDEV)(`img`,{src:e,alt:t,style:{width:`100%`,height:`100%`,objectFit:c.objectFit||l.objectFit||`fill`,borderRadius:`${n}px`},className:`w-full h-full block`},void 0,!1,{fileName:U,lineNumber:4485,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:4475,columnNumber:9},this)}case`mobileScreen`:return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#f5f5f7`,borderRadius:`${l.borderRadius??28}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,paddingTop:`${l.paddingTop??16}px`,paddingBottom:`${l.paddingBottom??16}px`,paddingLeft:`${l.paddingLeft??16}px`,paddingRight:`${l.paddingRight??16}px`},className:`flex flex-col justify-between select-none pointer-events-none ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`w-full flex items-center justify-between text-[10px] font-bold text-[#1d1d1f] px-2 py-0.5`,children:[(0,F.jsxDEV)(`span`,{children:`9:41`},void 0,!1,{fileName:U,lineNumber:4519,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`w-20 h-4 rounded-full bg-black mx-auto`},void 0,!1,{fileName:U,lineNumber:4520,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`5G 100%`},void 0,!1,{fileName:U,lineNumber:4521,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4518,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex items-center justify-center text-[12px] text-[#86868b]`,children:e.name},void 0,!1,{fileName:U,lineNumber:4524,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`w-28 h-1 rounded-full bg-black mx-auto`},void 0,!1,{fileName:U,lineNumber:4529,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:4502,columnNumber:9},this);case`image`:{let t=c.imageUrl||c.src||c.url||``,n=c.alt||c.title||e.name||`image`,r=l.objectFit||c.objectFit||`cover`,i=l.borderRadius??0;if(!t){let e=Pl[c.icon||`Camera`]||nn;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:l.backgroundColor||`#1a1a1a`,borderRadius:`${i}px`,opacity:l.opacity??1},className:`flex flex-col items-center justify-center gap-2 select-none pointer-events-none overflow-hidden`,children:[(0,F.jsxDEV)(e,{className:`w-8 h-8 text-white/30`},void 0,!1,{fileName:U,lineNumber:4554,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] text-white/30 font-medium`,children:n},void 0,!1,{fileName:U,lineNumber:4555,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4544,columnNumber:11},this)}return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,borderRadius:`${i}px`,overflow:`hidden`,opacity:l.opacity??1,position:`relative`},className:`select-none pointer-events-none`,children:[(0,F.jsxDEV)(`img`,{src:t,alt:n,style:{width:`100%`,height:`100%`,objectFit:r,display:`block`},onError:e=>{let t=e.currentTarget;t.style.display=`none`;let r=t.parentElement;r&&(r.style.backgroundColor=l.backgroundColor||`#1a1a1a`,r.innerHTML=`<div style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#ffffff40;font-size:12px;font-family:sans-serif">${n}</div>`)}},void 0,!1,{fileName:U,lineNumber:4572,columnNumber:11},this),(c.title||c.text)&&(0,F.jsxDEV)(`div`,{style:{position:`absolute`,bottom:0,left:0,right:0,background:`linear-gradient(transparent, rgba(0,0,0,0.7))`,padding:`20px 16px 16px`},children:[c.title&&(0,F.jsxDEV)(`div`,{style:{color:l.textColor||`#ffffff`},className:`text-[16px] font-bold leading-tight`,children:c.title},void 0,!1,{fileName:U,lineNumber:4604,columnNumber:17},this),c.text&&(0,F.jsxDEV)(`div`,{style:{color:l.textColor?`${l.textColor}cc`:`rgba(255,255,255,0.75)`},className:`text-[12px] mt-0.5`,children:c.text},void 0,!1,{fileName:U,lineNumber:4609,columnNumber:17},this)]},void 0,!0,{fileName:U,lineNumber:4593,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4561,columnNumber:9},this)}case`htmlPage`:return(0,F.jsxDEV)(Rl,{element:e,styles:l,content:c},void 0,!1,{fileName:U,lineNumber:4620,columnNumber:14},this);case`svg`:case`sketch`:case`drawing`:{let t=l.strokeColor||l.textColor||l.borderColor||`#ff3b30`,n=l.strokeWidth||3.5;if(c.pathD)return(0,F.jsxDEV)(`svg`,{viewBox:`0 0 ${e.width} ${e.height}`,style:{width:`100%`,height:`100%`,opacity:l.opacity??1},className:`w-full h-full pointer-events-none select-none overflow-visible`,children:(0,F.jsxDEV)(`path`,{d:c.pathD,stroke:t,strokeWidth:n,fill:`none`,strokeLinecap:`round`,strokeLinejoin:`round`},void 0,!1,{fileName:U,lineNumber:4640,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:4631,columnNumber:11},this);let r=c.svg||c.svgContent;if(r&&typeof r==`string`&&r.trim().startsWith(`<svg`)){let e=r.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,``).replace(/on\w+\s*=\s*(?:'[^']*'|"[^"]*"|[^\s>]+)/gi,``).replace(/javascript\s*:/gi,``);return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,opacity:l.opacity??1},className:`w-full h-full pointer-events-none select-none overflow-visible flex items-center justify-center [&_svg]:w-full [&_svg]:h-full`,dangerouslySetInnerHTML:{__html:e}},void 0,!1,{fileName:U,lineNumber:4659,columnNumber:11},this)}return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,opacity:l.opacity??1},className:`w-full h-full pointer-events-none select-none`,children:(0,F.jsxDEV)(`svg`,{className:`w-full h-full`,viewBox:`0 0 100 100`,children:(0,F.jsxDEV)(`path`,{d:`M10 50 Q50 10 90 50`,stroke:t,strokeWidth:n,strokeLinecap:`round`,fill:`none`},void 0,!1,{fileName:U,lineNumber:4681,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:4680,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:4672,columnNumber:9},this)}default:{let n=Al.getCustomWidgetRenderer(e.type);if(n)return(0,F.jsxDEV)(n,{element:e,isSelected:t},void 0,!1,{fileName:U,lineNumber:4690,columnNumber:16},this);let r=l.backgroundColor||`#ffffff`,i=l.textColor||`#1d1d1f`,a=l.borderRadius??14,o=c.icon,s=o&&Pl[o]?Pl[o]:null,u=Il(c,[`title`,`headline`,`brandName`,`label`],``),d=Il(c,[`subtitle`,`text`,`description`],``),f=Il(c,[`buttonText`,`label`],``),p=Array.isArray(c.links)?c.links:[];return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,boxSizing:`border-box`,background:l.backgroundGradient||void 0,backgroundColor:l.backgroundGradient?void 0:r,color:i,borderRadius:`${a}px`,borderWidth:`${l.borderWidth??1}px`,borderColor:l.borderColor||`#e5e5ea`,borderStyle:(l.borderWidth??1)>0?`solid`:`none`,padding:`${l.padding??20}px`,opacity:l.opacity??1,backdropFilter:l.backdropBlur?`blur(${l.backdropBlur}px)`:void 0},className:`flex flex-col justify-between select-none pointer-events-none overflow-hidden ${x}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-start gap-3`,children:[s&&(0,F.jsxDEV)(`div`,{style:{backgroundColor:`${i}18`,color:i},className:`w-8 h-8 rounded-lg flex items-center justify-center shrink-0`,children:(0,F.jsxDEV)(s,{className:`w-4 h-4`},void 0,!1,{fileName:U,lineNumber:4730,columnNumber:17},this)},void 0,!1,{fileName:U,lineNumber:4726,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:[(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`title`,value:u,placeholder:`Title`,as:`div`,style:{color:i},className:`text-[14px] font-bold leading-tight truncate`},void 0,!1,{fileName:U,lineNumber:4734,columnNumber:15},this),(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`subtitle`,value:d,placeholder:`Description text...`,as:`div`,multiline:!0,style:{color:`${i}99`},className:`text-[12px] mt-1 line-clamp-3 leading-relaxed`},void 0,!1,{fileName:U,lineNumber:4743,columnNumber:15},this)]},void 0,!0,{fileName:U,lineNumber:4733,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4724,columnNumber:11},this),p.length>0&&(0,F.jsxDEV)(`div`,{style:{color:`${i}bb`},className:`flex items-center gap-4 text-[12px] font-medium flex-wrap mt-2`,children:p.slice(0,5).map((e,t)=>(0,F.jsxDEV)(`span`,{children:e},t,!1,{fileName:U,lineNumber:4760,columnNumber:17},this))},void 0,!1,{fileName:U,lineNumber:4758,columnNumber:13},this),!p.length&&(0,F.jsxDEV)(`div`,{style:{backgroundColor:i,color:r},className:`self-start mt-auto px-4 py-1.5 rounded-[8px] text-[12px] font-semibold`,children:(0,F.jsxDEV)(Ll,{elementId:e.id,fieldKey:`buttonText`,value:f,placeholder:`Action`,as:`span`},void 0,!1,{fileName:U,lineNumber:4771,columnNumber:15},this)},void 0,!1,{fileName:U,lineNumber:4767,columnNumber:13},this)]},void 0,!0,{fileName:U,lineNumber:4705,columnNumber:9},this)}}}var Bl=(0,N.memo)(zl,(e,t)=>{if(e.isSelected!==t.isSelected||e.itemContext!==t.itemContext||e.childElements!==t.childElements)return!1;if(e.element===t.element)return!0;let n=e.element,r=t.element;return n.id===r.id&&n.type===r.type&&n.name===r.name&&n.x===r.x&&n.y===r.y&&n.width===r.width&&n.height===r.height&&n.rotation===r.rotation&&n.zIndex===r.zIndex&&n.locked===r.locked&&n.hidden===r.hidden&&n.styles===r.styles&&n.content===r.content&&n.interactions===r.interactions&&n.animations===r.animations&&n.collectionBinding===r.collectionBinding&&n.responsive===r.responsive&&n.autoLayout===r.autoLayout&&n.variants===r.variants&&n.activeVariantId===r.activeVariantId&&n.previewVariantState===r.previewVariantState}),Vl=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/SelectionOverlay.tsx`;function Hl(e,t){if(!e||e===`transparent`||e.startsWith(`rgba`))return t;if(e.startsWith(`#`)){if(e.length===7)return e;if(e.length===4)return`#${e[1]}${e[1]}${e[2]}${e[2]}${e[3]}${e[3]}`}return t}function Ul({element:e,selectedCount:t=1,onResizeStart:n,onRotateStart:r}){let{updateElement:i,duplicateSelectedElements:a,deleteSelectedElements:o,toggleLockSelectedElements:s}=I(),c=!!e.locked,l=(e.effectiveY??e.y)<55;return(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:e.x,top:e.y,width:e.width,height:e.height,transform:`rotate(${e.rotation||0}deg)`,transformOrigin:`center center`,pointerEvents:`none`,zIndex:9999},className:`select-none ${c?`ring-1.5 ring-[#ff9500] ring-dashed`:`ring-1.5 ring-[#0071e3]`}`,children:[(0,F.jsxDEV)(`div`,{style:{position:`absolute`,top:l?e.height+34:-48,left:`50%`,transform:`translateX(-50%)`,zIndex:1e4},className:`flex items-center gap-1 p-1 rounded-xl bg-white/95 dark:bg-[#1c1c1e]/95 border border-[#e5e5ea] dark:border-[#38383a] shadow-apple-md backdrop-blur-md pointer-events-auto select-none animate-fade-in text-[12px]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center p-0.5 rounded-lg hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-colors cursor-pointer`,title:`Background / Fill Color`,children:(0,F.jsxDEV)(`input`,{type:`color`,value:Hl(e.styles?.backgroundColor,`#ffffff`),onChange:t=>{t.stopPropagation(),I.getState().updateElementStyles(e.id,{backgroundColor:t.target.value},!0)},className:`w-5 h-5 rounded-full border border-[#e5e5ea] dark:border-[#38383a] cursor-pointer p-0 overflow-hidden outline-none appearance-none shadow-2xs hover:scale-105 transition-transform`},void 0,!1,{fileName:Vl,lineNumber:85,columnNumber:11},this)},void 0,!1,{fileName:Vl,lineNumber:84,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center p-0.5 rounded-lg hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-colors cursor-pointer`,title:`Text / Foreground Color`,children:(0,F.jsxDEV)(`input`,{type:`color`,value:Hl(e.styles?.textColor,`#1d1d1f`),onChange:t=>{t.stopPropagation(),I.getState().updateElementStyles(e.id,{textColor:t.target.value},!0)},className:`w-5 h-5 rounded-full border border-[#e5e5ea] dark:border-[#38383a] cursor-pointer p-0 overflow-hidden outline-none appearance-none shadow-2xs hover:scale-105 transition-transform`},void 0,!1,{fileName:Vl,lineNumber:98,columnNumber:11},this)},void 0,!1,{fileName:Vl,lineNumber:97,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`w-[1px] h-4 bg-[#e5e5ea] dark:bg-[#38383a] my-auto mx-0.5`},void 0,!1,{fileName:Vl,lineNumber:109,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),a()},title:`Duplicate (⌘D)`,className:`p-1.5 rounded-lg text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#7d2ae8] dark:hover:text-[#9d52ff] hover:bg-[#7d2ae8]/10 transition-all cursor-pointer hover:scale-110 active:scale-90`,children:(0,F.jsxDEV)(Dn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Vl,lineNumber:121,columnNumber:11},this)},void 0,!1,{fileName:Vl,lineNumber:112,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),o()},title:`Delete (⌫)`,className:`p-1.5 rounded-lg text-[#6e6e73] dark:text-[#8e8e93] hover:text-rose-600 hover:bg-rose-50 dark:hover:bg-rose-950/30 transition-all cursor-pointer hover:scale-110 active:scale-90`,children:(0,F.jsxDEV)(Oe,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Vl,lineNumber:133,columnNumber:11},this)},void 0,!1,{fileName:Vl,lineNumber:124,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`w-[1px] h-4 bg-[#e5e5ea] dark:bg-[#38383a] my-auto mx-0.5`},void 0,!1,{fileName:Vl,lineNumber:136,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),s()},title:c?`Unlock Position`:`Lock Position`,className:j(`p-1.5 rounded-lg transition-all cursor-pointer hover:scale-110 active:scale-90`,c?`text-amber-600 bg-amber-50 dark:bg-amber-950/40`:`text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e]`),children:c?(0,F.jsxDEV)(Ri,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Vl,lineNumber:152,columnNumber:23},this):(0,F.jsxDEV)(_i,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Vl,lineNumber:152,columnNumber:58},this)},void 0,!1,{fileName:Vl,lineNumber:138,columnNumber:9},this)]},void 0,!0,{fileName:Vl,lineNumber:73,columnNumber:7},this),c&&(0,F.jsxDEV)(`div`,{className:`absolute -top-7 right-0 flex items-center gap-1 px-2 py-0.5 rounded-[4px] bg-[#1d1d1f] text-white text-[10px] font-medium shadow-apple-sm pointer-events-auto`,children:[(0,F.jsxDEV)(Ri,{className:`w-2.5 h-2.5 text-[#ff9500]`},void 0,!1,{fileName:Vl,lineNumber:159,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:`Locked`},void 0,!1,{fileName:Vl,lineNumber:160,columnNumber:11},this)]},void 0,!0,{fileName:Vl,lineNumber:158,columnNumber:9},this),!c&&(0,F.jsxDEV)(`div`,{style:{position:`absolute`,bottom:-28,left:`50%`,transform:`translateX(-50%)`},className:`flex flex-col items-center pointer-events-auto z-50`,children:[(0,F.jsxDEV)(`div`,{className:`w-[1px] h-2 bg-[#0071e3]`},void 0,!1,{fileName:Vl,lineNumber:175,columnNumber:11},this),(0,F.jsxDEV)(`div`,{onMouseDown:e=>r&&r(e),title:`Drag to rotate with cursor (Hold Shift to snap to 15°)`,className:`w-5 h-5 rounded-full bg-white border border-[#0071e3] shadow-apple-md flex items-center justify-center text-[#0071e3] cursor-grab active:cursor-grabbing hover:bg-[#0071e3] hover:text-white hover:scale-115 active:scale-95 transition-all`,children:(0,F.jsxDEV)(en,{className:`w-3 h-3`},void 0,!1,{fileName:Vl,lineNumber:181,columnNumber:13},this)},void 0,!1,{fileName:Vl,lineNumber:176,columnNumber:11},this)]},void 0,!0,{fileName:Vl,lineNumber:166,columnNumber:9},this),!c&&(0,F.jsxDEV)(F.Fragment,{children:[(0,F.jsxDEV)(`div`,{style:{position:`absolute`,top:-14,left:-14,width:14,height:14},onMouseDown:e=>r&&r(e),title:`Drag to rotate`,className:`pointer-events-auto cursor-grab active:cursor-grabbing`},void 0,!1,{fileName:Vl,lineNumber:189,columnNumber:11},this),(0,F.jsxDEV)(`div`,{style:{position:`absolute`,top:-14,right:-14,width:14,height:14},onMouseDown:e=>r&&r(e),title:`Drag to rotate`,className:`pointer-events-auto cursor-grab active:cursor-grabbing`},void 0,!1,{fileName:Vl,lineNumber:195,columnNumber:11},this),(0,F.jsxDEV)(`div`,{style:{position:`absolute`,bottom:-14,right:-14,width:14,height:14},onMouseDown:e=>r&&r(e),title:`Drag to rotate`,className:`pointer-events-auto cursor-grab active:cursor-grabbing`},void 0,!1,{fileName:Vl,lineNumber:201,columnNumber:11},this),(0,F.jsxDEV)(`div`,{style:{position:`absolute`,bottom:-14,left:-14,width:14,height:14},onMouseDown:e=>r&&r(e),title:`Drag to rotate`,className:`pointer-events-auto cursor-grab active:cursor-grabbing`},void 0,!1,{fileName:Vl,lineNumber:207,columnNumber:11},this)]},void 0,!0,{fileName:Vl,lineNumber:188,columnNumber:9},this),!c&&[{id:`tl`,cursor:`nwse-resize`,style:{top:-4,left:-4}},{id:`t`,cursor:`ns-resize`,style:{top:-4,left:`calc(50% - 4px)`}},{id:`tr`,cursor:`nesw-resize`,style:{top:-4,right:-4}},{id:`r`,cursor:`ew-resize`,style:{top:`calc(50% - 4px)`,right:-4}},{id:`br`,cursor:`nwse-resize`,style:{bottom:-4,right:-4}},{id:`b`,cursor:`ns-resize`,style:{bottom:-4,left:`calc(50% - 4px)`}},{id:`bl`,cursor:`nesw-resize`,style:{bottom:-4,left:-4}},{id:`l`,cursor:`ew-resize`,style:{top:`calc(50% - 4px)`,left:-4}}].map(e=>(0,F.jsxDEV)(`div`,{style:{...e.style,cursor:e.cursor},onMouseDown:t=>n&&n(t,e.id),className:`absolute w-2 h-2 bg-white border border-[#0071e3] rounded-[1.5px] shadow-2xs pointer-events-auto hover:scale-130 transition-transform`},e.id,!1,{fileName:Vl,lineNumber:219,columnNumber:11},this))]},void 0,!0,{fileName:Vl,lineNumber:58,columnNumber:5},this)}var Wl=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/MultiSelectionOverlay.tsx`;function Gl({elements:e,onResizeStart:t}){let{groupSelectedElements:n,deleteSelectedElements:r,alignSelectedElements:i}=I();if(!e||e.length<=1)return null;let a=qs(e);return(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:a.x,top:a.y,width:a.width,height:a.height,pointerEvents:`none`,zIndex:9998},className:`ring-1.5 ring-[#0071e3] ring-dashed select-none`,children:[(0,F.jsxDEV)(`div`,{className:`absolute -top-9 left-1/2 -translate-x-1/2 flex items-center gap-1.5 px-2 py-1 rounded-[8px] bg-[#1d1d1f] text-white shadow-apple-md pointer-events-auto text-[11px]`,children:[(0,F.jsxDEV)(`span`,{className:`font-semibold text-white/90 mr-1`,children:[e.length,` elements`]},void 0,!0,{fileName:Wl,lineNumber:54,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`h-3 w-[1px] bg-white/20`},void 0,!1,{fileName:Wl,lineNumber:58,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:n,title:`Group Selection (⌘G)`,className:`flex items-center gap-1 px-1.5 py-0.5 rounded hover:bg-white/20 transition-colors text-[10.5px] cursor-pointer`,children:[(0,F.jsxDEV)(ha,{className:`w-3 h-3`},void 0,!1,{fileName:Wl,lineNumber:66,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:`Group`},void 0,!1,{fileName:Wl,lineNumber:67,columnNumber:11},this)]},void 0,!0,{fileName:Wl,lineNumber:60,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>i(`center-h`),title:`Align Center H`,className:`p-1 rounded hover:bg-white/20 transition-colors cursor-pointer`,children:(0,F.jsxDEV)(mn,{className:`w-3 h-3`},void 0,!1,{fileName:Wl,lineNumber:76,columnNumber:11},this)},void 0,!1,{fileName:Wl,lineNumber:70,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>i(`middle-v`),title:`Align Middle V`,className:`p-1 rounded hover:bg-white/20 transition-colors cursor-pointer`,children:(0,F.jsxDEV)(Pe,{className:`w-3 h-3`},void 0,!1,{fileName:Wl,lineNumber:85,columnNumber:11},this)},void 0,!1,{fileName:Wl,lineNumber:79,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:r,title:`Delete Selection (⌫)`,className:`p-1 rounded hover:bg-[#ff453a] transition-colors text-[#ff453a] hover:text-white cursor-pointer`,children:(0,F.jsxDEV)(Oe,{className:`w-3 h-3`},void 0,!1,{fileName:Wl,lineNumber:94,columnNumber:11},this)},void 0,!1,{fileName:Wl,lineNumber:88,columnNumber:9},this)]},void 0,!0,{fileName:Wl,lineNumber:53,columnNumber:7},this),[{id:`tl`,cursor:`nwse-resize`,style:{top:-4,left:-4}},{id:`t`,cursor:`ns-resize`,style:{top:-4,left:`calc(50% - 4px)`}},{id:`tr`,cursor:`nesw-resize`,style:{top:-4,right:-4}},{id:`r`,cursor:`ew-resize`,style:{top:`calc(50% - 4px)`,right:-4}},{id:`br`,cursor:`nwse-resize`,style:{bottom:-4,right:-4}},{id:`b`,cursor:`ns-resize`,style:{bottom:-4,left:`calc(50% - 4px)`}},{id:`bl`,cursor:`nesw-resize`,style:{bottom:-4,left:-4}},{id:`l`,cursor:`ew-resize`,style:{top:`calc(50% - 4px)`,left:-4}}].map(e=>(0,F.jsxDEV)(`div`,{style:{...e.style,cursor:e.cursor},onMouseDown:n=>t&&t(n,e.id),className:`absolute w-2 h-2 bg-white border border-[#0071e3] rounded-[1.5px] shadow-2xs pointer-events-auto hover:scale-130 transition-transform`},e.id,!1,{fileName:Wl,lineNumber:100,columnNumber:9},this))]},void 0,!0,{fileName:Wl,lineNumber:40,columnNumber:5},this)}var Kl=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/SmartGuidesOverlay.tsx`;function ql({guides:e,artboardWidth:t,artboardHeight:n}){return!e||e.length===0?null:(0,F.jsxDEV)(`div`,{style:{position:`absolute`,inset:0,pointerEvents:`none`,zIndex:99999},children:e.map((e,r)=>{let i=e.orientation===`vertical`;return(0,F.jsxDEV)(`div`,{style:{position:`absolute`,...i?{left:`${e.position}px`,top:0,width:`1px`,height:`${n}px`,backgroundColor:`#ff2d55`,boxShadow:`0 0 4px rgba(255, 45, 85, 0.6)`}:{top:`${e.position}px`,left:0,height:`1px`,width:`${t}px`,backgroundColor:`#ff2d55`,boxShadow:`0 0 4px rgba(255, 45, 85, 0.6)`}}},`guide_${r}_${e.position}`,!1,{fileName:Kl,lineNumber:29,columnNumber:11},this)})},void 0,!1,{fileName:Kl,lineNumber:18,columnNumber:5},this)}var Jl=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/SpacingMeasurementOverlay.tsx`;function Yl({lines:e}){return!e||e.length===0?null:(0,F.jsxDEV)(`div`,{style:{position:`absolute`,inset:0,pointerEvents:`none`,zIndex:99998},children:e.map(e=>{let t=e.orientation===`horizontal`,n=Math.abs(t?e.x2-e.x1:e.y2-e.y1);if(n<2)return null;let r=Math.min(e.x1,e.x2),i=Math.min(e.y1,e.y2);return(0,F.jsxDEV)(N.Fragment,{children:[(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`${r}px`,top:`${i}px`,width:t?`${n}px`:`1px`,height:t?`1px`:`${n}px`,backgroundColor:`#ff2d55`,borderStyle:`dashed`}},void 0,!1,{fileName:Jl,lineNumber:31,columnNumber:13},this),t?(0,F.jsxDEV)(F.Fragment,{children:[(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`${r}px`,top:`${i-3}px`,width:`1px`,height:`7px`,backgroundColor:`#ff2d55`}},void 0,!1,{fileName:Jl,lineNumber:46,columnNumber:17},this),(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`${r+n}px`,top:`${i-3}px`,width:`1px`,height:`7px`,backgroundColor:`#ff2d55`}},void 0,!1,{fileName:Jl,lineNumber:56,columnNumber:17},this)]},void 0,!0,{fileName:Jl,lineNumber:45,columnNumber:15},this):(0,F.jsxDEV)(F.Fragment,{children:[(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`${r-3}px`,top:`${i}px`,width:`7px`,height:`1px`,backgroundColor:`#ff2d55`}},void 0,!1,{fileName:Jl,lineNumber:69,columnNumber:17},this),(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`${r-3}px`,top:`${i+n}px`,width:`7px`,height:`1px`,backgroundColor:`#ff2d55`}},void 0,!1,{fileName:Jl,lineNumber:79,columnNumber:17},this)]},void 0,!0,{fileName:Jl,lineNumber:68,columnNumber:15},this),(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`${e.labelX}px`,top:`${e.labelY}px`,transform:`translate(-50%, -50%)`},className:`px-1.5 py-0.5 rounded-[4px] bg-[#ff2d55] text-white font-mono text-[9.5px] font-bold shadow-apple-sm whitespace-nowrap`,children:[e.distance,` px`]},void 0,!0,{fileName:Jl,lineNumber:93,columnNumber:13},this)]},e.id,!0,{fileName:Jl,lineNumber:29,columnNumber:11},this)})},void 0,!1,{fileName:Jl,lineNumber:12,columnNumber:5},this)}var Xl=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/ResponsiveWarningBanner.tsx`;function Zl({issues:e}){return e.length===0?null:(0,F.jsxDEV)(`div`,{className:`absolute top-3 left-1/2 -translate-x-1/2 z-[99999] flex items-center gap-2 px-3 py-1.5 rounded-full bg-amber-500/10 border border-amber-500/30 backdrop-blur-md text-amber-700 text-[11px] font-medium shadow-apple-sm select-none pointer-events-auto animate-in fade-in slide-in-from-top-2 duration-150`,children:[(0,F.jsxDEV)(Kr,{className:`w-3.5 h-3.5 text-amber-600 shrink-0`},void 0,!1,{fileName:Xl,lineNumber:13,columnNumber:7},this),(0,F.jsxDEV)(`span`,{children:e.length===1?`Responsive Alert: ${e[0].elementName} ${e[0].message}`:`${e.length} responsive overflow issues detected`},void 0,!1,{fileName:Xl,lineNumber:14,columnNumber:7},this)]},void 0,!0,{fileName:Xl,lineNumber:12,columnNumber:5},this)}var Ql=`C:/Users/Shadow/Desktop/cyrus/src/editor/preview/InteractiveModal.tsx`;function $l({title:e,isOpen:t,onClose:n}){return t?(0,F.jsxDEV)(`div`,{onClick:n,className:`absolute inset-0 bg-black/30 backdrop-blur-xs flex items-center justify-center p-4 z-[999999] animate-in fade-in duration-150 select-none`,children:(0,F.jsxDEV)(`div`,{onClick:e=>e.stopPropagation(),className:`w-full max-w-sm bg-white/95 backdrop-blur-xl border border-[#e5e5ea] rounded-[16px] shadow-apple-lg p-5 flex flex-col gap-4 animate-in zoom-in-95 duration-150`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`w-7 h-7 rounded-full bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center`,children:(0,F.jsxDEV)(vi,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Ql,lineNumber:27,columnNumber:15},this)},void 0,!1,{fileName:Ql,lineNumber:26,columnNumber:13},this),(0,F.jsxDEV)(`h3`,{className:`text-[14px] font-semibold text-[#1d1d1f]`,children:e||`Interactive Dialog`},void 0,!1,{fileName:Ql,lineNumber:29,columnNumber:13},this)]},void 0,!0,{fileName:Ql,lineNumber:25,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:n,className:`w-6 h-6 rounded-full bg-[#f4f4f6] text-[#86868b] hover:text-[#1d1d1f] flex items-center justify-center transition-apple cursor-pointer`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Ql,lineNumber:36,columnNumber:13},this)},void 0,!1,{fileName:Ql,lineNumber:31,columnNumber:11},this)]},void 0,!0,{fileName:Ql,lineNumber:24,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`space-y-2.5 text-[12px]`,children:[(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] leading-relaxed`,children:`This interactive dialog was dynamically triggered by a Cyrus prototype interaction.`},void 0,!1,{fileName:Ql,lineNumber:42,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`space-y-1`,children:[(0,F.jsxDEV)(`label`,{className:`text-[10.5px] font-semibold text-[#86868b]`,children:`Email Address`},void 0,!1,{fileName:Ql,lineNumber:47,columnNumber:13},this),(0,F.jsxDEV)(`input`,{type:`email`,placeholder:`user@example.com`,className:`w-full h-8 px-2.5 bg-[#f4f4f6] rounded-[6px] border border-[#e5e5ea] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3]`},void 0,!1,{fileName:Ql,lineNumber:48,columnNumber:13},this)]},void 0,!0,{fileName:Ql,lineNumber:46,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`space-y-1`,children:[(0,F.jsxDEV)(`label`,{className:`text-[10.5px] font-semibold text-[#86868b]`,children:`Security Password`},void 0,!1,{fileName:Ql,lineNumber:56,columnNumber:13},this),(0,F.jsxDEV)(`input`,{type:`password`,placeholder:`••••••••••••`,className:`w-full h-8 px-2.5 bg-[#f4f4f6] rounded-[6px] border border-[#e5e5ea] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3]`},void 0,!1,{fileName:Ql,lineNumber:57,columnNumber:13},this)]},void 0,!0,{fileName:Ql,lineNumber:55,columnNumber:11},this)]},void 0,!0,{fileName:Ql,lineNumber:41,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-end gap-2 pt-1 border-t border-[#f4f4f6]`,children:[(0,F.jsxDEV)(fs,{variant:`secondary`,size:`xs`,onClick:n,children:`Cancel`},void 0,!1,{fileName:Ql,lineNumber:67,columnNumber:11},this),(0,F.jsxDEV)(fs,{variant:`primary`,size:`xs`,onClick:n,icon:(0,F.jsxDEV)(ke,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Ql,lineNumber:70,columnNumber:71},this),children:`Confirm Action`},void 0,!1,{fileName:Ql,lineNumber:70,columnNumber:11},this)]},void 0,!0,{fileName:Ql,lineNumber:66,columnNumber:9},this)]},void 0,!0,{fileName:Ql,lineNumber:19,columnNumber:7},this)},void 0,!1,{fileName:Ql,lineNumber:15,columnNumber:5},this):null}var eu=`C:/Users/Shadow/Desktop/cyrus/src/components/ui/ErrorBoundary.tsx`,tu=class extends N.Component{state={hasError:!1,error:null};static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`Cyrus Error Boundary Caught Exception:`,e,t)}handleReset=()=>{this.setState({hasError:!1,error:null})};render(){return this.state.hasError?(0,F.jsxDEV)(`div`,{className:`h-screen w-screen flex flex-col items-center justify-center bg-[#f5f5f7] dark:bg-[#161618] text-[#1d1d1f] dark:text-[#f5f5f7] p-6 select-none`,children:(0,F.jsxDEV)(`div`,{className:`p-8 rounded-[24px] bg-white dark:bg-[#252528] border border-[#e5e5ea] dark:border-[#38383a] shadow-apple-lg max-w-md w-full flex flex-col items-center text-center gap-4 animate-in fade-in zoom-in-95`,children:[(0,F.jsxDEV)(`div`,{className:`w-12 h-12 rounded-2xl bg-[#ff3b30]/10 text-[#ff3b30] flex items-center justify-center`,children:(0,F.jsxDEV)(it,{className:`w-6 h-6`},void 0,!1,{fileName:eu,lineNumber:37,columnNumber:15},this)},void 0,!1,{fileName:eu,lineNumber:36,columnNumber:13},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h2`,{className:`text-[17px] font-bold text-[#1d1d1f] dark:text-white`,children:`Workspace Recovered`},void 0,!1,{fileName:eu,lineNumber:40,columnNumber:15},this),(0,F.jsxDEV)(`p`,{className:`text-[12.5px] text-[#86868b] dark:text-[#8e8e93] mt-1.5 leading-relaxed`,children:`Click below to open your fresh design workspace canvas.`},void 0,!1,{fileName:eu,lineNumber:41,columnNumber:15},this)]},void 0,!0,{fileName:eu,lineNumber:39,columnNumber:13},this),this.state.error?.message&&(0,F.jsxDEV)(`div`,{className:`w-full p-2.5 rounded-xl bg-[#ff3b30]/10 text-[#ff3b30] text-[11px] font-mono break-all text-center`,children:this.state.error.message},void 0,!1,{fileName:eu,lineNumber:46,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:this.handleReset,className:`w-full py-2.5 px-4 rounded-xl bg-[#0071e3] hover:bg-[#0077ed] text-white text-[13px] font-semibold flex items-center justify-center gap-2 shadow-2xs transition-all cursor-pointer`,children:[(0,F.jsxDEV)(yn,{className:`w-4 h-4`},void 0,!1,{fileName:eu,lineNumber:55,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Enter Canvas Workspace`},void 0,!1,{fileName:eu,lineNumber:56,columnNumber:15},this)]},void 0,!0,{fileName:eu,lineNumber:50,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{this.setState({hasError:!1,error:null}),window.location.href=window.location.origin},className:`w-full py-2 px-4 rounded-xl bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#6e6e73] dark:text-[#8e8e93] text-[12px] font-medium hover:text-[#1d1d1f] dark:hover:text-white transition-colors cursor-pointer`,children:`Open Dashboard`},void 0,!1,{fileName:eu,lineNumber:58,columnNumber:13},this)]},void 0,!0,{fileName:eu,lineNumber:35,columnNumber:11},this)},void 0,!1,{fileName:eu,lineNumber:34,columnNumber:9},this):this.props.children}},nu=[`#FF3B30`,`#FF9500`,`#34C759`,`#007AFF`,`#AF52DE`,`#FF2D55`,`#00C7BE`,`#5AC8FA`];function ru(){return`sess_${Math.random().toString(36).slice(2,11)}`}function iu(e,t=`Current Project`){let n=e.filter(e=>e.status===`open`),r=e.filter(e=>e.status===`resolved`);if(e.length===0)return{totalCount:0,openCount:0,resolvedCount:0,executiveSummary:`No feedback comments have been recorded for "${t}" yet. The design is ready for initial team review.`,categories:[],actionItems:[`Drop comment markers across artboards to initiate peer review.`],keyStrengths:[`Design canvas is clean and ready for review.`]};let i={"Spacing & Layout":{count:0,sentiment:`critical`,comments:[]},"Visual Contrast & Accessibility":{count:0,sentiment:`critical`,comments:[]},"Typography & Hierarchy":{count:0,sentiment:`suggestion`,comments:[]},"Forms & Validation":{count:0,sentiment:`critical`,comments:[]},"Mobile & Responsive":{count:0,sentiment:`critical`,comments:[]},"Copy & Content":{count:0,sentiment:`suggestion`,comments:[]},"General Polish & Praise":{count:0,sentiment:`positive`,comments:[]}},a=[],o=[];for(let t of e){let e=(t.body+` `+t.replies.map(e=>e.body).join(` `)).toLowerCase(),n=!1;(e.includes(`spacing`)||e.includes(`margin`)||e.includes(`padding`)||e.includes(`align`)||e.includes(`gap`)||e.includes(`grid`))&&(i[`Spacing & Layout`].count++,i[`Spacing & Layout`].comments.push(t.body),n=!0),(e.includes(`contrast`)||e.includes(`color`)||e.includes(`dark`)||e.includes(`readable`)||e.includes(`wcag`)||e.includes(`accessibility`)||e.includes(`legible`))&&(i[`Visual Contrast & Accessibility`].count++,i[`Visual Contrast & Accessibility`].comments.push(t.body),n=!0),(e.includes(`font`)||e.includes(`heading`)||e.includes(`size`)||e.includes(`weight`)||e.includes(`type`)||e.includes(`hierarchy`))&&(i[`Typography & Hierarchy`].count++,i[`Typography & Hierarchy`].comments.push(t.body),n=!0),(e.includes(`form`)||e.includes(`input`)||e.includes(`button`)||e.includes(`submit`)||e.includes(`error`)||e.includes(`validation`)||e.includes(`field`))&&(i[`Forms & Validation`].count++,i[`Forms & Validation`].comments.push(t.body),n=!0),(e.includes(`mobile`)||e.includes(`phone`)||e.includes(`screen`)||e.includes(`responsive`)||e.includes(`overflow`)||e.includes(`tablet`))&&(i[`Mobile & Responsive`].count++,i[`Mobile & Responsive`].comments.push(t.body),n=!0),(e.includes(`copy`)||e.includes(`text`)||e.includes(`spelling`)||e.includes(`wording`)||e.includes(`headline`)||e.includes(`label`))&&(i[`Copy & Content`].count++,i[`Copy & Content`].comments.push(t.body),n=!0),(e.includes(`love`)||e.includes(`great`)||e.includes(`clean`)||e.includes(`looks good`)||e.includes(`awesome`)||e.includes(`nice`)||e.includes(`perfect`))&&(i[`General Polish & Praise`].count++,i[`General Polish & Praise`].comments.push(t.body),o.push(t.body),n=!0),n||(i[`General Polish & Praise`].count++,i[`General Polish & Praise`].comments.push(t.body))}let s=Object.entries(i).filter(([e,t])=>t.count>0).map(([e,t])=>({title:e,count:t.count,sentiment:t.sentiment,comments:t.comments.slice(0,3)})).sort((e,t)=>t.count-e.count),c=n.length,l=r.length,u=s[0],d=s[1],f=``;if(c===0&&l>0)f=`All ${l} review feedback item(s) have been successfully resolved. The project meets stakeholder quality criteria.`;else{let e=[];u&&u.count>0&&e.push(`${u.count} comment${u.count>1?`s concern`:` concerns`} ${u.title.toLowerCase()}`),d&&d.count>0&&e.push(`${d.count} concern ${d.title.toLowerCase()}`);let t=e.join(` and `);f=`Review analysis identified ${c} open feedback thread${c>1?`s`:``}${t?` (${t})`:``}. ${l>0?`${l} thread${l>1?`s were`:` was`} already resolved in prior revisions.`:``}`}return i[`Spacing & Layout`].count>0&&a.push(`Refine element margins and container padding across artboards to preserve Apple 8pt grid consistency.`),i[`Visual Contrast & Accessibility`].count>0&&a.push(`Increase text-to-background contrast ratio for secondary labels to meet WCAG AA standards (#86868b on white).`),i[`Mobile & Responsive`].count>0&&a.push(`Verify mobile breakpoints (390px) to ensure no horizontal overflow or clipped card widths.`),i[`Forms & Validation`].count>0&&a.push(`Ensure form input field error and success states are clearly distinguished with feedback pills.`),a.length===0&&a.push(`Review open comment pins on canvas and mark threads as resolved once addressed.`),o.length===0&&(o.push(`Visual hierarchy and typography rhythm are strong.`),o.push(`Design components maintain cohesive Apple Human Interface tokens.`)),{totalCount:e.length,openCount:c,resolvedCount:l,executiveSummary:f,categories:s,actionItems:a,keyStrengths:o.slice(0,3)}}var au=`cyrus_activity_v1_`;function ou(e){try{let t=localStorage.getItem(`${au}${e}`);if(t){let e=JSON.parse(t);if(Array.isArray(e))return e}}catch(e){console.error(`Failed to load project activity:`,e)}return[]}function su(e,t){try{localStorage.setItem(`${au}${e}`,JSON.stringify(t.slice(0,200)))}catch(e){console.error(`Failed to persist project activity:`,e)}}function cu(e,t=`New Product`){let n=Date.now();return[{id:M(`act`),projectId:e,type:`project_created`,actor:{id:`user_owner`,name:`You`,color:`#0071e3`},title:`Created Project`,description:`Initialized project "${t}" with default 1440px canvas and design tokens.`,timestamp:new Date(n-72e5).toISOString(),isUnread:!1,isNotification:!1},{id:M(`act`),projectId:e,type:`version_created`,actor:{id:`user_owner`,name:`You`,color:`#0071e3`},title:`Version 1 Checkpoint`,description:`Initial project baseline snapshot created.`,timestamp:new Date(n-27e5).toISOString(),metadata:{versionNumber:1},isUnread:!1,isNotification:!1},{id:M(`act`),projectId:e,type:`ai_change`,actor:{id:`ai_cyrus`,name:`Cyrus AI Agent`,isAI:!0,color:`#5856d6`},title:`AI Synthesized Layout`,description:`Generated responsive cards, line charts, and metric scorecards.`,timestamp:new Date(n-12e5).toISOString(),metadata:{changesSummary:[`Added 4 KPI stat cards`,`Added revenue line chart`,`Refined typography scale`]},isUnread:!0,isNotification:!0}]}var lu=ro((e,t)=>({currentProjectId:null,activities:[],isActivityPanelOpen:!1,isNotificationsOpen:!1,loadActivitiesForProject:(t,n)=>{if(!t)return;let r=ou(t);r.length===0&&(r=cu(t,n),su(t,r)),e({currentProjectId:t,activities:r})},recordActivity:n=>{let{currentProjectId:r,activities:i}=t(),a=n.projectId||r||`default`,o={id:M(`act`),projectId:a,timestamp:new Date().toISOString(),isUnread:!0,isNotification:n.isNotification??(n.type===`comment_added`||n.type===`mention`||n.type===`deployment_completed`||n.type===`deployment_failed`||n.type===`ai_change`),...n};if(a===r||r===null){let t=[o,...i].slice(0,200);e({activities:t}),su(a,t)}else su(a,[o,...ou(a)].slice(0,200));return o},markAsRead:n=>{let{currentProjectId:r,activities:i}=t(),a=i.map(e=>e.id===n?{...e,isUnread:!1}:e);e({activities:a}),r&&su(r,a)},markAllAsRead:()=>{let{currentProjectId:n,activities:r}=t(),i=r.map(e=>({...e,isUnread:!1}));e({activities:i}),n&&su(n,i)},setActivityPanelOpen:t=>e({isActivityPanelOpen:t}),toggleActivityPanel:()=>e(e=>({isActivityPanelOpen:!e.isActivityPanelOpen})),setNotificationsOpen:t=>e({isNotificationsOpen:t}),toggleNotifications:()=>e(e=>({isNotificationsOpen:!e.isNotificationsOpen})),clearActivities:()=>{let{currentProjectId:n}=t();e({activities:[]}),n&&su(n,[])}})),uu=`cyrus_comments_`;function du(e){try{let t=localStorage.getItem(`${uu}${e}`);if(t){let e=JSON.parse(t);if(Array.isArray(e))return e}}catch(e){console.error(`Failed to load comments from storage:`,e)}return[]}function fu(e,t){try{localStorage.setItem(`${uu}${e}`,JSON.stringify(t))}catch(e){console.error(`Failed to persist comments to storage:`,e)}}var pu=0,mu=ro((e,t)=>({isConnected:!1,projectId:null,selfId:ru(),selfColor:nu[0],collaborators:new Map,comments:[],isCommentsOpen:!1,activeCommentId:null,commentAnchorMode:!1,pendingCommentAnchor:null,showResolvedOnCanvas:!1,isSummarizingFeedback:!1,aiFeedbackSummary:null,isSharePanelOpen:!1,shareConfig:null,initSession:(t,n)=>{let r=nu[pu%nu.length];pu++,e({isConnected:!0,projectId:t,selfColor:r,comments:du(t)})},disconnect:()=>{e({isConnected:!1,collaborators:new Map})},addCollaborator:t=>{e(e=>{let n=new Map(e.collaborators);if(!n.has(t.id)){let e=n.size;n.set(t.id,{...t,color:t.color||nu[e%nu.length]})}return{collaborators:n}})},updateCollaborator:(t,n)=>{e(e=>{let r=new Map(e.collaborators),i=r.get(t);return i&&r.set(t,{...i,...n}),{collaborators:r}})},removeCollaborator:t=>{e(e=>{let n=new Map(e.collaborators);return n.delete(t),{collaborators:n}})},updatePeerCursor:(t,n)=>{e(e=>{let r=new Map(e.collaborators),i=r.get(t);return i&&r.set(t,{...i,cursor:n,lastSeenAt:Date.now()}),{collaborators:r}})},updatePeerSelection:(t,n)=>{e(e=>{let r=new Map(e.collaborators),i=r.get(t);return i&&r.set(t,{...i,selection:n,lastSeenAt:Date.now()}),{collaborators:r}})},addComment:({pageId:n,targetType:r=`page`,elementId:i,elementName:a,canvasX:o,canvasY:s,versionNumber:c=1,versionDescription:l,body:u,authorName:d,authorId:f,authorColor:p,authorAvatarUrl:m})=>{let h=Date.now(),g={id:`cmt_${Math.random().toString(36).slice(2,10)}`,projectId:t().projectId||``,pageId:n,targetType:r,elementId:i,elementName:a,canvasX:o,canvasY:s,versionNumber:c,versionDescription:l,authorId:f,authorName:d,authorColor:p,authorAvatarUrl:m,body:u,mentions:[],replies:[],status:`open`,createdAt:h,updatedAt:h};e(e=>{let t=[...e.comments,g];return e.projectId&&fu(e.projectId,t),{comments:t,activeCommentId:g.id,commentAnchorMode:!1,pendingCommentAnchor:null}});try{lu.getState().recordActivity({projectId:t().projectId||void 0,type:`comment_added`,actor:{id:f||`user_anon`,name:d||`Collaborator`,color:p||`#0071e3`,avatarUrl:m},title:`New Review Comment`,description:u.slice(0,100),metadata:{pageId:n,commentId:g.id}})}catch{}return g},replyToComment:(t,n)=>{let r={...n,id:`rep_${Math.random().toString(36).slice(2,10)}`,createdAt:Date.now()};e(e=>{let n=e.comments.map(e=>e.id===t?{...e,replies:[...e.replies,r],updatedAt:Date.now()}:e);return e.projectId&&fu(e.projectId,n),{comments:n}})},resolveComment:(n,r)=>{e(e=>{let t=e.comments.map(e=>e.id===n?{...e,status:`resolved`,resolvedAt:Date.now(),resolvedBy:r,updatedAt:Date.now()}:e);return e.projectId&&fu(e.projectId,t),{comments:t}});try{lu.getState().recordActivity({projectId:t().projectId||void 0,type:`comment_resolved`,actor:{id:typeof r==`string`?r:`user_owner`,name:typeof r==`string`?r:`Collaborator`,color:`#34c759`},title:`Comment Resolved`,description:`Marked design review feedback as resolved.`,metadata:{commentId:n}})}catch{}},reopenComment:t=>{e(e=>{let n=e.comments.map(e=>e.id===t?{...e,status:`open`,resolvedAt:void 0,resolvedBy:void 0,updatedAt:Date.now()}:e);return e.projectId&&fu(e.projectId,n),{comments:n}})},editComment:(t,n)=>{e(e=>{let r=e.comments.map(e=>e.id===t?{...e,body:n,updatedAt:Date.now()}:e);return e.projectId&&fu(e.projectId,r),{comments:r}})},deleteComment:t=>{e(e=>{let n=e.comments.filter(e=>e.id!==t);return e.projectId&&fu(e.projectId,n),{comments:n,activeCommentId:e.activeCommentId===t?null:e.activeCommentId}})},setCommentStatus:(t,n)=>{e(e=>{let r=e.comments.map(e=>e.id===t?{...e,status:n,updatedAt:Date.now()}:e);return e.projectId&&fu(e.projectId,r),{comments:r}})},loadComments:t=>{e(e=>(e.projectId&&fu(e.projectId,t),{comments:t}))},setActiveComment:t=>e({activeCommentId:t}),setCommentsOpen:t=>e({isCommentsOpen:t}),toggleCommentAnchorMode:()=>e(e=>({commentAnchorMode:!e.commentAnchorMode,pendingCommentAnchor:null})),setPendingCommentAnchor:t=>e({pendingCommentAnchor:t}),setShowResolvedOnCanvas:t=>e({showResolvedOnCanvas:t}),toggleShowResolvedOnCanvas:()=>e(e=>({showResolvedOnCanvas:!e.showResolvedOnCanvas})),generateFeedbackSummary:async(n=`Current Project`)=>{e({isSummarizingFeedback:!0}),await new Promise(e=>setTimeout(e,450));let r=iu(t().comments,n);return e({isSummarizingFeedback:!1,aiFeedbackSummary:r}),r},clearFeedbackSummary:()=>e({aiFeedbackSummary:null}),setSharePanelOpen:t=>e({isSharePanelOpen:t}),initShareConfig:t=>{e({shareConfig:{projectId:t,invites:[],link:{url:`https://cyrus.app/project/${t}`,permission:`viewer`,isPublic:!1,createdAt:Date.now()},allowComments:!0,allowExport:!1}})},updateShareConfig:t=>{e(e=>({shareConfig:e.shareConfig?{...e.shareConfig,...t}:null}))},addInvite:(t,n)=>{e(e=>{if(!e.shareConfig)return{};let r={id:`inv_${Math.random().toString(36).slice(2,10)}`,email:t,permission:n,invitedBy:e.selfId,invitedAt:Date.now(),status:`pending`};return{shareConfig:{...e.shareConfig,invites:[...e.shareConfig.invites,r]}}})},revokeInvite:t=>{e(e=>e.shareConfig?{shareConfig:{...e.shareConfig,invites:e.shareConfig.invites.map(e=>e.id===t?{...e,status:`revoked`}:e)}}:{})},setShareLink:(t,n)=>{e(e=>e.shareConfig?{shareConfig:{...e.shareConfig,link:{...e.shareConfig?.link||{url:``,permission:`viewer`,isPublic:!1,createdAt:Date.now()},isPublic:t,permission:n}}}:{})}})),hu=4e3,gu=12e3,_u=class{sessionId;channel=null;projectId=``;vectorClock={};messageHandlers=new Set;peerJoinHandlers=new Set;peerLeaveHandlers=new Set;heartbeatTimer=null;peerTimeouts=new Map;knownPeers=new Map;localInfo;constructor(e){this.sessionId=ru(),this.localInfo=e,this.vectorClock[this.sessionId]=0}connect(e){this.channel&&this.disconnect(),this.projectId=e,this.channel=new BroadcastChannel(`cyrus:collab:${e}`),this.channel.onmessage=e=>{let t=e.data;t.senderId!==this.sessionId&&(this.handleIncoming(t),this.messageHandlers.forEach(e=>e(t)))},this.broadcast(`peer_join`,{collaborator:this.buildSelfCollaborator()}),this.broadcast(`full_sync_request`,{}),this.heartbeatTimer=setInterval(()=>{this.vectorClock[this.sessionId]=(this.vectorClock[this.sessionId]||0)+1,this.broadcast(`presence_heartbeat`,{collaborator:this.buildSelfCollaborator(),vectorClock:{...this.vectorClock}})},hu)}disconnect(){this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.peerTimeouts.forEach(e=>clearTimeout(e)),this.peerTimeouts.clear(),this.channel&&=(this.broadcast(`peer_leave`,{sessionId:this.sessionId}),this.channel.close(),null)}updateCursor(e){this.broadcast(`cursor_move`,{cursor:e})}updateSelection(e){this.broadcast(`selection_change`,{selection:e})}sendOperation(e){this.vectorClock[this.sessionId]=(this.vectorClock[this.sessionId]||0)+1;let t={...e,id:`op_${Math.random().toString(36).slice(2,11)}`,authorId:this.sessionId,timestamp:Date.now(),vectorClock:{...this.vectorClock}};this.broadcast(`operation`,{operation:t})}applyRemoteOperation(e){Object.entries(e.vectorClock).forEach(([e,t])=>{this.vectorClock[e]=Math.max(this.vectorClock[e]||0,t)})}sendComment(e){this.broadcast(`comment_add`,{comment:e})}sendCommentReply(e,t){this.broadcast(`comment_reply`,{commentId:e,reply:t})}resolveComment(e){this.broadcast(`comment_resolve`,{commentId:e,resolvedBy:this.sessionId})}reopenComment(e){this.broadcast(`comment_reopen`,{commentId:e})}deleteComment(e){this.broadcast(`comment_delete`,{commentId:e})}onMessage(e){return this.messageHandlers.add(e),()=>this.messageHandlers.delete(e)}onPeerJoin(e){return this.peerJoinHandlers.add(e),()=>this.peerJoinHandlers.delete(e)}onPeerLeave(e){return this.peerLeaveHandlers.add(e),()=>this.peerLeaveHandlers.delete(e)}broadcast(e,t){if(!this.channel)return;let n={type:e,senderId:this.sessionId,senderName:this.localInfo.name,senderColor:this.localInfo.color,payload:t,timestamp:Date.now()};this.channel.postMessage(n)}handleIncoming(e){switch(e.type){case`peer_join`:{let t=e.payload.collaborator;this.knownPeers.set(e.senderId,{...t,isOnline:!0}),this.peerJoinHandlers.forEach(e=>e(t)),this.broadcast(`presence_heartbeat`,{collaborator:this.buildSelfCollaborator(),vectorClock:{...this.vectorClock}});break}case`peer_leave`:this.knownPeers.delete(e.senderId),this.peerLeaveHandlers.forEach(t=>t(e.senderId));break;case`presence_heartbeat`:{let t=e.payload.collaborator;this.knownPeers.get(e.senderId)?this.knownPeers.set(e.senderId,{...t,isOnline:!0}):(this.knownPeers.set(e.senderId,{...t,isOnline:!0}),this.peerJoinHandlers.forEach(e=>e({...t,isOnline:!0})));let n=this.peerTimeouts.get(e.senderId);n&&clearTimeout(n);let r=setTimeout(()=>{this.knownPeers.delete(e.senderId),this.peerLeaveHandlers.forEach(t=>t(e.senderId)),this.peerTimeouts.delete(e.senderId)},gu);this.peerTimeouts.set(e.senderId,r),e.payload.vectorClock&&Object.entries(e.payload.vectorClock).forEach(([e,t])=>{this.vectorClock[e]=Math.max(this.vectorClock[e]||0,t)});break}case`operation`:{let t=e.payload.operation;this.applyRemoteOperation(t);break}}}buildSelfCollaborator(){return{id:this.sessionId,userId:this.localInfo.userId,name:this.localInfo.name,avatarUrl:this.localInfo.avatarUrl,color:this.localInfo.color,role:`editor`,isOnline:!0,lastSeenAt:Date.now()}}},vu=null;function yu(){return vu}var bu=1;function xu(e){let{session:t}=cs(),{addCollaborator:n,removeCollaborator:r,updatePeerCursor:i,updatePeerSelection:a,selfId:o,loadComments:s,initSession:c}=mu(),{applyCollabOperation:l}=I(),u=(0,N.useRef)(!1);return(0,N.useEffect)(()=>{if(!e||u.current)return;u.current=!0;let s=t.user?.name||`Guest ${o.slice(-4)}`,d=nu[0],f=t.user?.avatarUrl,p=t.user?.id;c(e,{name:s,avatarUrl:f,userId:p});let m=new _u({name:s,color:d,avatarUrl:f,userId:p});vu=m;let h=m.onPeerJoin(e=>{let t=nu[bu%nu.length];bu++,n({...e,color:t})}),g=m.onPeerLeave(e=>{r(e)}),_=m.onMessage(e=>{switch(e.type){case`cursor_move`:i(e.senderId,e.payload.cursor);break;case`selection_change`:a(e.senderId,e.payload.selection);break;case`presence_heartbeat`:{let t=e.payload.collaborator;n(t);break}case`operation`:{let t=e.payload.operation;m.applyRemoteOperation(t),l&&l(t);break}case`comment_add`:{let{addComment:t}=mu.getState();mu.getState().comments.find(t=>t.id===e.payload.comment.id)||mu.setState(t=>({comments:[...t.comments,e.payload.comment]}));break}case`comment_reply`:{let{commentId:t,reply:n}=e.payload;mu.getState().replyToComment(t,n);break}case`comment_resolve`:mu.getState().resolveComment(e.payload.commentId,e.payload.resolvedBy);break;case`comment_reopen`:mu.getState().reopenComment(e.payload.commentId);break;case`comment_delete`:mu.getState().deleteComment(e.payload.commentId)}});return m.connect(e),()=>{h(),g(),_(),m.disconnect(),vu=null,u.current=!1,bu=1}},[e]),vu}var Su=new Map,Cu=[{id:`btn_primary`,type:`button`,name:`Button`,category:`buttons`,description:`Clean modern action button.`,keywords:[`button`,`action`,`cta`,`primary`],icon:`Sparkles`,defaultWidth:160,defaultHeight:44,defaultStyles:{backgroundColor:`#7d2ae8`,textColor:`#ffffff`,fontSize:15,fontWeight:`500`,borderRadius:12,borderWidth:0,shadow:`sm`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,paddingLeft:20,paddingRight:20},defaultContent:{label:`Button`},propSchemas:[{key:`label`,label:`Button Text`,type:`text`,defaultValue:`Button`}]},{id:`input_switch`,type:`switch`,name:`Toggle Switch`,category:`forms`,description:`iOS-style smooth boolean toggle switch.`,keywords:[`switch`,`toggle`,`boolean`,`setting`,`checkbox`],icon:`Sliders`,defaultWidth:100,defaultHeight:44,defaultStyles:{backgroundColor:`#ffffff`,textColor:`#1d1d1f`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`,shadow:`subtle`},defaultContent:{enabled:!0},propSchemas:[]},{id:`input_search_bar`,type:`searchBar`,name:`Search Bar`,category:`forms`,description:`Clean rounded search bar with magnifying glass.`,keywords:[`search`,`bar`,`input`,`find`,`query`,`magnifier`],icon:`Search`,defaultWidth:320,defaultHeight:44,defaultStyles:{backgroundColor:`#ffffff`,textColor:`#1d1d1f`,fontSize:14,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`,shadow:`subtle`},defaultContent:{},propSchemas:[]}];for(let e of Cu)Su.set(e.id,e);function wu(e){return Su.get(e)}function Tu(e,t){let n=Po[t],r=t===`mobile`?16:t===`tablet`?24:32,i=n.width-r*2,a=e.x,o=e.y,s=e.width,c=e.height,l=!!e.hidden,u={...e.styles},d=e.responsive||{},f=!1;return t===`desktop`?d.desktop&&(f=!0,d.desktop.x!==void 0&&(a=d.desktop.x),d.desktop.y!==void 0&&(o=d.desktop.y),d.desktop.width!==void 0&&(s=d.desktop.width),d.desktop.height!==void 0&&(c=d.desktop.height),d.desktop.hidden!==void 0&&(l=d.desktop.hidden),u={...u,...d.desktop}):t===`tablet`?(d.desktop&&(d.desktop.x!==void 0&&(a=d.desktop.x),d.desktop.y!==void 0&&(o=d.desktop.y),d.desktop.width!==void 0&&(s=d.desktop.width),d.desktop.height!==void 0&&(c=d.desktop.height),d.desktop.hidden!==void 0&&(l=d.desktop.hidden),u={...u,...d.desktop}),d.tablet?(f=!0,d.tablet.x!==void 0&&(a=d.tablet.x),d.tablet.y!==void 0&&(o=d.tablet.y),d.tablet.width!==void 0&&(s=d.tablet.width),d.tablet.height!==void 0&&(c=d.tablet.height),d.tablet.hidden!==void 0&&(l=d.tablet.hidden),u={...u,...d.tablet}):(s>i&&(s=i),(a+s>n.width||a<r)&&(a=Math.max(r,Math.round((n.width-s)/2))),e.type===`htmlPage`?(s=n.width,a=0):(e.type===`navbar`||e.type===`footer`||e.type===`hero`)&&(s=i,a=r))):t===`mobile`&&(d.desktop&&(d.desktop.x!==void 0&&(a=d.desktop.x),d.desktop.y!==void 0&&(o=d.desktop.y),d.desktop.width!==void 0&&(s=d.desktop.width),d.desktop.height!==void 0&&(c=d.desktop.height),d.desktop.hidden!==void 0&&(l=d.desktop.hidden),u={...u,...d.desktop}),d.tablet&&(d.tablet.x!==void 0&&(a=d.tablet.x),d.tablet.y!==void 0&&(o=d.tablet.y),d.tablet.width!==void 0&&(s=d.tablet.width),d.tablet.height!==void 0&&(c=d.tablet.height),d.tablet.hidden!==void 0&&(l=d.tablet.hidden),u={...u,...d.tablet}),d.mobile?(f=!0,d.mobile.x!==void 0&&(a=d.mobile.x),d.mobile.y!==void 0&&(o=d.mobile.y),d.mobile.width!==void 0&&(s=d.mobile.width),d.mobile.height!==void 0&&(c=d.mobile.height),d.mobile.hidden!==void 0&&(l=d.mobile.hidden),u={...u,...d.mobile}):e.type===`htmlPage`?(s=n.width,a=0):(s>i&&(s=i),(a+s>n.width||a<r)&&(a=Math.max(r,Math.round((n.width-s)/2))),(e.type===`navbar`||e.type===`footer`||e.type===`hero`||e.type===`heroSection`||e.type===`cta`||e.type===`dataTable`)&&(s=i,a=r),u.fontSize&&u.fontSize>24&&(u.fontSize=Math.max(18,Math.round(u.fontSize*.75))))),{...e,effectiveX:a,effectiveY:o,effectiveWidth:s,effectiveHeight:c,effectiveHidden:l,isOverridden:f,styles:u}}function Eu(e,t){if(t===`desktop`)return e.map(e=>Tu(e,t));let n=Po[t],r=t===`mobile`?16:24,i=n.width-r*2,a=e.map(e=>Tu(e,t));if(a.filter(e=>!e.isOverridden).length<=1)return a;let o=[...a].sort((e,t)=>e.y-t.y||e.x-t.x),s=[],c=[],l=-999;for(let e of o)Math.abs(e.y-l)>30?(c.length>0&&s.push(c),c=[e],l=e.y):c.push(e);c.length>0&&s.push(c);let u=r;for(let e of s){e.sort((e,t)=>e.x-t.x);let a=t===`mobile`&&e.length>1,o=t===`tablet`&&e.length>2;if(a||o){for(let t of e)t.isOverridden||(t.effectiveWidth=Math.min(t.effectiveWidth,i),t.effectiveX=Math.max(r,Math.round((n.width-t.effectiveWidth)/2)),t.effectiveY=u),u+=t.effectiveHeight+16;u+=8}else{let t=0;for(let a of e)a.isOverridden||(a.effectiveWidth=Math.min(a.effectiveWidth,i),e.length===1&&(a.effectiveX=Math.max(r,Math.round((n.width-a.effectiveWidth)/2))),a.effectiveY=Math.max(a.effectiveY,u)),t=Math.max(t,a.effectiveHeight);u=Math.max(u+t+16,u+40)}}return a}function Du(e,t){let n=Po[t],r=[],i=e.map(e=>Tu(e,t));for(let e of i)e.effectiveHidden||(e.effectiveX+e.effectiveWidth>n.width+4&&r.push({elementId:e.id,elementName:e.name,message:`Extends ${Math.round(e.effectiveX+e.effectiveWidth-n.width)}px beyond ${n.label} edge`,type:`overflow`,severity:`warning`}),e.effectiveX<0&&r.push({elementId:e.id,elementName:e.name,message:`Positioned outside canvas boundary (X: ${e.effectiveX}px)`,type:`clipping`,severity:`warning`}));return r}function Ou(e,t=!1){if(!e||e.type===`none`)return{className:``,style:{}};let n=e.duration??.4,r=e.delay??0,i=e.easing===`spring`?`cubic-bezier(0.34, 1.56, 0.64, 1)`:e.easing===`ease-in-out`?`cubic-bezier(0.4, 0, 0.2, 1)`:e.easing===`linear`?`linear`:`cubic-bezier(0.16, 1, 0.3, 1)`,a=``;switch(e.type){case`fade`:a=`animate-fade-in`;break;case`fade-up`:a=`animate-fade-up`;break;case`fade-down`:a=`animate-fade-down`;break;case`slide-left`:a=`animate-slide-left`;break;case`slide-right`:a=`animate-slide-right`;break;case`scale`:a=`animate-scale-in`;break;case`zoom-spring`:a=`animate-zoom-spring`;break;case`blur`:a=`animate-blur-in`;break;case`bounce`:a=`animate-bounce-in`;break;case`flip-x`:a=`animate-flip-x`;break;case`flip-y`:a=`animate-flip-y`;break;case`rotate-in`:a=`animate-rotate-in`;break;case`wipe-right`:a=`animate-wipe-right`;break;case`slide-up-big`:a=`animate-slide-up-big`;break;case`drop-in`:a=`animate-drop-in`;break;case`float-loop`:a=`animate-float-loop`;break;case`pulse-glow`:a=`animate-pulse-glow-loop`;break;case`spin-slow`:a=`animate-spin-slow`;break;case`heartbeat`:a=`animate-heartbeat-loop`;break;case`swing`:a=`animate-swing-loop`;break;case`wiggle`:a=`animate-wiggle-loop`;break;case`lift`:a=`hover:-translate-y-1.5 hover:shadow-apple-md transition-all duration-200`;break;case`glow`:a=`hover:ring-4 hover:ring-[#0071e3]/40 transition-all duration-200`;break;case`pulse`:a=`hover:scale-[1.04] transition-transform duration-200`;break;case`jiggle`:a=`hover-jiggle`;break;case`squish`:a=`hover-squish`;break;case`tilt`:a=`hover-tilt`;break;case`neon`:a=`hover-neon-glow`;break;default:a=``}let o=e.iteration===`infinite`?`infinite`:typeof e.iteration==`number`?e.iteration:`1`;return{className:a,style:{animationDuration:`${n}s`,animationDelay:`${r}s`,animationTimingFunction:i,animationFillMode:`both`,...e.iteration?{animationIterationCount:o}:{}}}}var ku=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/PenToolOverlay.tsx`,Au=5,ju=6;function Mu(e,t){if(e.length===0)return``;if(e.length===1)return`M `+e[0].x+` `+e[0].y;let n=`M `+e[0].x+` `+e[0].y;for(let t=1;t<e.length;t++){let r=e[t-1],i=e[t];n+=` C `+r.cp2.x+` `+r.cp2.y+` `+i.cp1.x+` `+i.cp1.y+` `+i.x+` `+i.y}if(t&&e.length>2){let t=e[e.length-1],r=e[0];n+=` C `+t.cp2.x+` `+t.cp2.y+` `+r.cp1.x+` `+r.cp1.y+` `+r.x+` `+r.y+` Z`}return n}function Nu({artboardWidth:e,artboardHeight:t,zoom:n,getCanvasCoords:r}){let i=P(e=>e.toolMode),a=P(e=>e.setToolMode),{addElement:o}=I(),{addToast:s}=oo(),c=i===`pen`,[l,u]=(0,N.useState)([]),[d,f]=(0,N.useState)(null),[p,m]=(0,N.useState)(null),h=(0,N.useRef)(null),g=(0,N.useRef)([]);g.current=l;let _=(0,N.useCallback)((e,t)=>{if(e.length<2){u([]);return}let n=e.map(e=>e.x),r=e.map(e=>e.y),i=Math.min(...n),a=Math.min(...r),o=Math.max(...n),c=Math.max(...r),l=Math.max(0,i-10),d=Math.max(0,a-10),f=Math.max(50,o-i+20),p=Math.max(50,c-a+20),m=e.map(e=>({x:e.x-l,y:e.y-d,cp1:{x:e.cp1.x-l,y:e.cp1.y-d},cp2:{x:e.cp2.x-l,y:e.cp2.y-d}})),h=Mu(m,t),g=`#7d2ae8`,_=t?`rgba(125,42,232,0.1)`:`none`,v={points:m,isOpen:!t,strokeColor:g,strokeWidth:2.5,fillColor:_},y=`<svg viewBox="0 0 `+f+` `+p+`" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg"><path d="`+h+`" stroke="#7d2ae8" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="`+_+`"/></svg>`;I.getState().addElement({type:`svg`,name:`Vector Path`,x:l,y:d,width:f,height:p,styles:{strokeColor:g,strokeWidth:2.5,backgroundColor:`transparent`},content:{svg:y,pathD:h,isPenPath:!0},penPath:v}),s(`Vector path saved`,`success`),u([])},[s]);(0,N.useEffect)(()=>{c||(g.current.length>=2?_(g.current,!1):u([]),f(null),m(null))},[c,_]);let v=(0,N.useCallback)(e=>{_(g.current,e),a(`select`)},[_,a]);(0,N.useEffect)(()=>{if(!c)return;let e=e=>{[`INPUT`,`TEXTAREA`].includes(e.target?.tagName)||(e.key===`Enter`&&v(!1),e.key===`Escape`&&(l.length>0?v(!1):a(`select`)))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[c,l,v,a]);let y=(0,N.useCallback)(e=>r(e.clientX,e.clientY),[r]),b=(0,N.useCallback)(e=>{if(!c)return;e.stopPropagation();let t=y(e);if(l.length>=3){let e=l[0];if(Math.hypot(e.x-t.x,e.y-t.y)<12/n){v(!0);return}}let r={x:t.x,y:t.y,cp1:{x:t.x-40,y:t.y},cp2:{x:t.x+40,y:t.y}};u(e=>[...e,r])},[c,l,n,y,v]),x=(0,N.useCallback)((e,t,n)=>{e.stopPropagation(),e.preventDefault(),m({pointIdx:t,which:n})},[]);(0,N.useEffect)(()=>{if(!p)return;let e=e=>{let t=r(e.clientX,e.clientY);u(e=>e.map((e,n)=>{if(n!==p.pointIdx)return e;let{which:r}=p;if(r===`node`){let n=t.x-e.x,r=t.y-e.y;return{...e,x:t.x,y:t.y,cp1:{x:e.cp1.x+n,y:e.cp1.y+r},cp2:{x:e.cp2.x+n,y:e.cp2.y+r}}}return r===`cp2`?{...e,cp2:{x:t.x,y:t.y},cp1:{x:e.x-(t.x-e.x),y:e.y-(t.y-e.y)}}:{...e,cp1:{x:t.x,y:t.y},cp2:{x:e.x-(t.x-e.x),y:e.y-(t.y-e.y)}}}))},t=()=>m(null);return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[p,r]);let S=(0,N.useCallback)(e=>{c&&f(y(e))},[c,y]);if(!c)return null;let C=Mu(l,!1),w=ju/n,T=Au/n,ee=null;if(l.length>0&&d){let e=l[l.length-1],t=`M `+e.x+` `+e.y+` C `+e.cp2.x+` `+e.cp2.y+` `+d.x+` `+d.y+` `+d.x+` `+d.y;ee=(0,F.jsxDEV)(`path`,{d:t,stroke:`#a855f7`,strokeWidth:1.5/n,fill:`none`,strokeDasharray:4/n+` `+4/n,pointerEvents:`none`,opacity:.7},void 0,!1,{fileName:ku,lineNumber:276,columnNumber:7},this)}return(0,F.jsxDEV)(`svg`,{ref:h,className:`absolute inset-0 pointer-events-auto`,style:{zIndex:200,cursor:`crosshair`,width:e,height:t},onClick:b,onMouseMove:S,onMouseLeave:()=>f(null),children:[C&&(0,F.jsxDEV)(`path`,{d:C,stroke:`#7d2ae8`,strokeWidth:2/n,fill:`none`,strokeLinecap:`round`,strokeLinejoin:`round`,pointerEvents:`none`},void 0,!1,{fileName:ku,lineNumber:303,columnNumber:9},this),ee,l.map((e,t)=>(0,F.jsxDEV)(`g`,{children:[(0,F.jsxDEV)(`line`,{x1:e.x,y1:e.y,x2:e.cp1.x,y2:e.cp1.y,stroke:`#a855f7`,strokeWidth:1/n,pointerEvents:`none`,opacity:.5},void 0,!1,{fileName:ku,lineNumber:316,columnNumber:11},this),(0,F.jsxDEV)(`circle`,{cx:e.cp1.x,cy:e.cp1.y,r:T,fill:`#7d2ae8`,stroke:`#ffffff`,strokeWidth:1/n,style:{cursor:`move`},onMouseDown:e=>x(e,t,`cp1`)},void 0,!1,{fileName:ku,lineNumber:326,columnNumber:11},this),(0,F.jsxDEV)(`line`,{x1:e.x,y1:e.y,x2:e.cp2.x,y2:e.cp2.y,stroke:`#a855f7`,strokeWidth:1/n,pointerEvents:`none`,opacity:.5},void 0,!1,{fileName:ku,lineNumber:336,columnNumber:11},this),(0,F.jsxDEV)(`circle`,{cx:e.cp2.x,cy:e.cp2.y,r:T,fill:`#7d2ae8`,stroke:`#ffffff`,strokeWidth:1/n,style:{cursor:`move`},onMouseDown:e=>x(e,t,`cp2`)},void 0,!1,{fileName:ku,lineNumber:346,columnNumber:11},this),(0,F.jsxDEV)(`circle`,{cx:e.x,cy:e.y,r:w,fill:`#ffffff`,stroke:t===0&&l.length>=3?`#34c759`:`#7d2ae8`,strokeWidth:1.5/n,style:{cursor:t===0&&l.length>=3?`pointer`:`move`},onMouseDown:e=>x(e,t,`node`)},void 0,!1,{fileName:ku,lineNumber:356,columnNumber:11},this)]},t,!0,{fileName:ku,lineNumber:315,columnNumber:9},this)),l.length===0&&(0,F.jsxDEV)(`text`,{x:e/2,y:t/2,textAnchor:`middle`,fontSize:14/n,fill:`#7d2ae8`,opacity:.6,pointerEvents:`none`,children:`Click to add anchor points | Enter to commit | Esc to cancel`},void 0,!1,{fileName:ku,lineNumber:369,columnNumber:9},this)]},void 0,!0,{fileName:ku,lineNumber:289,columnNumber:5},this)}var Pu=`cyrus_live_cursors_v1`,Fu=[`#ff3b30`,`#ff9500`,`#34c759`,`#0071e3`,`#af52de`,`#5856d6`,`#ff2d55`,`#30b0c7`,`#32ade6`,`#ffcc00`];function Iu(e){let t=0;for(let n=0;n<e.length;n++)t=e.charCodeAt(n)+((t<<5)-t);return Fu[Math.abs(t)%Fu.length]}var Lu=`tab_`+Math.random().toString(36).slice(2,10),Ru=`Collaborator `+Lu.slice(4,8).toUpperCase(),zu=Iu(Lu);function Bu(e){let t=(0,N.useRef)(null),{addCollaborator:n,updatePeerCursor:r,removeCollaborator:i}=mu.getState(),a=(0,N.useRef)(0),o=(0,N.useCallback)(e=>{try{t.current?.postMessage(e)}catch{}},[]);return(0,N.useEffect)(()=>{if(typeof window>`u`||typeof BroadcastChannel>`u`)return;let a=new BroadcastChannel(Pu);t.current=a;let o={type:`peer_hello`,peerId:Lu,peerName:Ru,peerColor:zu};a.postMessage(o),a.onmessage=t=>{let o=t.data;if(!(!o||o.peerId===Lu))switch(o.type){case`peer_hello`:n({id:o.peerId,name:o.peerName,color:o.peerColor,role:`editor`,isOnline:!0,lastSeenAt:Date.now()}),a.postMessage({type:`peer_hello_ack`,peerId:Lu,peerName:Ru,peerColor:zu});break;case`peer_hello_ack`:n({id:o.peerId,name:o.peerName,color:o.peerColor,role:`editor`,isOnline:!0,lastSeenAt:Date.now()});break;case`cursor_move`:n({id:o.peerId,name:o.peerName,color:o.peerColor,role:`editor`,isOnline:!0,lastSeenAt:Date.now()}),r(o.peerId,{x:o.x??0,y:o.y??0,pageId:o.pageId??e});break;case`cursor_leave`:case`peer_bye`:i(o.peerId)}};let s=()=>{a.postMessage({type:`peer_bye`,peerId:Lu,peerName:Ru,peerColor:zu})};return window.addEventListener(`beforeunload`,s),()=>{s(),a.close(),t.current=null,window.removeEventListener(`beforeunload`,s)}},[e,n,r,i]),{broadcastCursorMove:(0,N.useCallback)((t,n)=>{let r=Date.now();r-a.current<40||(a.current=r,o({type:`cursor_move`,peerId:Lu,peerName:Ru,peerColor:zu,x:t,y:n,pageId:e}))},[o,e]),broadcastCursorLeave:(0,N.useCallback)(()=>{o({type:`cursor_leave`,peerId:Lu,peerName:Ru,peerColor:zu})},[o]),selfId:Lu,selfColor:zu}}function Vu(e){mu(e=>e.selfId),mu(e=>e.selfColor);let t=mu(e=>e.collaborators),n=P(e=>e.spotlightUserId),r=P(e=>e.setPan),i=P(e=>e.zoom);return(0,N.useEffect)(()=>{if(!n)return;let e=t.get(n);if(e?.cursor){let t=window.innerWidth/2,n=window.innerHeight/2,a=t-e.cursor.x*i,o=n-e.cursor.y*i;r({x:Math.round(a),y:Math.round(o)})}},[n,t,i,r]),{isFollowing:!!n,spotlightTarget:n?t.get(n):null}}var Hu=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/PerformanceHUD.tsx`;function Uu({totalNodes:e,renderedNodes:t,culledNodes:n}){let r=P(e=>e.showPerformanceHUD),i=P(e=>e.togglePerformanceHUD),[a,o]=(0,N.useState)(60),[s,c]=(0,N.useState)(16.6),l=(0,N.useRef)(0),u=(0,N.useRef)(performance.now()),f=(0,N.useRef)(null);if((0,N.useEffect)(()=>{if(!r)return;let e=!0,t=n=>{l.current++;let r=n-u.current;if(r>=500){let e=Math.round(l.current*1e3/r),t=Number((r/l.current).toFixed(1));o(e),c(t),l.current=0,u.current=n}e&&(f.current=requestAnimationFrame(t))};return f.current=requestAnimationFrame(t),()=>{e=!1,f.current&&cancelAnimationFrame(f.current)}},[r]),!r)return null;let p=a>=55,m=a>=100;return(0,F.jsxDEV)(`div`,{className:`absolute top-4 left-4 z-50 bg-[#1c1c1e]/90 backdrop-blur-md text-white border border-[#38383a] rounded-xl p-3 shadow-apple-lg flex flex-col gap-2.5 min-w-[200px] select-none pointer-events-auto`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between border-b border-[#38383a] pb-1.5`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-[11px] font-bold text-[#34c759]`,children:[(0,F.jsxDEV)(d,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Hu,lineNumber:68,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:`GPU Performance HUD`},void 0,!1,{fileName:Hu,lineNumber:69,columnNumber:11},this)]},void 0,!0,{fileName:Hu,lineNumber:67,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:i,className:`text-[#8e8e93] hover:text-white transition-colors cursor-pointer`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Hu,lineNumber:76,columnNumber:11},this)},void 0,!1,{fileName:Hu,lineNumber:71,columnNumber:9},this)]},void 0,!0,{fileName:Hu,lineNumber:66,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex items-baseline justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#8e8e93]`,children:`Frame Rate:`},void 0,!1,{fileName:Hu,lineNumber:82,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-baseline gap-1`,children:[(0,F.jsxDEV)(`span`,{className:j(`font-mono text-[18px] font-extrabold tracking-tight`,m?`text-[#a855f7]`:p?`text-[#34c759]`:`text-[#ff9500]`),children:a},void 0,!1,{fileName:Hu,lineNumber:84,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#8e8e93] font-bold`,children:`FPS`},void 0,!1,{fileName:Hu,lineNumber:92,columnNumber:11},this)]},void 0,!0,{fileName:Hu,lineNumber:83,columnNumber:9},this)]},void 0,!0,{fileName:Hu,lineNumber:81,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between text-[11px]`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#8e8e93]`,children:`Frame Latency:`},void 0,!1,{fileName:Hu,lineNumber:98,columnNumber:9},this),(0,F.jsxDEV)(`span`,{className:`font-mono font-semibold text-white`,children:[s,` ms`]},void 0,!0,{fileName:Hu,lineNumber:99,columnNumber:9},this)]},void 0,!0,{fileName:Hu,lineNumber:97,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`p-2 rounded-lg bg-[#2c2c2e]/60 space-y-1 text-[10.5px] border border-[#38383a]/60`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#8e8e93]`,children:`Rendered Nodes:`},void 0,!1,{fileName:Hu,lineNumber:105,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`font-mono font-bold text-[#34c759]`,children:t},void 0,!1,{fileName:Hu,lineNumber:106,columnNumber:11},this)]},void 0,!0,{fileName:Hu,lineNumber:104,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#8e8e93]`,children:`Spatial Culled:`},void 0,!1,{fileName:Hu,lineNumber:109,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`font-mono font-bold text-[#a855f7]`,children:n},void 0,!1,{fileName:Hu,lineNumber:110,columnNumber:11},this)]},void 0,!0,{fileName:Hu,lineNumber:108,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#8e8e93]`,children:`Total Canvas Nodes:`},void 0,!1,{fileName:Hu,lineNumber:113,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`font-mono font-bold text-white`,children:e},void 0,!1,{fileName:Hu,lineNumber:114,columnNumber:11},this)]},void 0,!0,{fileName:Hu,lineNumber:112,columnNumber:9},this)]},void 0,!0,{fileName:Hu,lineNumber:103,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-[9.5px] font-semibold text-[#34c759] bg-[#34c759]/10 px-2 py-1 rounded-md`,children:[(0,F.jsxDEV)(Ki,{className:`w-3 h-3 shrink-0`},void 0,!1,{fileName:Hu,lineNumber:120,columnNumber:9},this),(0,F.jsxDEV)(`span`,{children:`Hardware GPU Composite Active`},void 0,!1,{fileName:Hu,lineNumber:121,columnNumber:9},this)]},void 0,!0,{fileName:Hu,lineNumber:119,columnNumber:7},this)]},void 0,!0,{fileName:Hu,lineNumber:64,columnNumber:5},this)}function Wu(e,t,n,r,i,a,o=300){let s=Math.max(n,.05),c=e/2,l=t/2;return{minX:i/2-(c+r.x)/s-o,minY:a/2-(l+r.y)/s-o,maxX:i/2+(c-r.x)/s+o,maxY:a/2+(l-r.y)/s+o}}function Gu(e,t){let n=e.x,r=e.y,i=e.x+e.width,a=e.y+e.height;return!(i<t.minX||n>t.maxX||a<t.minY||r>t.maxY)}function Ku(e,t,n=[]){if(e.length<40)return{visibleElements:e,culledCount:0};let r=new Set(n),i=[],a=0;for(let n=0;n<e.length;n++){let o=e[n];r.has(o.id)||o.type===`htmlPage`||Gu(o,t)?i.push(o):a++}return{visibleElements:i,culledCount:a}}var qu=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/ArtboardFrame.tsx`,Ju=N.memo(function({page:e,viewportMode:t,isPreviewMode:n=!1}){let r=I(e=>e.selectedElementIds),i=I(e=>e.selectElement),a=I(e=>e.selectElements),o=I(e=>e.updateElement),s=I(e=>e.addElement);I(e=>e.deleteElement);let c=I(e=>e.duplicateSelectedElements),l=I(e=>e.pushSnapshot),u=I(e=>e.hoveredElementId),d=I(e=>e.setHoveredElement),f=I(e=>e.activeProject),p=I(e=>e.updatePageSettings);I(e=>e.activeProject?.settings?.platformTarget),I(e=>e.activeProject?.settings?.safeArea?.top),I(e=>e.activeProject?.settings?.safeArea?.bottom);let m=P(e=>e.snapToGrid),h=P(e=>e.snapGuides),g=P(e=>e.setSnapGuides),_=P(e=>e.marquee),v=P(e=>e.setMarquee),y=P(e=>e.isReviewMode),b=P(e=>e.toolMode),x=P(e=>e.setActiveSidebarTab),S=(0,N.useRef)(null),C=Po[t],[w,T]=(0,N.useState)(null),[ee,E]=(0,N.useState)(null),[te,D]=(0,N.useState)(!1),[ne,re]=(0,N.useState)(null),[ie,O]=(0,N.useState)(null);(0,N.useEffect)(()=>{let t=yu();t&&t.updateSelection({elementIds:r,pageId:e.id})},[r,e.id]);let ae=(0,N.useMemo)(()=>Eu(e.elements,t),[e.elements,t]),oe=P(e=>e.zoom),se=P(e=>e.pan),{visibleElements:ce,culledCount:le}=(0,N.useMemo)(()=>{let t=C.height;ae.forEach(e=>{let n=(e.effectiveY??e.y??0)+(e.effectiveHeight??e.height??0)+30;n>t&&(t=n)});let n=Math.max(C.height,e?.settings?.minHeight||0,t),i=Wu(typeof window<`u`?window.innerWidth:1920,typeof window<`u`?window.innerHeight:1080,oe,se,C.width,n),a=Ku(ae,i,r);return{visibleElements:a.visibleElements,culledCount:a.culledCount}},[ae,oe,se,r,C.height,C.width,e?.settings?.minHeight]),ue=(0,N.useMemo)(()=>{let t=new Map;for(let n of e.elements)t.set(n.id,n);return t},[e.elements]),k=(0,N.useMemo)(()=>Du(e.elements,t),[e.elements,t]),{broadcastCursorMove:de,broadcastCursorLeave:fe}=Bu(e.id);Vu(e.id),(0,N.useEffect)(()=>{let e=e=>{if(e.key===`Alt`&&D(!0),e.key===`Escape`||(e.key===`v`||e.key===`V`)&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&![`INPUT`,`TEXTAREA`].includes(e.target?.tagName)){let{toolMode:e,setToolMode:t}=P.getState();(e===`draw`||e===`eraser`)&&(t(`select`),oo.getState().addToast(`Select Tool active`,`info`))}if((e.key===`p`||e.key===`P`)&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&![`INPUT`,`TEXTAREA`].includes(e.target?.tagName)){let{setToolMode:e}=P.getState();e(`pen`),oo.getState().addToast(`Pen Tool active — click to add anchor points`,`info`)}},t=e=>{e.key===`Alt`&&D(!1)};return window.addEventListener(`keydown`,e),window.addEventListener(`keyup`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`keyup`,t)}},[]);let[pe,me]=(0,N.useState)(null),[he,ge]=(0,N.useState)(null),[A,_e]=(0,N.useState)(null),[ve,ye]=(0,N.useState)(null),[be,xe]=(0,N.useState)(null),[Se,Ce]=(0,N.useState)(!1),[we,Te]=(0,N.useState)(null),Ee=(e,t)=>{if(!S.current)return{x:0,y:0};let n=S.current.getBoundingClientRect(),r=n.width>0?S.current.offsetWidth/n.width:1,i=n.height>0?S.current.offsetHeight/n.height:1;return{x:Math.round((e-n.left)*r),y:Math.round((t-n.top)*i)}},De=(e,t=3.5)=>{if(!e||e.length<=1)return e?[...e]:[];let n=[];for(let r=0;r<e.length-1;r++){let i=e[r],a=e[r+1];n.push(i);let o=a.x-i.x,s=a.y-i.y,c=Math.hypot(o,s);if(c>t){let e=Math.floor(c/t);for(let t=1;t<=e;t++){let r=t/(e+1);n.push({x:i.x+o*r,y:i.y+s*r})}}}return n.push(e[e.length-1]),n},Oe=(e,t,n)=>{if(!e)return[];let r=[],i=[],a=e.match(/[ML][^ML]+/g);if(!a)return[];for(let e of a){let a=e[0],o=e.slice(1).trim().split(/[\s,]+/).map(Number);for(let e=0;e<o.length;e+=2){let s=o[e],c=o[e+1];if(!isNaN(s)&&!isNaN(c)){let e={x:s+t,y:c+n};a===`M`?(i.length>=2&&r.push(i),i=[e]):i.push(e)}}}return i.length>=2&&r.push(i),r},ke=e=>!!(e.type===`sketch`||e.type===`drawing`||e.name?.toLowerCase().includes(`sketch`)||e.name?.toLowerCase().includes(`pencil`)||e.name?.toLowerCase().includes(`draw`)||e.content&&(e.content.pathD||e.content.drawingPoints||e.content.segments)),Ae=(e,t)=>{if(!S.current)return;let n=Ee(e,t),r=I.getState();r.activeProject&&ae.forEach(e=>{if(!ke(e))return;let t=e.effectiveX??e.x,i=e.effectiveY??e.y,a=e.effectiveWidth??e.width,o=e.effectiveHeight??e.height,s=t+a,c=i+o;if(n.x<t-18||n.x>s+18||n.y<i-18||n.y>c+18)return;let l=[];if(Array.isArray(e.content?.segments)&&e.content.segments.length>0)l=e.content.segments;else if(Array.isArray(e.content?.drawingPoints)&&e.content.drawingPoints.length>0)l=[e.content.drawingPoints];else if(e.content?.pathD)l=Oe(e.content.pathD,t,i);else return;let u=!1,d=[];for(let e of l){let t=De(e,3.5),r=[];for(let e of t)(e.x-n.x)**2+(e.y-n.y)**2<=324?(u=!0,r.length>=2&&d.push(r),r=[]):r.push(e);r.length>=2&&d.push(r)}if(!u)return;if(d.length===0){r.deleteElement(e.id);return}let f=d.flat(),p=Math.min(...f.map(e=>e.x)),m=Math.min(...f.map(e=>e.y)),h=Math.max(...f.map(e=>e.x)),g=Math.max(...f.map(e=>e.y)),_=Math.max(0,p-6),v=Math.max(0,m-6),y=Math.max(16,h-p+12),b=Math.max(16,g-m+12),x=d.map(e=>e.reduce((e,t,n)=>{let r=t.x-_,i=t.y-v;return n===0?`M ${r} ${i}`:`${e} L ${r} ${i}`},``)).join(` `),S=`<svg viewBox="0 0 ${y} ${b}" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg"><path d="${x}" stroke="${e.styles?.strokeColor||e.styles?.textColor||`#ff3b30`}" stroke-width="${e.styles?.strokeWidth||3.5}" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>`;r.updateElement(e.id,{x:_,y:v,width:y,height:b,content:{...e.content,svg:S,pathD:x,segments:d,drawingPoints:f}})})},je=(n,r)=>{let i=e.elements.find(e=>e.id===n);if(i){if(t===`desktop`)o(n,r);else{let e=i.responsive||{},a=e[t]||{};o(n,{responsive:{...e,[t]:{...a,...r}}})}}},Me=(t,r)=>{if(!n)return;t.stopPropagation();let i=(r.interactions||[]).find(e=>e.trigger===`onClick`);if(i)switch(i.action){case`navigate`:i.target&&I.getState().setActivePage(i.target);break;case`openModal`:T({isOpen:!0,title:i.modalTitle||`Action Dialog`});break;case`closeModal`:T(null);break;case`openUrl`:i.target&&/^https?:\/\//i.test(i.target.trim())&&window.open(i.target.trim(),`_blank`,`noopener,noreferrer`);break;case`toggleVisibility`:if(i.target){let t=e.elements.find(e=>e.id===i.target);t&&o(t.id,{hidden:!t.hidden})}}},Ne=(t,a)=>{if(n||t.button===2)return;if(t.stopPropagation(),b===`eraser`){Ce(!0),Ae(t.clientX,t.clientY);return}if(b===`draw`){let e=Ee(t.clientX,t.clientY);ge([e]);return}if(b===`comment`){let t=ae.find(e=>e.id===a.id)||a,n=t.effectiveX??a.x,r=t.effectiveY??a.y;mu.getState().setPendingCommentAnchor({pageId:e.id,canvasX:n+24,canvasY:r-10,targetType:`element`,elementId:a.id,elementName:a.name});return}if(b===`hand`||(t.shiftKey||t.metaKey||t.ctrlKey?i(a.id,!0):r.includes(a.id)||i(a.id,!1),y))return;let o=r.includes(a.id)?r:[a.id];if(a.locked){me(null);return}let s;if(t.altKey){c();let e=I.getState();s=(e.activeProject?.pages.find(t=>t.id===e.activePageId))?.elements.filter(t=>e.selectedElementIds.includes(t.id)&&!t.locked).map(e=>({id:e.id,x:e.effectiveX??e.x,y:e.effectiveY??e.y,width:(e.effectiveWidth??e.width)||100,height:(e.effectiveHeight??e.height)||100}))||[]}else s=ae.filter(e=>o.includes(e.id)&&!e.locked).map(e=>({id:e.id,x:e.effectiveX??e.x,y:e.effectiveY??e.y,width:e.effectiveWidth??e.width??100,height:e.effectiveHeight??e.height??100}));me({startX:t.clientX,startY:t.clientY,initialElements:s,hasMoved:!1})},Pe=(e,t,r)=>{if(n||y)return;e.stopPropagation();let i=ae.find(e=>e.id===r.id)||r,a=i.effectiveWidth??r.width,o=i.effectiveHeight??r.height;_e({elementId:r.id,handle:t,startX:e.clientX,startY:e.clientY,initialWidth:a,initialHeight:o,initialX:i.effectiveX??r.x,initialY:i.effectiveY??r.y,aspectRatio:a/Math.max(1,o)})},Fe=(e,t)=>{if(n||(e.stopPropagation(),!S.current))return;let r=ae.find(e=>e.id===t.id)||t,i=r.effectiveX??t.x??0,a=r.effectiveY??t.y??0,o=r.effectiveWidth??t.width??100,s=r.effectiveHeight??t.height??100,c=S.current.getBoundingClientRect(),l=S.current.offsetWidth>0?c.width/S.current.offsetWidth:1,u=c.left+(i+o/2)*l,d=c.top+(a+s/2)*l,f=Math.atan2(e.clientY-d,e.clientX-u)*180/Math.PI;ye({elementId:t.id,centerX:u,centerY:d,initialRotation:t.rotation||0,startAngle:f})},Ie=t=>{if(n||t.button===2)return;if(b===`draw`){let e=Ee(t.clientX,t.clientY);ge([e]);return}if(b===`comment`){let n=Ee(t.clientX,t.clientY);mu.getState().setPendingCommentAnchor({pageId:e.id,canvasX:n.x,canvasY:n.y,targetType:`coordinate`});return}if(b===`eraser`){Ce(!0),Ae(t.clientX,t.clientY);return}if(b===`hand`||t.target!==S.current||(!t.shiftKey&&!t.metaKey&&i(null),y))return;let r=Ee(t.clientX,t.clientY);xe(r),v({startX:r.x,startY:r.y,currentX:r.x,currentY:r.y})},Le=(e,t)=>{e.preventDefault(),e.stopPropagation()};(0,N.useEffect)(()=>{if(!pe&&!A&&!ve&&!be&&!he)return;let e=e=>ze(e),t=e=>Be();return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[pe,A,ve,be,he]);let Re=(0,N.useRef)(null),ze=t=>{if(n||!S.current)return;let i=Ee(t.clientX,t.clientY);if(de(i.x,i.y),b===`eraser`){let e=Ee(t.clientX,t.clientY);Te(e),Se&&Ae(t.clientX,t.clientY);return}if(he&&S.current){let e=Ee(t.clientX,t.clientY);ge(t=>t?[...t,e]:null);return}if(!pe&&!A&&!ve&&!be)return;let s=t.clientX,c=t.clientY;Re.current||=requestAnimationFrame(()=>{if(Re.current=null,!S.current)return;let n=S.current.getBoundingClientRect(),i=n.width>0?S.current.offsetWidth/n.width:1,l=n.height>0?S.current.offsetHeight/n.height:1;if(pe){let e=(s-pe.startX)*i,t=(c-pe.startY)*l;(Math.abs(e)>2||Math.abs(t)>2)&&(pe.hasMoved=!0);let n=ae.filter(e=>!r.includes(e.id)).map(e=>({x:e.effectiveX??e.x,y:e.effectiveY??e.y,width:e.effectiveWidth??e.width,height:e.effectiveHeight??e.height})),a=pe.initialElements[0],o=ae.find(e=>e.id===a?.id);if(o){let r=a.x+e,i=a.y+t,s=r,c=i,l=[];if(m){let e=Qs({x:r,y:i,width:o.effectiveWidth,height:o.effectiveHeight},n,C.width,C.height,6);s=e.x,c=e.y,l=e.guides}g(l);let u=s-a.x,d=c-a.y;for(let e of pe.initialElements){let t=e.width||40;e.height;let n=Math.round(Math.max(0,Math.min(e.x+u,C.width-t))),r=Math.round(Math.max(0,e.y+d));je(e.id,{x:n,y:r})}}}else if(A){let n=(s-A.startX)*i,r=(c-A.startY)*l;A.handle.includes(`l`)&&(n=Math.max(n,-A.initialX)),A.handle.includes(`r`)&&(n=Math.min(n,C.width-(A.initialX+A.initialWidth))),A.handle.includes(`t`)&&(r=Math.max(r,-A.initialY)),A.handle.includes(`b`)&&(r=Math.min(r,Ke-(A.initialY+A.initialHeight)));let a=A.initialWidth,o=A.initialHeight,u=A.initialX,d=A.initialY,f=e.elements.find(e=>e.id===A.elementId),p=f?.type===`image`||f?.type===`video`||f?.type===`avatar`,m=[`tl`,`tr`,`bl`,`br`].includes(A.handle);if(p&&m||m&&t.shiftKey){let e=A.aspectRatio||A.initialWidth/Math.max(1,A.initialHeight);if(A.handle===`br`){let t=Math.abs(n)>Math.abs(r)?n/A.initialWidth:r/A.initialHeight;a=Math.max(20,A.initialWidth*(1+t)),o=Math.max(20,Math.round(a/e)),u=A.initialX,d=A.initialY}else if(A.handle===`tr`){let t=Math.abs(n)>Math.abs(r)?n/A.initialWidth:-r/A.initialHeight;a=Math.max(20,A.initialWidth*(1+t)),o=Math.max(20,Math.round(a/e)),u=A.initialX,d=A.initialY+(A.initialHeight-o)}else if(A.handle===`bl`){let t=Math.abs(n)>Math.abs(r)?-n/A.initialWidth:r/A.initialHeight;a=Math.max(20,A.initialWidth*(1+t)),o=Math.max(20,Math.round(a/e)),u=A.initialX+(A.initialWidth-a),d=A.initialY}else if(A.handle===`tl`){let t=Math.abs(n)>Math.abs(r)?-n/A.initialWidth:-r/A.initialHeight;a=Math.max(20,A.initialWidth*(1+t)),o=Math.max(20,Math.round(a/e)),u=A.initialX+(A.initialWidth-a),d=A.initialY+(A.initialHeight-o)}}else{let e=f?.type===`line`||f?.type===`divider`,t=e?2:20,i=e?1:20;A.handle.includes(`r`)&&(a=Math.max(t,A.initialWidth+n)),A.handle.includes(`b`)&&(o=Math.max(i,A.initialHeight+r)),A.handle.includes(`l`)&&(a=Math.max(t,A.initialWidth-n),u=A.initialX+(A.initialWidth-a)),A.handle.includes(`t`)&&(o=Math.max(i,A.initialHeight-r),d=A.initialY+(A.initialHeight-o))}je(A.elementId,{x:Math.round(u),y:Math.round(d),width:Math.round(a),height:Math.round(o)})}else if(ve){let e=Math.atan2(c-ve.centerY,s-ve.centerX)*180/Math.PI-ve.startAngle,n=Math.round(ve.initialRotation+e);t.shiftKey&&(n=Js(n,15)),o(ve.elementId,{rotation:(n+360)%360})}else if(be){let e=Ee(s,c);v({startX:Math.min(be.x,e.x),startY:Math.min(be.y,e.y),currentX:Math.max(be.x,e.x),currentY:Math.max(be.y,e.y)});let t=Ks(be.x,be.y,e.x,e.y),n=ae.filter(e=>Gs(t,{x:e.effectiveX,y:e.effectiveY,width:e.effectiveWidth,height:e.effectiveHeight})).map(e=>e.id);a(n)}})},Be=()=>{if(he&&he.length>=1){let t=De(he,3.5),n=Math.min(...t.map(e=>e.x)),r=Math.min(...t.map(e=>e.y)),i=Math.max(...t.map(e=>e.x)),a=Math.max(...t.map(e=>e.y)),o=Math.max(20,i-n+12),s=Math.max(20,a-r+12),c=``;c=t.length===1?`M 6 6 L 6.1 6.1`:t.reduce((e,t,i)=>{let a=t.x-n+6,o=t.y-r+6;return i===0?`M ${a} ${o}`:`${e} L ${a} ${o}`},``);let l=`<svg viewBox="0 0 ${o} ${s}" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg"><path d="${c}" stroke="#ff3b30" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>`,u=I.getState(),d={id:`elem_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,type:`svg`,name:`Pencil Sketch`,x:Math.max(0,n-6),y:Math.max(0,r-6),width:o,height:s,rotation:0,zIndex:e.elements.length+10,styles:{opacity:1,strokeColor:`#ff3b30`,strokeWidth:3.5},content:{svg:l,pathD:c,segments:[t],drawingPoints:t}},f=u.addElement(d);b===`draw`?u.selectElement(null):f?.id&&u.selectElement(f.id)}ge(null),pe?.hasMoved&&l(`Move Element(s)`),A&&l(`Resize Element`),ve&&l(`Rotate Element`),me(null),_e(null),ye(null),xe(null),v(null),g([]),Ce(!1)};(0,N.useEffect)(()=>{if(!he)return;let e=e=>{if(!S.current)return;let t=Ee(e.clientX,e.clientY);ge(e=>e?[...e,t]:null)},t=()=>{Be()};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[he]),(0,N.useEffect)(()=>{if(b!==`eraser`){Te(null),Ce(!1);return}let e=e=>{if(!S.current)return;let t=S.current.getBoundingClientRect();if(e.clientX>=t.left-40&&e.clientX<=t.right+40&&e.clientY>=t.top-40&&e.clientY<=t.bottom+40){let t=Ee(e.clientX,e.clientY);Te(t),Se&&Ae(e.clientX,e.clientY)}else Te(null)},t=()=>{Ce(!1)};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[b,Se]);let Ve=e=>{n||(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},He=e=>{if(n||!S.current)return;e.preventDefault();let t=Ee(e.clientX,e.clientY),r=t.x,i=t.y,a=e.dataTransfer.getData(`application/cyrus-asset`);if(a)try{let e=JSON.parse(a),t=ae.find(e=>r>=e.effectiveX&&r<=e.effectiveX+e.effectiveWidth&&i>=e.effectiveY&&i<=e.effectiveY+e.effectiveHeight);if(t&&(t.type===`image`||t.type===`video`)){o(t.id,{content:{...t.content,url:e.url,src:e.url}}),l(`Replace Asset`);return}let n=400,c=260,u=`image`,d={url:e.url};e.type===`video`?(n=480,c=270,u=`video`,d={url:e.url,autoplay:!0,loop:!0,muted:!0,controls:!0}):e.type===`icon`?(n=48,c=48,u=`icon`,d={iconName:e.metadata?.iconName||e.url||`Sparkles`}):e.type===`svg`&&(n=120,c=120,u=`svg`,d={svg:e.url});let f=r-n/2,p=i-c/2;m&&(f=Ws(f,8),p=Ws(p,8)),s({type:u,name:e.name||`New Asset`,x:Math.max(0,f),y:Math.max(0,p),width:n,height:c,content:d});return}catch(e){console.error(`Failed to parse dropped asset:`,e)}let c=e.dataTransfer.getData(`application/cyrus-widget`)||e.dataTransfer.getData(`text/plain`);if(!c)return;let u=wu(c);if(!u)return;let d=r-u.defaultWidth/2,f=i-u.defaultHeight/2;m&&(d=Ws(d,8),f=Ws(f,8)),s({type:u.type,name:u.name,x:Math.max(0,d),y:Math.max(0,f),width:u.defaultWidth,height:u.defaultHeight,styles:{...u.defaultStyles},content:{...u.defaultContent}})},Ue=ae.filter(e=>r.includes(e.id)),We=(0,N.useMemo)(()=>{if(!te||Ue.length===0||n)return[];let e=Ue[0],t={x:e.effectiveX,y:e.effectiveY,width:e.effectiveWidth,height:e.effectiveHeight};if(u&&u!==e.id){let e=ae.find(e=>e.id===u);if(e)return Ys(t,{x:e.effectiveX,y:e.effectiveY,width:e.effectiveWidth,height:e.effectiveHeight})}return Xs(t,C.width,C.height)},[te,Ue,u,ae,C,n]),Ge=(0,N.useMemo)(()=>{let e=C.height;return ae.forEach(t=>{let n=(t.effectiveY??t.y??0)+(t.effectiveHeight??t.height??0)+30;n>e&&(e=n)}),e},[e.id,e.elements.length,C.height,t]),Ke=Math.max(C.height,e?.settings?.minHeight||0,Ge);return(0,F.jsxDEV)(`div`,{ref:S,onMouseDown:Ie,onMouseMove:ze,onMouseUp:Be,onMouseLeave:()=>{Se||Te(null),fe()},onDragOver:Ve,onDrop:He,onContextMenu:e=>Le(e),style:{width:`${C.width}px`,minHeight:`${Ke}px`,background:e?.settings?.backgroundGradient||void 0,backgroundColor:e?.settings?.backgroundGradient?void 0:e?.settings?.backgroundColor||`#ffffff`,cursor:n?`default`:b===`draw`||b===`pen`?`crosshair`:b===`comment`?`cell`:b===`eraser`?`none`:b===`hand`?`grab`:`default`},className:`relative mx-auto rounded-[6px] shadow-[0_16px_50px_rgba(0,0,0,0.08)] transition-apple select-none`,children:[w&&(0,F.jsxDEV)($l,{title:w.title,isOpen:w.isOpen,onClose:()=>T(null)},void 0,!1,{fileName:qu,lineNumber:1250,columnNumber:9},this),!n&&(0,F.jsxDEV)(Zl,{issues:k},void 0,!1,{fileName:qu,lineNumber:1258,columnNumber:26},this),(f?.settings?.platformTarget===`mobile`||t===`mobile`)&&(0,F.jsxDEV)(F.Fragment,{children:[(0,F.jsxDEV)(`div`,{style:{position:`absolute`,top:0,left:0,right:0,height:`${f?.settings?.safeArea?.top||47}px`,pointerEvents:`none`,zIndex:9999},className:`flex items-center justify-between px-6 select-none border-b border-dashed border-[#0071e3]/20 bg-gradient-to-b from-black/5 to-transparent text-[11px] font-bold text-[#1d1d1f]`,children:[(0,F.jsxDEV)(`span`,{children:`9:41`},void 0,!1,{fileName:qu,lineNumber:1276,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`w-24 h-5 rounded-full bg-black flex items-center justify-end px-2`,children:(0,F.jsxDEV)(`div`,{className:`w-2.5 h-2.5 rounded-full bg-[#1c1c1e] ring-1 ring-[#2c2c2e]`},void 0,!1,{fileName:qu,lineNumber:1279,columnNumber:15},this)},void 0,!1,{fileName:qu,lineNumber:1278,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 text-[10px]`,children:[(0,F.jsxDEV)(`span`,{children:`5G`},void 0,!1,{fileName:qu,lineNumber:1282,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`w-4 h-2.5 rounded-[3px] border border-black p-0.5 flex items-center`,children:(0,F.jsxDEV)(`div`,{className:`w-full h-full bg-black rounded-[1px]`},void 0,!1,{fileName:qu,lineNumber:1284,columnNumber:17},this)},void 0,!1,{fileName:qu,lineNumber:1283,columnNumber:15},this)]},void 0,!0,{fileName:qu,lineNumber:1281,columnNumber:13},this)]},void 0,!0,{fileName:qu,lineNumber:1264,columnNumber:11},this),(0,F.jsxDEV)(`div`,{style:{position:`absolute`,bottom:0,left:0,right:0,height:`${f?.settings?.safeArea?.bottom||34}px`,pointerEvents:`none`,zIndex:9999},className:`flex items-center justify-center select-none border-t border-dashed border-[#0071e3]/20 bg-gradient-to-t from-black/5 to-transparent`,children:(0,F.jsxDEV)(`div`,{className:`w-32 h-1 rounded-full bg-black/80`},void 0,!1,{fileName:qu,lineNumber:1302,columnNumber:13},this)},void 0,!1,{fileName:qu,lineNumber:1290,columnNumber:11},this)]},void 0,!0,{fileName:qu,lineNumber:1262,columnNumber:9},this),e.elements.length===0&&(0,F.jsxDEV)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center p-8 text-center pointer-events-none`,children:[(0,F.jsxDEV)(`div`,{className:`w-12 h-12 rounded-[12px] bg-[#f4f4f6] border border-[#e5e5ea] flex items-center justify-center text-[#0071e3] mb-3 shadow-apple-sm`,children:(0,F.jsxDEV)(vi,{className:`w-6 h-6`},void 0,!1,{fileName:qu,lineNumber:1311,columnNumber:13},this)},void 0,!1,{fileName:qu,lineNumber:1310,columnNumber:11},this),(0,F.jsxDEV)(`h4`,{className:`text-[17px] font-semibold text-[#1d1d1f] mb-1`,children:`Visual Canvas Artboard`},void 0,!1,{fileName:qu,lineNumber:1313,columnNumber:11},this),(0,F.jsxDEV)(`p`,{className:`text-[13px] text-[#86868b] max-w-sm mb-4`,children:`Drag components from the sidebar or click below to build your layout.`},void 0,!1,{fileName:qu,lineNumber:1316,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>x(`icons`),className:`pointer-events-auto inline-flex items-center gap-1.5 px-3.5 py-1.5 rounded-[8px] bg-[#0071e3] text-white text-[13px] font-medium shadow-apple-sm hover:bg-[#0077ed] active:scale-[0.98] transition-apple cursor-pointer`,children:[(0,F.jsxDEV)(na,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:qu,lineNumber:1325,columnNumber:15},this),`Add Icons & Controls`]},void 0,!0,{fileName:qu,lineNumber:1320,columnNumber:13},this)},void 0,!1,{fileName:qu,lineNumber:1319,columnNumber:11},this)]},void 0,!0,{fileName:qu,lineNumber:1309,columnNumber:9},this),ce.filter(e=>!e.parentId).map(e=>{if(e.effectiveHidden)return null;let t=r.includes(e.id),i=e.children?e.children.map(e=>ue.get(e)).filter(Boolean):void 0,a=(e.animations||[]).find(e=>e.trigger===`load`),o=(e.animations||[]).find(e=>e.trigger===`loop`),s=(e.animations||[]).find(e=>e.trigger===`hover`),c=(e.animations||[]).find(e=>e.trigger===`click`),l=Ou(a),u=Ou(o),f=s?.type===`scale`?`hover:scale-[1.05] transition-transform duration-200`:s?.type===`lift`?`hover:-translate-y-1.5 hover:shadow-apple-md transition-all duration-200`:s?.type===`glow`?`hover:ring-4 hover:ring-[#0071e3]/40 transition-all duration-200`:s?.type===`pulse`?`hover:scale-[1.04] transition-transform duration-200`:s?.type===`jiggle`?`hover-jiggle`:s?.type===`squish`?`hover-squish`:s?.type===`tilt`?`hover-tilt`:s?.type===`neon`?`hover-neon-glow`:``,p=c?.type===`ripple`?`active:scale-[0.97] active:brightness-115 active:shadow-[0_0_0_10px_rgba(0,113,227,0.35)] transition-all duration-150 cursor-pointer`:c?.type===`bounce`?`active:scale-85 active:-translate-y-1 transition-transform duration-150 cursor-pointer`:c?.type===`scale`?`active:scale-90 transition-transform duration-150 cursor-pointer`:c?.type===`glow`?`active:ring-4 active:ring-[#0071e3] active:scale-105 active:shadow-[0_0_24px_rgba(0,113,227,0.6)] transition-all duration-150 cursor-pointer`:c?.type===`pulse`?`active:scale-110 active:opacity-75 transition-all duration-150 cursor-pointer`:``,m=j(l.className,u.className,f,p,`transition-all duration-150`),h=e.autoLayout,g=h?.enabled?{display:`flex`,flexDirection:h.direction===`row`?`row`:`column`,gap:`${h.gap??0}px`,paddingTop:`${h.paddingTop??0}px`,paddingRight:`${h.paddingRight??0}px`,paddingBottom:`${h.paddingBottom??0}px`,paddingLeft:`${h.paddingLeft??0}px`,boxSizing:`border-box`,alignItems:h.alignItems===`start`?`flex-start`:h.alignItems===`end`?`flex-end`:h.alignItems===`stretch`?`stretch`:`center`,justifyContent:h.justifyContent===`start`?`flex-start`:h.justifyContent===`end`?`flex-end`:h.justifyContent===`between`?`space-between`:h.justifyContent===`around`?`space-around`:`center`,flexWrap:h.wrap?`wrap`:`nowrap`,...h.hugsContent?{width:`fit-content`,height:`fit-content`}:{},...h.fillContainer?{width:`100%`,height:`100%`}:{}}:{boxSizing:`border-box`,paddingTop:e.styles?.paddingTop===void 0?void 0:`${e.styles.paddingTop}px`,paddingRight:e.styles?.paddingRight===void 0?void 0:`${e.styles.paddingRight}px`,paddingBottom:e.styles?.paddingBottom===void 0?void 0:`${e.styles.paddingBottom}px`,paddingLeft:e.styles?.paddingLeft===void 0?void 0:`${e.styles.paddingLeft}px`},_=e.variants||[],v=_.find(t=>t.id===e.activeVariantId)||_[0],y=`Default`;v&&(y=n?ie===e.id&&v.states.some(e=>e.name===`Pressed`)?`Pressed`:ne===e.id&&v.states.some(e=>e.name===`Hover`)?`Hover`:e.previewVariantState||v.activeState||`Default`:v.activeState||`Default`);let x=v?.states.find(e=>e.name===y),S=x?.styles||{},C=x?.content||{},w={...e,x:e.effectiveX??e.x??0,y:e.effectiveY??e.y??0,width:e.effectiveWidth??e.width??100,height:e.effectiveHeight??e.height??100,styles:{...e.styles,...S},content:{...e.content,...C}};return(0,F.jsxDEV)(`div`,{onClick:t=>{Me(t,e)},onMouseDown:t=>{n&&O(e.id),Ne(t,e)},onMouseUp:()=>{n&&O(null)},onMouseEnter:()=>{n?re(e.id):d(e.id)},onMouseLeave:()=>{n?(re(null),O(null)):d(null)},onContextMenu:t=>Le(t,e),style:{position:`absolute`,left:`${e.effectiveX}px`,top:`${e.effectiveY}px`,width:`${e.effectiveWidth}px`,height:`${e.effectiveHeight}px`,boxSizing:`border-box`,transform:`rotate(${e.rotation||0}deg)`,transformOrigin:`center center`,zIndex:e.zIndex,cursor:n?e.interactions&&e.interactions.length>0||c||v?`pointer`:`default`:b===`draw`?`crosshair`:b===`comment`?`cell`:b===`eraser`?`none`:b===`hand`?`grab`:e.locked?`default`:`move`,...l.style,...u.style,...g},className:`group ${m}`,children:(0,F.jsxDEV)(tu,{children:(0,F.jsxDEV)(Bl,{element:w,isSelected:t,childElements:i},void 0,!1,{fileName:qu,lineNumber:1506,columnNumber:15},this)},void 0,!1,{fileName:qu,lineNumber:1505,columnNumber:13},this)},e.id,!1,{fileName:qu,lineNumber:1447,columnNumber:11},this)}),ve&&(()=>{let e=ae.find(e=>e.id===ve.elementId);if(!e)return null;let t=Math.round(e.rotation||0);return(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`${(e.effectiveX??e.x??0)+(e.effectiveWidth??e.width??100)/2}px`,top:`${(e.effectiveY??e.y??0)+(e.effectiveHeight??e.height??100)+40}px`,transform:`translateX(-50%)`,zIndex:999999,pointerEvents:`none`},className:`px-3 py-1 rounded-full bg-[#1d1d1f]/95 backdrop-blur-md text-white font-mono text-[12px] font-semibold shadow-apple-md border border-white/20 flex items-center gap-1.5 animate-fade-in select-none`,children:[(0,F.jsxDEV)(en,{className:`w-3 h-3 text-[#0071e3]`},void 0,!1,{fileName:qu,lineNumber:1533,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:[t,`°`]},void 0,!0,{fileName:qu,lineNumber:1534,columnNumber:13},this)]},void 0,!0,{fileName:qu,lineNumber:1522,columnNumber:11},this)})(),!n&&Ue.length===1&&Ue.map(e=>(0,F.jsxDEV)(Ul,{element:{...e,x:e.effectiveX,y:e.effectiveY,width:e.effectiveWidth,height:e.effectiveHeight},selectedCount:1,onResizeStart:(t,n)=>Pe(t,n,e),onRotateStart:t=>Fe(t,e)},`selection_${e.id}`,!1,{fileName:qu,lineNumber:1543,columnNumber:11},this)),!n&&Ue.length>1&&(0,F.jsxDEV)(Gl,{elements:Ue.map(e=>({...e,x:e.effectiveX,y:e.effectiveY,width:e.effectiveWidth,height:e.effectiveHeight})),onResizeStart:(e,t)=>Pe(e,t,Ue[0])},void 0,!1,{fileName:qu,lineNumber:1560,columnNumber:9},this),!n&&te&&(0,F.jsxDEV)(Yl,{lines:We},void 0,!1,{fileName:qu,lineNumber:1573,columnNumber:42},this),!n&&(0,F.jsxDEV)(ql,{guides:h,artboardWidth:C.width,artboardHeight:C.height},void 0,!1,{fileName:qu,lineNumber:1577,columnNumber:9},this),he&&he.length>0&&(0,F.jsxDEV)(`svg`,{style:{position:`absolute`,inset:0,width:`100%`,height:`100%`,pointerEvents:`none`,zIndex:99999},children:(0,F.jsxDEV)(`path`,{d:he.length===1?`M ${he[0].x} ${he[0].y} L ${he[0].x+.1} ${he[0].y+.1}`:he.reduce((e,t,n)=>n===0?`M ${t.x} ${t.y}`:`${e} L ${t.x} ${t.y}`,``),stroke:`#ff3b30`,strokeWidth:3.5,fill:`none`,strokeLinecap:`round`,strokeLinejoin:`round`},void 0,!1,{fileName:qu,lineNumber:1596,columnNumber:11},this)},void 0,!1,{fileName:qu,lineNumber:1586,columnNumber:9},this),!n&&_&&(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`${Math.min(_.startX,_.currentX)}px`,top:`${Math.min(_.startY,_.currentY)}px`,width:`${Math.abs(_.currentX-_.startX)}px`,height:`${Math.abs(_.currentY-_.startY)}px`,pointerEvents:`none`,zIndex:99999},className:`border border-[#0071e3] bg-[#0071e3]/10 rounded-[2px]`},void 0,!1,{fileName:qu,lineNumber:1613,columnNumber:9},this),!n&&(0,F.jsxDEV)(`div`,{onMouseDown:t=>{t.stopPropagation();let n=t.clientY,r=Ke,i=t=>{let i=t.clientY-n,a=Math.max(C.height,Math.round(r+i));p(e.id,{minHeight:a})},a=()=>{window.removeEventListener(`mousemove`,i),window.removeEventListener(`mouseup`,a),l(`Resize Page Height`)};window.addEventListener(`mousemove`,i),window.addEventListener(`mouseup`,a)},className:`absolute -bottom-7 left-0 right-0 h-6 flex items-center justify-center cursor-ns-resize group z-50 pointer-events-auto select-none`,title:`Drag down to extend page height`,children:(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 px-3 py-1 rounded-full bg-white dark:bg-[#1c1c1e] text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#7d2ae8] dark:hover:text-[#9d52ff] border border-[#e5e5ea] dark:border-[#38383a] text-[11px] font-medium shadow-apple-sm transition-all group-hover:scale-105 group-hover:border-[#7d2ae8]`,children:[(0,F.jsxDEV)(`span`,{children:[`Page Height: `,Math.round(Ke),`px`]},void 0,!0,{fileName:qu,lineNumber:1650,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[12px] font-bold text-[#7d2ae8] dark:text-[#9d52ff]`,children:`↕`},void 0,!1,{fileName:qu,lineNumber:1651,columnNumber:13},this)]},void 0,!0,{fileName:qu,lineNumber:1649,columnNumber:11},this)},void 0,!1,{fileName:qu,lineNumber:1628,columnNumber:9},this),b===`eraser`&&we&&(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`${we.x}px`,top:`${we.y}px`,transform:`translate(-50%, -50%)`,pointerEvents:`none`,zIndex:999999},className:`flex flex-col items-center justify-center pointer-events-none select-none transition-transform duration-75`,children:(0,F.jsxDEV)(`div`,{className:j(`w-10 h-10 rounded-full border-2 border-[#ff9500] flex items-center justify-center transition-all duration-100 shadow-apple-md`,Se?`bg-[#ff9500]/30 ring-4 ring-[#ff9500]/40 scale-110`:`bg-white/90 dark:bg-[#1c1c1e]/90 backdrop-blur-xs ring-2 ring-[#ff9500]/20`),children:(0,F.jsxDEV)(`svg`,{className:j(`w-5 h-5 transition-colors`,Se?`text-[#ff3b30]`:`text-[#ff9500]`),viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,F.jsxDEV)(`path`,{d:`m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21`},void 0,!1,{fileName:qu,lineNumber:1686,columnNumber:15},this),(0,F.jsxDEV)(`path`,{d:`M22 21H7`},void 0,!1,{fileName:qu,lineNumber:1687,columnNumber:15},this),(0,F.jsxDEV)(`path`,{d:`m5 11 9 9`},void 0,!1,{fileName:qu,lineNumber:1688,columnNumber:15},this)]},void 0,!0,{fileName:qu,lineNumber:1677,columnNumber:13},this)},void 0,!1,{fileName:qu,lineNumber:1669,columnNumber:11},this)},void 0,!1,{fileName:qu,lineNumber:1658,columnNumber:9},this),b===`pen`&&(0,F.jsxDEV)(Nu,{artboardWidth:C.width,artboardHeight:Ke,zoom:1,getCanvasCoords:Ee},void 0,!1,{fileName:qu,lineNumber:1696,columnNumber:9},this),(0,F.jsxDEV)(Uu,{totalNodes:ae.length,renderedNodes:ce.length,culledNodes:le},void 0,!1,{fileName:qu,lineNumber:1705,columnNumber:7},this)]},void 0,!0,{fileName:qu,lineNumber:1216,columnNumber:5},this)}),Yu=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/CollabCursorOverlay.tsx`;function Xu({activePageId:e,zoom:t,pan:n}){let r=mu(e=>e.collaborators),i=Array.from(r.values()).filter(t=>t.cursor&&t.cursor.pageId===e);return i.length===0?null:(0,F.jsxDEV)(`div`,{className:`absolute inset-0 pointer-events-none`,style:{zIndex:9999},children:i.map(e=>{if(!e.cursor)return null;let r=e.cursor.x*t+n.x,i=e.cursor.y*t+n.y;return(0,F.jsxDEV)(`div`,{className:`absolute transition-transform duration-75 ease-linear`,style:{left:r,top:i,transform:`translate(-2px, -2px)`},children:[(0,F.jsxDEV)(`svg`,{width:`20`,height:`22`,viewBox:`0 0 20 22`,fill:`none`,children:(0,F.jsxDEV)(`path`,{d:`M3 2L17 10L10 11.5L6.5 19L3 2Z`,fill:e.color,stroke:`white`,strokeWidth:`1.5`,strokeLinejoin:`round`},void 0,!1,{fileName:Yu,lineNumber:39,columnNumber:15},this)},void 0,!1,{fileName:Yu,lineNumber:38,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`absolute top-5 left-3 px-2 py-0.5 rounded-full text-white text-[10px] font-semibold whitespace-nowrap shadow-apple-sm`,style:{backgroundColor:e.color},children:e.name},void 0,!1,{fileName:Yu,lineNumber:48,columnNumber:13},this)]},e.id,!0,{fileName:Yu,lineNumber:32,columnNumber:11},this)})},void 0,!1,{fileName:Yu,lineNumber:23,columnNumber:5},this)}var Zu=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/CollabSelectionOverlay.tsx`;function Qu({elements:e,activePageId:t,zoom:n,pan:r}){let i=mu(e=>e.collaborators),a=new Map;return Array.from(i.values()).forEach(e=>{!e.selection||e.selection.pageId!==t||e.selection.elementIds.forEach(t=>{let n=a.get(t)||[];n.push({color:e.color,name:e.name}),a.set(t,n)})}),a.size===0?null:(0,F.jsxDEV)(`div`,{className:`absolute inset-0 pointer-events-none`,style:{zIndex:9998},children:e.map(e=>{let t=a.get(e.id);if(!t||t.length===0)return null;let i=t[0],o=e.x*n+r.x,s=e.y*n+r.y,c=e.width*n,l=e.height*n;return(0,F.jsxDEV)(`div`,{className:`absolute`,style:{left:o-2,top:s-2,width:c+4,height:l+4,border:`2px solid ${i.color}`,borderRadius:4},children:(0,F.jsxDEV)(`div`,{className:`absolute -top-6 left-0 px-1.5 py-0.5 rounded text-white text-[10px] font-semibold whitespace-nowrap flex items-center gap-1`,style:{backgroundColor:i.color},children:[t.length>1&&(0,F.jsxDEV)(`span`,{className:`opacity-80 font-normal`,children:[`+`,t.length-1]},void 0,!0,{fileName:Zu,lineNumber:61,columnNumber:17},this),i.name]},void 0,!0,{fileName:Zu,lineNumber:56,columnNumber:13},this)},e.id,!1,{fileName:Zu,lineNumber:43,columnNumber:11},this)})},void 0,!1,{fileName:Zu,lineNumber:31,columnNumber:5},this)}var W=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/CommentPinPopover.tsx`;function $u(e){let t=Date.now()-e;return t<6e4?`just now`:t<36e5?`${Math.floor(t/6e4)}m ago`:t<864e5?`${Math.floor(t/36e5)}h ago`:new Date(e).toLocaleDateString()}function ed(e){return e.split(/(@\w+)/g).map((e,t)=>e.startsWith(`@`)?(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] font-semibold`,children:e},t,!1,{fileName:W,lineNumber:34,columnNumber:7},this):(0,F.jsxDEV)(`span`,{children:e},t,!1,{fileName:W,lineNumber:36,columnNumber:7},this))}function td(e){return e.split(` `).slice(0,2).map(e=>e[0]).join(``).toUpperCase()}function nd({comment:e,isNew:t=!1,position:n,onClose:r,pageId:i,canvasX:a,canvasY:o,elementId:s,elementName:c,versionNumber:l=1}){let{addComment:u,replyToComment:d,resolveComment:f,reopenComment:p,deleteComment:m,selfColor:h}=mu(),{session:g}=cs(),[_,v]=(0,N.useState)(``),[y,b]=(0,N.useState)(``),[x,S]=(0,N.useState)(!1),C=(0,N.useRef)(null),w=g.user?.name||`You`,T=mu.getState().selfId;(0,N.useEffect)(()=>{C.current?.focus()},[t,x]);let ee=()=>{if(!_.trim())return;let e=u({pageId:i,targetType:s?`element`:`coordinate`,elementId:s,elementName:c,canvasX:a,canvasY:o,versionNumber:l,body:_.trim(),authorName:w,authorId:T,authorColor:h});yu()?.sendComment(e),r()},E=()=>{if(!e||!y.trim())return;let t={authorId:T,authorName:w,authorColor:h,body:y.trim()};d(e.id,t),yu()?.sendCommentReply(e.id,{...t,id:``,createdAt:Date.now()}),b(``),S(!1)};return(0,F.jsxDEV)(`div`,{className:`absolute z-[10005] w-[320px] bg-white rounded-2xl shadow-apple-xl border border-[#e5e5ea] overflow-hidden animate-scale-up`,style:{left:n.x+16,top:n.y-12},onClick:e=>e.stopPropagation(),children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between px-3.5 py-2.5 bg-[#fbfbfd] border-b border-[#f0f0f2]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,F.jsxDEV)(`div`,{className:`w-5 h-5 rounded-md bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center`,children:(0,F.jsxDEV)(On,{className:`w-3 h-3`},void 0,!1,{fileName:W,lineNumber:155,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:154,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,F.jsxDEV)(`span`,{className:`text-[12px] font-semibold text-[#1d1d1f] truncate`,children:t?`New Feedback`:e?.elementName?e.elementName:`Review Note`},void 0,!1,{fileName:W,lineNumber:158,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] font-medium text-[#86868b] bg-[#f5f5f7] px-1.5 py-0.5 rounded-full shrink-0`,children:[`v`,e?.versionNumber||l]},void 0,!0,{fileName:W,lineNumber:161,columnNumber:13},this)]},void 0,!0,{fileName:W,lineNumber:157,columnNumber:11},this)]},void 0,!0,{fileName:W,lineNumber:153,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1`,children:[e&&e.status===`open`&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{e&&(f(e.id,T),yu()?.resolveComment(e.id))},className:`px-2 py-1 rounded-lg text-[11px] font-medium text-[#34c759] bg-[#f0fdf4] hover:bg-[#dcfce7] transition-apple flex items-center gap-1`,title:`Resolve Thread`,children:[(0,F.jsxDEV)(ke,{className:`w-3 h-3`},void 0,!1,{fileName:W,lineNumber:175,columnNumber:15},this),`Resolve`]},void 0,!0,{fileName:W,lineNumber:169,columnNumber:13},this),e&&e.status===`resolved`&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{e&&(p(e.id),yu()?.reopenComment(e.id))},className:`px-2 py-1 rounded-lg text-[11px] font-medium text-[#0071e3] bg-[#e8f2fc] hover:bg-[#d0e8fc] transition-apple flex items-center gap-1`,title:`Reopen Thread`,children:[(0,F.jsxDEV)(pn,{className:`w-3 h-3`},void 0,!1,{fileName:W,lineNumber:187,columnNumber:15},this),`Reopen`]},void 0,!0,{fileName:W,lineNumber:181,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:r,className:`w-6 h-6 rounded-full flex items-center justify-center text-[#86868b] hover:text-[#1d1d1f] hover:bg-[#f5f5f7] transition-apple`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:W,lineNumber:197,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:192,columnNumber:11},this)]},void 0,!0,{fileName:W,lineNumber:167,columnNumber:9},this)]},void 0,!0,{fileName:W,lineNumber:152,columnNumber:7},this),t?(0,F.jsxDEV)(`div`,{className:`p-3`,children:[(0,F.jsxDEV)(`textarea`,{ref:C,value:_,onChange:e=>v(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&ee(),e.key===`Escape`&&r()},placeholder:`Add feedback on this element or area... (@mention teammates, ⌘↵ to post)`,rows:3,className:`w-full text-[12px] p-2.5 rounded-xl border border-[#e5e5ea] bg-[#fbfbfd] focus:bg-white focus:outline-none focus:border-[#0071e3] resize-none transition-apple`},void 0,!1,{fileName:W,lineNumber:205,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between mt-2 pt-1`,children:[(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#86868b]`,children:`Esc to cancel`},void 0,!1,{fileName:W,lineNumber:218,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:ee,disabled:!_.trim(),className:`px-3.5 py-1.5 rounded-xl bg-[#0071e3] text-white text-[11px] font-semibold hover:bg-[#0077ed] disabled:opacity-40 transition-apple shadow-apple-sm`,children:`Post Pin`},void 0,!1,{fileName:W,lineNumber:219,columnNumber:13},this)]},void 0,!0,{fileName:W,lineNumber:217,columnNumber:11},this)]},void 0,!0,{fileName:W,lineNumber:204,columnNumber:9},this):e?(0,F.jsxDEV)(`div`,{className:`p-3 space-y-3`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-start gap-2.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-6 h-6 rounded-full flex items-center justify-center text-white text-[9px] font-bold shrink-0 mt-0.5`,style:{backgroundColor:e.authorColor},children:td(e.authorName)},void 0,!1,{fileName:W,lineNumber:233,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[12px] font-semibold text-[#1d1d1f]`,children:e.authorName},void 0,!1,{fileName:W,lineNumber:241,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#86868b]`,children:$u(e.createdAt)},void 0,!1,{fileName:W,lineNumber:242,columnNumber:17},this)]},void 0,!0,{fileName:W,lineNumber:240,columnNumber:15},this),(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#1d1d1f] mt-0.5 leading-relaxed`,children:ed(e.body)},void 0,!1,{fileName:W,lineNumber:244,columnNumber:15},this)]},void 0,!0,{fileName:W,lineNumber:239,columnNumber:13},this)]},void 0,!0,{fileName:W,lineNumber:232,columnNumber:11},this),e.replies.length>0&&(0,F.jsxDEV)(`div`,{className:`pl-4 ml-3 border-l-2 border-[#e5e5ea] space-y-2.5 pt-1`,children:e.replies.map(e=>(0,F.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`w-5 h-5 rounded-full flex items-center justify-center text-white text-[8px] font-bold shrink-0 mt-0.5`,style:{backgroundColor:e.authorColor},children:td(e.authorName)},void 0,!1,{fileName:W,lineNumber:255,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[11px] font-semibold text-[#1d1d1f]`,children:e.authorName},void 0,!1,{fileName:W,lineNumber:263,columnNumber:23},this),(0,F.jsxDEV)(`span`,{className:`text-[9px] text-[#86868b]`,children:$u(e.createdAt)},void 0,!1,{fileName:W,lineNumber:264,columnNumber:23},this)]},void 0,!0,{fileName:W,lineNumber:262,columnNumber:21},this),(0,F.jsxDEV)(`p`,{className:`text-[11px] text-[#1d1d1f] mt-0.5 leading-relaxed`,children:ed(e.body)},void 0,!1,{fileName:W,lineNumber:266,columnNumber:21},this)]},void 0,!0,{fileName:W,lineNumber:261,columnNumber:19},this)]},e.id,!0,{fileName:W,lineNumber:254,columnNumber:17},this))},void 0,!1,{fileName:W,lineNumber:252,columnNumber:13},this),x?(0,F.jsxDEV)(`div`,{className:`mt-2 pt-2 border-t border-[#f0f0f2]`,children:[(0,F.jsxDEV)(`textarea`,{ref:C,value:y,onChange:e=>b(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&E(),e.key===`Escape`&&S(!1)},placeholder:`Write a reply... (⌘↵ to send)`,rows:2,className:`w-full text-[11px] p-2 rounded-lg border border-[#e5e5ea] bg-[#fbfbfd] focus:bg-white focus:outline-none focus:border-[#0071e3] resize-none`},void 0,!1,{fileName:W,lineNumber:278,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex justify-end gap-1.5 mt-1.5`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>S(!1),className:`px-2.5 py-1 text-[11px] text-[#86868b] hover:text-[#1d1d1f]`,children:`Cancel`},void 0,!1,{fileName:W,lineNumber:291,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:E,disabled:!y.trim(),className:`px-3 py-1 rounded-lg bg-[#0071e3] text-white text-[11px] font-semibold disabled:opacity-40 hover:bg-[#0077ed]`,children:`Reply`},void 0,!1,{fileName:W,lineNumber:298,columnNumber:17},this)]},void 0,!0,{fileName:W,lineNumber:290,columnNumber:15},this)]},void 0,!0,{fileName:W,lineNumber:277,columnNumber:13},this):(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between pt-2 border-t border-[#f0f0f2]`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>S(!0),className:`text-[11px] font-medium text-[#0071e3] hover:underline flex items-center gap-1`,children:[(0,F.jsxDEV)(Gi,{className:`w-3 h-3`},void 0,!1,{fileName:W,lineNumber:315,columnNumber:17},this),`Reply in thread`]},void 0,!0,{fileName:W,lineNumber:310,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{e&&(m(e.id),yu()?.deleteComment(e.id),r())},className:`text-[11px] text-[#86868b] hover:text-[#ff3b30] flex items-center gap-1 transition-apple`,children:(0,F.jsxDEV)(Oe,{className:`w-3 h-3`},void 0,!1,{fileName:W,lineNumber:324,columnNumber:17},this)},void 0,!1,{fileName:W,lineNumber:319,columnNumber:15},this)]},void 0,!0,{fileName:W,lineNumber:309,columnNumber:13},this)]},void 0,!0,{fileName:W,lineNumber:230,columnNumber:9},this):null]},void 0,!0,{fileName:W,lineNumber:143,columnNumber:5},this)}var rd=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/CommentMarkersOverlay.tsx`;function id({elements:e,activePageId:t,zoom:n,pan:r}){let{comments:i,activeCommentId:a,setActiveComment:o,pendingCommentAnchor:s,setPendingCommentAnchor:c,showResolvedOnCanvas:l}=mu(),{isReviewMode:u,toolMode:d}=P(),f=i.filter(e=>!(e.pageId!==t||e.status===`resolved`&&!l));return(0,F.jsxDEV)(`div`,{className:`absolute inset-0 pointer-events-none`,style:{zIndex:1e4},children:[f.map((i,s)=>{let l=i.canvasX,u=i.canvasY;if((l===void 0||u===void 0)&&i.elementId){let t=e.find(e=>e.id===i.elementId);t&&(l=t.x+12,u=t.y-12)}(l===void 0||u===void 0)&&(l=40,u=40+s*44);let d=l*n+r.x,f=u*n+r.y,p=a===i.id,m=i.status===`resolved`;return(0,F.jsxDEV)(N.Fragment,{children:[(0,F.jsxDEV)(`div`,{className:`absolute pointer-events-auto cursor-pointer select-none group`,style:{left:d,top:f,transform:`translate(-50%, -50%)`},onClick:e=>{e.stopPropagation(),o(p?null:i.id),c(null)},children:(0,F.jsxDEV)(`div`,{className:j(`relative flex items-center justify-center transition-transform duration-150 ease-out`,p?`scale-125 z-50`:`hover:scale-115`,m?`opacity-70`:`opacity-100`),children:[(0,F.jsxDEV)(`div`,{className:j(`w-7 h-7 rounded-full flex items-center justify-center text-white text-[11px] font-bold shadow-apple-md border-2 transition-all`,p?`ring-4 ring-[#0071e3]/30 border-white`:`border-white hover:border-[#1d1d1f]`),style:{backgroundColor:m?`#34c759`:i.authorColor||`#0071e3`},children:m?(0,F.jsxDEV)(ke,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:rd,lineNumber:109,columnNumber:21},this):(0,F.jsxDEV)(`span`,{children:s+1},void 0,!1,{fileName:rd,lineNumber:111,columnNumber:21},this)},void 0,!1,{fileName:rd,lineNumber:97,columnNumber:17},this),i.replies.length>0&&!m&&(0,F.jsxDEV)(`span`,{className:`absolute -top-1 -right-1 bg-white text-[#1d1d1f] text-[9px] font-bold px-1 rounded-full border border-[#e5e5ea] shadow-2xs`,children:i.replies.length},void 0,!1,{fileName:rd,lineNumber:117,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`absolute left-full ml-2 px-2 py-1 bg-[#1d1d1f] text-white text-[10px] rounded-lg whitespace-nowrap shadow-apple-md opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-50`,children:[(0,F.jsxDEV)(`span`,{className:`font-semibold`,children:[i.authorName,`: `]},void 0,!0,{fileName:rd,lineNumber:124,columnNumber:19},this),(0,F.jsxDEV)(`span`,{children:[i.body.slice(0,30),i.body.length>30?`...`:``]},void 0,!0,{fileName:rd,lineNumber:125,columnNumber:19},this)]},void 0,!0,{fileName:rd,lineNumber:123,columnNumber:17},this)]},void 0,!0,{fileName:rd,lineNumber:89,columnNumber:15},this)},void 0,!1,{fileName:rd,lineNumber:75,columnNumber:13},this),p&&(0,F.jsxDEV)(`div`,{className:`pointer-events-auto`,children:(0,F.jsxDEV)(nd,{comment:i,position:{x:d,y:f},onClose:()=>o(null),pageId:t},void 0,!1,{fileName:rd,lineNumber:133,columnNumber:17},this)},void 0,!1,{fileName:rd,lineNumber:132,columnNumber:15},this)]},i.id,!0,{fileName:rd,lineNumber:74,columnNumber:11},this)}),s&&s.pageId===t&&(0,F.jsxDEV)(N.Fragment,{children:[(0,F.jsxDEV)(`div`,{className:`absolute pointer-events-auto`,style:{left:s.canvasX*n+r.x,top:s.canvasY*n+r.y,transform:`translate(-50%, -50%)`},children:(0,F.jsxDEV)(`div`,{className:`w-8 h-8 rounded-full bg-[#0071e3] text-white flex items-center justify-center shadow-apple-lg border-2 border-white animate-pulse`,children:(0,F.jsxDEV)(On,{className:`w-4 h-4`},void 0,!1,{fileName:rd,lineNumber:157,columnNumber:15},this)},void 0,!1,{fileName:rd,lineNumber:156,columnNumber:13},this)},void 0,!1,{fileName:rd,lineNumber:148,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`pointer-events-auto`,children:(0,F.jsxDEV)(nd,{isNew:!0,position:{x:s.canvasX*n+r.x,y:s.canvasY*n+r.y},onClose:()=>c(null),pageId:t,canvasX:s.canvasX,canvasY:s.canvasY,elementId:s.elementId,elementName:s.elementName},void 0,!1,{fileName:rd,lineNumber:162,columnNumber:13},this)},void 0,!1,{fileName:rd,lineNumber:161,columnNumber:11},this)]},void 0,!0,{fileName:rd,lineNumber:147,columnNumber:9},this)]},void 0,!0,{fileName:rd,lineNumber:45,columnNumber:5},this)}function ad(){return typeof navigator>`u`?!1:/Mac|iPod|iPhone|iPad/.test(navigator.platform||navigator.userAgent)}function od(e){let t=[],n=ad();e.mod&&t.push(n?`⌘`:`Ctrl`),e.ctrl&&!e.mod&&t.push(`Ctrl`),e.alt&&t.push(n?`⌥`:`Alt`),e.shift&&t.push(n?`⇧`:`Shift`);let r=e.key.toUpperCase();return e.key.toLowerCase()===`arrowup`?r=`↑`:e.key.toLowerCase()===`arrowdown`?r=`↓`:e.key.toLowerCase()===`arrowleft`?r=`←`:e.key.toLowerCase()===`arrowright`?r=`→`:e.key.toLowerCase()===`backspace`?r=n?`⌫`:`Backspace`:e.key.toLowerCase()===`delete`?r=`Del`:e.key.toLowerCase()===`escape`?r=`Esc`:e.key.toLowerCase()===`enter`?r=`↵`:e.key.toLowerCase()===`space`&&(r=`Space`),t.push(r),t}function sd(e,t){let n=ad()?e.metaKey:e.ctrlKey;if(!!t.mod!==n||!!t.shift!==e.shiftKey||!!t.alt!==e.altKey)return!1;let r=t.key.toLowerCase(),i=e.key.toLowerCase();return r===`space`&&(i===` `||e.code===`Space`)||r===`+`&&(i===`+`||i===`=`)||r===i}var cd=[{id:`undo`,name:`Undo`,description:`Revert the most recent change`,category:`general`,categoryLabel:`General & Document`,defaultBinding:{key:`z`,mod:!0},scope:`global`,allowInInput:!1},{id:`redo`,name:`Redo`,description:`Reapply the previously undone change`,category:`general`,categoryLabel:`General & Document`,defaultBinding:{key:`z`,mod:!0,shift:!0},scope:`global`,allowInInput:!1},{id:`save`,name:`Save Project`,description:`Persist project document to local storage`,category:`general`,categoryLabel:`General & Document`,defaultBinding:{key:`s`,mod:!0},scope:`global`,allowInInput:!0},{id:`commandPalette`,name:`Command Palette`,description:`Open the global Spotlight search & quick actions`,category:`general`,categoryLabel:`General & Document`,defaultBinding:{key:`k`,mod:!0},scope:`global`,allowInInput:!0},{id:`preview`,name:`Preview Prototype`,description:`Launch full interactive runtime preview`,category:`general`,categoryLabel:`General & Document`,defaultBinding:{key:`p`,mod:!0},scope:`global`,allowInInput:!0},{id:`helpShortcuts`,name:`Keyboard Shortcuts Help`,description:`View all keyboard shortcuts and customized bindings`,category:`general`,categoryLabel:`General & Document`,defaultBinding:{key:`/`,mod:!0},scope:`global`,allowInInput:!0},{id:`exportProject`,name:`Export Project`,description:`Open export modal to generate production ZIP`,category:`general`,categoryLabel:`General & Document`,defaultBinding:{key:`e`,mod:!0,shift:!0},scope:`global`,allowInInput:!1},{id:`createApp`,name:`Create App Target`,description:`Export to React Native, Next.js, or React app`,category:`general`,categoryLabel:`General & Document`,defaultBinding:{key:`b`,mod:!0},scope:`global`,allowInInput:!1},{id:`copy`,name:`Copy Selection`,description:`Copy selected elements to clipboard`,category:`editing`,categoryLabel:`Selection & Editing`,defaultBinding:{key:`c`,mod:!0},scope:`canvas`,allowInInput:!1},{id:`paste`,name:`Paste`,description:`Paste copied elements from clipboard`,category:`editing`,categoryLabel:`Selection & Editing`,defaultBinding:{key:`v`,mod:!0},scope:`canvas`,allowInInput:!1},{id:`duplicate`,name:`Duplicate`,description:`Clone selected elements with offset`,category:`editing`,categoryLabel:`Selection & Editing`,defaultBinding:{key:`d`,mod:!0},scope:`canvas`,allowInInput:!1},{id:`delete`,name:`Delete Selection`,description:`Remove selected elements from active page`,category:`editing`,categoryLabel:`Selection & Editing`,defaultBinding:{key:`backspace`},scope:`canvas`,allowInInput:!1},{id:`selectAll`,name:`Select All`,description:`Select all elements on active artboard`,category:`editing`,categoryLabel:`Selection & Editing`,defaultBinding:{key:`a`,mod:!0},scope:`canvas`,allowInInput:!1},{id:`group`,name:`Group Selection`,description:`Wrap selected elements in a container group`,category:`editing`,categoryLabel:`Selection & Editing`,defaultBinding:{key:`g`,mod:!0},scope:`canvas`,allowInInput:!1},{id:`ungroup`,name:`Ungroup Selection`,description:`Unwrap grouped container into individual elements`,category:`editing`,categoryLabel:`Selection & Editing`,defaultBinding:{key:`g`,mod:!0,shift:!0},scope:`canvas`,allowInInput:!1},{id:`lock`,name:`Lock / Unlock`,description:`Toggle lock state of selected elements`,category:`editing`,categoryLabel:`Selection & Editing`,defaultBinding:{key:`l`,mod:!0,shift:!0},scope:`canvas`,allowInInput:!1},{id:`hide`,name:`Hide / Show`,description:`Toggle visibility of selected elements`,category:`editing`,categoryLabel:`Selection & Editing`,defaultBinding:{key:`h`,mod:!0,shift:!0},scope:`canvas`,allowInInput:!1},{id:`deselect`,name:`Deselect / Escape`,description:`Clear current selection or dismiss modals`,category:`editing`,categoryLabel:`Selection & Editing`,defaultBinding:{key:`escape`},scope:`global`,allowInInput:!0},{id:`zoomIn`,name:`Zoom In`,description:`Increase canvas magnification (+10%)`,category:`canvas`,categoryLabel:`Canvas & Navigation`,defaultBinding:{key:`+`,mod:!0},scope:`global`,allowInInput:!1},{id:`zoomOut`,name:`Zoom Out`,description:`Decrease canvas magnification (-10%)`,category:`canvas`,categoryLabel:`Canvas & Navigation`,defaultBinding:{key:`-`,mod:!0},scope:`global`,allowInInput:!1},{id:`resetZoom`,name:`Reset Zoom (100%)`,description:`Reset zoom magnification to 100%`,category:`canvas`,categoryLabel:`Canvas & Navigation`,defaultBinding:{key:`0`,mod:!0},scope:`global`,allowInInput:!1},{id:`fitCanvas`,name:`Fit to Screen`,description:`Scale and center active artboard to screen`,category:`canvas`,categoryLabel:`Canvas & Navigation`,defaultBinding:{key:`0`,shift:!0},scope:`global`,allowInInput:!1},{id:`toggleGrid`,name:`Toggle Grid`,description:`Show or hide pixel snap grid overlay`,category:`canvas`,categoryLabel:`Canvas & Navigation`,defaultBinding:{key:`'`,mod:!0},scope:`global`,allowInInput:!1},{id:`toolSelect`,name:`Select Tool`,description:`Switch pointer to element select mode`,category:`canvas`,categoryLabel:`Canvas & Navigation`,defaultBinding:{key:`v`},scope:`canvas`,allowInInput:!1},{id:`toolHand`,name:`Hand / Pan Tool`,description:`Switch pointer to drag-pan mode`,category:`canvas`,categoryLabel:`Canvas & Navigation`,defaultBinding:{key:`h`},scope:`canvas`,allowInInput:!1},{id:`toolComment`,name:`Comment Mode`,description:`Click anywhere on canvas to drop a review pin`,category:`canvas`,categoryLabel:`Canvas & Navigation`,defaultBinding:{key:`c`},scope:`canvas`,allowInInput:!1},{id:`addText`,name:`Add Text`,description:`Insert a typography block on canvas`,category:`widgets`,categoryLabel:`Quick Widgets`,defaultBinding:{key:`t`},scope:`canvas`,allowInInput:!1},{id:`addRectangle`,name:`Add Container / Box`,description:`Insert a rounded surface container`,category:`widgets`,categoryLabel:`Quick Widgets`,defaultBinding:{key:`r`},scope:`canvas`,allowInInput:!1},{id:`addButton`,name:`Add Button`,description:`Insert an interactive primary button`,category:`widgets`,categoryLabel:`Quick Widgets`,defaultBinding:{key:`b`},scope:`canvas`,allowInInput:!1},{id:`addImage`,name:`Add Image`,description:`Insert an image media container`,category:`widgets`,categoryLabel:`Quick Widgets`,defaultBinding:{key:`i`},scope:`canvas`,allowInInput:!1},{id:`addStatCard`,name:`Add Stat Card`,description:`Insert a KPI metric scorecard`,category:`widgets`,categoryLabel:`Quick Widgets`,defaultBinding:{key:`s`},scope:`canvas`,allowInInput:!1},{id:`addLineChart`,name:`Add Line Chart`,description:`Insert an SVG line graph with metrics`,category:`widgets`,categoryLabel:`Quick Widgets`,defaultBinding:{key:`l`},scope:`canvas`,allowInInput:!1}],ld=[`mod+w`,`mod+t`,`mod+n`,`mod+q`,`mod+shift+n`,`mod+shift+w`];function ud(e){let t=[];return e.mod&&t.push(`mod`),e.ctrl&&!e.mod&&t.push(`ctrl`),e.alt&&t.push(`alt`),e.shift&&t.push(`shift`),t.push(e.key.toLowerCase()),t.join(`+`)}function dd(e){let t=[],n=new Map;return e.forEach(r=>{let i=ud(r.customBinding||r.defaultBinding);if(ld.includes(i)&&t.push({shortcutId:r.id,conflictingWithId:`browser`,keyCombo:i,type:`reserved_browser`,message:`"${r.name}" uses a key combo (${i}) that is intercepted by the web browser.`}),n.has(i)){let a=n.get(i),o=e.find(e=>e.id===a);t.push({shortcutId:r.id,conflictingWithId:a,keyCombo:i,type:`duplicate`,message:`"${r.name}" conflicts with "${o?.name||a}" on key combo (${i}).`})}else n.set(i,r.id)}),t}var fd=`cyrus_custom_shortcuts_v1`,pd=new class{shortcuts=[...cd];listeners=[];constructor(){this.loadCustomBindings()}subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}notify(){this.listeners.forEach(e=>e())}getShortcuts(){return this.shortcuts}getConflicts(){return dd(this.shortcuts)}updateBinding(e,t){let n=this.shortcuts.find(t=>t.id===e);return n?(n.customBinding=t,this.saveCustomBindings(),this.notify(),!0):!1}resetBinding(e){let t=this.shortcuts.find(t=>t.id===e);t&&(delete t.customBinding,this.saveCustomBindings(),this.notify())}resetAllToDefaults(){this.shortcuts=cd.map(e=>({...e}));try{localStorage.removeItem(fd)}catch{}this.notify()}saveCustomBindings(){try{let e={};this.shortcuts.forEach(t=>{t.customBinding&&(e[t.id]=t.customBinding)}),localStorage.setItem(fd,JSON.stringify(e))}catch{}}loadCustomBindings(){try{let e=localStorage.getItem(fd);if(!e)return;let t=JSON.parse(e);this.shortcuts.forEach(e=>{t[e.id]&&(e.customBinding=t[e.id])})}catch{}}},md=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/ContextualHints.tsx`,hd=`cyrus_hints_dismissed_v1`;function gd(){let e=ad()?`⌘`:`Ctrl`,t=[{id:`cmd_k`,icon:vi,text:`Press ${e}+K for Command Palette & instant widget search.`},{id:`quick_keys`,icon:f,text:`Hotkeys: T for Text, B for Button, S for Stat Card, L for Line Chart.`},{id:`pan_zoom`,icon:Bt,text:`Hold Space to Pan, ${e}+0 to reset zoom, ⇧+0 to fit canvas.`}],[n,r]=(0,N.useState)(0),[i,a]=(0,N.useState)(()=>{try{return localStorage.getItem(hd)===`true`}catch{return!1}}),o=()=>{a(!0);try{localStorage.setItem(hd,`true`)}catch{}},s=()=>{r(e=>(e+1)%t.length)};if(i)return null;let c=t[n],l=c.icon;return(0,F.jsxDEV)(`div`,{className:`absolute bottom-6 left-1/2 -translate-x-1/2 z-40 animate-in fade-in slide-in-from-bottom-2 duration-200`,children:(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5 px-3.5 py-2 rounded-full bg-white/90 dark:bg-[#1c1c1e]/90 backdrop-blur-xl border border-[#e5e5ea] dark:border-[#38383a] shadow-lg text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[(0,F.jsxDEV)(`div`,{className:`w-5 h-5 rounded-full bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center shrink-0`,children:(0,F.jsxDEV)(l,{className:`w-3 h-3`},void 0,!1,{fileName:md,lineNumber:65,columnNumber:11},this)},void 0,!1,{fileName:md,lineNumber:64,columnNumber:9},this),(0,F.jsxDEV)(`span`,{className:`font-medium max-w-[340px] truncate`,children:c.text},void 0,!1,{fileName:md,lineNumber:68,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 pl-1 border-l border-[#e5e5ea] dark:border-[#38383a]`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:s,title:`Next tip`,className:`p-1 rounded-full hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] text-[#86868b] hover:text-[#1d1d1f] cursor-pointer`,children:(0,F.jsxDEV)(at,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:md,lineNumber:77,columnNumber:13},this)},void 0,!1,{fileName:md,lineNumber:71,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:o,title:`Dismiss tips`,className:`p-1 rounded-full hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] text-[#86868b] hover:text-[#1d1d1f] cursor-pointer`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:md,lineNumber:85,columnNumber:13},this)},void 0,!1,{fileName:md,lineNumber:79,columnNumber:11},this)]},void 0,!0,{fileName:md,lineNumber:70,columnNumber:9},this)]},void 0,!0,{fileName:md,lineNumber:63,columnNumber:7},this)},void 0,!1,{fileName:md,lineNumber:62,columnNumber:5},this)}var _d=`C:/Users/Shadow/Desktop/cyrus/src/editor/canvas/CanvasWorkspace.tsx`,vd=N.memo(function({page:e}){let t=P(e=>e.viewportMode),n=P(e=>e.zoom),r=P(e=>e.setZoom),i=P(e=>e.fitToScreen),a=P(e=>e.fitSelection),o=P(e=>e.centerSelection),s=P(e=>e.pan),c=P(e=>e.setPan),l=P(e=>e.toolMode),u=P(e=>e.isPreviewMode),d=P(e=>e.isReviewMode),f=P(e=>e.toggleReviewMode),p=I(e=>e.selectedElementIds),m=(0,N.useRef)(null);Po[t];let[h,g]=(0,N.useState)(!1),_=(0,N.useRef)(null),[v,y]=(0,N.useState)(!1),[b,x]=(0,N.useState)(!1),S=(0,N.useRef)(null);(0,N.useEffect)(()=>{let e=e=>{e.code===`Space`&&![`INPUT`,`TEXTAREA`].includes(e.target?.tagName)&&y(!0)},t=e=>{e.code===`Space`&&(y(!1),x(!1),S.current=null)};return window.addEventListener(`keydown`,e),window.addEventListener(`keyup`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`keyup`,t)}},[]),(0,N.useEffect)(()=>{let e=e=>{_.current&&!_.current.contains(e.target)&&g(!1)};if(h)return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[h]),(0,N.useCallback)(()=>{if(!m.current)return;let{clientWidth:e,clientHeight:t}=m.current;i(e,t)},[i]),(0,N.useCallback)(()=>{if(!m.current||p.length===0)return;let t=e.elements.filter(e=>p.includes(e.id));if(t.length===0)return;let n=qs(t);a(m.current.clientWidth,m.current.clientHeight,n)},[e.elements,p,a]),(0,N.useCallback)(()=>{if(!m.current||p.length===0)return;let t=e.elements.filter(e=>p.includes(e.id));if(t.length===0)return;let n=qs(t);o(m.current.clientWidth,m.current.clientHeight,n)},[e.elements,p,o]);let C=e=>{(l===`hand`||v||e.button===1)&&(e.preventDefault(),x(!0),S.current={x:e.clientX,y:e.clientY,startPanX:s.x,startPanY:s.y})},w=e=>{if(b&&S.current){let t=e.clientX-S.current.x,n=e.clientY-S.current.y;c({x:Math.round(S.current.startPanX+t),y:Math.round(S.current.startPanY+n)})}},T=()=>{x(!1),S.current=null};(0,N.useEffect)(()=>{if(!b)return;let e=e=>{if(!S.current)return;let t=e.clientX-S.current.x,n=e.clientY-S.current.y;c({x:Math.round(S.current.startPanX+t),y:Math.round(S.current.startPanY+n)})},t=()=>{x(!1),S.current=null};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[b,c]);let ee=(0,N.useCallback)(e=>{if(e.preventDefault(),e.ctrlKey||e.metaKey){let t=-e.deltaY*.01,i=Math.min(Math.max(n+t,.1),4);r(Number(i.toFixed(2)))}else c({x:Math.round(s.x-e.deltaX),y:Math.round(s.y-e.deltaY)})},[n,r,s,c]);return(0,N.useEffect)(()=>{let e=m.current;if(e)return e.addEventListener(`wheel`,ee,{passive:!1}),()=>e.removeEventListener(`wheel`,ee)},[ee]),(0,F.jsxDEV)(`div`,{ref:m,onMouseDown:C,onMouseMove:w,onMouseUp:T,style:{cursor:b?`grabbing`:l===`hand`||v?`grab`:`default`,backgroundPosition:`center center`},className:`relative flex-1 h-full w-full overflow-hidden select-none bg-[#ebedf2] dark:bg-[#161618]`,children:[(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`50%`,top:`50%`,transform:`translate(calc(-50% + ${s.x}px), calc(-50% + ${s.y}px)) scale(${n})`,transformOrigin:`center center`,transition:b?`none`:`transform 0.08s cubic-bezier(0.16, 1, 0.3, 1)`},className:`flex flex-col items-center`,children:[(0,F.jsxDEV)(Ju,{page:e,viewportMode:t,isPreviewMode:u},void 0,!1,{fileName:_d,lineNumber:220,columnNumber:9},this),(0,F.jsxDEV)(id,{elements:e.elements,activePageId:e.id,zoom:1,pan:{x:0,y:0}},void 0,!1,{fileName:_d,lineNumber:227,columnNumber:9},this)]},void 0,!0,{fileName:_d,lineNumber:208,columnNumber:7},this),(0,F.jsxDEV)(Xu,{activePageId:e.id,zoom:n,pan:{x:s.x,y:s.y}},void 0,!1,{fileName:_d,lineNumber:231,columnNumber:7},this),(0,F.jsxDEV)(Qu,{elements:e.elements,activePageId:e.id,zoom:n,pan:{x:s.x,y:s.y}},void 0,!1,{fileName:_d,lineNumber:234,columnNumber:7},this),(0,F.jsxDEV)(gd,{},void 0,!1,{fileName:_d,lineNumber:237,columnNumber:7},this),d&&(0,F.jsxDEV)(`div`,{className:`absolute top-14 left-1/2 -translate-x-1/2 z-40 flex items-center gap-2.5 px-4 py-2 rounded-full bg-[#1d1d1f]/90 text-white text-[12px] font-medium shadow-apple-lg backdrop-blur-md animate-fade-in border border-white/10 select-none`,children:[(0,F.jsxDEV)(`span`,{className:`w-2 h-2 rounded-full bg-[#34c759] animate-pulse shrink-0`},void 0,!1,{fileName:_d,lineNumber:242,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:`Review Mode Active — Canvas interaction enabled for feedback inspection`},void 0,!1,{fileName:_d,lineNumber:243,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:f,className:`ml-1 px-2.5 py-0.5 rounded-full bg-white/20 hover:bg-white/30 text-white text-[11px] font-semibold transition-apple cursor-pointer`,children:`Exit Review`},void 0,!1,{fileName:_d,lineNumber:244,columnNumber:11},this)]},void 0,!0,{fileName:_d,lineNumber:241,columnNumber:9},this)]},void 0,!0,{fileName:_d,lineNumber:197,columnNumber:5},this)}),yd=`C:/Users/Shadow/Desktop/cyrus/src/editor/properties/DevModeInspector.tsx`;function bd(e){let t=e.replace(/[^a-zA-Z0-9_]/g,``);return(!t||/^[0-9]/.test(t))&&(t=`Widget_`+t),t.charAt(0).toUpperCase()+t.slice(1)}function xd(e,t=`const Color(0xFF0071E3)`){if(!e||e===`transparent`)return`Colors.transparent`;let n=e.replace(`#`,``).trim();return n.length===3&&(n=n.split(``).map(e=>e+e).join(``)),n.length===6?`const Color(0xFF`+n.toUpperCase()+`)`:n.length===8?`const Color(0x`+n.toUpperCase()+`)`:t}function Sd(e,t=`Color(red: 0.0, green: 0.44, blue: 0.89)`){if(!e||e===`transparent`)return`Color.clear`;let n=e.replace(`#`,``).trim();if(n.length===3&&(n=n.split(``).map(e=>e+e).join(``)),n.length===6){let e=parseInt(n,16),t=(e>>16&255)/255,r=(e>>8&255)/255,i=(e&255)/255;return`Color(red: `+t.toFixed(2)+`, green: `+r.toFixed(2)+`, blue: `+i.toFixed(2)+`)`}return t}function Cd({element:e}){let{addToast:t}=oo(),n=P(e=>e.setDevMode),r=I(e=>e.activeProject?.pages.find(t=>t.id===e.activePageId)||e.activeProject?.pages[0]),[i,a]=(0,N.useState)(`react-tailwind`),[o,s]=(0,N.useState)(e?`element`:`page`),[c,l]=(0,N.useState)(!1),u=e?o:`page`,d=(0,N.useMemo)(()=>{if(u===`page`||!e)return Oc(r,i);let{type:t,name:n,width:a,height:o,styles:s,content:c}=e,l=bd(n),d=s.backgroundColor||`#0071e3`,f=s.textColor||`#ffffff`,p=s.borderRadius??8,m=Math.abs(a-o)<=6,h=m?0:10,g=m?0:16,_=s.paddingTop??h,v=s.paddingRight??g,y=s.paddingBottom??h,b=s.paddingLeft??g,x=s.fontSize||14,S=s.fontWeight||`500`,C=s.borderWidth||0,w=s.borderColor||`#e5e5ea`,T=s.borderStyle||`solid`,ee=c.icon,E=c.iconPosition||`left`,te=wc(ee),D=Ec(ee),ne=Dc(ee),re=Tc(ee),ie=c.label===void 0?c.title||c.text||c.headline||(t===`button`||t===`submitButton`?`Button`:``):c.label,O=String(ie).replace(/"/g,`\\"`).replace(/'/g,`\\'`),ae=String(c.url||c.src||`https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?w=800`);switch(i){case`react-tailwind`:return t===`image`?`import React from 'react';
|
|
1907
|
+
|
|
1908
|
+
interface `+l+`Props {
|
|
1909
|
+
className?: string;
|
|
1910
|
+
alt?: string;
|
|
1911
|
+
}
|
|
1912
|
+
|
|
1913
|
+
export function `+l+`({ className = '', alt = '`+(O||l)+`' }: `+l+`Props) {
|
|
1914
|
+
return (
|
|
1915
|
+
<img
|
|
1916
|
+
src="`+ae+`"
|
|
1917
|
+
alt={alt}
|
|
1918
|
+
style={{
|
|
1919
|
+
width: `+Math.round(a)+`,
|
|
1920
|
+
height: `+Math.round(o)+`,
|
|
1921
|
+
borderRadius: `+p+`,
|
|
1922
|
+
`+(C>0?`border: '`+C+`px `+T+` `+w+`',
|
|
1923
|
+
`:``)+`objectFit: 'cover',
|
|
1924
|
+
}}
|
|
1925
|
+
className={\`shadow-sm \${className}\`}
|
|
1926
|
+
/>
|
|
1927
|
+
);
|
|
1928
|
+
}`:t===`button`||t===`submitButton`?`import React from 'react';
|
|
1929
|
+
|
|
1930
|
+
interface `+l+`Props {
|
|
1931
|
+
onClick?: () => void;
|
|
1932
|
+
children?: React.ReactNode;
|
|
1933
|
+
disabled?: boolean;
|
|
1934
|
+
}
|
|
1935
|
+
|
|
1936
|
+
export function `+l+`({ onClick, children, disabled = false }: `+l+`Props) {
|
|
1937
|
+
return (
|
|
1938
|
+
<button
|
|
1939
|
+
type="button"
|
|
1940
|
+
onClick={onClick}
|
|
1941
|
+
disabled={disabled}
|
|
1942
|
+
style={{
|
|
1943
|
+
width: `+Math.round(a)+`,
|
|
1944
|
+
height: `+Math.round(o)+`,
|
|
1945
|
+
backgroundColor: '`+d+`',
|
|
1946
|
+
color: '`+f+`',
|
|
1947
|
+
borderRadius: `+p+`,
|
|
1948
|
+
fontSize: `+x+`,
|
|
1949
|
+
fontWeight: '`+S+`',
|
|
1950
|
+
padding: '`+_+`px `+v+`px `+y+`px `+b+`px',
|
|
1951
|
+
`+(C>0?`border: '`+C+`px `+T+` `+w+`',
|
|
1952
|
+
`:`border: 'none',
|
|
1953
|
+
`)+`boxSizing: 'border-box',
|
|
1954
|
+
}}
|
|
1955
|
+
className="inline-flex items-center justify-center gap-2 cursor-pointer transition-all hover:brightness-105 active:scale-[0.98] shadow-sm select-none"
|
|
1956
|
+
>
|
|
1957
|
+
`+(te&&E===`left`?te+`
|
|
1958
|
+
`:``)+`{children || `+(O?`"`+O+`"`:`null`)+`}`+(te&&E===`right`?`
|
|
1959
|
+
`+te:``)+`
|
|
1960
|
+
</button>
|
|
1961
|
+
);
|
|
1962
|
+
}`:t===`heading`?`import React from 'react';
|
|
1963
|
+
|
|
1964
|
+
interface `+l+`Props {
|
|
1965
|
+
children?: React.ReactNode;
|
|
1966
|
+
className?: string;
|
|
1967
|
+
}
|
|
1968
|
+
|
|
1969
|
+
export function `+l+`({ children, className = '' }: `+l+`Props) {
|
|
1970
|
+
return (
|
|
1971
|
+
<h2
|
|
1972
|
+
style={{
|
|
1973
|
+
width: `+Math.round(a)+`,
|
|
1974
|
+
height: `+Math.round(o)+`,
|
|
1975
|
+
color: '`+f+`',
|
|
1976
|
+
fontSize: `+x+`,
|
|
1977
|
+
fontWeight: '`+S+`',
|
|
1978
|
+
textAlign: '`+(s.textAlign||`left`)+`',
|
|
1979
|
+
}}
|
|
1980
|
+
className={\`flex items-center select-none overflow-hidden \${className}\`}
|
|
1981
|
+
>
|
|
1982
|
+
{children || "`+(O||l)+`"}
|
|
1983
|
+
</h2>
|
|
1984
|
+
);
|
|
1985
|
+
}`:`import React from 'react';
|
|
1986
|
+
|
|
1987
|
+
interface `+l+`Props {
|
|
1988
|
+
children?: React.ReactNode;
|
|
1989
|
+
className?: string;
|
|
1990
|
+
}
|
|
1991
|
+
|
|
1992
|
+
export function `+l+`({ children, className = '' }: `+l+`Props) {
|
|
1993
|
+
return (
|
|
1994
|
+
<div
|
|
1995
|
+
style={{
|
|
1996
|
+
width: `+Math.round(a)+`,
|
|
1997
|
+
height: `+Math.round(o)+`,
|
|
1998
|
+
backgroundColor: '`+d+`',
|
|
1999
|
+
color: '`+f+`',
|
|
2000
|
+
borderRadius: `+p+`,
|
|
2001
|
+
`+(C>0?`border: '`+C+`px `+T+` `+w+`',
|
|
2002
|
+
`:``)+`padding: '`+_+`px `+v+`px `+y+`px `+b+`px',
|
|
2003
|
+
boxSizing: 'border-box',
|
|
2004
|
+
}}
|
|
2005
|
+
className={\`flex items-center justify-center shadow-sm \${className}\`}
|
|
2006
|
+
>
|
|
2007
|
+
{children || `+(O?`"`+O+`"`:`null`)+`}
|
|
2008
|
+
</div>
|
|
2009
|
+
);
|
|
2010
|
+
}`;case`flutter`:{let e=xd(d,`Colors.transparent`),n=xd(f,`const Color(0xFF1D1D1F)`),r=xd(w,`const Color(0xFFE5E5EA)`);if(t===`image`)return`import 'package:flutter/material.dart';
|
|
2011
|
+
|
|
2012
|
+
class `+l+` extends StatelessWidget {
|
|
2013
|
+
final String? imageUrl;
|
|
2014
|
+
|
|
2015
|
+
const `+l+`({super.key, this.imageUrl});
|
|
2016
|
+
|
|
2017
|
+
@override
|
|
2018
|
+
Widget build(BuildContext context) {
|
|
2019
|
+
return ClipRRect(
|
|
2020
|
+
borderRadius: BorderRadius.circular(`+p+`.0),
|
|
2021
|
+
child: Image.network(
|
|
2022
|
+
imageUrl ?? '`+ae+`',
|
|
2023
|
+
width: `+Math.round(a)+`.0,
|
|
2024
|
+
height: `+Math.round(o)+`.0,
|
|
2025
|
+
fit: BoxFit.cover,
|
|
2026
|
+
errorBuilder: (context, error, stackTrace) => Container(
|
|
2027
|
+
width: `+Math.round(a)+`.0,
|
|
2028
|
+
height: `+Math.round(o)+`.0,
|
|
2029
|
+
color: Colors.grey.shade300,
|
|
2030
|
+
child: const Icon(Icons.broken_image, color: Colors.grey),
|
|
2031
|
+
),
|
|
2032
|
+
),
|
|
2033
|
+
);
|
|
2034
|
+
}
|
|
2035
|
+
}`;let i=[];return D&&E===`left`&&i.push(`Icon(`+D+`, size: 16.0, color: `+n+`)`),D&&O&&i.push(`const SizedBox(width: 8.0)`),O&&i.push(`Text('`+O+`', style: TextStyle(color: `+n+`, fontSize: `+x+`.0, fontWeight: FontWeight.w600))`),D&&E===`right`&&i.push(`Icon(`+D+`, size: 16.0, color: `+n+`)`),`import 'package:flutter/material.dart';
|
|
2036
|
+
|
|
2037
|
+
class `+l+` extends StatelessWidget {
|
|
2038
|
+
final VoidCallback? onTap;
|
|
2039
|
+
|
|
2040
|
+
const `+l+`({super.key, this.onTap});
|
|
2041
|
+
|
|
2042
|
+
@override
|
|
2043
|
+
Widget build(BuildContext context) {
|
|
2044
|
+
return GestureDetector(
|
|
2045
|
+
onTap: onTap,
|
|
2046
|
+
child: Container(
|
|
2047
|
+
width: `+Math.round(a)+`.0,
|
|
2048
|
+
height: `+Math.round(o)+`.0,
|
|
2049
|
+
padding: const EdgeInsets.only(
|
|
2050
|
+
top: `+_+`.0,
|
|
2051
|
+
right: `+v+`.0,
|
|
2052
|
+
bottom: `+y+`.0,
|
|
2053
|
+
left: `+b+`.0,
|
|
2054
|
+
),
|
|
2055
|
+
decoration: BoxDecoration(
|
|
2056
|
+
color: `+e+`,
|
|
2057
|
+
borderRadius: BorderRadius.circular(`+p+`.0),
|
|
2058
|
+
`+(C>0?`border: Border.all(color: `+r+`, width: `+C+`.0),`:``)+`
|
|
2059
|
+
),
|
|
2060
|
+
child: Center(
|
|
2061
|
+
child: Row(
|
|
2062
|
+
mainAxisSize: MainAxisSize.min,
|
|
2063
|
+
mainAxisAlignment: MainAxisAlignment.center,
|
|
2064
|
+
children: [
|
|
2065
|
+
`+i.join(`,
|
|
2066
|
+
`)+`
|
|
2067
|
+
],
|
|
2068
|
+
),
|
|
2069
|
+
),
|
|
2070
|
+
),
|
|
2071
|
+
);
|
|
2072
|
+
}
|
|
2073
|
+
}`}case`swiftui`:{let e=Sd(d),n=Sd(f,`Color(red: 0.11, green: 0.11, blue: 0.12)`),r=Sd(w,`Color(red: 0.90, green: 0.90, blue: 0.92)`);return t===`image`?`import SwiftUI
|
|
2074
|
+
|
|
2075
|
+
struct `+l+`: View {
|
|
2076
|
+
var imageUrl: String = "`+ae+`"
|
|
2077
|
+
|
|
2078
|
+
var body: some View {
|
|
2079
|
+
AsyncImage(url: URL(string: imageUrl)) {
|
|
2080
|
+
$0.resizable()
|
|
2081
|
+
.aspectRatio(contentMode: .fill)
|
|
2082
|
+
} placeholder: {
|
|
2083
|
+
Rectangle()
|
|
2084
|
+
.foregroundColor(Color.gray.opacity(0.3))
|
|
2085
|
+
}
|
|
2086
|
+
.frame(width: `+Math.round(a)+`, height: `+Math.round(o)+`)
|
|
2087
|
+
.cornerRadius(`+p+`)
|
|
2088
|
+
.clipped()
|
|
2089
|
+
}
|
|
2090
|
+
}`:`import SwiftUI
|
|
2091
|
+
|
|
2092
|
+
struct `+l+`: View {
|
|
2093
|
+
var action: (() -> Void)? = nil
|
|
2094
|
+
|
|
2095
|
+
var body: some View {
|
|
2096
|
+
Button(action: { action?() }) {
|
|
2097
|
+
HStack(spacing: 8) {
|
|
2098
|
+
`+(ne&&E===`left`?`Image(systemName: "`+ne+`")
|
|
2099
|
+
`:``)+(O?`Text("`+O+`")
|
|
2100
|
+
.font(.system(size: `+x+`, weight: .semibold))
|
|
2101
|
+
.foregroundColor(`+n+`)`:``)+(ne&&E===`right`?`
|
|
2102
|
+
Image(systemName: "`+ne+`")`:``)+`
|
|
2103
|
+
}
|
|
2104
|
+
.frame(width: `+Math.round(a)+`, height: `+Math.round(o)+`)
|
|
2105
|
+
.background(`+e+`)
|
|
2106
|
+
.cornerRadius(`+p+`)
|
|
2107
|
+
`+(C>0?`.overlay(RoundedRectangle(cornerRadius: `+p+`).stroke(`+r+`, lineWidth: `+C+`))
|
|
2108
|
+
`:``)+`}
|
|
2109
|
+
.buttonStyle(PlainButtonStyle())
|
|
2110
|
+
}
|
|
2111
|
+
}`}case`html-css`:{let e=t===`image`,n=t===`button`||t===`submitButton`,r=t===`heading`,i=l.toLowerCase()+`-widget`;if(e)return`<style>
|
|
2112
|
+
.`+i+` {
|
|
2113
|
+
width: `+Math.round(a)+`px;
|
|
2114
|
+
height: `+Math.round(o)+`px;
|
|
2115
|
+
border-radius: `+p+`px;
|
|
2116
|
+
`+(C>0?`border: `+C+`px `+T+` `+w+`;
|
|
2117
|
+
`:``)+`object-fit: cover;
|
|
2118
|
+
display: block;
|
|
2119
|
+
}
|
|
2120
|
+
</style>
|
|
2121
|
+
|
|
2122
|
+
<img src="`+ae+`" alt="`+(O||l)+`" class="`+i+`" />`;let s=n?`button`:r?`h2`:`div`;return`<style>
|
|
2123
|
+
.`+i+` {
|
|
2124
|
+
width: `+Math.round(a)+`px;
|
|
2125
|
+
height: `+Math.round(o)+`px;
|
|
2126
|
+
background-color: `+d+`;
|
|
2127
|
+
color: `+f+`;
|
|
2128
|
+
border-radius: `+p+`px;
|
|
2129
|
+
padding: `+_+`px `+v+`px `+y+`px `+b+`px;
|
|
2130
|
+
font-size: `+x+`px;
|
|
2131
|
+
font-weight: `+S+`;
|
|
2132
|
+
display: inline-flex;
|
|
2133
|
+
align-items: center;
|
|
2134
|
+
justify-content: center;
|
|
2135
|
+
gap: 8px;
|
|
2136
|
+
box-sizing: border-box;
|
|
2137
|
+
`+(C>0?`border: `+C+`px `+T+` `+w+`;
|
|
2138
|
+
`:`border: none;
|
|
2139
|
+
`)+`cursor: `+(n?`pointer`:`default`)+`;
|
|
2140
|
+
transition: all 0.15s ease;
|
|
2141
|
+
}
|
|
2142
|
+
.`+i+`:hover {
|
|
2143
|
+
filter: brightness(1.05);
|
|
2144
|
+
}
|
|
2145
|
+
.`+i+`:active {
|
|
2146
|
+
transform: scale(0.98);
|
|
2147
|
+
}
|
|
2148
|
+
</style>
|
|
2149
|
+
|
|
2150
|
+
<`+s+` `+(n?`type="button" `:``)+`class="`+i+`">
|
|
2151
|
+
`+(re&&E===`left`?re+`
|
|
2152
|
+
`:``)+(O?`<span>`+O+`</span>`:``)+(re&&E===`right`?`
|
|
2153
|
+
`+re:``)+`
|
|
2154
|
+
</`+s+`>`}}},[e,r,u,i]),f=()=>{navigator.clipboard.writeText(d),l(!0),t(u===`page`?`Full page code copied ✓`:`Element code copied ✓`,`success`),setTimeout(()=>l(!1),2e3)},p=u===`page`?i===`react-tailwind`?bd(r?.name||`Page`)+`Screen.tsx`:i===`flutter`?bd(r?.name||`Page`).toLowerCase()+`_screen.dart`:i===`swiftui`?bd(r?.name||`Page`)+`View.swift`:`index.html`:i===`react-tailwind`?bd(e?.name||`Widget`)+`.tsx`:i===`flutter`?bd(e?.name||`Widget`).toLowerCase()+`_widget.dart`:i===`swiftui`?bd(e?.name||`Widget`)+`View.swift`:`styles.css`;return(0,F.jsxDEV)(`div`,{className:`flex flex-col h-full text-[12px] bg-white dark:bg-[#1c1c1e] text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[(0,F.jsxDEV)(`div`,{className:`px-3.5 py-2 bg-[#34c759]/10 border-b border-[#34c759]/20 flex items-center justify-between shrink-0`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-[#34c759] text-[11.5px] font-bold`,children:[(0,F.jsxDEV)(`span`,{className:`w-2 h-2 rounded-full bg-[#34c759] animate-pulse`},void 0,!1,{fileName:yd,lineNumber:220,columnNumber:11},this),`Dev Mode 2.0`]},void 0,!0,{fileName:yd,lineNumber:219,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded bg-white/80 dark:bg-black/60 font-mono text-[10px] text-[#34c759] font-bold`,children:u===`page`?`Full Page`:e?.type||`Layer`},void 0,!1,{fileName:yd,lineNumber:224,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>n(!1),className:`p-1 rounded-md text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-white hover:bg-black/10 dark:hover:bg-white/10 transition-colors cursor-pointer`,title:`Exit Dev Mode (Back to Design Properties)`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:yd,lineNumber:233,columnNumber:13},this)},void 0,!1,{fileName:yd,lineNumber:227,columnNumber:11},this)]},void 0,!0,{fileName:yd,lineNumber:223,columnNumber:9},this)]},void 0,!0,{fileName:yd,lineNumber:218,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`p-2 border-b border-[#f4f4f6] dark:border-[#38383a] bg-[#fbfbfd] dark:bg-[#252528] shrink-0`,children:(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-1 p-0.5 rounded-lg bg-[#e5e5ea] dark:bg-[#1c1c1e]`,children:[(0,F.jsxDEV)(`button`,{type:`button`,disabled:!e,onClick:()=>s(`element`),className:j(`flex items-center justify-center gap-1.5 py-1.5 rounded-md text-[11px] font-bold transition-all cursor-pointer select-none`,u===`element`?`bg-white dark:bg-[#2c2c2e] text-[#0071e3] dark:text-[#0a84ff] shadow-xs`:`text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-white disabled:opacity-40 disabled:cursor-not-allowed`),title:e?`Inspect code for selected layer only`:`Select a canvas layer first to inspect`,children:[(0,F.jsxDEV)(ie,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:yd,lineNumber:253,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Selected Layer`},void 0,!1,{fileName:yd,lineNumber:254,columnNumber:13},this)]},void 0,!0,{fileName:yd,lineNumber:241,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>s(`page`),className:j(`flex items-center justify-center gap-1.5 py-1.5 rounded-md text-[11px] font-bold transition-all cursor-pointer select-none`,u===`page`?`bg-white dark:bg-[#2c2c2e] text-[#34c759] shadow-xs`:`text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-white`),title:`Generate full pixel-perfect production code for the entire screen`,children:[(0,F.jsxDEV)(pt,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:yd,lineNumber:268,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:[`Full Page (`,r?.elements.length||0,`)`]},void 0,!0,{fileName:yd,lineNumber:269,columnNumber:13},this)]},void 0,!0,{fileName:yd,lineNumber:257,columnNumber:11},this)]},void 0,!0,{fileName:yd,lineNumber:240,columnNumber:9},this)},void 0,!1,{fileName:yd,lineNumber:239,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`p-3 space-y-2.5 flex-1 flex flex-col min-h-0`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between shrink-0`,children:[(0,F.jsxDEV)(`span`,{className:`text-[11px] font-semibold text-[#86868b] uppercase tracking-wider`,children:u===`page`?`Full Screen Code`:`Component Code`},void 0,!1,{fileName:yd,lineNumber:279,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:f,className:`flex items-center gap-1 px-2.5 py-1 rounded-lg bg-[#34c759] text-white text-[11px] font-bold hover:bg-[#2fb350] active:scale-95 transition-all cursor-pointer shadow-2xs`,children:[c?(0,F.jsxDEV)(ke,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:yd,lineNumber:287,columnNumber:23},this):(0,F.jsxDEV)(Dn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:yd,lineNumber:287,columnNumber:59},this),c?`Copied`:`Copy Code`]},void 0,!0,{fileName:yd,lineNumber:282,columnNumber:11},this)]},void 0,!0,{fileName:yd,lineNumber:278,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-4 gap-1 p-1 rounded-lg bg-[#f4f4f6] dark:bg-[#2c2c2e] shrink-0`,children:[`react-tailwind`,`flutter`,`swiftui`,`html-css`].map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>a(e),className:j(`py-1 rounded text-[10px] font-bold text-center transition-all cursor-pointer`,i===e?`bg-white dark:bg-[#1c1c1e] text-[#34c759] shadow-2xs`:`text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-white`),children:e===`react-tailwind`?`React`:e===`flutter`?`Flutter`:e===`swiftui`?`SwiftUI`:`HTML/CSS`},e,!1,{fileName:yd,lineNumber:295,columnNumber:13},this))},void 0,!1,{fileName:yd,lineNumber:293,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`relative flex-1 min-h-[200px] rounded-xl overflow-hidden bg-[#1e1e1e] border border-[#38383a] flex flex-col`,children:[(0,F.jsxDEV)(`div`,{className:`px-3 py-1.5 bg-[#252526] border-b border-[#38383a] flex items-center justify-between text-[10.5px] font-mono text-[#8e8e93] shrink-0`,children:[(0,F.jsxDEV)(`span`,{children:p},void 0,!1,{fileName:yd,lineNumber:314,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[#34c759] font-semibold`,children:`Ready to Paste`},void 0,!1,{fileName:yd,lineNumber:315,columnNumber:13},this)]},void 0,!0,{fileName:yd,lineNumber:313,columnNumber:11},this),(0,F.jsxDEV)(`pre`,{className:`flex-1 p-3 font-mono text-[11px] text-[#d4d4d4] overflow-x-auto overflow-y-auto leading-relaxed whitespace-pre select-text`,children:d},void 0,!1,{fileName:yd,lineNumber:317,columnNumber:11},this)]},void 0,!0,{fileName:yd,lineNumber:312,columnNumber:9},this)]},void 0,!0,{fileName:yd,lineNumber:277,columnNumber:7},this)]},void 0,!0,{fileName:yd,lineNumber:216,columnNumber:5},this)}var G=`C:/Users/Shadow/Desktop/cyrus/src/editor/properties/ChartDataInspector.tsx`,wd=[`#7d2ae8`,`#0071e3`,`#34c759`,`#ff9500`,`#ff3b30`,`#5856d6`,`#af52de`,`#00c7be`],Td=[{id:`currency`,label:`Currency ($12,450)`,icon:`$`},{id:`compact`,label:`Compact (12.5k / 1.2M)`,icon:`k/M`},{id:`percentage`,label:`Percentage (12.5%)`,icon:`%`},{id:`number`,label:`Standard Number (12,450)`,icon:`123`}],Ed=[{id:`default`,label:`Default Text / Category (Jan, Feb, Mar)`},{id:`uppercase`,label:`Uppercase / Short (JAN, FEB, MAR)`},{id:`numeric`,label:`Numeric Step (1, 2, 3...)`},{id:`short`,label:`Abbreviated (J, F, M...)`}],Dd=N.memo(function({element:e}){let{updateElement:t}=I(),[n,r]=(0,N.useState)(!1),[i,a]=(0,N.useState)(``),[o,s]=(0,N.useState)(`data`),c=e.content||{},l=Array.isArray(c.data)?c.data:[{label:`Jan`,value:40},{label:`Feb`,value:65},{label:`Mar`,value:85}],u=n=>{t(e.id,{content:{...c,...n}})},d=e.type===`multiLineChart`||e.type===`multiLine`||e.type===`stackedBar`||e.type===`stackedBarChart`,f=e.type===`donutChart`||e.type===`donut`||e.type===`pieChart`||e.type===`pie`,p=e.type===`gaugeChart`||e.type===`gauge`||e.type===`radialChart`,m=e.type===`statCard`||e.type===`metricCard`,h=(0,N.useMemo)(()=>{if(!l.length)return{sum:0,mean:0,min:0,max:0};let e=l.map(e=>Number(e.value)||0),t=e.reduce((e,t)=>e+t,0);return{sum:t,mean:t/e.length,min:Math.min(...e),max:Math.max(...e)}},[l]),g=(e,t,n)=>{let r=[...l],i={...r[e]};if(t===`value`||t===`secondary`){let e=parseFloat(n);i[t]=isNaN(e)?0:e}else i[t]=n;r[e]=i,u({data:r})},_=(e,t)=>{if(t<0||t>=l.length)return;let n=[...l],[r]=n.splice(e,1);n.splice(t,0,r),u({data:n})},v=()=>{let e=[...l,{label:`Item ${l.length+1}`,value:50,color:wd[l.length%wd.length]}];u({data:e}),oo.getState().addToast(`Added data point`,`success`)},y=e=>{if(l.length<=1){oo.getState().addToast(`Must keep at least 1 data point`,`warning`);return}let t=l.filter((t,n)=>n!==e);u({data:t})};return(0,F.jsxDEV)(`div`,{className:`space-y-3 text-[12px]`,children:[(0,F.jsxDEV)(`div`,{className:`space-y-2`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[11px] font-semibold text-[#6e6e73] dark:text-[#8e8e93] block mb-1`,children:`Chart Title`},void 0,!1,{fileName:G,lineNumber:255,columnNumber:11},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.title||``,onChange:e=>u({title:e.target.value}),placeholder:`e.g. Monthly Revenue`,className:`w-full h-8 px-2.5 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] font-medium text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-transparent focus:border-[#7d2ae8] outline-none`},void 0,!1,{fileName:G,lineNumber:258,columnNumber:11},this)]},void 0,!0,{fileName:G,lineNumber:254,columnNumber:9},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[11px] font-semibold text-[#6e6e73] dark:text-[#8e8e93] block mb-1`,children:`Subtitle / Units`},void 0,!1,{fileName:G,lineNumber:268,columnNumber:11},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.subtitle||``,onChange:e=>u({subtitle:e.target.value}),placeholder:`e.g. In USD ($) • Q1-Q2`,className:`w-full h-8 px-2.5 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-transparent focus:border-[#7d2ae8] outline-none`},void 0,!1,{fileName:G,lineNumber:271,columnNumber:11},this)]},void 0,!0,{fileName:G,lineNumber:267,columnNumber:9},this)]},void 0,!0,{fileName:G,lineNumber:253,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex bg-[#f4f4f6] dark:bg-[#2c2c2e] p-0.5 rounded-lg border border-[#e5e5ea] dark:border-[#38383a]`,children:[{id:`data`,label:`Data Points`},{id:`format`,label:`Units & Display`}].map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>s(e.id),className:j(`flex-1 py-1 text-[11px] font-semibold rounded-md transition-all cursor-pointer`,o===e.id?`bg-white dark:bg-[#1c1c1e] text-[#1d1d1f] dark:text-white shadow-apple-xs`:`text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-white`),children:e.label},e.id,!1,{fileName:G,lineNumber:287,columnNumber:11},this))},void 0,!1,{fileName:G,lineNumber:282,columnNumber:7},this),o===`data`&&(0,F.jsxDEV)(`div`,{className:`space-y-2.5`,children:[p&&(0,F.jsxDEV)(`div`,{className:`p-3 bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-xl border border-[#e5e5ea] dark:border-[#38383a] space-y-2`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[11px] font-bold text-[#1d1d1f] dark:text-white`,children:`Target Completion %`},void 0,!1,{fileName:G,lineNumber:310,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[12px] font-mono font-bold text-[#34c759]`,children:[c.percentage??84,`%`]},void 0,!0,{fileName:G,lineNumber:311,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:309,columnNumber:15},this),(0,F.jsxDEV)(`input`,{type:`range`,min:`0`,max:`100`,step:`0.5`,value:c.percentage??84,onChange:e=>u({percentage:parseFloat(e.target.value)}),className:`w-full accent-[#34c759] cursor-pointer`},void 0,!1,{fileName:G,lineNumber:313,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:308,columnNumber:13},this),m&&(0,F.jsxDEV)(`div`,{className:`p-3 bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-xl border border-[#e5e5ea] dark:border-[#38383a] space-y-2.5`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10.5px] font-semibold text-[#86868b] block mb-1`,children:`Headline Metric Value`},void 0,!1,{fileName:G,lineNumber:329,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.value||`$124,500`,onChange:e=>u({value:e.target.value}),placeholder:`e.g. $124,500 or 98.4%`,className:`w-full h-8 px-2.5 bg-white dark:bg-[#1c1c1e] text-[13px] font-mono font-bold text-[#1d1d1f] dark:text-white rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:330,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:328,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`flex-1`,children:[(0,F.jsxDEV)(`label`,{className:`text-[10.5px] font-semibold text-[#86868b] block mb-1`,children:`Trend Change`},void 0,!1,{fileName:G,lineNumber:341,columnNumber:19},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.trend||`+24.5%`,onChange:e=>u({trend:e.target.value}),placeholder:`+24.5%`,className:`w-full h-8 px-2.5 bg-white dark:bg-[#1c1c1e] text-[12px] font-mono text-[#1d1d1f] dark:text-white rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:342,columnNumber:19},this)]},void 0,!0,{fileName:G,lineNumber:340,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`pt-4`,children:(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>u({isPositive:c.isPositive===!1}),className:j(`h-8 px-2.5 rounded-lg border text-[11px] font-bold flex items-center gap-1 cursor-pointer transition-colors`,c.isPositive===!1?`bg-[#ff3b30]/15 border-[#ff3b30] text-[#ff3b30]`:`bg-[#34c759]/15 border-[#34c759] text-[#34c759]`),children:[c.isPositive===!1?(0,F.jsxDEV)(de,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:G,lineNumber:361,columnNumber:94},this):(0,F.jsxDEV)(_t,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:G,lineNumber:361,columnNumber:53},this),(0,F.jsxDEV)(`span`,{children:c.isPositive===!1?`Negative`:`Positive`},void 0,!1,{fileName:G,lineNumber:362,columnNumber:21},this)]},void 0,!0,{fileName:G,lineNumber:351,columnNumber:19},this)},void 0,!1,{fileName:G,lineNumber:350,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:339,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:327,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between px-0.5`,children:[(0,F.jsxDEV)(`span`,{className:`text-[11px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[`Data Points (`,l.length,`)`]},void 0,!0,{fileName:G,lineNumber:371,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{let e=[...l].sort((e,t)=>(Number(e.value)||0)-(Number(t.value)||0));u({data:e}),oo.getState().addToast(`Sorted ascending`,`success`)},title:`Sort Ascending`,className:`p-1 text-[#6e6e73] hover:text-[#1d1d1f] dark:hover:text-white hover:bg-[#e5e5ea] dark:hover:bg-[#38383a] rounded cursor-pointer`,children:(0,F.jsxDEV)($e,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:G,lineNumber:381,columnNumber:17},this)},void 0,!1,{fileName:G,lineNumber:375,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{let e=[...l].sort((e,t)=>(Number(t.value)||0)-(Number(e.value)||0));u({data:e}),oo.getState().addToast(`Sorted descending`,`success`)},title:`Sort Descending`,className:`p-1 text-[#6e6e73] hover:text-[#1d1d1f] dark:hover:text-white hover:bg-[#e5e5ea] dark:hover:bg-[#38383a] rounded cursor-pointer`,children:(0,F.jsxDEV)(fe,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:G,lineNumber:389,columnNumber:17},this)},void 0,!1,{fileName:G,lineNumber:383,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{let e=[...l].reverse();u({data:e}),oo.getState().addToast(`Reversed order`,`success`)},title:`Reverse Order`,className:`p-1 text-[#6e6e73] hover:text-[#1d1d1f] dark:hover:text-white hover:bg-[#e5e5ea] dark:hover:bg-[#38383a] rounded cursor-pointer`,children:(0,F.jsxDEV)(pn,{className:`w-3 h-3`},void 0,!1,{fileName:G,lineNumber:397,columnNumber:17},this)},void 0,!1,{fileName:G,lineNumber:391,columnNumber:15},this),f&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{if(!h.sum)return;let e=l.map(e=>({...e,value:Number((Number(e.value||0)/h.sum*100).toFixed(1))}));u({data:e,format:`percentage`}),oo.getState().addToast(`Normalized to 100%`,`success`)},title:`Normalize Sum to 100%`,className:`px-1.5 py-0.5 text-[10px] font-bold bg-[#7d2ae8]/10 text-[#7d2ae8] rounded hover:bg-[#7d2ae8]/20 cursor-pointer`,children:`100%`},void 0,!1,{fileName:G,lineNumber:400,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:374,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:370,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-12 gap-1.5 px-2 py-1 bg-[#e5e5ea]/50 dark:bg-[#2c2c2e]/60 rounded-lg text-[10px] font-bold text-[#86868b] uppercase tracking-wider`,children:[(0,F.jsxDEV)(`span`,{className:`col-span-4`,children:`Label`},void 0,!1,{fileName:G,lineNumber:414,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:j(d?`col-span-3`:f?`col-span-4`:`col-span-6`),children:d?`Y1`:`Value`},void 0,!1,{fileName:G,lineNumber:415,columnNumber:13},this),d&&(0,F.jsxDEV)(`span`,{className:`col-span-3`,children:`Y2`},void 0,!1,{fileName:G,lineNumber:418,columnNumber:31},this),f&&(0,F.jsxDEV)(`span`,{className:`col-span-2 text-center`,children:`Color`},void 0,!1,{fileName:G,lineNumber:419,columnNumber:30},this),(0,F.jsxDEV)(`span`,{className:`col-span-2 text-right`,children:`Actions`},void 0,!1,{fileName:G,lineNumber:420,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:413,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`space-y-1.5 max-h-56 overflow-y-auto pr-0.5 no-scrollbar`,children:l.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`grid grid-cols-12 gap-1.5 items-center p-1.5 bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-lg border border-[#e5e5ea]/60 dark:border-[#38383a]/60`,children:[(0,F.jsxDEV)(`input`,{type:`text`,value:e.label||``,onChange:e=>g(t,`label`,e.target.value),placeholder:`Item ${t+1}`,className:`col-span-4 h-7 px-2 bg-white dark:bg-[#1c1c1e] text-[11px] font-medium text-[#1d1d1f] dark:text-white rounded border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:431,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`number`,step:`any`,value:e.value===void 0?``:e.value,onChange:e=>g(t,`value`,e.target.value),placeholder:`0.0`,className:j(`h-7 px-2 bg-white dark:bg-[#1c1c1e] text-[11px] font-mono text-[#1d1d1f] dark:text-white rounded border border-[#e5e5ea] dark:border-[#38383a] outline-none`,d?`col-span-3`:f?`col-span-4`:`col-span-6`)},void 0,!1,{fileName:G,lineNumber:440,columnNumber:17},this),d&&(0,F.jsxDEV)(`input`,{type:`number`,step:`any`,value:e.secondary===void 0?``:e.secondary,onChange:e=>g(t,`secondary`,e.target.value),placeholder:`0.0`,className:`col-span-3 h-7 px-2 bg-white dark:bg-[#1c1c1e] text-[11px] font-mono text-[#0071e3] rounded border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:454,columnNumber:19},this),f&&(0,F.jsxDEV)(`div`,{className:`col-span-2 flex justify-center`,children:(0,F.jsxDEV)(`input`,{type:`color`,value:e.color||wd[t%wd.length],onChange:e=>g(t,`color`,e.target.value),title:`Pick slice color`,className:`w-6 h-6 rounded cursor-pointer border-0 bg-transparent p-0`},void 0,!1,{fileName:G,lineNumber:467,columnNumber:21},this)},void 0,!1,{fileName:G,lineNumber:466,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`col-span-2 flex items-center justify-end gap-0.5`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>_(t,t-1),disabled:t===0,className:`p-0.5 text-[#86868b] hover:text-[#1d1d1f] disabled:opacity-20 cursor-pointer`,title:`Move up`,children:(0,F.jsxDEV)($e,{className:`w-3 h-3`},void 0,!1,{fileName:G,lineNumber:486,columnNumber:21},this)},void 0,!1,{fileName:G,lineNumber:479,columnNumber:19},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>_(t,t+1),disabled:t===l.length-1,className:`p-0.5 text-[#86868b] hover:text-[#1d1d1f] disabled:opacity-20 cursor-pointer`,title:`Move down`,children:(0,F.jsxDEV)(fe,{className:`w-3 h-3`},void 0,!1,{fileName:G,lineNumber:495,columnNumber:21},this)},void 0,!1,{fileName:G,lineNumber:488,columnNumber:19},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>y(t),className:`p-0.5 text-[#86868b] hover:text-[#ff3b30] rounded cursor-pointer`,title:`Delete row`,children:(0,F.jsxDEV)(Oe,{className:`w-3 h-3`},void 0,!1,{fileName:G,lineNumber:503,columnNumber:21},this)},void 0,!1,{fileName:G,lineNumber:497,columnNumber:19},this)]},void 0,!0,{fileName:G,lineNumber:478,columnNumber:17},this)]},t,!0,{fileName:G,lineNumber:426,columnNumber:15},this))},void 0,!1,{fileName:G,lineNumber:424,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between pt-1`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>r(!n),className:`text-[10.5px] text-[#0071e3] dark:text-[#0a84ff] hover:underline flex items-center gap-1 cursor-pointer font-medium`,children:[(0,F.jsxDEV)(Fa,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:G,lineNumber:518,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Import CSV`},void 0,!1,{fileName:G,lineNumber:519,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:513,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{let e=l.map(e=>`${e.label},${e.value}${e.secondary===void 0?``:`,${e.secondary}`}`),t=[`Label,Value`+(d?`,Secondary`:``),...e].join(`
|
|
2155
|
+
`);navigator.clipboard.writeText(t),oo.getState().addToast(`Copied chart CSV to clipboard`,`success`)},className:`text-[10.5px] text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-white flex items-center gap-1 cursor-pointer`,title:`Copy current data table as CSV`,children:[(0,F.jsxDEV)(Dn,{className:`w-3 h-3`},void 0,!1,{fileName:G,lineNumber:527,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Copy CSV`},void 0,!1,{fileName:G,lineNumber:528,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:521,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:512,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:v,className:`px-2.5 py-1 bg-[#7d2ae8] hover:bg-[#6c22cd] text-white text-[11px] font-semibold rounded-lg shadow-2xs flex items-center gap-1 cursor-pointer`,children:[(0,F.jsxDEV)(na,{className:`w-3.5 h-3.5 stroke-[2.5]`},void 0,!1,{fileName:G,lineNumber:537,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Add Row`},void 0,!1,{fileName:G,lineNumber:538,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:532,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:511,columnNumber:11},this),n&&(0,F.jsxDEV)(`div`,{className:`p-3 bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-xl space-y-2 border border-[#7d2ae8]/40 animate-in fade-in duration-150`,children:[(0,F.jsxDEV)(`div`,{className:`text-[10.5px] font-medium text-[#6e6e73] dark:text-[#8e8e93]`,children:[`Paste CSV/Excel rows: `,(0,F.jsxDEV)(`code`,{children:`Label, Value`},void 0,!1,{fileName:G,lineNumber:546,columnNumber:39},this),` (e.g. `,(0,F.jsxDEV)(`code`,{children:`Jan, 14200.50`},void 0,!1,{fileName:G,lineNumber:546,columnNumber:71},this),`)`]},void 0,!0,{fileName:G,lineNumber:545,columnNumber:15},this),(0,F.jsxDEV)(`textarea`,{rows:4,value:i,onChange:e=>a(e.target.value),placeholder:`Jan, 45000.50
|
|
2156
|
+
Feb, 68200
|
|
2157
|
+
Mar, 92450
|
|
2158
|
+
Apr, 115000`,className:`w-full p-2 bg-white dark:bg-[#1c1c1e] text-[11px] font-mono text-[#1d1d1f] dark:text-white rounded-lg border border-[#e5e5ea] dark:border-[#38383a] focus:border-[#7d2ae8] outline-none resize-none`},void 0,!1,{fileName:G,lineNumber:548,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex justify-end gap-1.5`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>r(!1),className:`px-2.5 py-1 text-[11px] text-[#86868b] hover:text-[#1d1d1f] cursor-pointer`,children:`Cancel`},void 0,!1,{fileName:G,lineNumber:556,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{if(i.trim())try{if(i.trim().startsWith(`[`)||i.trim().startsWith(`{`)){let e=JSON.parse(i);if(Array.isArray(e)){let t=e.map((e,t)=>typeof e==`number`?{label:`Point ${t+1}`,value:e}:{label:String(e.label||e.name||e.x||`Item ${t+1}`),value:parseFloat(e.value||e.y||e.val||0)||0,secondary:e.secondary===void 0?void 0:parseFloat(e.secondary)||0,color:e.color||wd[t%wd.length]});u({data:t}),r(!1),a(``),oo.getState().addToast(`Imported ${t.length} data points`,`success`);return}}let e=i.split(`
|
|
2159
|
+
`).map(e=>e.trim()).filter(Boolean),t=[];for(let n=0;n<e.length;n++){let r=e[n];if(n===0&&r.toLowerCase().includes(`label`)&&r.toLowerCase().includes(`value`))continue;let i=r.split(/[,\t;]/).map(e=>e.trim());i.length>=2?t.push({label:i[0],value:parseFloat(i[1])||0,secondary:i[2]?parseFloat(i[2]):void 0,color:wd[t.length%wd.length]}):i.length===1&&!isNaN(parseFloat(i[0]))&&t.push({label:`Item ${n+1}`,value:parseFloat(i[0]),color:wd[t.length%wd.length]})}t.length>0?(u({data:t}),r(!1),a(``),oo.getState().addToast(`Imported ${t.length} data points`,`success`)):oo.getState().addToast(`Could not find valid label, value rows`,`error`)}catch{oo.getState().addToast(`Invalid data format. Use Label, Value lines`,`error`)}},className:`px-3 py-1 bg-[#7d2ae8] hover:bg-[#6c22cd] text-white text-[11px] font-semibold rounded-lg cursor-pointer`,children:`Apply Data`},void 0,!1,{fileName:G,lineNumber:563,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:555,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:544,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`p-2.5 bg-white dark:bg-[#1c1c1e] rounded-xl border border-[#e5e5ea] dark:border-[#38383a] grid grid-cols-4 gap-2 text-center`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[9.5px] text-[#86868b] font-medium block`,children:`Total (Σ)`},void 0,!1,{fileName:G,lineNumber:577,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono font-bold text-[#1d1d1f] dark:text-white truncate block`,children:h.sum.toLocaleString(`en-US`,{maximumFractionDigits:2})},void 0,!1,{fileName:G,lineNumber:578,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:576,columnNumber:13},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[9.5px] text-[#86868b] font-medium block`,children:`Mean (μ)`},void 0,!1,{fileName:G,lineNumber:583,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono font-bold text-[#1d1d1f] dark:text-white truncate block`,children:h.mean.toLocaleString(`en-US`,{maximumFractionDigits:1})},void 0,!1,{fileName:G,lineNumber:584,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:582,columnNumber:13},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[9.5px] text-[#86868b] font-medium block`,children:`Min`},void 0,!1,{fileName:G,lineNumber:589,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono font-bold text-[#1d1d1f] dark:text-white truncate block`,children:h.min.toLocaleString(`en-US`,{maximumFractionDigits:2})},void 0,!1,{fileName:G,lineNumber:590,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:588,columnNumber:13},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[9.5px] text-[#86868b] font-medium block`,children:`Max`},void 0,!1,{fileName:G,lineNumber:595,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono font-bold text-[#1d1d1f] dark:text-white truncate block`,children:h.max.toLocaleString(`en-US`,{maximumFractionDigits:2})},void 0,!1,{fileName:G,lineNumber:596,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:594,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:575,columnNumber:11},this)]},void 0,!0,{fileName:G,lineNumber:305,columnNumber:9},this),o===`format`&&(0,F.jsxDEV)(`div`,{className:`space-y-3`,children:[(0,F.jsxDEV)(`div`,{className:`p-3 bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-xl space-y-2.5 border border-[#e5e5ea] dark:border-[#38383a]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-2.5 h-2.5 rounded-full`,style:{backgroundColor:c.color||`#7d2ae8`}},void 0,!1,{fileName:G,lineNumber:611,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-bold text-[#1d1d1f] dark:text-white`,children:`Left Side (Vertical / Y-Axis)`},void 0,!1,{fileName:G,lineNumber:612,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:610,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:(0,F.jsxDEV)(`input`,{type:`color`,value:c.color||`#7d2ae8`,onChange:e=>u({color:e.target.value}),title:`Left Axis / Value Metric Color`,className:`w-5 h-5 rounded-full border border-transparent cursor-pointer p-0 overflow-hidden`},void 0,!1,{fileName:G,lineNumber:617,columnNumber:17},this)},void 0,!1,{fileName:G,lineNumber:616,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:609,columnNumber:13},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-bold text-[#86868b] uppercase tracking-wider block mb-1`,children:`Value Format`},void 0,!1,{fileName:G,lineNumber:629,columnNumber:15},this),(0,F.jsxDEV)(`select`,{value:c.format||`number`,onChange:e=>u({format:e.target.value}),className:`w-full h-8 px-2.5 bg-white dark:bg-[#1c1c1e] text-[12px] font-medium text-[#1d1d1f] dark:text-white rounded-lg border border-[#e5e5ea] dark:border-[#38383a] focus:border-[#7d2ae8] outline-none cursor-pointer`,children:Td.map(e=>(0,F.jsxDEV)(`option`,{value:e.id,children:e.label},e.id,!1,{fileName:G,lineNumber:638,columnNumber:19},this))},void 0,!1,{fileName:G,lineNumber:632,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:628,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-medium text-[#86868b] block mb-1`,children:`Min Value Range`},void 0,!1,{fileName:G,lineNumber:648,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`number`,step:`any`,value:c.minRange===void 0?``:c.minRange,onChange:e=>u({minRange:e.target.value===``?void 0:parseFloat(e.target.value)}),placeholder:`Auto (0.0)`,className:`w-full h-7.5 px-2 bg-white dark:bg-[#1c1c1e] text-[11.5px] font-mono text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:651,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:647,columnNumber:15},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-medium text-[#86868b] block mb-1`,children:`Max Value Range`},void 0,!1,{fileName:G,lineNumber:661,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`number`,step:`any`,value:c.maxRange===void 0?``:c.maxRange,onChange:e=>u({maxRange:e.target.value===``?void 0:parseFloat(e.target.value)}),placeholder:`Auto (Max)`,className:`w-full h-7.5 px-2 bg-white dark:bg-[#1c1c1e] text-[11.5px] font-mono text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:664,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:660,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:646,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-medium text-[#86868b] block mb-1`,children:`Prefix (e.g. $, €)`},void 0,!1,{fileName:G,lineNumber:678,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.prefix??``,onChange:e=>u({prefix:e.target.value}),placeholder:`$, €, £, #`,className:`w-full h-7.5 px-2 bg-white dark:bg-[#1c1c1e] text-[11.5px] font-mono text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:681,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:677,columnNumber:15},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-medium text-[#86868b] block mb-1`,children:`Suffix / Unit`},void 0,!1,{fileName:G,lineNumber:690,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.suffix??``,onChange:e=>u({suffix:e.target.value}),placeholder:`%, ms, users, GB`,className:`w-full h-7.5 px-2 bg-white dark:bg-[#1c1c1e] text-[11.5px] font-mono text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:693,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:689,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:676,columnNumber:13},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-medium text-[#86868b] block mb-1`,children:`Axis Title / Metric Label`},void 0,!1,{fileName:G,lineNumber:705,columnNumber:15},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.yAxisTitle??c.primaryName??``,onChange:e=>u({yAxisTitle:e.target.value,primaryName:e.target.value}),placeholder:`e.g. Monthly Revenue ($)`,className:`w-full h-7.5 px-2 bg-white dark:bg-[#1c1c1e] text-[11.5px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:708,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:704,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:608,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`p-3 bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-xl space-y-2.5 border border-[#e5e5ea] dark:border-[#38383a]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-2.5 h-2.5 rounded-full bg-[#0071e3]`},void 0,!1,{fileName:G,lineNumber:722,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-bold text-[#1d1d1f] dark:text-white`,children:`Bottom Side (Horizontal / X-Axis)`},void 0,!1,{fileName:G,lineNumber:723,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:721,columnNumber:15},this)},void 0,!1,{fileName:G,lineNumber:720,columnNumber:13},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-bold text-[#86868b] uppercase tracking-wider block mb-1`,children:`Category / Label Format`},void 0,!1,{fileName:G,lineNumber:731,columnNumber:15},this),(0,F.jsxDEV)(`select`,{value:c.xFormat||`default`,onChange:e=>u({xFormat:e.target.value}),className:`w-full h-8 px-2.5 bg-white dark:bg-[#1c1c1e] text-[12px] font-medium text-[#1d1d1f] dark:text-white rounded-lg border border-[#e5e5ea] dark:border-[#38383a] focus:border-[#0071e3] outline-none cursor-pointer`,children:Ed.map(e=>(0,F.jsxDEV)(`option`,{value:e.id,children:e.label},e.id,!1,{fileName:G,lineNumber:740,columnNumber:19},this))},void 0,!1,{fileName:G,lineNumber:734,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:730,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-medium text-[#86868b] block mb-1`,children:`Start / Min Step`},void 0,!1,{fileName:G,lineNumber:750,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.xMinRange===void 0?``:c.xMinRange,onChange:e=>u({xMinRange:e.target.value===``?void 0:e.target.value}),placeholder:`Auto (1 or Jan)`,className:`w-full h-7.5 px-2 bg-white dark:bg-[#1c1c1e] text-[11.5px] font-mono text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:753,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:749,columnNumber:15},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-medium text-[#86868b] block mb-1`,children:`End / Max Step`},void 0,!1,{fileName:G,lineNumber:762,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.xMaxRange===void 0?``:c.xMaxRange,onChange:e=>u({xMaxRange:e.target.value===``?void 0:e.target.value}),placeholder:`Auto (End or Dec)`,className:`w-full h-7.5 px-2 bg-white dark:bg-[#1c1c1e] text-[11.5px] font-mono text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:765,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:761,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:748,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-medium text-[#86868b] block mb-1`,children:`Prefix (e.g. Q, Wk)`},void 0,!1,{fileName:G,lineNumber:778,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.xPrefix??``,onChange:e=>u({xPrefix:e.target.value}),placeholder:`Q, Wk, Day `,className:`w-full h-7.5 px-2 bg-white dark:bg-[#1c1c1e] text-[11.5px] font-mono text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:781,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:777,columnNumber:15},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-medium text-[#86868b] block mb-1`,children:`Suffix (e.g. '26, h, d)`},void 0,!1,{fileName:G,lineNumber:790,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.xSuffix??``,onChange:e=>u({xSuffix:e.target.value}),placeholder:` '26, th, hrs`,className:`w-full h-7.5 px-2 bg-white dark:bg-[#1c1c1e] text-[11.5px] font-mono text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:793,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:789,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:776,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-medium text-[#86868b] block mb-1`,children:`Bottom Axis Title`},void 0,!1,{fileName:G,lineNumber:806,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`text`,value:c.xAxisTitle??``,onChange:e=>u({xAxisTitle:e.target.value}),placeholder:`e.g. Months / Q1-Q4`,className:`w-full h-7.5 px-2 bg-white dark:bg-[#1c1c1e] text-[11.5px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none`},void 0,!1,{fileName:G,lineNumber:809,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:805,columnNumber:15},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`label`,{className:`text-[10px] font-medium text-[#86868b] block mb-1`,children:`Label Orientation`},void 0,!1,{fileName:G,lineNumber:818,columnNumber:17},this),(0,F.jsxDEV)(`select`,{value:c.xLabelAngle||`horizontal`,onChange:e=>u({xLabelAngle:e.target.value}),className:`w-full h-7.5 px-2 bg-white dark:bg-[#1c1c1e] text-[11.5px] text-[#1d1d1f] dark:text-white rounded-lg border border-[#e5e5ea] dark:border-[#38383a] outline-none cursor-pointer`,children:[(0,F.jsxDEV)(`option`,{value:`horizontal`,children:`Horizontal (0°)`},void 0,!1,{fileName:G,lineNumber:826,columnNumber:19},this),(0,F.jsxDEV)(`option`,{value:`slanted`,children:`Slanted (-35°)`},void 0,!1,{fileName:G,lineNumber:827,columnNumber:19},this)]},void 0,!0,{fileName:G,lineNumber:821,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:817,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:804,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:719,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`p-3 bg-white dark:bg-[#1c1c1e] rounded-xl border border-[#e5e5ea] dark:border-[#38383a] space-y-2`,children:[(0,F.jsxDEV)(`span`,{className:`text-[10px] font-bold text-[#86868b] uppercase tracking-wider block`,children:`Display Elements`},void 0,!1,{fileName:G,lineNumber:835,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-3 gap-2`,children:[(0,F.jsxDEV)(`label`,{className:`flex items-center gap-1.5 text-[11px] text-[#1d1d1f] dark:text-[#f5f5f7] cursor-pointer`,children:[(0,F.jsxDEV)(`input`,{type:`checkbox`,checked:c.showGrid!==!1,onChange:e=>u({showGrid:e.target.checked}),className:`w-3.5 h-3.5 rounded text-[#7d2ae8] accent-[#7d2ae8]`},void 0,!1,{fileName:G,lineNumber:840,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Gridlines`},void 0,!1,{fileName:G,lineNumber:846,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:839,columnNumber:15},this),(0,F.jsxDEV)(`label`,{className:`flex items-center gap-1.5 text-[11px] text-[#1d1d1f] dark:text-[#f5f5f7] cursor-pointer`,children:[(0,F.jsxDEV)(`input`,{type:`checkbox`,checked:c.showAxes!==!1,onChange:e=>u({showAxes:e.target.checked}),className:`w-3.5 h-3.5 rounded text-[#7d2ae8] accent-[#7d2ae8]`},void 0,!1,{fileName:G,lineNumber:850,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Axis Labels`},void 0,!1,{fileName:G,lineNumber:856,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:849,columnNumber:15},this),(0,F.jsxDEV)(`label`,{className:`flex items-center gap-1.5 text-[11px] text-[#1d1d1f] dark:text-[#f5f5f7] cursor-pointer`,children:[(0,F.jsxDEV)(`input`,{type:`checkbox`,checked:c.showLegend!==!1,onChange:e=>u({showLegend:e.target.checked}),className:`w-3.5 h-3.5 rounded text-[#7d2ae8] accent-[#7d2ae8]`},void 0,!1,{fileName:G,lineNumber:860,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Legend`},void 0,!1,{fileName:G,lineNumber:866,columnNumber:17},this)]},void 0,!0,{fileName:G,lineNumber:859,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:838,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:834,columnNumber:11},this)]},void 0,!0,{fileName:G,lineNumber:606,columnNumber:9},this)]},void 0,!0,{fileName:G,lineNumber:251,columnNumber:5},this)}),K=`C:/Users/Shadow/Desktop/cyrus/src/editor/properties/PropertiesInspector.tsx`;function Od(e){if(!e||!e.includes(`linear-gradient`))return null;let t=e.match(/linear-gradient\(\s*(\d+)deg\s*,\s*(.+)\)/);if(t)return{angle:parseInt(t[1],10)||135,colors:t[2].split(`,`).map(e=>e.trim()).filter(Boolean)};let n=e.match(/linear-gradient\((.+)\)/);if(n){let e=n[1].split(`,`).map(e=>e.trim());return{angle:135,colors:e.slice(1).length>=2?e.slice(1):[`#3b82f6`,`#9333ea`]}}return null}function kd(e,t){return`linear-gradient(${e}deg, ${(t.length>=2?t:[...t,`#9333ea`]).join(`, `)})`}function Ad(e,t){if(!e||e===`transparent`||e.startsWith(`rgba`))return t;if(e.startsWith(`#`)){if(e.length===7)return e;if(e.length===4)return`#${e[1]}${e[1]}${e[2]}${e[2]}${e[3]}${e[3]}`}return t}var jd=N.memo(function(){let e=I(e=>e.selectedElementIds),t=I(e=>e.selectElement),n=I(e=>e.updateElement),r=I(e=>e.updateElementStyles),i=I(e=>e.deleteSelectedElements),a=I(e=>e.duplicateSelectedElements),o=I(e=>e.updatePageSettings),s=I(e=>e.unpackCompositeElement),c=I(e=>e.ungroupSelectedElements),l=I(e=>e.activeProject?.pages.find(t=>t.id===e.activePageId)||e.activeProject?.pages[0]),u=I(e=>e.activeProject);P(e=>e.isPropertiesOpen);let d=P(e=>e.isDevMode);P(e=>e.toggleDevMode);let[f,p]=(0,N.useState)({appearance:!0,layout:!0,typography:!0,animation:!0,destination:!0,interaction:!1,advanced:!1}),m=e=>{p(t=>({...t,[e]:!t[e]}))};if(!u||!l)return null;let h=l.elements.filter(t=>e.includes(t.id))[0];if(d)return(0,F.jsxDEV)(`aside`,{className:`w-[290px] h-full bg-white dark:bg-[#1c1c1e] border-l border-[#e5e5ea] dark:border-[#38383a] flex flex-col z-20 select-none shrink-0 overflow-y-auto animate-slide-left`,children:(0,F.jsxDEV)(Cd,{element:h||null},void 0,!1,{fileName:K,lineNumber:115,columnNumber:9},this)},void 0,!1,{fileName:K,lineNumber:114,columnNumber:7},this);if(!h){let e=l?.settings?.minHeight||900,t=l?.settings?.backgroundColor||`#ffffff`,n=l?.settings?.backgroundGradient;return(0,F.jsxDEV)(`aside`,{className:`w-[280px] h-full bg-white dark:bg-[#1c1c1e] border-l border-[#e5e5ea] dark:border-[#38383a] flex flex-col text-[#1d1d1f] dark:text-[#f5f5f7] select-none z-20 shrink-0 overflow-y-auto no-scrollbar`,children:[(0,F.jsxDEV)(`div`,{className:`h-[46px] px-3.5 border-b border-[#e5e5ea] dark:border-[#38383a] flex items-center justify-between font-semibold text-[12.5px] shrink-0`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:(0,F.jsxDEV)(`span`,{children:`Page & Canvas`},void 0,!1,{fileName:K,lineNumber:131,columnNumber:13},this)},void 0,!1,{fileName:K,lineNumber:130,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:(0,F.jsxDEV)(`span`,{className:`text-[10.5px] font-mono text-[#7d2ae8] dark:text-[#9d52ff] bg-[#7d2ae8]/10 px-2 py-0.5 rounded-full truncate max-w-[100px]`,children:l?.name||`Page`},void 0,!1,{fileName:K,lineNumber:134,columnNumber:13},this)},void 0,!1,{fileName:K,lineNumber:133,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:129,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`p-3.5 space-y-4 text-[12px]`,children:[(0,F.jsxDEV)(`div`,{className:`space-y-2`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between font-medium`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Page Height (Canvas Scroll)`},void 0,!1,{fileName:K,lineNumber:144,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono text-[#6e6e73] dark:text-[#8e8e93]`,children:[e,`px`]},void 0,!0,{fileName:K,lineNumber:145,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:143,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[(0,F.jsxDEV)(`input`,{type:`number`,min:500,max:1e4,step:50,value:e,onChange:e=>l&&o(l.id,{minHeight:Number(e.target.value)}),className:`w-full h-8 px-2.5 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-lg border border-transparent focus:border-[#7d2ae8] outline-none font-mono`},void 0,!1,{fileName:K,lineNumber:151,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`absolute right-3 text-[11px] text-[#86868b] pointer-events-none`,children:`px`},void 0,!1,{fileName:K,lineNumber:160,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:150,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-3 gap-1.5 pt-1`,children:[{label:`Standard`,h:900},{label:`Long`,h:1600},{label:`Landing`,h:2400}].map(t=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>l&&o(l.id,{minHeight:t.h}),className:j(`py-1 rounded-md text-[11px] font-medium border transition-all cursor-pointer`,e===t.h?`bg-[#7d2ae8]/10 border-[#7d2ae8] text-[#7d2ae8] dark:text-[#9d52ff] font-bold`:`bg-[#f4f4f6] dark:bg-[#2c2c2e] border-transparent text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-white`),children:t.label},t.h,!1,{fileName:K,lineNumber:170,columnNumber:17},this))},void 0,!1,{fileName:K,lineNumber:164,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[10.5px] text-[#86868b] dark:text-[#636366] pt-1 leading-relaxed`,children:[`💡 Drag elements down or drag the `,(0,F.jsxDEV)(`strong`,{children:`Page Height (↕)`},void 0,!1,{fileName:K,lineNumber:187,columnNumber:49},this),` handle at the bottom of the canvas to extend page height.`]},void 0,!0,{fileName:K,lineNumber:186,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:142,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`space-y-3 pt-3 border-t border-[#e5e5ea] dark:border-[#38383a]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between font-medium`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Artboard Fill Color`},void 0,!1,{fileName:K,lineNumber:194,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(`input`,{type:`color`,value:Ad(t,`#ffffff`),onChange:e=>l&&o(l.id,{backgroundColor:e.target.value,backgroundGradient:void 0}),className:`w-5 h-5 rounded-full border border-[#e5e5ea] dark:border-[#38383a] cursor-pointer p-0 overflow-hidden`},void 0,!1,{fileName:K,lineNumber:196,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono text-[#6e6e73] dark:text-[#8e8e93]`,children:t},void 0,!1,{fileName:K,lineNumber:202,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:195,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:193,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`p-2.5 bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-xl space-y-2 border border-[#e5e5ea]/60 dark:border-white/5`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(Jr,{className:`w-3.5 h-3.5 text-[#0071e3] dark:text-[#0a84ff]`},void 0,!1,{fileName:K,lineNumber:212,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Multi-Color (Gradient)`},void 0,!1,{fileName:K,lineNumber:213,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:211,columnNumber:17},this),n&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>l&&o(l.id,{backgroundGradient:void 0}),className:`text-[10px] text-[#ff3b30] hover:underline cursor-pointer`,children:`Clear`},void 0,!1,{fileName:K,lineNumber:216,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:210,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(Od(n)?.colors||[`#ffffff`,`#f5f5f7`]).map((e,t,r)=>(0,F.jsxDEV)(`div`,{className:`relative flex items-center gap-1 bg-white dark:bg-[#1c1c1e] px-1.5 py-1 rounded-lg border border-[#e5e5ea] dark:border-[#38383a] shadow-2xs`,children:[(0,F.jsxDEV)(`input`,{type:`color`,value:Ad(e,`#ffffff`),onChange:e=>{if(!l)return;let r=Od(n)||{angle:135,colors:[`#ffffff`,`#f5f5f7`]},i=[...r.colors];i[t]=e.target.value,o(l.id,{backgroundGradient:kd(r.angle,i)})},className:`w-4 h-4 rounded-full border border-transparent cursor-pointer p-0 overflow-hidden shrink-0`},void 0,!1,{fileName:K,lineNumber:230,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] font-mono text-[#6e6e73] dark:text-[#8e8e93] w-12 truncate`,children:e},void 0,!1,{fileName:K,lineNumber:242,columnNumber:21},this),r.length>2&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{if(!l)return;let e=Od(n)||{angle:135,colors:[`#ffffff`,`#f5f5f7`]},r=e.colors.filter((e,n)=>n!==t);o(l.id,{backgroundGradient:kd(e.angle,r)})},className:`text-[#86868b] hover:text-[#ff3b30] text-[10px] ml-0.5`,title:`Remove color stop`,children:(0,F.jsxDEV)(Ln,{className:`w-3 h-3`},void 0,!1,{fileName:K,lineNumber:255,columnNumber:25},this)},void 0,!1,{fileName:K,lineNumber:244,columnNumber:23},this)]},t,!0,{fileName:K,lineNumber:229,columnNumber:19},this)),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{if(!l)return;let e=Od(n)||{angle:135,colors:[t,`#7d2ae8`]},r=[...e.colors,`#0071e3`];o(l.id,{backgroundGradient:kd(e.angle,r)})},className:`flex items-center gap-1 px-2 py-1 bg-white dark:bg-[#1c1c1e] hover:bg-[#ebebee] dark:hover:bg-[#38383a] text-[10.5px] font-medium text-[#0071e3] dark:text-[#0a84ff] rounded-lg border border-dashed border-[#0071e3]/40 transition-colors cursor-pointer`,title:`Add color to linear gradient`,children:[(0,F.jsxDEV)(na,{className:`w-3 h-3`},void 0,!1,{fileName:K,lineNumber:273,columnNumber:19},this),(0,F.jsxDEV)(`span`,{children:`Add Color`},void 0,!1,{fileName:K,lineNumber:274,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:262,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:227,columnNumber:15},this),n&&(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between pt-1 text-[11px] text-[#6e6e73] dark:text-[#8e8e93]`,children:[(0,F.jsxDEV)(`span`,{children:`Angle`},void 0,!1,{fileName:K,lineNumber:281,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`input`,{type:`range`,min:`0`,max:`360`,step:`15`,value:Od(n)?.angle??135,onChange:e=>{if(!l)return;let t=Number(e.target.value),r=Od(n)||{angle:135,colors:[`#ffffff`,`#f5f5f7`]};o(l.id,{backgroundGradient:kd(t,r.colors)})},className:`w-16 accent-[#0071e3] h-1 bg-[#e5e5ea] rounded-lg cursor-pointer`},void 0,!1,{fileName:K,lineNumber:283,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`font-mono text-[10.5px] w-8 text-right`,children:[Od(n)?.angle??135,`°`]},void 0,!0,{fileName:K,lineNumber:297,columnNumber:21},this)]},void 0,!0,{fileName:K,lineNumber:282,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:280,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:209,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:192,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:140,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:127,columnNumber:7},this)}let g=(e,t)=>{if(!h)return;let i={[e]:t};e===`backgroundColor`&&(i.backgroundGradient=``),(e===`textColor`||e===`color`)&&(i.textColor=t,i.color=t),r(h.id,i,!0),e===`textColor`||e===`color`?(h.type===`icon`||h.content?.iconColor!==void 0)&&n(h.id,{content:{...h.content,iconColor:t}}):e===`strokeWidth`?n(h.id,{content:{...h.content,strokeWidth:t}}):e===`rotation`?n(h.id,{content:{...h.content,rotation:t}}):e===`backgroundColor`&&h.content?.iconBgColor!==void 0&&n(h.id,{content:{...h.content,iconBgColor:t}})},_=(e,t)=>{if(!h)return;let r={...h.content,[e]:t};n(h.id,{content:r})},v=h.type===`image`,y=h.type===`button`,b=h.type===`heading`||h.type===`paragraph`||h.type===`badge`||h.type===`text`;h.type;let x=h.content||{},S=h.parentId?l.elements.find(e=>e.id===h.parentId):null,C=h.children?h.children.map(e=>l.elements.find(t=>t.id===e)).filter(Boolean):[],w=h.type===`container`&&C.length>0||[`featureCard`,`pricingCard`,`hero`,`heroSection`,`navbar`,`metricCard`,`statCard`,`kpiCard`,`testimonialCard`,`productCard`,`footer`,`cta`,`ctaSection`,`loginForm`,`card`].includes(h.type),T=[`chart`,`lineChart`,`barChart`,`horizontalBarChart`,`multiLineChart`,`stackedBarChart`,`areaChart`,`donutChart`,`pieChart`,`gaugeChart`,`radialChart`,`funnelChart`,`scatterChart`,`sparkline`,`statCard`,`progress`,`progressBar`].includes(h.type)||x.data!==void 0;return(0,F.jsxDEV)(`aside`,{className:`w-[280px] h-full bg-white dark:bg-[#1c1c1e] border-l border-[#e5e5ea] dark:border-[#38383a] flex flex-col z-20 select-none shrink-0 overflow-y-auto animate-slide-left`,children:[S&&(0,F.jsxDEV)(`div`,{className:`px-3 py-1.5 bg-[#f4f4f6] dark:bg-[#2c2c2e] border-b border-[#e5e5ea] dark:border-[#38383a] flex items-center gap-1.5 text-[11px]`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#86868b]`,children:`Inside:`},void 0,!1,{fileName:K,lineNumber:410,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>t(S.id),className:`font-semibold text-[#0071e3] dark:text-[#0a84ff] hover:underline flex items-center gap-1 cursor-pointer truncate max-w-[120px]`,title:`Go to parent: ${S.name}`,children:[(0,F.jsxDEV)(Un,{className:`w-3 h-3`},void 0,!1,{fileName:K,lineNumber:417,columnNumber:13},this),S.name||`Parent Box`]},void 0,!0,{fileName:K,lineNumber:411,columnNumber:11},this),(0,F.jsxDEV)(at,{className:`w-3 h-3 text-[#86868b] shrink-0`},void 0,!1,{fileName:K,lineNumber:420,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f] dark:text-[#f5f5f7] truncate`,children:h.name},void 0,!1,{fileName:K,lineNumber:421,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:409,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`p-3 border-b border-[#f4f4f6] dark:border-[#38383a] flex items-center justify-between bg-[#fbfbfd] dark:bg-[#1c1c1e]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,F.jsxDEV)(`div`,{className:`w-6 h-6 rounded-md bg-[#e8f2fc] dark:bg-[#0a84ff]/15 text-[#0071e3] dark:text-[#0a84ff] flex items-center justify-center shrink-0`,children:y?(0,F.jsxDEV)(an,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:K,lineNumber:429,columnNumber:25},this):b?(0,F.jsxDEV)(ut,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:K,lineNumber:430,columnNumber:23},this):v?(0,F.jsxDEV)(he,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:K,lineNumber:431,columnNumber:24},this):(0,F.jsxDEV)(Un,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:K,lineNumber:431,columnNumber:64},this)},void 0,!1,{fileName:K,lineNumber:428,columnNumber:11},this),(0,F.jsxDEV)(`input`,{type:`text`,value:h.name,onChange:e=>n(h.id,{name:e.target.value}),className:`text-[13px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7] bg-transparent hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] focus:bg-white dark:focus:bg-[#2c2c2e] focus:border focus:border-[#0071e3] rounded px-1 py-0.5 outline-none truncate`},void 0,!1,{fileName:K,lineNumber:433,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:427,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1`,children:[(0,F.jsxDEV)(`button`,{onClick:()=>a(),className:`p-1 text-[#86868b] dark:text-[#636366] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] rounded transition-colors`,title:`Duplicate (⌘D)`,children:(0,F.jsxDEV)(Dn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:K,lineNumber:447,columnNumber:13},this)},void 0,!1,{fileName:K,lineNumber:442,columnNumber:11},this),(0,F.jsxDEV)(`button`,{onClick:()=>i(),className:`p-1 text-[#86868b] dark:text-[#636366] hover:text-[#ff3b30] hover:bg-[#ff3b30]/10 rounded transition-colors`,title:`Delete (⌫)`,children:(0,F.jsxDEV)(Oe,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:K,lineNumber:454,columnNumber:13},this)},void 0,!1,{fileName:K,lineNumber:449,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:441,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:426,columnNumber:7},this),w&&(0,F.jsxDEV)(`div`,{className:`p-2.5 bg-gradient-to-r from-[#0071e3]/10 to-[#7d2ae8]/10 border-b border-[#0071e3]/20 flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`min-w-0 pr-2`,children:[(0,F.jsxDEV)(`div`,{className:`text-[11px] font-bold text-[#0071e3] dark:text-[#0a84ff] flex items-center gap-1`,children:[(0,F.jsxDEV)(vi,{className:`w-3.5 h-3.5 shrink-0`},void 0,!1,{fileName:K,lineNumber:464,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Unpack Box Elements`},void 0,!1,{fileName:K,lineNumber:465,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:463,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[10px] text-[#6e6e73] dark:text-[#8e8e93] leading-tight mt-0.5`,children:`Break into individual editable canvas elements`},void 0,!1,{fileName:K,lineNumber:467,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:462,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>s(h.id),className:`px-2.5 py-1 bg-[#0071e3] hover:bg-[#0077ed] text-white text-[11px] font-semibold rounded-lg shadow-sm transition-all active:scale-95 shrink-0 cursor-pointer flex items-center gap-1`,title:`Convert this box into separate standalone elements on the canvas`,children:`⚡ Unpack`},void 0,!1,{fileName:K,lineNumber:471,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:461,columnNumber:9},this),C.length>0&&(0,F.jsxDEV)(`div`,{className:`p-3 border-b border-[#f4f4f6] dark:border-[#38383a] space-y-1.5`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[10.5px] font-semibold text-[#86868b] uppercase tracking-wider block`,children:[`Box Children (`,C.length,`)`]},void 0,!0,{fileName:K,lineNumber:486,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>c(),className:`text-[10px] text-[#0071e3] dark:text-[#0a84ff] font-medium hover:underline cursor-pointer`,children:`Ungroup`},void 0,!1,{fileName:K,lineNumber:489,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:485,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`space-y-1 max-h-36 overflow-y-auto`,children:C.map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>t(e.id),className:`w-full px-2 py-1 rounded-md bg-[#f4f4f6] dark:bg-[#2c2c2e] hover:bg-[#e8f2fc] dark:hover:bg-[#0a84ff]/20 text-[#1d1d1f] dark:text-[#f5f5f7] text-[11px] font-medium flex items-center justify-between transition-colors cursor-pointer group`,children:[(0,F.jsxDEV)(`span`,{className:`truncate`,children:e.name||e.type},void 0,!1,{fileName:K,lineNumber:505,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#0071e3] dark:text-[#0a84ff] opacity-0 group-hover:opacity-100 font-bold`,children:`Edit ➔`},void 0,!1,{fileName:K,lineNumber:506,columnNumber:17},this)]},e.id,!0,{fileName:K,lineNumber:499,columnNumber:15},this))},void 0,!1,{fileName:K,lineNumber:497,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:484,columnNumber:9},this),T&&(0,F.jsxDEV)(`div`,{className:`border-b border-[#f4f4f6] dark:border-[#38383a]`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>m(`chartData`),className:`w-full px-3.5 py-2.5 flex items-center justify-between text-[12px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7] hover:bg-[#fbfbfd] dark:hover:bg-[#2c2c2e] transition-colors cursor-pointer`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(At,{className:`w-3.5 h-3.5 text-[#7d2ae8] dark:text-[#9d52ff]`},void 0,!1,{fileName:K,lineNumber:522,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Chart Data & Config`},void 0,!1,{fileName:K,lineNumber:523,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:521,columnNumber:13},this),f.chartData===!1?(0,F.jsxDEV)(at,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:525,columnNumber:106},this):(0,F.jsxDEV)(fe,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:525,columnNumber:49},this)]},void 0,!0,{fileName:K,lineNumber:516,columnNumber:11},this),f.chartData!==!1&&(0,F.jsxDEV)(`div`,{className:`px-3.5 pb-3`,children:(0,F.jsxDEV)(Dd,{element:h},void 0,!1,{fileName:K,lineNumber:530,columnNumber:15},this)},void 0,!1,{fileName:K,lineNumber:529,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:515,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`border-b border-[#f4f4f6] dark:border-[#38383a]`,children:[(0,F.jsxDEV)(`button`,{onClick:()=>m(`appearance`),className:`w-full px-3.5 py-2.5 flex items-center justify-between text-[12px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7] hover:bg-[#fbfbfd] dark:hover:bg-[#2c2c2e] transition-colors`,children:[(0,F.jsxDEV)(`span`,{children:`Appearance`},void 0,!1,{fileName:K,lineNumber:544,columnNumber:11},this),f.appearance?(0,F.jsxDEV)(fe,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:545,columnNumber:38},this):(0,F.jsxDEV)(at,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:545,columnNumber:95},this)]},void 0,!0,{fileName:K,lineNumber:540,columnNumber:9},this),f.appearance&&(0,F.jsxDEV)(`div`,{className:`px-3.5 pb-3 space-y-2.5 text-[12px]`,children:[v&&(0,F.jsxDEV)(`div`,{className:`space-y-2 pb-1 border-b border-[#f4f4f6]`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#6e6e73] block mb-1`,children:`Image URL / Source`},void 0,!1,{fileName:K,lineNumber:554,columnNumber:19},this),(0,F.jsxDEV)(`input`,{type:`text`,value:String(h.content.url||h.content.src||``),onChange:e=>{_(`url`,e.target.value),_(`src`,e.target.value)},placeholder:`https://...`,className:`w-full px-2 py-1 bg-[#f4f4f6] text-[11.5px] text-[#1d1d1f] rounded-md border border-transparent focus:border-[#0071e3] focus:bg-white outline-none`},void 0,!1,{fileName:K,lineNumber:555,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:553,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73]`,children:`Object Fit`},void 0,!1,{fileName:K,lineNumber:567,columnNumber:19},this),(0,F.jsxDEV)(`select`,{value:h.styles.objectFit||`cover`,onChange:e=>g(`objectFit`,e.target.value),className:`w-28 px-2 py-1 bg-[#f4f4f6] text-[11.5px] text-[#1d1d1f] rounded-md border border-transparent focus:border-[#0071e3] focus:bg-white outline-none`,children:[(0,F.jsxDEV)(`option`,{value:`cover`,children:`Cover`},void 0,!1,{fileName:K,lineNumber:573,columnNumber:21},this),(0,F.jsxDEV)(`option`,{value:`contain`,children:`Contain`},void 0,!1,{fileName:K,lineNumber:574,columnNumber:21},this),(0,F.jsxDEV)(`option`,{value:`fill`,children:`Fill`},void 0,!1,{fileName:K,lineNumber:575,columnNumber:21},this)]},void 0,!0,{fileName:K,lineNumber:568,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:566,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:552,columnNumber:15},this),!v&&(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`Fill Color`},void 0,!1,{fileName:K,lineNumber:584,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(`input`,{type:`color`,value:Ad(h.styles.backgroundColor,`#ffffff`),onChange:e=>{g(`backgroundColor`,e.target.value),g(`backgroundGradient`,``)},className:`w-5 h-5 rounded-full border border-[#e5e5ea] dark:border-[#38383a] cursor-pointer p-0 overflow-hidden`},void 0,!1,{fileName:K,lineNumber:586,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`text-[11.5px] font-mono text-[#1d1d1f] dark:text-[#f5f5f7]`,children:h.styles.backgroundColor||`#ffffff`},void 0,!1,{fileName:K,lineNumber:595,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:585,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:583,columnNumber:15},this),!v&&(0,F.jsxDEV)(`div`,{className:`p-2.5 bg-[#f4f4f6] dark:bg-[#2c2c2e] rounded-xl space-y-2 border border-[#e5e5ea]/60 dark:border-white/5`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(Jr,{className:`w-3.5 h-3.5 text-[#0071e3] dark:text-[#0a84ff]`},void 0,!1,{fileName:K,lineNumber:607,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Multi-Color (Gradient)`},void 0,!1,{fileName:K,lineNumber:608,columnNumber:21},this)]},void 0,!0,{fileName:K,lineNumber:606,columnNumber:19},this),h.styles.backgroundGradient&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>g(`backgroundGradient`,``),className:`text-[10px] text-[#ff3b30] hover:underline cursor-pointer`,children:`Clear`},void 0,!1,{fileName:K,lineNumber:611,columnNumber:21},this)]},void 0,!0,{fileName:K,lineNumber:605,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:[(Od(h.styles.backgroundGradient)?.colors||[`#0071e3`,`#9333ea`]).map((e,t,n)=>(0,F.jsxDEV)(`div`,{className:`relative flex items-center gap-1 bg-white dark:bg-[#1c1c1e] px-1.5 py-0.5 rounded-lg border border-[#e5e5ea] dark:border-[#38383a] shadow-2xs`,children:[(0,F.jsxDEV)(`input`,{type:`color`,value:Ad(e,`#0071e3`),onChange:e=>{let n=Od(h.styles.backgroundGradient)||{angle:135,colors:[`#0071e3`,`#9333ea`]},r=[...n.colors];r[t]=e.target.value,g(`backgroundGradient`,kd(n.angle,r))},className:`w-4 h-4 rounded-full border border-transparent cursor-pointer p-0 overflow-hidden shrink-0`},void 0,!1,{fileName:K,lineNumber:625,columnNumber:23},this),(0,F.jsxDEV)(`span`,{className:`text-[9.5px] font-mono text-[#6e6e73] dark:text-[#8e8e93] w-12 truncate`,children:e},void 0,!1,{fileName:K,lineNumber:636,columnNumber:23},this),n.length>2&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{let e=Od(h.styles.backgroundGradient)||{angle:135,colors:[`#0071e3`,`#9333ea`]},n=e.colors.filter((e,n)=>n!==t);g(`backgroundGradient`,kd(e.angle,n))},className:`text-[#86868b] hover:text-[#ff3b30] text-[10px]`,title:`Remove color stop`,children:(0,F.jsxDEV)(Ln,{className:`w-3 h-3`},void 0,!1,{fileName:K,lineNumber:648,columnNumber:27},this)},void 0,!1,{fileName:K,lineNumber:638,columnNumber:25},this)]},t,!0,{fileName:K,lineNumber:624,columnNumber:21},this)),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{let e=Od(h.styles.backgroundGradient)||{angle:135,colors:[h.styles.backgroundColor||`#0071e3`,`#9333ea`]},t=[...e.colors,`#ff512f`];g(`backgroundGradient`,kd(e.angle,t))},className:`flex items-center gap-1 px-2 py-0.5 bg-white dark:bg-[#1c1c1e] hover:bg-[#ebebee] dark:hover:bg-[#38383a] text-[10px] font-medium text-[#0071e3] dark:text-[#0a84ff] rounded-lg border border-dashed border-[#0071e3]/40 transition-colors cursor-pointer`,title:`Add color stop`,children:[(0,F.jsxDEV)(na,{className:`w-3 h-3`},void 0,!1,{fileName:K,lineNumber:665,columnNumber:21},this),(0,F.jsxDEV)(`span`,{children:`Add Color`},void 0,!1,{fileName:K,lineNumber:666,columnNumber:21},this)]},void 0,!0,{fileName:K,lineNumber:655,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:622,columnNumber:17},this),h.styles.backgroundGradient&&(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between pt-1 text-[11px] text-[#6e6e73] dark:text-[#8e8e93]`,children:[(0,F.jsxDEV)(`span`,{children:`Angle`},void 0,!1,{fileName:K,lineNumber:673,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`input`,{type:`range`,min:`0`,max:`360`,step:`15`,value:Od(h.styles.backgroundGradient)?.angle??135,onChange:e=>{let t=Number(e.target.value),n=Od(h.styles.backgroundGradient)||{angle:135,colors:[`#0071e3`,`#9333ea`]};g(`backgroundGradient`,kd(t,n.colors))},className:`w-16 accent-[#0071e3] h-1 bg-[#e5e5ea] rounded-lg cursor-pointer`},void 0,!1,{fileName:K,lineNumber:675,columnNumber:23},this),(0,F.jsxDEV)(`span`,{className:`font-mono text-[10.5px] w-8 text-right`,children:[Od(h.styles.backgroundGradient)?.angle??135,`°`]},void 0,!0,{fileName:K,lineNumber:688,columnNumber:23},this)]},void 0,!0,{fileName:K,lineNumber:674,columnNumber:21},this)]},void 0,!0,{fileName:K,lineNumber:672,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:604,columnNumber:15},this),(`text`in h.content||`label`in h.content||`placeholder`in h.content||`title`in h.content||`brandName`in h.content||y||b||h.type===`searchBar`||h.type===`icon`)&&!T&&(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:h.type===`icon`?`Icon Label`:`Text Content`},void 0,!1,{fileName:K,lineNumber:702,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`text`,placeholder:h.type===`icon`?`Add label...`:``,value:String(h.content.label??h.content.text??h.content.placeholder??h.content.title??h.content.headline??h.content.brandName??``),onChange:e=>_(h.type===`icon`?`label`:`text`,e.target.value),className:`w-36 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md border border-transparent focus:border-[#7d2ae8] focus:bg-white dark:focus:bg-[#1c1c1e] outline-none font-medium`},void 0,!1,{fileName:K,lineNumber:705,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:701,columnNumber:15},this),(b||y||h.type===`icon`||h.styles.textColor||h.content.iconColor||h.content.label)&&!T&&(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:h.type===`icon`?`Icon Color`:`Text Color`},void 0,!1,{fileName:K,lineNumber:718,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(`input`,{type:`color`,value:Ad(h.styles.textColor||h.styles.color||h.content.iconColor,`#1d1d1f`),onChange:e=>g(`textColor`,e.target.value),className:`w-5 h-5 rounded-full border border-[#e5e5ea] dark:border-[#38383a] cursor-pointer p-0 overflow-hidden`},void 0,!1,{fileName:K,lineNumber:722,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`text-[11.5px] font-mono text-[#1d1d1f] dark:text-[#f5f5f7]`,children:h.styles.textColor||h.styles.color||h.content.iconColor||`#1d1d1f`},void 0,!1,{fileName:K,lineNumber:728,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:721,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:717,columnNumber:15},this),(h.type===`icon`||h.type===`shape`||h.styles.strokeWidth!==void 0||h.content.strokeWidth!==void 0)&&(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`Stroke / Line Width`},void 0,!1,{fileName:K,lineNumber:738,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`input`,{type:`range`,min:`1`,max:`6`,step:`0.2`,value:h.styles.strokeWidth||h.content.strokeWidth||1.8,onChange:e=>g(`strokeWidth`,Number(e.target.value)),className:`w-20 accent-[#0071e3] h-1 bg-[#e5e5ea] rounded-lg cursor-pointer`},void 0,!1,{fileName:K,lineNumber:740,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono text-[#6e6e73] dark:text-[#8e8e93] w-9 text-right`,children:[h.styles.strokeWidth||h.content.strokeWidth||1.8,`px`]},void 0,!0,{fileName:K,lineNumber:749,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:739,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:737,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`Corner Radius`},void 0,!1,{fileName:K,lineNumber:758,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`input`,{type:`range`,min:`0`,max:`100`,step:`1`,value:Math.min(100,h.styles.borderRadius??8),onChange:e=>g(`borderRadius`,Number(e.target.value)),className:`w-20 accent-[#0071e3] h-1 bg-[#e5e5ea] rounded-lg cursor-pointer`},void 0,!1,{fileName:K,lineNumber:760,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono text-[#6e6e73] dark:text-[#8e8e93] w-9 text-right`,children:(h.styles.borderRadius??8)>=999?`Pill`:`${h.styles.borderRadius??8}px`},void 0,!1,{fileName:K,lineNumber:769,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>g(`borderRadius`,(h.styles.borderRadius??8)>=999?8:999),className:j(`px-1.5 py-0.5 text-[10px] font-medium rounded transition-colors cursor-pointer`,(h.styles.borderRadius??8)>=999?`bg-[#0071e3] text-white`:`bg-[#f4f4f6] dark:bg-[#2c2c2e] hover:bg-[#ebebee] text-[#6e6e73] dark:text-[#8e8e93]`),title:`Pill Shape`,children:`Pill`},void 0,!1,{fileName:K,lineNumber:772,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:759,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:757,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`Opacity`},void 0,!1,{fileName:K,lineNumber:790,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`input`,{type:`range`,min:`0`,max:`1`,step:`0.05`,value:h.styles.opacity??1,onChange:e=>g(`opacity`,Number(e.target.value)),className:`w-20 accent-[#0071e3] h-1 bg-[#e5e5ea] rounded-lg cursor-pointer`},void 0,!1,{fileName:K,lineNumber:792,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono text-[#6e6e73] dark:text-[#8e8e93] w-9 text-right`,children:[Math.round((h.styles.opacity??1)*100),`%`]},void 0,!0,{fileName:K,lineNumber:801,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:791,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:789,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`Border`},void 0,!1,{fileName:K,lineNumber:809,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`input`,{type:`range`,min:`0`,max:`20`,step:`1`,value:h.styles.borderWidth??0,onChange:e=>{let t=Number(e.target.value);g(`borderWidth`,t),t>0&&(!h.styles.borderColor||h.styles.borderColor===`transparent`)&&g(`borderColor`,`#e5e5ea`)},className:`w-20 accent-[#0071e3] h-1 bg-[#e5e5ea] rounded-lg cursor-pointer`},void 0,!1,{fileName:K,lineNumber:811,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono text-[#6e6e73] dark:text-[#8e8e93] w-9 text-right`,children:[h.styles.borderWidth??0,`px`]},void 0,!0,{fileName:K,lineNumber:826,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`color`,value:Ad(h.styles.borderColor,`#e5e5ea`),onChange:e=>{g(`borderColor`,e.target.value),(h.styles.borderWidth??0)===0&&g(`borderWidth`,1)},className:`w-5 h-5 rounded-full border border-[#e5e5ea] dark:border-[#38383a] cursor-pointer p-0 overflow-hidden shrink-0`,title:`Border Color`},void 0,!1,{fileName:K,lineNumber:829,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:810,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:808,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`Rotation`},void 0,!1,{fileName:K,lineNumber:846,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`input`,{type:`range`,min:`0`,max:`360`,step:`1`,value:h.styles.rotation??h.content.rotation??0,onChange:e=>g(`rotation`,Number(e.target.value)),className:`w-20 accent-[#0071e3] h-1 bg-[#e5e5ea] rounded-lg cursor-pointer`},void 0,!1,{fileName:K,lineNumber:848,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono text-[#6e6e73] dark:text-[#8e8e93] w-9 text-right`,children:[h.styles.rotation??h.content.rotation??0,`°`]},void 0,!0,{fileName:K,lineNumber:857,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:847,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:845,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:549,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:539,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`border-b border-[#f4f4f6] dark:border-[#38383a]`,children:[(0,F.jsxDEV)(`button`,{onClick:()=>m(`layout`),className:`w-full px-3.5 py-2.5 flex items-center justify-between text-[12px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7] hover:bg-[#fbfbfd] dark:hover:bg-[#2c2c2e] transition-colors`,children:[(0,F.jsxDEV)(`span`,{children:`Layout & Size`},void 0,!1,{fileName:K,lineNumber:872,columnNumber:11},this),f.layout?(0,F.jsxDEV)(fe,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:873,columnNumber:34},this):(0,F.jsxDEV)(at,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:873,columnNumber:91},this)]},void 0,!0,{fileName:K,lineNumber:868,columnNumber:9},this),f.layout&&(0,F.jsxDEV)(`div`,{className:`px-3.5 pb-3 space-y-2.5 text-[12px]`,children:[(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b] dark:text-[#8e8e93]`,children:`Width`},void 0,!1,{fileName:K,lineNumber:881,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`number`,value:Math.round(h.width),onChange:e=>n(h.id,{width:Math.max(10,Number(e.target.value))}),className:`w-full mt-0.5 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md outline-none`},void 0,!1,{fileName:K,lineNumber:882,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:880,columnNumber:15},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b] dark:text-[#8e8e93]`,children:`Height`},void 0,!1,{fileName:K,lineNumber:890,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`number`,value:Math.round(h.height),onChange:e=>n(h.id,{height:Math.max(10,Number(e.target.value))}),className:`w-full mt-0.5 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md outline-none`},void 0,!1,{fileName:K,lineNumber:891,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:889,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:879,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`pt-1.5 border-t border-[#f4f4f6] dark:border-[#2c2c2e]`,children:[(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b] dark:text-[#8e8e93] block mb-1`,children:`Padding (px)`},void 0,!1,{fileName:K,lineNumber:902,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-1.5`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[9.5px] text-[#86868b] dark:text-[#8e8e93]`,children:`Top`},void 0,!1,{fileName:K,lineNumber:905,columnNumber:19},this),(0,F.jsxDEV)(`input`,{type:`number`,min:`0`,max:`200`,value:h.styles.paddingTop??h.autoLayout?.paddingTop??0,onChange:e=>{let t=Number(e.target.value);g(`paddingTop`,t),h.autoLayout&&n(h.id,{autoLayout:{...h.autoLayout,paddingTop:t}})},className:`w-full mt-0.5 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md outline-none`},void 0,!1,{fileName:K,lineNumber:906,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:904,columnNumber:17},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[9.5px] text-[#86868b] dark:text-[#8e8e93]`,children:`Right`},void 0,!1,{fileName:K,lineNumber:924,columnNumber:19},this),(0,F.jsxDEV)(`input`,{type:`number`,min:`0`,max:`200`,value:h.styles.paddingRight??h.autoLayout?.paddingRight??0,onChange:e=>{let t=Number(e.target.value);g(`paddingRight`,t),h.autoLayout&&n(h.id,{autoLayout:{...h.autoLayout,paddingRight:t}})},className:`w-full mt-0.5 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md outline-none`},void 0,!1,{fileName:K,lineNumber:925,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:923,columnNumber:17},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[9.5px] text-[#86868b] dark:text-[#8e8e93]`,children:`Bottom`},void 0,!1,{fileName:K,lineNumber:943,columnNumber:19},this),(0,F.jsxDEV)(`input`,{type:`number`,min:`0`,max:`200`,value:h.styles.paddingBottom??h.autoLayout?.paddingBottom??0,onChange:e=>{let t=Number(e.target.value);g(`paddingBottom`,t),h.autoLayout&&n(h.id,{autoLayout:{...h.autoLayout,paddingBottom:t}})},className:`w-full mt-0.5 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md outline-none`},void 0,!1,{fileName:K,lineNumber:944,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:942,columnNumber:17},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[9.5px] text-[#86868b] dark:text-[#8e8e93]`,children:`Left`},void 0,!1,{fileName:K,lineNumber:962,columnNumber:19},this),(0,F.jsxDEV)(`input`,{type:`number`,min:`0`,max:`200`,value:h.styles.paddingLeft??h.autoLayout?.paddingLeft??0,onChange:e=>{let t=Number(e.target.value);g(`paddingLeft`,t),h.autoLayout&&n(h.id,{autoLayout:{...h.autoLayout,paddingLeft:t}})},className:`w-full mt-0.5 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md outline-none`},void 0,!1,{fileName:K,lineNumber:963,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:961,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:903,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:901,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:877,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:867,columnNumber:7},this),!T&&(0,F.jsxDEV)(`div`,{className:`border-b border-[#f4f4f6] dark:border-[#38383a]`,children:[(0,F.jsxDEV)(`button`,{onClick:()=>m(`typography`),className:`w-full px-3.5 py-2.5 flex items-center justify-between text-[12px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7] hover:bg-[#fbfbfd] dark:hover:bg-[#2c2c2e] transition-colors`,children:[(0,F.jsxDEV)(`span`,{children:`Typography & Text Color`},void 0,!1,{fileName:K,lineNumber:994,columnNumber:11},this),f.typography?(0,F.jsxDEV)(fe,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:995,columnNumber:38},this):(0,F.jsxDEV)(at,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:995,columnNumber:95},this)]},void 0,!0,{fileName:K,lineNumber:990,columnNumber:9},this),f.typography&&(0,F.jsxDEV)(`div`,{className:`px-3.5 pb-3 space-y-2.5 text-[12px]`,children:[(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b] dark:text-[#8e8e93]`,children:`Size`},void 0,!1,{fileName:K,lineNumber:1003,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`number`,min:`8`,max:`120`,value:h.styles.fontSize??15,onChange:e=>g(`fontSize`,Number(e.target.value)),className:`w-full mt-0.5 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md outline-none`},void 0,!1,{fileName:K,lineNumber:1004,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1002,columnNumber:15},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b] dark:text-[#8e8e93]`,children:`Weight`},void 0,!1,{fileName:K,lineNumber:1014,columnNumber:17},this),(0,F.jsxDEV)(`select`,{value:h.styles.fontWeight||`400`,onChange:e=>g(`fontWeight`,e.target.value),className:`w-full mt-0.5 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md outline-none`,children:[(0,F.jsxDEV)(`option`,{value:`400`,children:`Regular`},void 0,!1,{fileName:K,lineNumber:1020,columnNumber:19},this),(0,F.jsxDEV)(`option`,{value:`500`,children:`Medium`},void 0,!1,{fileName:K,lineNumber:1021,columnNumber:19},this),(0,F.jsxDEV)(`option`,{value:`600`,children:`Semibold`},void 0,!1,{fileName:K,lineNumber:1022,columnNumber:19},this),(0,F.jsxDEV)(`option`,{value:`700`,children:`Bold`},void 0,!1,{fileName:K,lineNumber:1023,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:1015,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1013,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:1001,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`Color`},void 0,!1,{fileName:K,lineNumber:1030,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(`input`,{type:`color`,value:Ad(h.styles.textColor,`#1d1d1f`),onChange:e=>g(`textColor`,e.target.value),className:`w-5 h-5 rounded-full border border-[#e5e5ea] dark:border-[#38383a] cursor-pointer p-0 overflow-hidden`},void 0,!1,{fileName:K,lineNumber:1032,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[11.5px] font-mono text-[#1d1d1f] dark:text-[#f5f5f7]`,children:h.styles.textColor||`#1d1d1f`},void 0,!1,{fileName:K,lineNumber:1038,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1031,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:1029,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`Alignment`},void 0,!1,{fileName:K,lineNumber:1046,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] p-0.5 rounded-md`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>g(`textAlign`,`left`),className:j(`p-1 rounded cursor-pointer`,h.styles.textAlign===`left`||!h.styles.textAlign?`bg-white dark:bg-[#1c1c1e] shadow-2xs text-[#0071e3]`:`text-[#86868b]`),children:(0,F.jsxDEV)(Bi,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:K,lineNumber:1053,columnNumber:21},this)},void 0,!1,{fileName:K,lineNumber:1048,columnNumber:19},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>g(`textAlign`,`center`),className:j(`p-1 rounded cursor-pointer`,h.styles.textAlign===`center`?`bg-white dark:bg-[#1c1c1e] shadow-2xs text-[#0071e3]`:`text-[#86868b]`),children:(0,F.jsxDEV)(mn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:K,lineNumber:1060,columnNumber:21},this)},void 0,!1,{fileName:K,lineNumber:1055,columnNumber:19},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>g(`textAlign`,`right`),className:j(`p-1 rounded cursor-pointer`,h.styles.textAlign===`right`?`bg-white dark:bg-[#1c1c1e] shadow-2xs text-[#0071e3]`:`text-[#86868b]`),children:(0,F.jsxDEV)(bn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:K,lineNumber:1067,columnNumber:21},this)},void 0,!1,{fileName:K,lineNumber:1062,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:1047,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1045,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:999,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:989,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`border-b border-[#f4f4f6]`,children:[(0,F.jsxDEV)(`button`,{onClick:()=>m(`animation`),className:`w-full px-3.5 py-2.5 flex items-center justify-between text-[12px] font-semibold text-[#1d1d1f] hover:bg-[#fbfbfd] transition-colors`,children:[(0,F.jsxDEV)(`span`,{children:`Animation & Motion`},void 0,!1,{fileName:K,lineNumber:1082,columnNumber:11},this),f.animation?(0,F.jsxDEV)(fe,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:1083,columnNumber:37},this):(0,F.jsxDEV)(at,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:1083,columnNumber:94},this)]},void 0,!0,{fileName:K,lineNumber:1078,columnNumber:9},this),f.animation&&(0,F.jsxDEV)(`div`,{className:`px-3.5 pb-3 space-y-2.5 text-[12px]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`Entrance`},void 0,!1,{fileName:K,lineNumber:1090,columnNumber:15},this),(0,F.jsxDEV)(`select`,{value:h.animations?.find(e=>e.trigger===`load`)?.type||`none`,onChange:e=>{let t=e.target.value,r=(h.animations||[]).filter(e=>e.trigger!==`load`);t!==`none`&&r.push({trigger:`load`,type:t,duration:.4,easing:`ease-out`}),n(h.id,{animations:r})},className:`w-32 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md border border-transparent focus:border-[#7d2ae8] focus:bg-white outline-none`,children:[(0,F.jsxDEV)(`option`,{value:`none`,children:`None`},void 0,!1,{fileName:K,lineNumber:1104,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`fade`,children:`Fade In`},void 0,!1,{fileName:K,lineNumber:1105,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`fade-up`,children:`Fade Up`},void 0,!1,{fileName:K,lineNumber:1106,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`fade-down`,children:`Fade Down`},void 0,!1,{fileName:K,lineNumber:1107,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`slide-left`,children:`Slide Left`},void 0,!1,{fileName:K,lineNumber:1108,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`slide-right`,children:`Slide Right`},void 0,!1,{fileName:K,lineNumber:1109,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`scale`,children:`Scale In`},void 0,!1,{fileName:K,lineNumber:1110,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`blur`,children:`Blur In`},void 0,!1,{fileName:K,lineNumber:1111,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`bounce`,children:`Bounce`},void 0,!1,{fileName:K,lineNumber:1112,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1091,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:1089,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`On Click Effect`},void 0,!1,{fileName:K,lineNumber:1118,columnNumber:15},this),(0,F.jsxDEV)(`select`,{value:h.animations?.find(e=>e.trigger===`click`)?.type||`none`,onChange:e=>{let t=e.target.value,r=(h.animations||[]).filter(e=>e.trigger!==`click`);t!==`none`&&r.push({trigger:`click`,type:t,duration:.2}),n(h.id,{animations:r})},className:`w-32 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md border border-transparent focus:border-[#7d2ae8] focus:bg-white outline-none`,children:[(0,F.jsxDEV)(`option`,{value:`none`,children:`None`},void 0,!1,{fileName:K,lineNumber:1132,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`ripple`,children:`Ripple Tap 💧`},void 0,!1,{fileName:K,lineNumber:1133,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`bounce`,children:`Bounce Click 🏀`},void 0,!1,{fileName:K,lineNumber:1134,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`scale`,children:`Tap Shrink (0.95x)`},void 0,!1,{fileName:K,lineNumber:1135,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`glow`,children:`Glow Flash ✨`},void 0,!1,{fileName:K,lineNumber:1136,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`pulse`,children:`Pulse Click`},void 0,!1,{fileName:K,lineNumber:1137,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1119,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:1117,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`Hover Effect`},void 0,!1,{fileName:K,lineNumber:1143,columnNumber:15},this),(0,F.jsxDEV)(`select`,{value:h.animations?.find(e=>e.trigger===`hover`)?.type||`none`,onChange:e=>{let t=e.target.value,r=(h.animations||[]).filter(e=>e.trigger!==`hover`);t!==`none`&&r.push({trigger:`hover`,type:t,duration:.2}),n(h.id,{animations:r})},className:`w-32 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md border border-transparent focus:border-[#7d2ae8] focus:bg-white outline-none`,children:[(0,F.jsxDEV)(`option`,{value:`none`,children:`None`},void 0,!1,{fileName:K,lineNumber:1157,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`lift`,children:`Lift Up (-4px)`},void 0,!1,{fileName:K,lineNumber:1158,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`scale`,children:`Scale (1.05x)`},void 0,!1,{fileName:K,lineNumber:1159,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`glow`,children:`Cupertino Glow`},void 0,!1,{fileName:K,lineNumber:1160,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`pulse`,children:`Pulse`},void 0,!1,{fileName:K,lineNumber:1161,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1144,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:1142,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73] dark:text-[#8e8e93]`,children:`Duration`},void 0,!1,{fileName:K,lineNumber:1167,columnNumber:15},this),(0,F.jsxDEV)(`select`,{value:h.animations?.[0]?.duration??.4,onChange:e=>{let t=Number(e.target.value),r=(h.animations||[]).map(e=>({...e,duration:t}));n(h.id,{animations:r})},className:`w-24 px-2 py-1 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md border border-transparent focus:border-[#7d2ae8] focus:bg-white outline-none`,children:[(0,F.jsxDEV)(`option`,{value:`0.2`,children:`0.2s Fast`},void 0,!1,{fileName:K,lineNumber:1177,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`0.4`,children:`0.4s Normal`},void 0,!1,{fileName:K,lineNumber:1178,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`0.6`,children:`0.6s Smooth`},void 0,!1,{fileName:K,lineNumber:1179,columnNumber:17},this),(0,F.jsxDEV)(`option`,{value:`0.8`,children:`0.8s Slow`},void 0,!1,{fileName:K,lineNumber:1180,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1168,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:1166,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:1087,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:1077,columnNumber:7},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`button`,{onClick:()=>m(`advanced`),className:`w-full px-3.5 py-2.5 flex items-center justify-between text-[12px] font-semibold text-[#86868b] hover:text-[#1d1d1f] hover:bg-[#fbfbfd] transition-colors`,children:[(0,F.jsxDEV)(`span`,{children:`Advanced Position & Rotation`},void 0,!1,{fileName:K,lineNumber:1194,columnNumber:11},this),f.advanced?(0,F.jsxDEV)(fe,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:1195,columnNumber:36},this):(0,F.jsxDEV)(at,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:1195,columnNumber:93},this)]},void 0,!0,{fileName:K,lineNumber:1190,columnNumber:9},this),f.advanced&&(0,F.jsxDEV)(`div`,{className:`px-3.5 pb-3 space-y-2.5 text-[12px] bg-[#fbfbfd]`,children:[(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b]`,children:`X Position`},void 0,!1,{fileName:K,lineNumber:1203,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`number`,value:Math.round(h.x),onChange:e=>n(h.id,{x:Number(e.target.value)}),className:`w-full mt-0.5 px-2 py-1 bg-white text-[12px] text-[#1d1d1f] rounded-md border border-[#e5e5ea] outline-none`},void 0,!1,{fileName:K,lineNumber:1204,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1202,columnNumber:15},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b]`,children:`Y Position`},void 0,!1,{fileName:K,lineNumber:1212,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`number`,value:Math.round(h.y),onChange:e=>n(h.id,{y:Number(e.target.value)}),className:`w-full mt-0.5 px-2 py-1 bg-white text-[12px] text-[#1d1d1f] rounded-md border border-[#e5e5ea] outline-none`},void 0,!1,{fileName:K,lineNumber:1213,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1211,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:1201,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b]`,children:`Rotation (°)`},void 0,!1,{fileName:K,lineNumber:1225,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`number`,value:h.rotation||0,onChange:e=>n(h.id,{rotation:Number(e.target.value)}),className:`w-full mt-0.5 px-2 py-1 bg-white text-[12px] text-[#1d1d1f] rounded-md border border-[#e5e5ea] outline-none`},void 0,!1,{fileName:K,lineNumber:1226,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1224,columnNumber:15},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#86868b]`,children:`Z-Index`},void 0,!1,{fileName:K,lineNumber:1234,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`number`,value:h.zIndex||1,onChange:e=>n(h.id,{zIndex:Number(e.target.value)}),className:`w-full mt-0.5 px-2 py-1 bg-white text-[12px] text-[#1d1d1f] rounded-md border border-[#e5e5ea] outline-none`},void 0,!1,{fileName:K,lineNumber:1235,columnNumber:17},this)]},void 0,!0,{fileName:K,lineNumber:1233,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:1223,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:1199,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:1189,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`border-b border-[#f4f4f6]`,children:[(0,F.jsxDEV)(`button`,{onClick:()=>m(`destination`),className:`w-full px-3.5 py-2.5 flex items-center justify-between text-[12px] font-semibold text-[#1d1d1f] hover:bg-[#fbfbfd] transition-colors`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(Yn,{className:`w-3.5 h-3.5 text-[#0071e3] dark:text-[#0a84ff]`},void 0,!1,{fileName:K,lineNumber:1254,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Destination Link`},void 0,!1,{fileName:K,lineNumber:1255,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:1253,columnNumber:11},this),f.destination?(0,F.jsxDEV)(fe,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:1257,columnNumber:39},this):(0,F.jsxDEV)(at,{className:`w-3.5 h-3.5 text-[#86868b]`},void 0,!1,{fileName:K,lineNumber:1257,columnNumber:96},this)]},void 0,!0,{fileName:K,lineNumber:1249,columnNumber:9},this),f.destination&&(0,F.jsxDEV)(`div`,{className:`px-3.5 pb-3 space-y-2 text-[12px]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between text-[10.5px] font-medium text-[#6e6e73] dark:text-[#8e8e93]`,children:[(0,F.jsxDEV)(`span`,{children:`Click Destination`},void 0,!1,{fileName:K,lineNumber:1263,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#0071e3] dark:text-[#0a84ff]`,children:`URL / Page`},void 0,!1,{fileName:K,lineNumber:1264,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:1262,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[(0,F.jsxDEV)(Yn,{className:`w-3.5 h-3.5 text-[#86868b] dark:text-[#636366] absolute left-2.5 pointer-events-none`},void 0,!1,{fileName:K,lineNumber:1267,columnNumber:15},this),(0,F.jsxDEV)(`input`,{type:`text`,value:h.content?.href||h.content?.linkUrl||h.interactions?.[0]?.target||``,onChange:e=>{let t=e.target.value,r=h.interactions?.[0]||{id:`inter_${Date.now()}`,trigger:`onClick`,action:`openUrl`};n(h.id,{interactions:[{...r,action:`openUrl`,target:t}],content:{...h.content,href:t,linkUrl:t}})},placeholder:`https://example.com or #page`,className:`w-full h-8 pl-8 pr-2.5 bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[12px] text-[#1d1d1f] dark:text-[#f5f5f7] rounded-md border border-transparent focus:border-[#0071e3] focus:bg-white dark:focus:bg-[#1c1c1e] outline-none transition-all`},void 0,!1,{fileName:K,lineNumber:1268,columnNumber:15},this)]},void 0,!0,{fileName:K,lineNumber:1266,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[10px] text-[#86868b] dark:text-[#636366] leading-relaxed`,children:`When clicked in Preview or Export, this element opens this destination URL or page.`},void 0,!1,{fileName:K,lineNumber:1287,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:1261,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:1248,columnNumber:7},this)]},void 0,!0,{fileName:K,lineNumber:406,columnNumber:5},this)}),q=`C:/Users/Shadow/Desktop/cyrus/src/editor/footer/BottomPagesFilmstrip.tsx`;function Md(){let{activeProject:e,activePageId:t,setActivePage:n,addPage:r,duplicatePage:i,deletePage:a,renamePage:o}=I(),{zoom:s,setZoom:c,zoomIn:l,zoomOut:u,resetZoom:d,togglePreviewMode:f,isPreviewMode:p}=P(),[m,h]=(0,N.useState)(!0),[g,_]=(0,N.useState)(null),[v,y]=(0,N.useState)(null),[b,x]=(0,N.useState)(``),[S,C]=(0,N.useState)(!1),w=e?.pages||[],T=w.findIndex(e=>e.id===t),ee=(e,t)=>{e.stopPropagation(),y(t.id),x(t.name)},E=e=>{y(null),b.trim()&&o(e,b.trim())};return(0,F.jsxDEV)(F.Fragment,{children:[(0,F.jsxDEV)(`div`,{className:`w-full bg-white/95 dark:bg-[#1c1c1e]/95 backdrop-blur-md border-t border-[#e5e5ea] dark:border-[#38383a] flex flex-col z-30 select-none shrink-0 shadow-apple-sm transition-all`,children:[m&&(0,F.jsxDEV)(`div`,{className:`h-24 px-4 py-2.5 flex items-center gap-3 overflow-x-auto no-scrollbar border-b border-[#f4f4f6] bg-[#fbfbfd] dark:bg-[#1c1c1e]`,children:[w.map((e,r)=>{let o=e.id===t,s=g===e.id,c=e.elements.length;return(0,F.jsxDEV)(`div`,{onClick:()=>n(e.id),onMouseEnter:()=>_(e.id),onMouseLeave:()=>_(null),className:j(`relative group flex flex-col items-center cursor-pointer transition-all shrink-0`,o?`scale-100`:`hover:scale-[1.02] opacity-80 hover:opacity-100`),children:[(0,F.jsxDEV)(`div`,{style:{backgroundColor:e.settings.backgroundColor||`#ffffff`},className:j(`w-28 h-16 rounded-[8px] border overflow-hidden relative shadow-xs flex flex-col p-1.5 transition-all`,o?`border-[#0071e3] ring-2 ring-[#0071e3]/30 shadow-apple-sm`:`border-[#e5e5ea] dark:border-[#38383a] group-hover:border-[#c7c7cc]`),children:[(0,F.jsxDEV)(`div`,{className:`w-full h-full relative overflow-hidden rounded-[4px] bg-[#f4f4f6] dark:bg-[#2c2c2e]`,children:[e.elements.slice(0,5).map((e,t)=>(0,F.jsxDEV)(`div`,{style:{position:`absolute`,left:`${Math.min(80,e.x/1200*100)}%`,top:`${Math.min(80,e.y/800*100)}%`,width:`${Math.max(8,Math.min(30,e.width/1200*100))}%`,height:`${Math.max(4,Math.min(20,e.height/800*100))}%`,backgroundColor:e.styles.backgroundColor||(e.type===`button`?`#0071e3`:`#1d1d1f`),opacity:e.styles.opacity??.8,borderRadius:`1px`}},e.id,!1,{fileName:q,lineNumber:96,columnNumber:25},this)),c===0&&(0,F.jsxDEV)(`div`,{className:`w-full h-full flex items-center justify-center text-[9px] text-[#86868b] dark:text-[#636366]`,children:`Empty`},void 0,!1,{fileName:q,lineNumber:111,columnNumber:25},this)]},void 0,!0,{fileName:q,lineNumber:94,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`absolute bottom-1 left-1.5 px-1 py-0.5 bg-black/60 backdrop-blur-xs text-white text-[9px] font-bold rounded-[3px] shadow-2xs`,children:r+1},void 0,!1,{fileName:q,lineNumber:118,columnNumber:21},this),s&&(0,F.jsxDEV)(`div`,{className:`absolute top-1 right-1 flex items-center gap-1 bg-white/90 dark:bg-[#1c1c1e]/90 backdrop-blur-xs rounded-[4px] p-0.5 shadow-2xs`,onClick:e=>e.stopPropagation(),children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>i(e.id),title:`Duplicate Page`,className:`p-1 hover:bg-[#ebebee] dark:hover:bg-[#3a3a3c] rounded text-[#1d1d1f] dark:text-[#f5f5f7] transition-colors`,children:(0,F.jsxDEV)(Dn,{className:`w-2.5 h-2.5`},void 0,!1,{fileName:q,lineNumber:134,columnNumber:27},this)},void 0,!1,{fileName:q,lineNumber:128,columnNumber:25},this),w.length>1&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>a(e.id),title:`Delete Page`,className:`p-1 hover:bg-rose-50 rounded text-rose-600 transition-colors`,children:(0,F.jsxDEV)(Oe,{className:`w-2.5 h-2.5`},void 0,!1,{fileName:q,lineNumber:143,columnNumber:29},this)},void 0,!1,{fileName:q,lineNumber:137,columnNumber:27},this)]},void 0,!0,{fileName:q,lineNumber:124,columnNumber:23},this)]},void 0,!0,{fileName:q,lineNumber:82,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`w-28 text-center mt-1`,children:v===e.id?(0,F.jsxDEV)(`input`,{type:`text`,value:b,onChange:e=>x(e.target.value),onBlur:()=>E(e.id),onKeyDown:t=>{t.key===`Enter`&&E(e.id),t.key===`Escape`&&y(null)},autoFocus:!0,onClick:e=>e.stopPropagation(),className:`w-full text-[10px] text-center bg-white dark:bg-[#1c1c1e] border border-[#0071e3] rounded px-1 outline-none text-[#1d1d1f] dark:text-[#f5f5f7]`},void 0,!1,{fileName:q,lineNumber:153,columnNumber:23},this):(0,F.jsxDEV)(`span`,{onDoubleClick:t=>ee(t,e),title:`Double-click to rename`,className:j(`text-[10.5px] truncate block px-1 font-medium transition-colors`,o?`text-[#0071e3] dark:text-[#0a84ff] font-semibold`:`text-[#6e6e73] dark:text-[#8e8e93] group-hover:text-[#1d1d1f] dark:group-hover:text-[#f5f5f7]`),children:e.name},void 0,!1,{fileName:q,lineNumber:167,columnNumber:23},this)},void 0,!1,{fileName:q,lineNumber:151,columnNumber:19},this)]},e.id,!0,{fileName:q,lineNumber:71,columnNumber:17},this)}),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>r(`Page ${w.length+1}`),className:`w-20 h-16 rounded-[8px] border-2 border-dashed border-[#e5e5ea] dark:border-[#38383a] hover:border-[#0071e3]/60 bg-white/50 hover:bg-[#e8f2fc] dark:hover:bg-[#0a84ff]/15 flex flex-col items-center justify-center gap-1 text-[#86868b] dark:text-[#636366] hover:text-[#0071e3] dark:hover:text-[#0a84ff] transition-all cursor-pointer shrink-0 mb-4`,title:`Add New Page`,children:[(0,F.jsxDEV)(na,{className:`w-4 h-4`},void 0,!1,{fileName:q,lineNumber:190,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:`Add Page`},void 0,!1,{fileName:q,lineNumber:191,columnNumber:15},this)]},void 0,!0,{fileName:q,lineNumber:184,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:64,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`h-8 px-4 flex items-center justify-between text-[11px] text-[#6e6e73] dark:text-[#8e8e93] bg-white/90 dark:bg-[#1c1c1e]/90 backdrop-blur-md border-t border-[#f4f4f6] dark:border-[#2c2c2e]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>h(!m),className:`flex items-center gap-1.5 px-2.5 py-0.5 rounded-full hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] text-[#1d1d1f] dark:text-[#f5f5f7] font-medium transition-colors cursor-pointer`,children:[(0,F.jsxDEV)(kn,{className:`w-3.5 h-3.5 text-[#7d2ae8] dark:text-[#9d52ff]`},void 0,!1,{fileName:q,lineNumber:205,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Pages`},void 0,!1,{fileName:q,lineNumber:206,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[#86868b] dark:text-[#636366] font-semibold`,children:[T+1,`/`,w.length]},void 0,!0,{fileName:q,lineNumber:207,columnNumber:15},this),m?(0,F.jsxDEV)(fe,{className:`w-3.5 h-3.5 text-[#86868b] dark:text-[#636366]`},void 0,!1,{fileName:q,lineNumber:211,columnNumber:17},this):(0,F.jsxDEV)($e,{className:`w-3.5 h-3.5 text-[#86868b] dark:text-[#636366]`},void 0,!1,{fileName:q,lineNumber:213,columnNumber:17},this)]},void 0,!0,{fileName:q,lineNumber:200,columnNumber:13},this)},void 0,!1,{fileName:q,lineNumber:199,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>C(!0),className:`p-1 rounded hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] text-[#86868b] dark:text-[#636366] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] transition-colors`,title:`View all pages in grid`,children:(0,F.jsxDEV)(kn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:q,lineNumber:225,columnNumber:15},this)},void 0,!1,{fileName:q,lineNumber:219,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:f,className:`p-1 rounded hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] text-[#86868b] dark:text-[#636366] hover:text-[#0071e3] dark:hover:text-[#0a84ff] transition-colors`,title:`Full Screen / Preview`,children:(0,F.jsxDEV)(Ur,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:q,lineNumber:233,columnNumber:15},this)},void 0,!1,{fileName:q,lineNumber:227,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[10.5px] font-medium text-[#86868b]`,children:[Math.round(s*100),`%`]},void 0,!0,{fileName:q,lineNumber:235,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:218,columnNumber:11},this)]},void 0,!0,{fileName:q,lineNumber:197,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:61,columnNumber:7},this),S&&(0,F.jsxDEV)(`div`,{className:`fixed inset-0 z-[500] bg-black/60 backdrop-blur-sm flex flex-col p-6 select-none animate-fade-in`,onClick:()=>C(!1),children:(0,F.jsxDEV)(`div`,{className:`w-full max-w-5xl mx-auto bg-white dark:bg-[#1c1c1e] rounded-2xl shadow-2xl flex flex-col overflow-hidden max-h-[90vh]`,onClick:e=>e.stopPropagation(),children:[(0,F.jsxDEV)(`div`,{className:`px-6 py-4 border-b border-[#e5e5ea] dark:border-[#38383a] flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h3`,{className:`text-[17px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Page Grid Sorter`},void 0,!1,{fileName:q,lineNumber:255,columnNumber:17},this),(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b] dark:text-[#636366]`,children:[w.length,` pages in this project`]},void 0,!0,{fileName:q,lineNumber:256,columnNumber:17},this)]},void 0,!0,{fileName:q,lineNumber:254,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>r(`Page ${w.length+1}`),className:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-[#0071e3] text-white text-[12px] font-semibold hover:bg-[#0077ed] transition-colors`,children:[(0,F.jsxDEV)(na,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:q,lineNumber:264,columnNumber:19},this),`Add Page`]},void 0,!0,{fileName:q,lineNumber:259,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>C(!1),className:`px-3 py-1.5 rounded-lg border border-[#e5e5ea] dark:border-[#38383a] text-[12px] font-medium text-[#1d1d1f] dark:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-colors`,children:`Close`},void 0,!1,{fileName:q,lineNumber:267,columnNumber:17},this)]},void 0,!0,{fileName:q,lineNumber:258,columnNumber:15},this)]},void 0,!0,{fileName:q,lineNumber:253,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-6 grid grid-cols-3 gap-6 bg-[#fbfbfd] dark:bg-[#1c1c1e]`,children:w.map((e,r)=>(0,F.jsxDEV)(`div`,{onClick:()=>{n(e.id),C(!1)},className:j(`group relative rounded-xl border p-3 flex flex-col gap-2 cursor-pointer transition-all bg-white dark:bg-[#1c1c1e]`,e.id===t?`border-[#0071e3] ring-2 ring-[#0071e3]/30 shadow-apple-md`:`border-[#e5e5ea] dark:border-[#38383a] hover:border-[#0071e3]/50 hover:shadow-apple-sm`),children:[(0,F.jsxDEV)(`div`,{style:{backgroundColor:e.settings.backgroundColor||`#ffffff`},className:`w-full h-36 rounded-lg border border-[#e5e5ea] dark:border-[#38383a] relative overflow-hidden flex items-center justify-center`,children:[(0,F.jsxDEV)(`span`,{className:`text-[12px] font-semibold text-[#86868b] dark:text-[#636366]`,children:[e.elements.length,` elements`]},void 0,!0,{fileName:q,lineNumber:297,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`absolute top-2 left-2 px-2 py-0.5 bg-black/60 text-white text-[10px] font-bold rounded`,children:r+1},void 0,!1,{fileName:q,lineNumber:300,columnNumber:21},this)]},void 0,!0,{fileName:q,lineNumber:293,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[13px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7] truncate`,children:e.name},void 0,!1,{fileName:q,lineNumber:305,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),i(e.id)},className:`p-1 rounded hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] text-[#86868b] dark:text-[#636366] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7]`,title:`Duplicate`,children:(0,F.jsxDEV)(Dn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:q,lineNumber:318,columnNumber:25},this)},void 0,!1,{fileName:q,lineNumber:309,columnNumber:23},this),w.length>1&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),a(e.id)},className:`p-1 rounded hover:bg-rose-50 text-rose-600`,title:`Delete`,children:(0,F.jsxDEV)(Oe,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:q,lineNumber:330,columnNumber:27},this)},void 0,!1,{fileName:q,lineNumber:321,columnNumber:25},this)]},void 0,!0,{fileName:q,lineNumber:308,columnNumber:21},this)]},void 0,!0,{fileName:q,lineNumber:304,columnNumber:19},this)]},e.id,!0,{fileName:q,lineNumber:280,columnNumber:17},this))},void 0,!1,{fileName:q,lineNumber:278,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:248,columnNumber:11},this)},void 0,!1,{fileName:q,lineNumber:244,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:60,columnNumber:5},this)}function Nd(e){return e?e.replace(/([a-z])([A-Z])/g,`$1 $2`).toLowerCase().split(/[\s,._\-/:;#~+*?!&|()[\]{}"'\\]+/).filter(e=>e.length>0):[]}var Pd=new class{itemsMap=new Map;tokenInvertedIndex=new Map;isIndexed=!1;currentProjectId=null;async rebuildIndex(e,t=[]){this.itemsMap.clear(),this.tokenInvertedIndex.clear(),e&&(this.currentProjectId=e.id,e.pages.forEach(e=>{let t={id:`page_${e.id}`,title:e.name,subtitle:`Route: /${e.slug} • ${e.elements?.length||0} elements`,type:`page`,typeLabel:`Pages`,iconName:`FileText`,pageId:e.id,pageName:e.name,keywords:[e.name,e.slug,`page`,`screen`,`route`,`view`],action:t=>{t.setActivePage?.(e.id),t.addToast?.(`Switched to page "${e.name}"`,`info`)}};this.addItem(t),(e.elements||[]).forEach(t=>{let n=this.extractContentSnippet(t.content),r={id:`el_${t.id}`,title:t.name||`Unnamed ${t.type}`,subtitle:`Page: ${e.name} • ${t.type}${n?` • "${n}"`:``}`,type:`element`,typeLabel:`Elements`,iconName:`Box`,pageId:e.id,pageName:e.name,elementId:t.id,bounds:{x:t.x,y:t.y,width:t.width,height:t.height},keywords:[t.name,t.type,e.name,...Nd(n),`element`,`widget`,`layer`],action:n=>{n.setActivePage?.(e.id),n.selectElement?.(t.id),n.addToast?.(`Selected "${t.name}" on ${e.name}`,`info`)}};this.addItem(r)})}),(e.components||[]).forEach(e=>{let t={id:`comp_${e.id}`,title:e.name,subtitle:`Master Component • ${e.category||e.templateElement?.type||`Component`}`,type:`component`,typeLabel:`Components`,iconName:`Component`,keywords:[e.name,e.templateElement?.type||``,e.category||``,`component`,`master`,`symbol`],action:t=>{t.setActiveSidebarTab?.(`design`),t.addToast?.(`Viewing component "${e.name}"`,`info`)}};this.addItem(t)}),(e.variables||[]).forEach(e=>{let t=typeof e.defaultValue==`object`?JSON.stringify(e.defaultValue).slice(0,32):String(e.defaultValue??``),n={id:`var_${e.id}`,title:e.name,subtitle:`Variable (${e.type}) • Value: ${t}`,type:`variable`,typeLabel:`Variables`,iconName:`Database`,keywords:[e.name,e.type,`variable`,`data`,`binding`,`state`],action:t=>{t.setActiveSidebarTab?.(`variables`),t.addToast?.(`Inspecting variable "${e.name}"`,`info`)}};this.addItem(n)}),(mu.getState().comments||[]).forEach(e=>{let t={id:`comm_${e.id}`,title:`Comment: "${e.body.slice(0,40)}"`,subtitle:`By ${e.authorName||`Collaborator`} • ${e.status===`resolved`?`Resolved`:`Active`}`,type:`comment`,typeLabel:`Comments`,iconName:`MessageSquare`,pageId:e.pageId,elementId:e.elementId,keywords:[e.body,e.authorName||``,`comment`,`review`,`feedback`,`annotation`],action:t=>{e.pageId&&t.setActivePage?.(e.pageId),t.setCommentsOpen?.(!0),t.toggleReviewMode?.(),t.addToast?.(`Opened review comment`,`info`)}};this.addItem(t)}),[{path:`src/App.tsx`,name:`App.tsx`,desc:`Main React application root`},{path:`src/components/DashboardCharts.tsx`,name:`DashboardCharts.tsx`,desc:`SVG charts & data visualization`},{path:`src/components/Navbar.tsx`,name:`Navbar.tsx`,desc:`Responsive navigation bar component`},{path:`src/components/StatCards.tsx`,name:`StatCards.tsx`,desc:`KPI metric scorecards`},{path:`src/theme/tokens.ts`,name:`tokens.ts`,desc:`Design tokens & CSS custom variables`},{path:`package.json`,name:`package.json`,desc:`Project configuration & dependencies`}].forEach(e=>{let t={id:`code_${e.path}`,title:e.name,subtitle:`${e.path} • ${e.desc}`,type:`codeFile`,typeLabel:`Code Files`,iconName:`Code2`,keywords:[e.name,e.path,e.desc,`code`,`react`,`typescript`,`file`],action:t=>{t.setWorkspaceMode?.(`code`),t.addToast?.(`Opened file "${e.name}"`,`info`)}};this.addItem(t)})),As.forEach(e=>{let t={id:`tmpl_${e.id}`,title:e.name,subtitle:`${e.category.toUpperCase()} • ${e.description.slice(0,50)}...`,type:`template`,typeLabel:`Templates`,iconName:`Package`,keywords:[e.name,e.category,...e.keywords||[],`template`,`starter`,`preset`],action:t=>{t.setActiveSidebarTab?.(`templates`),t.addToast?.(`Selected template "${e.name}"`,`info`)}};this.addItem(t)});try{(await Go()).forEach(e=>{let t={id:`asset_${e.id}`,title:e.name,subtitle:`${e.type.toUpperCase()} • ${e.isPreset?`Stock Library`:`Uploaded Asset`}`,type:`asset`,typeLabel:`Assets & Media`,iconName:`Image`,keywords:[e.name,e.type,`asset`,`image`,`photo`,`vector`,`svg`,`media`,`logo`,`icon`],action:t=>{t.setActiveSidebarTab?.(`assets`),t.addToast?.(`Located asset "${e.name}"`,`info`)}};this.addItem(t)})}catch{}try{(t.length>0?t:await so()).forEach(t=>{if(e&&t.id===e.id)return;let n={id:`proj_${t.id}`,title:t.name,subtitle:`Project • ${t.pages?.length||1} pages • ${t.type||`web`}`,type:`project`,typeLabel:`Projects`,iconName:`FolderKanban`,keywords:[t.name,t.type||``,`project`,`workspace`,`document`],action:e=>{e.loadProject?.(t.id),e.addToast?.(`Switching to project "${t.name}"`,`info`)}};this.addItem(n)})}catch{}this.isIndexed=!0}extractContentSnippet(e){if(!e)return``;let t=[];return e.headline&&t.push(e.headline),e.title&&t.push(e.title),e.text&&t.push(e.text),e.subhead&&t.push(e.subhead),e.ctaLabel&&t.push(e.ctaLabel),e.badge&&t.push(e.badge),t.join(` `).slice(0,100)}addItem(e){this.itemsMap.set(e.id,e);let t=new Set;t.add(e.title.toLowerCase()),e.keywords.forEach(e=>{Nd(e).forEach(e=>t.add(e))}),t.forEach(t=>{this.tokenInvertedIndex.has(t)||this.tokenInvertedIndex.set(t,new Set),this.tokenInvertedIndex.get(t).add(e.id)})}search(e,t=30){let n=e.trim().toLowerCase();if(!n)return[];let r=Nd(n),i=new Map;r.forEach(e=>{let t=this.tokenInvertedIndex.get(e);t&&t.forEach(e=>{i.set(e,(i.get(e)||0)+10)});for(let[t,n]of this.tokenInvertedIndex.entries())t.startsWith(e)?n.forEach(e=>{i.set(e,(i.get(e)||0)+5)}):t.includes(e)&&n.forEach(e=>{i.set(e,(i.get(e)||0)+2)})});for(let[e,t]of this.itemsMap.entries()){let r=t.title.toLowerCase();r===n?i.set(e,(i.get(e)||0)+50):r.startsWith(n)?i.set(e,(i.get(e)||0)+25):r.includes(n)&&i.set(e,(i.get(e)||0)+15)}let a=[];i.forEach((e,t)=>{let n=this.itemsMap.get(t);n&&a.push({item:n,score:e})}),a.sort((e,t)=>t.score-e.score);let o=a.slice(0,t).map(e=>e.item),s=new Map;o.forEach(e=>{s.has(e.type)||s.set(e.type,[]),s.get(e.type).push(e)});let c=[];return[{type:`page`,label:`Pages`},{type:`element`,label:`Canvas Elements`},{type:`component`,label:`Components`},{type:`asset`,label:`Assets & Media`},{type:`template`,label:`Templates`},{type:`variable`,label:`Variables`},{type:`comment`,label:`Comments`},{type:`codeFile`,label:`Code Files`},{type:`project`,label:`Projects`}].forEach(({type:e,label:t})=>{let n=s.get(e);n&&n.length>0&&c.push({type:e,typeLabel:t,items:n})}),c}},Fd=`C:/Users/Shadow/Desktop/cyrus/src/components/dialogs/CommandPaletteDialog.tsx`,Id=`cyrus_recent_commands_v1`,Ld={FileText:Kn,Box:n,Component:r,Database:un,MessageSquare:On,Code2:Di,Package:tt,Image:he,FolderKanban:yr,Sparkles:vi,Boxes:wt};function Rd(){let{isCommandPaletteOpen:e,setCommandPaletteOpen:t,setActiveSidebarTab:n,setCreateAppOpen:r,setShareOpen:i,setHistoryOpen:a,setShortcutsOpen:o,togglePreviewMode:s,toggleReviewMode:c,toggleGrid:l,zoomIn:u,zoomOut:d,resetZoom:f,fitToScreen:p,setViewportMode:m}=P(),{activeProject:h,activePageId:g,setActivePage:_,addPage:v,addElement:b,selectElement:S,undo:C,redo:w,saveCurrentProject:T}=I(),{addToast:ee}=oo(),{setCommentsOpen:te}=mu(),[D,ne]=(0,N.useState)(``),[re,O]=(0,N.useState)(0),[ae,oe]=(0,N.useState)(()=>{try{let e=localStorage.getItem(Id);return e?JSON.parse(e):[`act_create_page`,`act_preview`,`act_ai`,`act_export`]}catch{return[`act_create_page`,`act_preview`,`act_ai`,`act_export`]}}),se=(0,N.useRef)(null),ce=(0,N.useRef)(null);(0,N.useEffect)(()=>{h&&Pd.rebuildIndex(h)},[h]),(0,N.useEffect)(()=>{let n=n=>{(n.metaKey||n.ctrlKey)&&n.key.toLowerCase()===`k`&&(n.preventDefault(),t(!e))};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),(0,N.useEffect)(()=>{e&&(ne(``),O(0),h&&Pd.rebuildIndex(h),setTimeout(()=>se.current?.focus(),50))},[e,h]);let le=e=>{if(!e.startsWith(`ai_`))try{let t=[e,...ae.filter(t=>t!==e)].slice(0,8);oe(t),localStorage.setItem(Id,JSON.stringify(t))}catch{}},ue=(e,t)=>{if(!h||!g)return;let n=Cu.find(t=>t.id===e);if(!n)return;let r={id:M(),type:n.type,name:t,x:Math.round((1440-(n.defaultWidth||360))/2),y:Math.round((900-(n.defaultHeight||200))/2),width:n.defaultWidth||360,height:n.defaultHeight||200,rotation:0,zIndex:10,styles:{...n.defaultStyles},content:{...n.defaultContent}};b(r),S(r.id),ee(`Added ${t} to canvas`,`success`)},k=(0,N.useMemo)(()=>({setActivePage:e=>_(e),selectElement:e=>S(e),setActiveSidebarTab:e=>n(e),setWorkspaceMode:e=>{e===`preview`&&s()},toggleReviewMode:()=>c(),setCommentsOpen:e=>te(e),addToast:(e,t)=>ee(e,t)}),[_,S,n,s,c,te,ee]),de=(0,N.useMemo)(()=>{let e=[{id:`act_create_page`,title:`Create Page`,subtitle:`Add a new page to current project`,category:`actions`,categoryLabel:`Actions`,icon:na,shortcut:`⌘N`,keywords:[`page`,`new`,`create`,`artboard`,`screen`],action:()=>{v(`New Page`)&&ee(`Created new page`,`success`)}},{id:`act_preview`,title:`Preview Prototype`,subtitle:`Launch interactive runtime preview`,category:`actions`,categoryLabel:`Actions`,icon:ci,iconColor:`#0071e3`,shortcut:`⌘P`,keywords:[`preview`,`run`,`prototype`,`interactive`,`test`,`live`],action:()=>s()},{id:`act_create_app`,title:`Create App & Code Target`,subtitle:`Generate React, Next.js, or React Native apps`,category:`actions`,categoryLabel:`Actions`,icon:Di,iconColor:`#0071e3`,shortcut:`⌘B`,keywords:[`create app`,`react native`,`nextjs`,`export`,`build`,`mobile`,`ios`,`android`],action:()=>r(!0)},{id:`act_export`,title:`Export Project`,subtitle:`Download production ZIP bundle or single file`,category:`actions`,categoryLabel:`Actions`,icon:gt,shortcut:`⇧⌘E`,keywords:[`export`,`download`,`zip`,`code`,`deploy`,`share`],action:()=>i(!0)},{id:`act_save`,title:`Save Project`,subtitle:`Persist changes to local IndexedDB`,category:`actions`,categoryLabel:`Actions`,icon:y,shortcut:`⌘S`,keywords:[`save`,`persist`,`storage`,`sync`],action:()=>T()},{id:`act_undo`,title:`Undo`,subtitle:`Revert last modification`,category:`actions`,categoryLabel:`Actions`,icon:E,shortcut:`⌘Z`,keywords:[`undo`,`revert`,`back`],action:()=>C()},{id:`act_redo`,title:`Redo`,subtitle:`Reapply undone change`,category:`actions`,categoryLabel:`Actions`,icon:Ot,shortcut:`⇧⌘Z`,keywords:[`redo`,`forward`,`apply`],action:()=>w()},{id:`act_review_mode`,title:`Toggle Review Mode`,subtitle:`Inspect comments, annotations & design review`,category:`actions`,categoryLabel:`Actions`,icon:On,keywords:[`review`,`comments`,`feedback`,`annotate`,`thread`],action:()=>c()},{id:`act_history`,title:`Version History & Checkpoints`,subtitle:`View rollback timeline and snapshots`,category:`actions`,categoryLabel:`Actions`,icon:Tr,keywords:[`history`,`timeline`,`checkpoint`,`version`,`restore`,`rollback`],action:()=>a(!0)},{id:`act_shortcuts`,title:`Keyboard Shortcuts`,subtitle:`View all keyboard shortcuts and navigation hotkeys`,category:`actions`,categoryLabel:`Actions`,icon:x,shortcut:`?`,keywords:[`shortcuts`,`hotkeys`,`keyboard`,`help`],action:()=>o(!0)},{id:`nav_icons`,title:`Open Icons & UI Library`,subtitle:`Browse all UI controls and vector icons`,category:`navigation`,categoryLabel:`Panels & Navigation`,icon:wt,shortcut:`1`,keywords:[`icons`,`widgets`,`elements`,`library`,`components`,`insert`],action:()=>n(`icons`)},{id:`nav_layers`,title:`Open Layers Tree`,subtitle:`Inspect artboard element hierarchy and z-index`,category:`navigation`,categoryLabel:`Panels & Navigation`,icon:ie,shortcut:`2`,keywords:[`layers`,`tree`,`hierarchy`,`order`,`zindex`],action:()=>n(`layers`)},{id:`nav_pages`,title:`Open Pages & Routes`,subtitle:`Manage multi-page navigation and screens`,category:`navigation`,categoryLabel:`Panels & Navigation`,icon:Kn,shortcut:`3`,keywords:[`pages`,`screens`,`routes`,`views`],action:()=>n(`pages`)},{id:`nav_templates`,title:`Open Templates Catalog`,subtitle:`Explore SaaS, Dashboard, E-commerce, and Mobile templates`,category:`navigation`,categoryLabel:`Panels & Navigation`,icon:tt,shortcut:`5`,keywords:[`templates`,`starter`,`preset`,`catalog`,`dashboard`,`mobile`],action:()=>n(`templates`)},{id:`nav_ai`,title:`Open AI Assistant`,subtitle:`Autonomous layout generation and design token modifications`,category:`navigation`,categoryLabel:`Panels & Navigation`,icon:vi,iconColor:`#0071e3`,shortcut:`6`,keywords:[`ai`,`agent`,`assistant`,`generate`,`prompt`,`smart`],action:()=>n(`ai`)},{id:`cv_fit`,title:`Fit Canvas to Screen`,subtitle:`Center and auto-scale artboard to viewport`,category:`canvas`,categoryLabel:`Canvas & Viewport`,icon:Ur,shortcut:`⇧0`,keywords:[`fit`,`canvas`,`center`,`screen`,`zoom to fit`],action:()=>p(window.innerWidth,window.innerHeight)},{id:`cv_zoom_in`,title:`Zoom In`,subtitle:`Increase canvas magnification`,category:`canvas`,categoryLabel:`Canvas & Viewport`,icon:yi,shortcut:`⌘+`,keywords:[`zoom in`,`magnify`,`scale`],action:()=>u()},{id:`cv_zoom_out`,title:`Zoom Out`,subtitle:`Decrease canvas magnification`,category:`canvas`,categoryLabel:`Canvas & Viewport`,icon:oa,shortcut:`⌘-`,keywords:[`zoom out`,`shrink`,`scale`],action:()=>d()},{id:`cv_reset_zoom`,title:`Reset Zoom (100%)`,subtitle:`Reset magnification to default scale`,category:`canvas`,categoryLabel:`Canvas & Viewport`,icon:Ur,shortcut:`⌘1`,keywords:[`reset zoom`,`100%`,`default scale`],action:()=>f()},{id:`cv_grid`,title:`Toggle Grid Guidelines`,subtitle:`Show or hide pixel snap grid`,category:`canvas`,categoryLabel:`Canvas & Viewport`,icon:kn,shortcut:`⌘'`,keywords:[`grid`,`guidelines`,`snap`,`rulers`],action:()=>l()}];return Cu.forEach(t=>{e.push({id:`widget_${t.id}`,title:`Add ${t.name}`,subtitle:t.description,category:`widgets`,categoryLabel:`Insert Widgets`,icon:wt,keywords:[`add`,`insert`,t.name.toLowerCase(),...t.keywords||[]],action:()=>ue(t.id,t.name)})}),e},[v,b,S,C,w,T,s,r,i,a,o,c,n,p,u,d,f,l,ee]),fe=(0,N.useMemo)(()=>{let e=D.trim().toLowerCase();if(!e){let e=ae.map(e=>de.find(t=>t.id===e)).filter(Boolean),t=de.filter(e=>!ae.includes(e.id)&&(e.id===`act_create_page`||e.id===`act_preview`||e.id===`act_create_app`||e.id===`act_export`||e.id===`nav_elements`||e.id===`nav_ai`||e.id===`widget_dash_stat_card`||e.id===`widget_chart_line`));return[...e,...t]}let t=Pd.search(e,40),r=[];t.forEach(e=>{e.items.forEach(e=>{let t=Ld[e.iconName]||Kn;r.push({id:e.id,title:e.title,subtitle:e.subtitle,category:e.type,categoryLabel:e.typeLabel,icon:t,action:()=>e.action(k)})})});let i=de.filter(t=>{let n=t.title.toLowerCase().includes(e),r=t.subtitle?.toLowerCase().includes(e),i=t.keywords?.some(t=>t.toLowerCase().includes(e));return n||r||i}),a={id:`ai_${e}`,title:`Ask AI: "${D.trim()}"`,subtitle:`Synthesize components, layouts, or tokens with autonomous AI`,category:`ai`,categoryLabel:`AI Assistant`,icon:vi,iconColor:`#0071e3`,shortcut:`↵`,action:()=>{n(`ai`),ee(`Prompting AI: "${D.trim()}"`,`info`)}};return r.length>0||i.length>0?[...r,...i,a]:[a]},[D,de,ae,k,n,ee]);return(0,N.useEffect)(()=>{let e=ce.current;if(!e)return;let t=e.querySelector(`[data-index="${re}"]`);t&&t.scrollIntoView({block:`nearest`})},[re]),e?(0,F.jsxDEV)(`div`,{onClick:()=>t(!1),className:`fixed inset-0 z-[99999] bg-black/40 backdrop-blur-xs flex items-start justify-center pt-[12vh] px-4 animate-in fade-in duration-150`,children:(0,F.jsxDEV)(`div`,{onClick:e=>e.stopPropagation(),onKeyDown:e=>{if(e.key===`ArrowDown`)e.preventDefault(),O(e=>e+1<fe.length?e+1:0);else if(e.key===`ArrowUp`)e.preventDefault(),O(e=>e-1>=0?e-1:fe.length-1);else if(e.key===`Enter`){e.preventDefault();let n=fe[re];n&&(le(n.id),n.action(k),t(!1))}else e.key===`Escape`&&(e.preventDefault(),t(!1))},className:`w-full max-w-[620px] bg-white/95 dark:bg-[#1c1c1e]/95 backdrop-blur-2xl rounded-2xl border border-[#e5e5ea] dark:border-[#38383a] shadow-2xl overflow-hidden flex flex-col transition-all duration-200`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3 px-4 py-3.5 border-b border-[#e5e5ea] dark:border-[#2c2c2e]`,children:[(0,F.jsxDEV)(lt,{className:`w-5 h-5 text-[#0071e3] shrink-0`},void 0,!1,{fileName:Fd,lineNumber:608,columnNumber:11},this),(0,F.jsxDEV)(`input`,{ref:se,type:`text`,value:D,onChange:e=>{ne(e.target.value),O(0)},placeholder:`Search projects, pages, elements, components, assets, code, or ask AI...`,className:`flex-1 bg-transparent border-0 outline-hidden text-[14.5px] text-[#1d1d1f] dark:text-[#f5f5f7] placeholder-[#86868b] font-medium`},void 0,!1,{fileName:Fd,lineNumber:609,columnNumber:11},this),(0,F.jsxDEV)(`kbd`,{className:`px-2 py-0.5 rounded-md bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[11px] font-semibold text-[#86868b] border border-[#e5e5ea] dark:border-[#38383a] shadow-2xs`,children:`ESC`},void 0,!1,{fileName:Fd,lineNumber:620,columnNumber:11},this)]},void 0,!0,{fileName:Fd,lineNumber:607,columnNumber:9},this),(0,F.jsxDEV)(`div`,{ref:ce,className:`max-h-[420px] overflow-y-auto p-2 space-y-0.5 select-none`,children:fe.length===0?(0,F.jsxDEV)(`div`,{className:`py-12 text-center text-[#86868b] text-[13px]`,children:[`No results found for "`,D,`". Press Enter to Ask AI.`]},void 0,!0,{fileName:Fd,lineNumber:631,columnNumber:13},this):fe.map((e,n)=>{let r=n===re,i=e.icon;return(0,F.jsxDEV)(`div`,{"data-index":n,onClick:()=>{le(e.id),e.action(k),t(!1)},onMouseEnter:()=>O(n),className:j(`flex items-center justify-between px-3 py-2.5 rounded-xl cursor-pointer transition-colors duration-100`,r?`bg-[#0071e3] text-white shadow-xs`:`text-[#1d1d1f] dark:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e]`),children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,F.jsxDEV)(`div`,{className:j(`w-7 h-7 rounded-lg flex items-center justify-center shrink-0`,r?`bg-white/20 text-white`:`bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#0071e3]`),children:(0,F.jsxDEV)(i,{className:`w-4 h-4`},void 0,!1,{fileName:Fd,lineNumber:665,columnNumber:23},this)},void 0,!1,{fileName:Fd,lineNumber:657,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`min-w-0`,children:[(0,F.jsxDEV)(`div`,{className:j(`text-[13.5px] font-semibold truncate`,r?`text-white`:`text-[#1d1d1f] dark:text-[#f5f5f7]`),children:e.title},void 0,!1,{fileName:Fd,lineNumber:669,columnNumber:23},this),e.subtitle&&(0,F.jsxDEV)(`div`,{className:j(`text-[11px] truncate`,r?`text-white/80`:`text-[#86868b]`),children:e.subtitle},void 0,!1,{fileName:Fd,lineNumber:678,columnNumber:25},this)]},void 0,!0,{fileName:Fd,lineNumber:668,columnNumber:21},this)]},void 0,!0,{fileName:Fd,lineNumber:656,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 shrink-0 ml-3`,children:[(0,F.jsxDEV)(`span`,{className:j(`text-[10px] font-semibold px-2 py-0.5 rounded-md uppercase tracking-wider`,r?`bg-white/20 text-white`:`bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#86868b]`),children:e.categoryLabel},void 0,!1,{fileName:Fd,lineNumber:691,columnNumber:21},this),e.shortcut&&(0,F.jsxDEV)(`kbd`,{className:j(`px-1.5 py-0.5 rounded text-[11px] font-mono font-bold`,r?`bg-white/25 text-white`:`bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#86868b] border border-[#e5e5ea] dark:border-[#38383a]`),children:e.shortcut},void 0,!1,{fileName:Fd,lineNumber:703,columnNumber:23},this)]},void 0,!0,{fileName:Fd,lineNumber:690,columnNumber:19},this)]},e.id,!0,{fileName:Fd,lineNumber:640,columnNumber:17},this)})},void 0,!1,{fileName:Fd,lineNumber:626,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between px-4 py-2 bg-[#fbfbfd] dark:bg-[#161618] border-t border-[#e5e5ea] dark:border-[#2c2c2e] text-[11px] text-[#86868b]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-4`,children:[(0,F.jsxDEV)(`span`,{className:`flex items-center gap-1`,children:[(0,F.jsxDEV)(`kbd`,{className:`px-1 py-0.5 rounded bg-white dark:bg-[#2c2c2e] border border-[#e5e5ea] dark:border-[#38383a] text-[10px] font-mono`,children:`↑↓`},void 0,!1,{fileName:Fd,lineNumber:725,columnNumber:15},this),`to navigate`]},void 0,!0,{fileName:Fd,lineNumber:724,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`flex items-center gap-1`,children:[(0,F.jsxDEV)(`kbd`,{className:`px-1 py-0.5 rounded bg-white dark:bg-[#2c2c2e] border border-[#e5e5ea] dark:border-[#38383a] text-[10px] font-mono`,children:`↵`},void 0,!1,{fileName:Fd,lineNumber:731,columnNumber:15},this),`to open / select`]},void 0,!0,{fileName:Fd,lineNumber:730,columnNumber:13},this)]},void 0,!0,{fileName:Fd,lineNumber:723,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 font-medium`,children:(0,F.jsxDEV)(`span`,{children:`Global Search across 9 types`},void 0,!1,{fileName:Fd,lineNumber:739,columnNumber:13},this)},void 0,!1,{fileName:Fd,lineNumber:738,columnNumber:11},this)]},void 0,!0,{fileName:Fd,lineNumber:722,columnNumber:9},this)]},void 0,!0,{fileName:Fd,lineNumber:601,columnNumber:7},this)},void 0,!1,{fileName:Fd,lineNumber:597,columnNumber:5},this):null}var J=`C:/Users/Shadow/Desktop/cyrus/src/editor/collaboration/SharePanel.tsx`;function zd({onClose:e}){let{shareConfig:t,addInvite:n,revokeInvite:r,setShareLink:i,updateShareConfig:o,initShareConfig:s}=mu(),{activeProject:c}=I(),{session:u}=cs(),{addToast:d}=oo(),[f,p]=(0,N.useState)(``),[m,h]=(0,N.useState)(`editor`),[g,_]=(0,N.useState)(!1),[v,y]=(0,N.useState)(!1);!t&&c&&s(c.id);let b=t;function x(){b?.link&&navigator.clipboard.writeText(b.link.url).then(()=>{y(!0),d(`Link copied to clipboard`,`success`),setTimeout(()=>y(!1),2e3)})}function S(){if(!f.trim()||!f.includes(`@`)){d(`Please enter a valid email address`,`error`);return}if(b?.invites.some(e=>e.email===f.trim()&&e.status!==`revoked`)){d(`This email has already been invited`,`info`);return}n(f.trim(),m),d(`Invitation sent to ${f.trim()}`,`success`),p(``)}let C=b?.invites.filter(e=>e.status!==`revoked`)||[];return(0,F.jsxDEV)(`div`,{className:`fixed inset-0 z-[10000] flex items-center justify-center`,style:{backdropFilter:`blur(4px)`,backgroundColor:`rgba(0,0,0,0.35)`},children:(0,F.jsxDEV)(`div`,{className:`w-[500px] max-h-[90vh] overflow-y-auto bg-white rounded-2xl shadow-apple-lg border border-[#e5e5ea] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-[#e5e5ea]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-8 h-8 rounded-xl bg-[#e8f2fc] flex items-center justify-center`,children:(0,F.jsxDEV)(Wn,{className:`w-4 h-4 text-[#0071e3]`},void 0,!1,{fileName:J,lineNumber:102,columnNumber:15},this)},void 0,!1,{fileName:J,lineNumber:101,columnNumber:13},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h2`,{className:`text-[14px] font-semibold text-[#1d1d1f]`,children:`Share Project`},void 0,!1,{fileName:J,lineNumber:105,columnNumber:15},this),(0,F.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b]`,children:c?.name},void 0,!1,{fileName:J,lineNumber:106,columnNumber:15},this)]},void 0,!0,{fileName:J,lineNumber:104,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:100,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:e,className:`w-7 h-7 rounded-full bg-[#f5f5f7] flex items-center justify-center text-[#6e6e73] hover:bg-[#e5e5ea] transition-apple`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:J,lineNumber:110,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:109,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:99,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`p-6 space-y-6`,children:[(0,F.jsxDEV)(`section`,{children:[(0,F.jsxDEV)(`label`,{className:`block text-[12px] font-semibold text-[#1d1d1f] mb-2`,children:`Invite collaborators`},void 0,!1,{fileName:J,lineNumber:117,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`flex-1 flex items-center gap-2 bg-[#f5f5f7] border border-[#e5e5ea] rounded-xl px-3 focus-within:border-[#0071e3] focus-within:bg-white transition-apple`,children:[(0,F.jsxDEV)(ia,{className:`w-3.5 h-3.5 text-[#86868b] shrink-0`},void 0,!1,{fileName:J,lineNumber:122,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`email`,value:f,onChange:e=>p(e.target.value),onKeyDown:e=>e.key===`Enter`&&S(),placeholder:`colleague@company.com`,className:`flex-1 bg-transparent text-[13px] text-[#1d1d1f] outline-none py-2.5 placeholder:text-[#86868b]`},void 0,!1,{fileName:J,lineNumber:123,columnNumber:17},this)]},void 0,!0,{fileName:J,lineNumber:121,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`relative`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>_(!g),className:`flex items-center gap-1.5 h-full px-3 rounded-xl bg-[#f5f5f7] border border-[#e5e5ea] text-[12px] font-medium text-[#1d1d1f] hover:bg-[#ebebeb] transition-apple capitalize`,children:[m===`editor`?(0,F.jsxDEV)(Rt,{className:`w-3 h-3`},void 0,!1,{fileName:J,lineNumber:140,columnNumber:52},this):(0,F.jsxDEV)(l,{className:`w-3 h-3`},void 0,!1,{fileName:J,lineNumber:140,columnNumber:85},this),m,(0,F.jsxDEV)(fe,{className:`w-3 h-3 text-[#86868b]`},void 0,!1,{fileName:J,lineNumber:142,columnNumber:19},this)]},void 0,!0,{fileName:J,lineNumber:135,columnNumber:17},this),g&&(0,F.jsxDEV)(`div`,{className:`absolute right-0 top-full mt-1 w-36 bg-white border border-[#e5e5ea] rounded-xl shadow-apple-md z-50 overflow-hidden`,children:[`editor`,`viewer`].map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{h(e),_(!1)},className:j(`w-full flex items-center gap-2 px-3 py-2 text-[12px] hover:bg-[#f5f5f7] transition-apple capitalize`,m===e?`text-[#0071e3] font-semibold`:`text-[#1d1d1f]`),children:[e===`editor`?(0,F.jsxDEV)(Rt,{className:`w-3 h-3`},void 0,!1,{fileName:J,lineNumber:156,columnNumber:43},this):(0,F.jsxDEV)(l,{className:`w-3 h-3`},void 0,!1,{fileName:J,lineNumber:156,columnNumber:76},this),e===`editor`?`Can edit`:`Can view`,m===e&&(0,F.jsxDEV)(ke,{className:`w-3 h-3 ml-auto`},void 0,!1,{fileName:J,lineNumber:158,columnNumber:52},this)]},e,!0,{fileName:J,lineNumber:147,columnNumber:23},this))},void 0,!1,{fileName:J,lineNumber:145,columnNumber:19},this)]},void 0,!0,{fileName:J,lineNumber:134,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:S,className:`px-4 py-2.5 rounded-xl bg-[#0071e3] text-white text-[12px] font-semibold hover:bg-[#0077ed] transition-apple shrink-0`,children:`Invite`},void 0,!1,{fileName:J,lineNumber:165,columnNumber:15},this)]},void 0,!0,{fileName:J,lineNumber:120,columnNumber:13},this),C.length>0&&(0,F.jsxDEV)(`div`,{className:`mt-3 space-y-1.5`,children:C.map(e=>(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3 px-3 py-2 rounded-xl bg-[#f5f5f7] border border-[#e5e5ea]`,children:[(0,F.jsxDEV)(`div`,{className:`w-7 h-7 rounded-full bg-gradient-to-br from-[#6e6e73] to-[#86868b] flex items-center justify-center text-white text-[10px] font-bold shrink-0`,children:e.email[0].toUpperCase()},void 0,!1,{fileName:J,lineNumber:179,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:[(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#1d1d1f] truncate`,children:e.email},void 0,!1,{fileName:J,lineNumber:183,columnNumber:23},this),(0,F.jsxDEV)(`p`,{className:`text-[10px] text-[#86868b] capitalize`,children:[e.status,` · `,e.permission]},void 0,!0,{fileName:J,lineNumber:184,columnNumber:23},this)]},void 0,!0,{fileName:J,lineNumber:182,columnNumber:21},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{r(e.id),d(`Removed ${e.email}`,`info`)},className:`text-[11px] text-[#ff3b30] hover:underline`,children:`Remove`},void 0,!1,{fileName:J,lineNumber:186,columnNumber:21},this)]},e.id,!0,{fileName:J,lineNumber:178,columnNumber:19},this))},void 0,!1,{fileName:J,lineNumber:176,columnNumber:15},this)]},void 0,!0,{fileName:J,lineNumber:116,columnNumber:11},this),(0,F.jsxDEV)(`section`,{children:[(0,F.jsxDEV)(`label`,{className:`block text-[12px] font-semibold text-[#1d1d1f] mb-2`,children:`Share link`},void 0,!1,{fileName:J,lineNumber:201,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`rounded-xl border border-[#e5e5ea] overflow-hidden`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between px-4 py-3 bg-[#f5f5f7]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[b?.link?.isPublic?(0,F.jsxDEV)(a,{className:`w-4 h-4 text-[#0071e3]`},void 0,!1,{fileName:J,lineNumber:209,columnNumber:21},this):(0,F.jsxDEV)(Ri,{className:`w-4 h-4 text-[#86868b]`},void 0,!1,{fileName:J,lineNumber:211,columnNumber:21},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`p`,{className:`text-[12px] font-medium text-[#1d1d1f]`,children:b?.link?.isPublic?`Anyone with the link`:`Only invited people`},void 0,!1,{fileName:J,lineNumber:214,columnNumber:21},this),(0,F.jsxDEV)(`p`,{className:`text-[10px] text-[#86868b]`,children:b?.link?.isPublic?`Can ${b.link.permission} this project`:`Link is restricted`},void 0,!1,{fileName:J,lineNumber:217,columnNumber:21},this)]},void 0,!0,{fileName:J,lineNumber:213,columnNumber:19},this)]},void 0,!0,{fileName:J,lineNumber:207,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>i(!b?.link?.isPublic,b?.link?.permission||`viewer`),className:j(`relative w-10 h-6 rounded-full transition-apple cursor-pointer`,b?.link?.isPublic?`bg-[#0071e3]`:`bg-[#d1d1d6]`),children:(0,F.jsxDEV)(`div`,{className:j(`absolute top-1 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-200`,b?.link?.isPublic?`translate-x-5`:`translate-x-1`)},void 0,!1,{fileName:J,lineNumber:232,columnNumber:19},this)},void 0,!1,{fileName:J,lineNumber:224,columnNumber:17},this)]},void 0,!0,{fileName:J,lineNumber:206,columnNumber:15},this),b?.link?.isPublic&&(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 px-4 py-2 border-t border-[#e5e5ea] bg-white`,children:[(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#86868b]`,children:`Link permission:`},void 0,!1,{fileName:J,lineNumber:244,columnNumber:19},this),[`viewer`,`editor`].map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>i(!0,e),className:j(`flex items-center gap-1 px-2.5 py-1 rounded-lg text-[11px] font-medium capitalize transition-apple`,b.link?.permission===e?`bg-[#0071e3] text-white`:`bg-[#f5f5f7] text-[#6e6e73] hover:bg-[#ebebeb]`),children:[e===`editor`?(0,F.jsxDEV)(Rt,{className:`w-3 h-3`},void 0,!1,{fileName:J,lineNumber:257,columnNumber:41},this):(0,F.jsxDEV)(l,{className:`w-3 h-3`},void 0,!1,{fileName:J,lineNumber:257,columnNumber:74},this),e]},e,!0,{fileName:J,lineNumber:246,columnNumber:21},this))]},void 0,!0,{fileName:J,lineNumber:243,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 px-4 py-3 border-t border-[#e5e5ea] bg-white`,children:[(0,F.jsxDEV)(Ra,{className:`w-3.5 h-3.5 text-[#86868b] shrink-0`},void 0,!1,{fileName:J,lineNumber:266,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`flex-1 text-[11px] text-[#86868b] truncate font-mono`,children:b?.link?.url||`Generating link...`},void 0,!1,{fileName:J,lineNumber:267,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:x,className:j(`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-[11px] font-semibold transition-apple`,v?`bg-[#f0fdf4] text-[#34c759]`:`bg-[#f5f5f7] text-[#1d1d1f] hover:bg-[#ebebeb]`),children:[v?(0,F.jsxDEV)(ke,{className:`w-3 h-3`},void 0,!1,{fileName:J,lineNumber:280,columnNumber:29},this):(0,F.jsxDEV)(Dn,{className:`w-3 h-3`},void 0,!1,{fileName:J,lineNumber:280,columnNumber:61},this),v?`Copied`:`Copy`]},void 0,!0,{fileName:J,lineNumber:270,columnNumber:17},this)]},void 0,!0,{fileName:J,lineNumber:265,columnNumber:15},this)]},void 0,!0,{fileName:J,lineNumber:204,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:200,columnNumber:11},this),(0,F.jsxDEV)(`section`,{children:[(0,F.jsxDEV)(`label`,{className:`block text-[12px] font-semibold text-[#1d1d1f] mb-2`,children:`Permissions`},void 0,!1,{fileName:J,lineNumber:289,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`space-y-2`,children:[{key:`allowComments`,label:`Viewers can comment`,desc:`Allow guests to add comments and annotations`},{key:`allowExport`,label:`Viewers can export`,desc:`Allow guests to export the project as code`}].map(({key:e,label:t,desc:n})=>(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between px-4 py-3 rounded-xl bg-[#f5f5f7] border border-[#e5e5ea]`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`p`,{className:`text-[12px] font-medium text-[#1d1d1f]`,children:t},void 0,!1,{fileName:J,lineNumber:299,columnNumber:21},this),(0,F.jsxDEV)(`p`,{className:`text-[10px] text-[#86868b]`,children:n},void 0,!1,{fileName:J,lineNumber:300,columnNumber:21},this)]},void 0,!0,{fileName:J,lineNumber:298,columnNumber:19},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>o({[e]:!b?.[e]}),className:j(`relative w-10 h-6 rounded-full transition-apple cursor-pointer shrink-0`,b?.[e]?`bg-[#0071e3]`:`bg-[#d1d1d6]`),children:(0,F.jsxDEV)(`div`,{className:j(`absolute top-1 w-4 h-4 rounded-full bg-white shadow-sm transition-transform duration-200`,b?.[e]?`translate-x-5`:`translate-x-1`)},void 0,!1,{fileName:J,lineNumber:310,columnNumber:21},this)},void 0,!1,{fileName:J,lineNumber:302,columnNumber:19},this)]},e,!0,{fileName:J,lineNumber:297,columnNumber:17},this))},void 0,!1,{fileName:J,lineNumber:292,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:288,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:114,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`px-6 py-4 border-t border-[#e5e5ea] bg-[#f5f5f7] flex justify-end`,children:(0,F.jsxDEV)(`button`,{type:`button`,onClick:e,className:`px-5 py-2 rounded-xl bg-[#0071e3] text-white text-[12px] font-semibold hover:bg-[#0077ed] transition-apple`,children:`Done`},void 0,!1,{fileName:J,lineNumber:325,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:324,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:94,columnNumber:7},this)},void 0,!1,{fileName:J,lineNumber:93,columnNumber:5},this)}var Bd=`C:/Users/Shadow/Desktop/cyrus/src/components/activity/ActivityPanel.tsx`;function Vd(e){try{let t=new Date(e),n=Math.floor((new Date().getTime()-t.getTime())/1e3);return n<45?`Just now`:n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:n<604800?`${Math.floor(n/86400)}d ago`:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`})}catch{return`Recently`}}var Hd={project_created:{label:`Project Created`,icon:na,color:`#0071e3`,bg:`bg-[#0071e3]/10`},page_created:{label:`Page Created`,icon:Kn,color:`#34c759`,bg:`bg-[#34c759]/10`},ai_change:{label:`AI Change`,icon:vi,color:`#5856d6`,bg:`bg-[#5856d6]/10`},version_created:{label:`Version Created`,icon:Tr,color:`#ff9500`,bg:`bg-[#ff9500]/10`},comment_added:{label:`Comment Added`,icon:On,color:`#0071e3`,bg:`bg-[#0071e3]/10`},comment_resolved:{label:`Comment Resolved`,icon:$r,color:`#34c759`,bg:`bg-[#34c759]/10`},deployment_completed:{label:`Deployment Succeeded`,icon:Ge,color:`#34c759`,bg:`bg-[#34c759]/10`},deployment_failed:{label:`Deployment Failed`,icon:it,color:`#ff3b30`,bg:`bg-[#ff3b30]/10`},mention:{label:`Mention`,icon:Na,color:`#0071e3`,bg:`bg-[#0071e3]/10`},collaboration_joined:{label:`Collaborator Joined`,icon:Na,color:`#5856d6`,bg:`bg-[#5856d6]/10`}};function Ud(){let{activities:e,isActivityPanelOpen:t,setActivityPanelOpen:n,markAllAsRead:r,markAsRead:i,clearActivities:a}=lu(),{setActivePage:o}=I(),{toggleReviewMode:s}=P(),{setCommentsOpen:c}=mu(),[l,u]=(0,N.useState)(`all`),d=(0,N.useMemo)(()=>e.filter(e=>l===`all`?!0:l===`changes`?e.type===`page_created`||e.type===`version_created`||e.type===`project_created`:l===`ai`?e.type===`ai_change`:l===`comments`?e.type===`comment_added`||e.type===`comment_resolved`||e.type===`mention`:l!==`deployments`||e.type===`deployment_completed`||e.type===`deployment_failed`),[e,l]),f=e.filter(e=>e.isUnread).length;return t?(0,F.jsxDEV)(`div`,{className:`fixed inset-y-0 right-0 z-[99990] w-96 max-w-full bg-white/95 dark:bg-[#1c1c1e]/95 backdrop-blur-2xl border-l border-[#e5e5ea] dark:border-[#38383a] shadow-2xl flex flex-col animate-in slide-in-from-right duration-200`,children:[(0,F.jsxDEV)(`div`,{className:`p-4 border-b border-[#e5e5ea] dark:border-[#2c2c2e] flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`w-8 h-8 rounded-xl bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center`,children:(0,F.jsxDEV)(Tr,{className:`w-4 h-4`},void 0,!1,{fileName:Bd,lineNumber:164,columnNumber:13},this)},void 0,!1,{fileName:Bd,lineNumber:163,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h2`,{className:`text-[14px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Project Activity`},void 0,!1,{fileName:Bd,lineNumber:167,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b]`,children:`Timeline of changes, AI tasks & deployments`},void 0,!1,{fileName:Bd,lineNumber:170,columnNumber:13},this)]},void 0,!0,{fileName:Bd,lineNumber:166,columnNumber:11},this)]},void 0,!0,{fileName:Bd,lineNumber:162,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[f>0&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>r(),title:`Mark all as read`,className:`p-1.5 rounded-lg text-[#0071e3] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] text-[11px] font-medium flex items-center gap-1 cursor-pointer transition-colors`,children:[(0,F.jsxDEV)(qe,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Bd,lineNumber:184,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Read`},void 0,!1,{fileName:Bd,lineNumber:185,columnNumber:15},this)]},void 0,!0,{fileName:Bd,lineNumber:178,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>n(!1),className:`p-1.5 rounded-lg text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7] hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] cursor-pointer transition-colors`,children:(0,F.jsxDEV)(Ln,{className:`w-4 h-4`},void 0,!1,{fileName:Bd,lineNumber:194,columnNumber:13},this)},void 0,!1,{fileName:Bd,lineNumber:189,columnNumber:11},this)]},void 0,!0,{fileName:Bd,lineNumber:176,columnNumber:9},this)]},void 0,!0,{fileName:Bd,lineNumber:161,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`px-3 py-2 border-b border-[#f4f4f6] dark:border-[#2c2c2e] bg-[#fafafc] dark:bg-[#161618] flex items-center gap-1 overflow-x-auto no-scrollbar`,children:[{id:`all`,label:`All`},{id:`changes`,label:`Changes`},{id:`ai`,label:`AI Tasks`},{id:`comments`,label:`Comments`},{id:`deployments`,label:`Deploys`}].map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>u(e.id),className:j(`px-2.5 py-1 rounded-full text-[11px] font-medium whitespace-nowrap transition-apple cursor-pointer`,l===e.id?`bg-[#1d1d1f] dark:bg-white text-white dark:text-[#1d1d1f] shadow-2xs`:`text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-[#f5f5f7]`),children:e.label},e.id,!1,{fileName:Bd,lineNumber:210,columnNumber:11},this))},void 0,!1,{fileName:Bd,lineNumber:200,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-3 select-none`,children:d.length===0?(0,F.jsxDEV)(`div`,{className:`py-16 flex flex-col items-center justify-center text-center px-4`,children:[(0,F.jsxDEV)(`div`,{className:`w-10 h-10 rounded-2xl bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#86868b] flex items-center justify-center mb-2`,children:(0,F.jsxDEV)(Tr,{className:`w-5 h-5`},void 0,!1,{fileName:Bd,lineNumber:231,columnNumber:15},this)},void 0,!1,{fileName:Bd,lineNumber:230,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`No activity yet`},void 0,!1,{fileName:Bd,lineNumber:233,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b] mt-1`,children:`Events will appear here as you edit pages, use AI, or deploy.`},void 0,!1,{fileName:Bd,lineNumber:236,columnNumber:13},this)]},void 0,!0,{fileName:Bd,lineNumber:229,columnNumber:11},this):d.map(e=>{let t=Hd[e.type]||Hd.project_created;return t.icon,(0,F.jsxDEV)(`div`,{onClick:()=>{e.isUnread&&i(e.id),e.metadata?.pageId&&o(e.metadata.pageId),(e.type===`comment_added`||e.type===`comment_resolved`)&&(s(),c(!0))},className:j(`p-3 rounded-2xl border transition-all duration-150 flex flex-col gap-2 relative cursor-pointer`,e.isUnread?`bg-white dark:bg-[#242426] border-[#0071e3]/30 shadow-xs`:`bg-[#fafafc] dark:bg-[#1c1c1e] border-[#e5e5ea] dark:border-[#2c2c2e] hover:border-[#d2d2d7]`),children:[e.isUnread&&(0,F.jsxDEV)(`span`,{className:`absolute top-3 right-3 w-2 h-2 rounded-full bg-[#0071e3]`},void 0,!1,{fileName:Bd,lineNumber:265,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between pr-4`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`div`,{className:j(`w-7 h-7 rounded-full flex items-center justify-center text-[11px] font-bold text-white shrink-0`,e.actor.isAI?`bg-gradient-to-tr from-[#5856d6] to-[#af52de]`:`bg-[#0071e3]`),style:{backgroundColor:e.actor.color},children:e.actor.isAI?(0,F.jsxDEV)(vi,{className:`w-3.5 h-3.5 text-white`},void 0,!1,{fileName:Bd,lineNumber:279,columnNumber:25},this):(e.actor?.name?.slice(0,1)||`?`).toUpperCase()},void 0,!1,{fileName:Bd,lineNumber:271,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col min-w-0`,children:[(0,F.jsxDEV)(`span`,{className:`text-[12px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] truncate`,children:e.actor.name},void 0,!1,{fileName:Bd,lineNumber:285,columnNumber:23},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] font-medium text-[#86868b]`,children:Vd(e.timestamp)},void 0,!1,{fileName:Bd,lineNumber:288,columnNumber:23},this)]},void 0,!0,{fileName:Bd,lineNumber:284,columnNumber:21},this)]},void 0,!0,{fileName:Bd,lineNumber:270,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:j(`text-[9.5px] font-semibold px-2 py-0.5 rounded-md uppercase tracking-wider`,t.bg),style:{color:t.color},children:t.label},void 0,!1,{fileName:Bd,lineNumber:294,columnNumber:19},this)]},void 0,!0,{fileName:Bd,lineNumber:269,columnNumber:17},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[12.5px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:e.title},void 0,!1,{fileName:Bd,lineNumber:307,columnNumber:19},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] mt-0.5 leading-relaxed`,children:e.description},void 0,!1,{fileName:Bd,lineNumber:310,columnNumber:19},this)]},void 0,!0,{fileName:Bd,lineNumber:306,columnNumber:17},this),e.metadata?.changesSummary&&e.metadata.changesSummary.length>0&&(0,F.jsxDEV)(`div`,{className:`mt-1 p-2 rounded-xl bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[11px] text-[#1d1d1f] dark:text-[#f5f5f7] space-y-1`,children:e.metadata.changesSummary.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-[#0071e3]`},void 0,!1,{fileName:Bd,lineNumber:320,columnNumber:25},this),(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:Bd,lineNumber:321,columnNumber:25},this)]},t,!0,{fileName:Bd,lineNumber:319,columnNumber:23},this))},void 0,!1,{fileName:Bd,lineNumber:317,columnNumber:19},this),e.metadata?.deployUrl&&(0,F.jsxDEV)(`a`,{href:e.metadata.deployUrl,target:`_blank`,rel:`noreferrer`,onClick:e=>e.stopPropagation(),className:`inline-flex items-center gap-1 text-[11px] font-semibold text-[#0071e3] hover:underline mt-1`,children:[(0,F.jsxDEV)(`span`,{children:`View Deployment`},void 0,!1,{fileName:Bd,lineNumber:336,columnNumber:21},this),(0,F.jsxDEV)(et,{className:`w-3 h-3`},void 0,!1,{fileName:Bd,lineNumber:337,columnNumber:21},this)]},void 0,!0,{fileName:Bd,lineNumber:329,columnNumber:19},this)]},e.id,!0,{fileName:Bd,lineNumber:246,columnNumber:15},this)})},void 0,!1,{fileName:Bd,lineNumber:227,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`p-3 border-t border-[#e5e5ea] dark:border-[#2c2c2e] bg-[#fafafc] dark:bg-[#161618] flex items-center justify-between text-[11px] text-[#86868b]`,children:[(0,F.jsxDEV)(`span`,{children:[e.length,` total events recorded`]},void 0,!0,{fileName:Bd,lineNumber:348,columnNumber:9},this),e.length>0&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>a(),className:`text-[#ff3b30] hover:underline flex items-center gap-1 cursor-pointer`,children:[(0,F.jsxDEV)(Oe,{className:`w-3 h-3`},void 0,!1,{fileName:Bd,lineNumber:355,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Clear History`},void 0,!1,{fileName:Bd,lineNumber:356,columnNumber:13},this)]},void 0,!0,{fileName:Bd,lineNumber:350,columnNumber:11},this)]},void 0,!0,{fileName:Bd,lineNumber:347,columnNumber:7},this)]},void 0,!0,{fileName:Bd,lineNumber:159,columnNumber:5},this):null}function Wd(e,t){return`${e.toLowerCase().replace(/[^a-z0-9_-]/gi,`_`).replace(/_+/g,`_`)||`design`}.${t}`}async function Gd(e){let t=JSON.stringify(e,null,2),n=Wd(e.name,`cyrus`);if(`showSaveFilePicker`in window&&typeof window.showSaveFilePicker==`function`)try{let e=await window.showSaveFilePicker({suggestedName:n,types:[{description:`Cyrus Design File (*.cyrus)`,accept:{"application/json":[`.cyrus`,`.json`]}}]}),r=await e.createWritable();return await r.write(t),await r.close(),{success:!0,filename:e.name||n}}catch(e){if(e.name===`AbortError`)return{success:!1,filename:n}}let r=new Blob([t],{type:`application/json;charset=utf-8`}),i=URL.createObjectURL(r),a=document.createElement(`a`);return a.href=i,a.download=n,a.style.display=`none`,document.body.appendChild(a),a.click(),document.body.removeChild(a),setTimeout(()=>URL.revokeObjectURL(i),1e3),{success:!0,filename:n}}async function Kd(e,t){let n=Oc((t?e.pages.find(e=>e.id===t):e.pages[0])||e.pages[0],`html-css`),r=Wd(e.name,`html`),i=new Blob([n],{type:`text/html;charset=utf-8`}),a=URL.createObjectURL(i),o=document.createElement(`a`);return o.href=a,o.download=r,document.body.appendChild(o),o.click(),document.body.removeChild(o),setTimeout(()=>URL.revokeObjectURL(a),1e3),{success:!0,filename:r}}function qd(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function Jd(e){return e.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,``).replace(/on\w+\s*=\s*(["']).*?\1/gi,``).replace(/javascript:/gi,``)}async function Yd(e,t){let n=t?.settings?.width||1440,r=t?.settings?.height||900,i=`<?xml version="1.0" encoding="UTF-8"?>
|
|
2160
|
+
<svg width="${n}" height="${r}" viewBox="0 0 ${n} ${r}" xmlns="http://www.w3.org/2000/svg">
|
|
2161
|
+
<rect width="${n}" height="${r}" fill="${t?.settings?.backgroundColor||`#ffffff`}"/>
|
|
2162
|
+
${(t.elements||[]).map(e=>{if(e.content?.svg)return`<g transform="translate(${e.x}, ${e.y})">${Jd(e.content.svg)}</g>`;if(e.content?.pathD){let t=e.styles?.strokeColor||e.styles?.textColor||`#ff3b30`,n=e.styles?.strokeWidth||3.5;return`<g transform="translate(${e.x}, ${e.y})"><path d="${e.content.pathD}" stroke="${t}" stroke-width="${n}" fill="none" stroke-linecap="round" stroke-linejoin="round"/></g>`}let t=e.styles?.backgroundColor||`#ffffff`,n=e.styles?.borderColor||`none`,r=e.styles?.borderWidth||0,i=e.styles?.borderRadius||0,a=qd(e.content?.text||e.content?.label||e.content?.title||``);return`<g transform="translate(${e.x}, ${e.y})">
|
|
2163
|
+
<rect width="${e.width}" height="${e.height}" fill="${t}" stroke="${n}" stroke-width="${r}" rx="${i}"/>
|
|
2164
|
+
${a?`<text x="${e.width/2}" y="${e.height/2+5}" font-family="-apple-system, sans-serif" font-size="${e.styles?.fontSize||14}" fill="${e.styles?.textColor||`#1d1d1f`}" text-anchor="middle">${a}</text>`:``}
|
|
2165
|
+
</g>`}).join(`
|
|
2166
|
+
`)}
|
|
2167
|
+
</svg>`,a=Wd(`${e.name}_${t.name}`,`svg`),o=new Blob([i],{type:`image/svg+xml;charset=utf-8`}),s=URL.createObjectURL(o),c=document.createElement(`a`);return c.href=s,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),setTimeout(()=>URL.revokeObjectURL(s),1e3),{success:!0,filename:a}}function Xd(){(0,N.useEffect)(()=>{let e=(e,t)=>{let{activeProject:n,activePageId:r,addElement:i,selectElement:a}=I.getState();if(!n||!r)return;let o=Cu.find(t=>t.id===e);if(!o)return;let s={id:M(),type:o.type,name:t,x:240,y:180,width:o.defaultWidth||320,height:o.defaultHeight||160,rotation:0,zIndex:10,styles:{...o.defaultStyles},content:{...o.defaultContent}};i(s),a(s.id),oo.getState().addToast(`Added ${t}`,`success`)},t=t=>{let n=t.target,r=n.tagName===`INPUT`||n.tagName===`TEXTAREA`||n.isContentEditable,i=pd.getShortcuts(),a=I.getState(),o=P.getState();for(let n of i)if(sd(t,n.customBinding||n.defaultBinding)){if(r&&!n.allowInInput)continue;if(n.id===`paste`)return;switch(t.preventDefault(),n.id){case`undo`:a.undo();break;case`redo`:a.redo();break;case`save`:a.saveCurrentProject(),a.activeProject?Gd(a.activeProject).then(e=>{e.success&&oo.getState().addToast(`Saved to device: ${e.filename}`,`success`)}):oo.getState().addToast(`Project saved`,`success`);break;case`commandPalette`:o.setCommandPaletteOpen(!o.isCommandPaletteOpen);break;case`preview`:o.togglePreviewMode();break;case`helpShortcuts`:o.setShortcutsOpen(!0);break;case`exportProject`:o.setShareOpen(!0);break;case`createApp`:o.setCreateAppOpen(!0);break;case`copy`:a.copySelectedElements();break;case`paste`:break;case`duplicate`:a.duplicateSelectedElements();break;case`delete`:a.deleteSelectedElements();break;case`selectAll`:a.selectAllElements();break;case`group`:a.groupSelectedElements();break;case`ungroup`:a.ungroupSelectedElements();break;case`lock`:a.toggleLockSelectedElements();break;case`hide`:a.toggleHideSelectedElements();break;case`deselect`:a.selectElement(null),o.setToolMode(`select`);break;case`zoomIn`:o.zoomIn();break;case`zoomOut`:o.zoomOut();break;case`resetZoom`:o.resetZoom();break;case`fitCanvas`:o.fitToScreen(window.innerWidth,window.innerHeight);break;case`toggleGrid`:o.toggleGrid();break;case`toolSelect`:o.setToolMode(`select`);break;case`toolHand`:o.setToolMode(o.toolMode===`hand`?`select`:`hand`);break;case`toolComment`:o.setToolMode(o.toolMode===`comment`?`select`:`comment`),mu.getState().setCommentsOpen(!0);break;case`addText`:e(`text_heading_1`,`Heading`);break;case`addRectangle`:e(`card_glass`,`Container Box`);break;case`addButton`:e(`btn_primary`,`Button`);break;case`addImage`:e(`media_image`,`Image Container`);break;case`addStatCard`:e(`dash_stat_card`,`Stat Card`);break;case`addLineChart`:e(`chart_line`,`Line Chart`)}return}r||(t.key===`ArrowUp`?(t.preventDefault(),a.nudgeSelectedElements(0,t.shiftKey?-10:-1)):t.key===`ArrowDown`?(t.preventDefault(),a.nudgeSelectedElements(0,t.shiftKey?10:1)):t.key===`ArrowLeft`?(t.preventDefault(),a.nudgeSelectedElements(t.shiftKey?-10:-1,0)):t.key===`ArrowRight`&&(t.preventDefault(),a.nudgeSelectedElements(t.shiftKey?10:1,0)))},n=e=>{let t=e.target;if(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable))return;let n=I.getState(),r=n.activeProject,i=n.activePageId;if(!r||!i)return;let a=e.clipboardData;if(!a)return;let o=[];if(a.files&&a.files.length>0&&(o=Array.from(a.files).filter(e=>e.type.startsWith(`image/`))),o.length===0&&a.items&&a.items.length>0){let e=Array.from(a.items);for(let t of e)if(t.type.startsWith(`image/`)){let e=t.getAsFile();e&&o.push(e)}}if(o.length>0){e.preventDefault(),e.stopPropagation(),o.forEach((e,t)=>{let n=new FileReader;n.onload=n=>{let r=n.target?.result;if(!r)return;let i=new Image;i.onload=()=>{let n=I.getState(),a=((n.activeProject?.pages.find(e=>e.id===n.activePageId))?.elements.length||0)+t,o=i.width||400,s=i.height||300;o>560&&(s=Math.round(s*560/o),o=560);let c={id:M(`elem`),type:`image`,name:e.name?`Pasted Image (${e.name})`:`Pasted Image`,x:Math.min(320,120+a%5*30),y:Math.min(380,120+a%5*30),width:o,height:s,rotation:0,zIndex:30+a,styles:{borderRadius:12,shadow:`md`,opacity:1},content:{url:r,src:r,alt:`Pasted image`}};n.addElement(c),n.selectElement(c.id),oo.getState().addToast(`Pasted image onto craft page!`,`success`)},i.src=r},n.readAsDataURL(e)});return}let s=a.getData(`text/html`),c=s?s.match(/<img[^>]+src=["']([^"']+)["']/i):null,l=c?c[1]:null,u=a.getData(`text/plain`)?.trim(),d=u&&(u.startsWith(`data:image/`)||u.startsWith(`blob:`)||/^https?:\/\/.+/i.test(u)&&/\.(jpeg|jpg|gif|png|svg|webp)($|\?)/i.test(u)),f=l||(d?u:null);if(f){e.preventDefault(),e.stopPropagation();let t=new Image;t.crossOrigin=`anonymous`,t.onload=()=>{let e=I.getState(),n=(e.activeProject?.pages.find(t=>t.id===e.activePageId))?.elements.length||0,r=t.width||400,i=t.height||300;r>560&&(i=Math.round(i*560/r),r=560);let a={id:M(`elem`),type:`image`,name:`Pasted Web Image`,x:Math.min(320,120+n%5*30),y:Math.min(380,120+n%5*30),width:r,height:i,rotation:0,zIndex:30+n,styles:{borderRadius:12,shadow:`md`,opacity:1},content:{url:f,src:f,alt:`Pasted web image`}};e.addElement(a),e.selectElement(a.id),oo.getState().addToast(`Pasted image onto craft page!`,`success`)},t.onerror=()=>{let e=I.getState();e.clipboard.length>0&&e.pasteElements()},t.src=f;return}n.clipboard.length>0&&(e.preventDefault(),n.pasteElements())};return window.addEventListener(`keydown`,t),window.addEventListener(`paste`,n),()=>{window.removeEventListener(`keydown`,t),window.removeEventListener(`paste`,n)}},[])}var Zd=`C:/Users/Shadow/Desktop/cyrus/src/pages/EditorPage.tsx`,Qd=(0,N.lazy)(()=>Pc(()=>import(`./CreateAppDialog-DrI4Lkd8.js`).then(e=>({default:e.CreateAppDialog})),__vite__mapDeps([9,1,2,3,4,5,6,10,11]))),$d=(0,N.lazy)(()=>Pc(()=>import(`./ShareExportDialog-Dp3sb0kP.js`).then(e=>({default:e.ShareExportDialog})),__vite__mapDeps([12,1,2,3,4,5,6]))),ef=(0,N.lazy)(()=>Pc(()=>import(`./CanvaSaveModal-BOOuwAeY.js`).then(e=>({default:e.CanvaSaveModal})),__vite__mapDeps([13,1,2,3,4,5,6,10,11]))),tf=(0,N.lazy)(()=>Pc(()=>import(`./HistoryTimelineDialog-IxHPdvMy.js`).then(e=>({default:e.HistoryTimelineDialog})),__vite__mapDeps([14,1,2,3,4,5,6]))),nf=(0,N.lazy)(()=>Pc(()=>import(`./KeyboardShortcutsDialog-BToCWj6j.js`).then(e=>({default:e.KeyboardShortcutsDialog})),__vite__mapDeps([15,1,2,3,4]))),rf=(0,N.lazy)(()=>Pc(()=>import(`./LiveRuntimeWorkspace-BgtwTTvN.js`).then(e=>({default:e.LiveRuntimeWorkspace})),__vite__mapDeps([16,1,2,3,4,5,6]))),af=(0,N.lazy)(()=>Pc(()=>import(`./CodingWorkspace-IGR61s5_.js`).then(e=>({default:e.CodingWorkspace})),__vite__mapDeps([17,1,2,3,4,5,6,10,11]))),of=(0,N.lazy)(()=>Pc(()=>import(`./AuthDialog-Dry3B6Q0.js`).then(e=>({default:e.AuthDialog})),__vite__mapDeps([18,1,2,3,5,4,6]))),sf=(0,N.lazy)(()=>Pc(()=>import(`./UserProfileDialog-CIISMYby.js`).then(e=>({default:e.UserProfileDialog})),__vite__mapDeps([19,1,2,3,5,4,6])));function cf({projectId:e,onNavigateDashboard:t,onNavigateSettings:n}){let[r,i]=(0,N.useState)(`design`),{initAuth:a}=cs(),{activeProject:o,activePageId:s,loadProjectFromStorage:c}=I(),{isPreviewMode:l,togglePreviewMode:u,isCreateAppOpen:d,setCreateAppOpen:f,isShareOpen:p,setShareOpen:m,isSaveDesignOpen:h,setSaveDesignOpen:g,isHistoryOpen:_,setHistoryOpen:v,isShortcutsOpen:y,setShortcutsOpen:b,isReviewMode:x,toggleReviewMode:S}=P(),{isCommentsOpen:C,setCommentsOpen:w,isSharePanelOpen:T,setSharePanelOpen:ee,selfId:E,selfColor:te}=mu(),[D,ne]=(0,N.useState)(!0),[re,ie]=(0,N.useState)(!1);(0,N.useEffect)(()=>{x&&w(!0)},[x,w]),xu(o?o.id:null);let O=(0,N.useRef)(null),ae=(0,N.useCallback)(e=>{if(O.current)return;O.current=setTimeout(()=>{O.current=null},50);let t=yu();if(!t||!s)return;let n=e.currentTarget;if(!n)return;let r=n.getBoundingClientRect(),{zoom:i,pan:a}=P.getState(),o=(e.clientX-r.left-a.x)/i,c=(e.clientY-r.top-a.y)/i;t.updateCursor({x:o,y:c,pageId:s})},[s]);if((0,N.useEffect)(()=>{a();let t=!0;return ne(!0),ie(!1),c(e).then(e=>{t&&(ne(!1),e||ie(!0))}),()=>{t=!1}},[e]),(0,N.useEffect)(()=>{let e=()=>{I.getState().saveCurrentProject()};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[]),Xd(),D)return(0,F.jsxDEV)(`div`,{className:`h-screen w-screen flex flex-col items-center justify-center bg-[#f5f5f7] dark:bg-[#000000] text-[#6e6e73] dark:text-[#8e8e93] gap-3`,children:[(0,F.jsxDEV)(kr,{className:`w-6 h-6 animate-spin text-[#0071e3] dark:text-[#0a84ff]`},void 0,!1,{fileName:Zd,lineNumber:164,columnNumber:9},this),(0,F.jsxDEV)(`span`,{className:`text-[13px] font-medium text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Loading Cyrus Workspace...`},void 0,!1,{fileName:Zd,lineNumber:165,columnNumber:9},this)]},void 0,!0,{fileName:Zd,lineNumber:163,columnNumber:7},this);if(re||!o)return(0,F.jsxDEV)(`div`,{className:`h-screen w-screen flex flex-col items-center justify-center bg-[#f5f5f7] dark:bg-[#000000] p-6 text-center`,children:(0,F.jsxDEV)(`div`,{className:`p-6 rounded-[16px] bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#38383a] shadow-apple-md max-w-sm flex flex-col items-center gap-3`,children:[(0,F.jsxDEV)(`div`,{className:`text-[16px] font-semibold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Project Not Found`},void 0,!1,{fileName:Zd,lineNumber:174,columnNumber:11},this),(0,F.jsxDEV)(`p`,{className:`text-[13px] text-[#86868b] dark:text-[#636366]`,children:`The requested project could not be found or failed to load from local storage.`},void 0,!1,{fileName:Zd,lineNumber:175,columnNumber:11},this),(0,F.jsxDEV)(fs,{variant:`primary`,onClick:t,icon:(0,F.jsxDEV)(Kt,{className:`w-4 h-4`},void 0,!1,{fileName:Zd,lineNumber:178,columnNumber:73},this),children:`Return to Dashboard`},void 0,!1,{fileName:Zd,lineNumber:178,columnNumber:11},this)]},void 0,!0,{fileName:Zd,lineNumber:173,columnNumber:9},this)},void 0,!1,{fileName:Zd,lineNumber:172,columnNumber:7},this);let oe=o.pages.find(e=>e.id===s)||o.pages[0]||{id:`default_page`,name:`Page 1`,slug:`page-1`,elements:[],settings:{backgroundColor:`#ffffff`,width:1440,height:900}};return(0,F.jsxDEV)(`div`,{className:`h-screen w-screen flex flex-col overflow-hidden bg-[#f5f5f7] dark:bg-[#000000] text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[(r===`preview`||l)&&(0,F.jsxDEV)(N.Suspense,{fallback:(0,F.jsxDEV)(`div`,{className:`h-screen w-screen flex items-center justify-center bg-[#1d1d1f] text-white`,children:(0,F.jsxDEV)(kr,{className:`w-6 h-6 animate-spin text-[#0071e3] dark:text-[#0a84ff]`},void 0,!1,{fileName:Zd,lineNumber:200,columnNumber:121},this)},void 0,!1,{fileName:Zd,lineNumber:200,columnNumber:29},this),children:(0,F.jsxDEV)(rf,{project:o,initialPageId:s,onBackToDesign:()=>{i(`design`),l&&u()},onOpenCodingMode:()=>{i(`code`),l&&u()},onExit:()=>{i(`design`),l&&u()}},void 0,!1,{fileName:Zd,lineNumber:201,columnNumber:11},this)},void 0,!1,{fileName:Zd,lineNumber:200,columnNumber:9},this),r===`code`&&(0,F.jsxDEV)(N.Suspense,{fallback:(0,F.jsxDEV)(`div`,{className:`h-screen w-screen flex items-center justify-center bg-[#1e1e1e] text-white`,children:(0,F.jsxDEV)(kr,{className:`w-6 h-6 animate-spin text-[#0071e3] dark:text-[#0a84ff]`},void 0,!1,{fileName:Zd,lineNumber:222,columnNumber:121},this)},void 0,!1,{fileName:Zd,lineNumber:222,columnNumber:29},this),children:(0,F.jsxDEV)(af,{onBackToDesign:()=>i(`design`),onOpenPreview:()=>i(`preview`)},void 0,!1,{fileName:Zd,lineNumber:223,columnNumber:11},this)},void 0,!1,{fileName:Zd,lineNumber:222,columnNumber:9},this),(0,F.jsxDEV)(Bc,{onBack:t,onOpenCodingMode:()=>i(`code`)},void 0,!1,{fileName:Zd,lineNumber:231,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex overflow-hidden relative`,children:[(0,F.jsxDEV)(Cl,{onNavigateSettings:n},void 0,!1,{fileName:Zd,lineNumber:238,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex-1 relative overflow-hidden flex flex-col`,onMouseMove:e=>ae(e.nativeEvent),children:[(0,F.jsxDEV)(`div`,{className:`flex-1 relative overflow-hidden`,children:(0,F.jsxDEV)(vd,{page:oe},void 0,!1,{fileName:Zd,lineNumber:247,columnNumber:13},this)},void 0,!1,{fileName:Zd,lineNumber:246,columnNumber:11},this),(0,F.jsxDEV)(Md,{},void 0,!1,{fileName:Zd,lineNumber:250,columnNumber:11},this)]},void 0,!0,{fileName:Zd,lineNumber:242,columnNumber:9},this),(0,F.jsxDEV)(jd,{},void 0,!1,{fileName:Zd,lineNumber:252,columnNumber:9},this)]},void 0,!0,{fileName:Zd,lineNumber:237,columnNumber:7},this),T&&(0,F.jsxDEV)(zd,{onClose:()=>ee(!1)},void 0,!1,{fileName:Zd,lineNumber:257,columnNumber:9},this),(0,F.jsxDEV)(N.Suspense,{fallback:null,children:[d&&(0,F.jsxDEV)(Qd,{isOpen:d,onClose:()=>f(!1)},void 0,!1,{fileName:Zd,lineNumber:263,columnNumber:11},this),p&&(0,F.jsxDEV)($d,{isOpen:p,onClose:()=>m(!1)},void 0,!1,{fileName:Zd,lineNumber:269,columnNumber:11},this),h&&(0,F.jsxDEV)(ef,{isOpen:h,onClose:()=>g(!1)},void 0,!1,{fileName:Zd,lineNumber:275,columnNumber:11},this),_&&(0,F.jsxDEV)(tf,{isOpen:_,onClose:()=>v(!1)},void 0,!1,{fileName:Zd,lineNumber:281,columnNumber:11},this),y&&(0,F.jsxDEV)(nf,{isOpen:y,onClose:()=>b(!1)},void 0,!1,{fileName:Zd,lineNumber:287,columnNumber:11},this),(0,F.jsxDEV)(Rd,{},void 0,!1,{fileName:Zd,lineNumber:292,columnNumber:9},this),(0,F.jsxDEV)(Ud,{},void 0,!1,{fileName:Zd,lineNumber:293,columnNumber:9},this),(0,F.jsxDEV)(of,{},void 0,!1,{fileName:Zd,lineNumber:294,columnNumber:9},this),(0,F.jsxDEV)(sf,{},void 0,!1,{fileName:Zd,lineNumber:295,columnNumber:9},this)]},void 0,!0,{fileName:Zd,lineNumber:261,columnNumber:7},this)]},void 0,!0,{fileName:Zd,lineNumber:197,columnNumber:5},this)}var lf=null;function uf(){let e=window.AudioContext||window.webkitAudioContext;return e?((!lf||lf.state===`closed`)&&(lf=new e),lf.state===`suspended`&&lf.resume(),lf):null}function df(){try{let e=uf();if(!e)return;let t=e.createOscillator(),n=e.createGain();t.type=`sine`,t.frequency.setValueAtTime(587.33,e.currentTime),t.frequency.setValueAtTime(880,e.currentTime+.08),n.gain.setValueAtTime(.08,e.currentTime),n.gain.exponentialRampToValueAtTime(.001,e.currentTime+.35),t.connect(n),n.connect(e.destination),t.start(e.currentTime),t.stop(e.currentTime+.35)}catch{}}var ff={free:{id:`free`,name:`Free`,tagline:`Explore & Prototype`,description:`Core visual canvas tools, standard code export, and basic AI assistance.`,priceMonthly:0,priceYearly:0,limits:{maxProjects:3,maxStorageMb:50,maxAiGenerationsPerMonth:25,maxCollaboratorsPerProject:1,maxDeploymentsPerMonth:1,maxCustomDomains:0,historyRetentionDays:7,features:{create_project:!0,ai_generation:!0,ai_coding_workspace:!1,export_react:!0,export_nextjs:!1,export_react_native:!1,custom_domain:!1,collaboration:!1,version_history:!0,custom_tokens:!1,deployments:!0,advanced_analytics:!1}},featureBullets:[`Up to 3 active projects`,`Visual canvas & core editing tools`,`Basic AI assistance`,`Bring Your Own API Key`,`React + TypeScript export`]},pro:{id:`pro`,name:`Pro`,tagline:`Build Production-Ready Apps`,description:`Unlimited canvas & multi-page apps, advanced AI coding & generation, and multi-framework export.`,priceMonthly:49,priceYearly:39,badge:`Popular`,highlighted:!0,limits:{maxProjects:50,maxStorageMb:2e3,maxAiGenerationsPerMonth:500,maxCollaboratorsPerProject:5,maxDeploymentsPerMonth:15,maxCustomDomains:3,historyRetentionDays:90,features:{create_project:!0,ai_generation:!0,ai_coding_workspace:!0,export_react:!0,export_nextjs:!0,export_react_native:!0,custom_domain:!0,collaboration:!0,version_history:!0,custom_tokens:!0,deployments:!0,advanced_analytics:!0}},featureBullets:[`Up to 50 active projects`,`Unlimited canvas & multi-page apps`,`Advanced AI coding & generation`,`Full BYOK model support + project context`,`React, Next.js & React Native export`]},team:{id:`team`,name:`Team`,tagline:`Build Together`,description:`Collaborative workspace with shared design systems, component libraries, and team permissions.`,priceMonthly:99,priceYearly:79,limits:{maxProjects:250,maxStorageMb:1e4,maxAiGenerationsPerMonth:2500,maxCollaboratorsPerProject:25,maxDeploymentsPerMonth:100,maxCustomDomains:15,historyRetentionDays:365,features:{create_project:!0,ai_generation:!0,ai_coding_workspace:!0,export_react:!0,export_nextjs:!0,export_react_native:!0,custom_domain:!0,collaboration:!0,version_history:!0,custom_tokens:!0,deployments:!0,advanced_analytics:!0}},featureBullets:[`Up to 250 active projects`,`Shared team workspaces`,`Shared component library`,`Advanced collaboration & permissions`,`Everything in Pro`]},enterprise:{id:`enterprise`,name:`Enterprise`,tagline:`For large organizations demanding dedicated infrastructure and security.`,description:`Unlimited capacity, SAML SSO, on-premise AI models, and dedicated SLA.`,priceMonthly:299,priceYearly:249,badge:`Enterprise`,limits:{maxProjects:1/0,maxStorageMb:1/0,maxAiGenerationsPerMonth:1/0,maxCollaboratorsPerProject:1/0,maxDeploymentsPerMonth:1/0,maxCustomDomains:1/0,historyRetentionDays:1/0,features:{create_project:!0,ai_generation:!0,ai_coding_workspace:!0,export_react:!0,export_nextjs:!0,export_react_native:!0,custom_domain:!0,collaboration:!0,version_history:!0,custom_tokens:!0,deployments:!0,advanced_analytics:!0}},featureBullets:[`Unlimited projects, storage & team members`,`Unlimited AI generations with custom LLM endpoints`,`SAML SSO & SCIM directory synchronization`,`Dedicated VPC or on-premise private deployment`,`99.99% uptime SLA & 24/7 dedicated engineering support`,`Custom contractual security & compliance review`]}};function pf(e){return ff[e]||ff.free}function mf(){return Object.values(ff)}var hf=[{id:`pack_100`,name:`Starter Pack`,credits:100,priceUsd:10,pricePerCredit:`$0.10 / credit`,badge:`Starter`,description:`Ideal for quick AI layout prompts and one-off project exports.`,features:[`100 AI Generation & Export credits ($0.10/each)`,`Credits never expire`,`Use on React, Next.js, Flutter & SwiftUI exports`,`Zero monthly commitment`]},{id:`pack_300`,name:`Pro Pack`,credits:300,priceUsd:25,pricePerCredit:`$0.08 / credit`,badge:`Popular`,highlighted:!0,description:`Great for building, generating, and iterating on multi-page applications.`,features:[`300 AI Generation & Export credits ($0.08/each)`,`Includes 50 bonus credits (17% savings)`,`Credits never expire`,`Priority AI generation processing`]},{id:`pack_700`,name:`Power Pack`,credits:700,priceUsd:50,pricePerCredit:`$0.07 / credit`,badge:`Best Value`,description:`For active freelance builders and power creators generating high volume.`,features:[`700 AI Generation & Export credits ($0.07/each)`,`Includes 200 bonus credits (28% savings)`,`Credits never expire`,`Priority generation & high-res asset exports`]}],gf=`cyrus_usage_stats_v1`;function _f(){return{projectsCount:0,storageMb:0,aiGenerationsThisMonth:0,collaboratorsCount:0,deploymentsThisMonth:0,customDomainsCount:0,lastResetDate:new Date().toISOString()}}var vf=new class{usage;constructor(){this.usage=this.loadUsage()}loadUsage(){try{if(typeof localStorage<`u`){let e=localStorage.getItem(gf);if(e){let t=JSON.parse(e),n=_f();return{projectsCount:Number(t.projectsCount)||n.projectsCount,storageMb:Number(t.storageMb)||n.storageMb,aiGenerationsThisMonth:Number(t.aiGenerationsThisMonth)||n.aiGenerationsThisMonth,collaboratorsCount:Number(t.collaboratorsCount)||n.collaboratorsCount,deploymentsThisMonth:Number(t.deploymentsThisMonth)||n.deploymentsThisMonth,customDomainsCount:Number(t.customDomainsCount)||n.customDomainsCount,lastResetDate:t.lastResetDate||n.lastResetDate}}}}catch{}return _f()}saveUsage(){try{typeof localStorage<`u`&&localStorage.setItem(gf,JSON.stringify(this.usage))}catch{}}checkAndResetMonthlyCounters(){try{let e=new Date(this.usage.lastResetDate),t=new Date;(e.getMonth()!==t.getMonth()||e.getFullYear()!==t.getFullYear())&&(this.usage.aiGenerationsThisMonth=0,this.usage.deploymentsThisMonth=0,this.usage.lastResetDate=t.toISOString(),this.saveUsage())}catch{}}getCurrentPlan(){try{return No.getState().billing?.plan||`free`}catch{return`free`}}setCurrentPlan(e){if(ff[e])try{No.getState().updateBilling({plan:e})}catch{}}getPlanDefinition(e){return pf(e||this.getCurrentPlan())}getPlanLimits(e){return this.getPlanDefinition(e).limits}getAllPlans(){return mf()}getUsage(){return this.checkAndResetMonthlyCounters(),{...this.usage}}recordUsage(e,t=1){switch(this.checkAndResetMonthlyCounters(),e){case`projects`:this.usage.projectsCount=Math.max(0,(this.usage.projectsCount||0)+t);break;case`storageMb`:this.usage.storageMb=Math.max(0,(this.usage.storageMb||0)+t);break;case`aiGenerations`:this.usage.aiGenerationsThisMonth=Math.max(0,(this.usage.aiGenerationsThisMonth||0)+t);break;case`collaborators`:this.usage.collaboratorsCount=Math.max(0,(this.usage.collaboratorsCount||0)+t);break;case`deployments`:this.usage.deploymentsThisMonth=Math.max(0,(this.usage.deploymentsThisMonth||0)+t);break;case`customDomains`:this.usage.customDomainsCount=Math.max(0,(this.usage.customDomainsCount||0)+t)}this.saveUsage()}setMetricUsage(e,t){let n=isNaN(t)?0:Math.max(0,t);switch(e){case`projects`:this.usage.projectsCount=n;break;case`storageMb`:this.usage.storageMb=n;break;case`aiGenerations`:this.usage.aiGenerationsThisMonth=n;break;case`collaborators`:this.usage.collaboratorsCount=n;break;case`deployments`:this.usage.deploymentsThisMonth=n;break;case`customDomains`:this.usage.customDomainsCount=n}this.saveUsage()}resetUsage(){this.usage=_f(),this.saveUsage()}canUserUse(e,t){this.checkAndResetMonthlyCounters();let n=this.getPlanDefinition(),r=n.limits;if(r.features[e]===!1){let t=`pro`,r=`This feature`;switch(e){case`ai_coding_workspace`:r=`The AI Multi-File Coding Workspace`,t=`pro`;break;case`export_nextjs`:r=`Next.js 14 App Router Code Export`,t=`pro`;break;case`export_react_native`:r=`React Native (Expo) Mobile Export`,t=`pro`;break;case`custom_domain`:r=`Custom Domains & SSL`,t=`pro`;break;case`collaboration`:r=`Multiplayer Team Collaboration`,t=`pro`;break;case`custom_tokens`:r=`Custom Organization Design Tokens`,t=`pro`;break;case`advanced_analytics`:r=`Advanced Interaction Analytics`,t=`pro`}return{allowed:!1,reason:`${r} requires a ${pf(t).name} plan or higher.`,feature:e,currentPlan:n.id,suggestedPlan:t}}if(e===`create_project`){let i=t?.currentUsage??(this.usage.projectsCount||0),a=t?.requestedAmount??1;if(isFinite(r.maxProjects)&&i+a>r.maxProjects){let t=n.id===`free`?`pro`:n.id===`pro`?`team`:`enterprise`;return{allowed:!1,reason:`Your ${n.name} plan has reached its limit of ${r.maxProjects} project${r.maxProjects===1?``:`s`}.`,feature:e,currentPlan:n.id,suggestedPlan:t,limit:r.maxProjects,currentUsage:i}}}if(e===`ai_generation`){let i=t?.currentUsage??(this.usage.aiGenerationsThisMonth||0),a=t?.requestedAmount??1;if(isFinite(r.maxAiGenerationsPerMonth)&&i+a>r.maxAiGenerationsPerMonth){let t=n.id===`free`?`pro`:n.id===`pro`?`team`:`enterprise`;return{allowed:!1,reason:`Your current plan has reached its AI usage limit (${r.maxAiGenerationsPerMonth} generations / month).`,feature:e,currentPlan:n.id,suggestedPlan:t,limit:r.maxAiGenerationsPerMonth,currentUsage:i}}}if(e===`custom_domain`){let i=t?.currentUsage??(this.usage.customDomainsCount||0);if(isFinite(r.maxCustomDomains)&&i>=r.maxCustomDomains){let t=n.id===`free`?`pro`:n.id===`pro`?`team`:`enterprise`;return{allowed:!1,reason:`Your ${n.name} plan has reached its limit of ${r.maxCustomDomains} custom domain${r.maxCustomDomains===1?``:`s`}.`,feature:e,currentPlan:n.id,suggestedPlan:t,limit:r.maxCustomDomains,currentUsage:i}}}if(e===`deployments`){let i=t?.currentUsage??(this.usage.deploymentsThisMonth||0);if(isFinite(r.maxDeploymentsPerMonth)&&i>=r.maxDeploymentsPerMonth){let t=n.id===`free`?`pro`:n.id===`pro`?`team`:`enterprise`;return{allowed:!1,reason:`Your ${n.name} plan has reached its limit of ${r.maxDeploymentsPerMonth} deployment${r.maxDeploymentsPerMonth===1?``:`s`} this month.`,feature:e,currentPlan:n.id,suggestedPlan:t,limit:r.maxDeploymentsPerMonth,currentUsage:i}}}return{allowed:!0,feature:e,currentPlan:n.id}}},yf=`cyrus_auth_token`;function bf(){try{return localStorage.getItem(yf)}catch{return null}}async function xf(e,t={}){let n=new Headers(t.headers);!n.has(`Content-Type`)&&t.body&&!(t.body instanceof FormData)&&n.set(`Content-Type`,`application/json`);let r=bf();r&&n.set(`Authorization`,`Bearer ${r}`);let i=new AbortController,a=setTimeout(()=>i.abort(),3e4);try{let r=await fetch(e,{...t,headers:n,signal:t.signal||i.signal});clearTimeout(a);let o=await r.json().catch(()=>({}));if(!r.ok)throw Error(o.error||`Request failed (${r.status})`);return o}catch(e){throw clearTimeout(a),e}}var Sf=class{id=`dev_sim`;name=`Development Test Mode`;isLive=!1;async createCheckoutSession(e,t){return await new Promise(e=>setTimeout(e,400)),vf.setCurrentPlan(e),{success:!0,mode:`test_simulation`,message:`[Development Test Mode] Switched local plan to "${e.toUpperCase()}" (${t}). Live card processing requires connecting a production gateway (e.g. Stripe).`,sessionId:`test_sess_${Date.now()}`}}async createCreditCheckoutSession(e){return await new Promise(e=>setTimeout(e,400)),{success:!0,mode:`test_simulation`,message:`[Development Test Mode] Simulated credit purchase for "${e}". Live purchases require Stripe gateway.`,sessionId:`test_credit_sess_${Date.now()}`}}async createCustomerPortalSession(){return{success:!0,message:`[Development Test Mode] Customer billing portal simulation active. Configure backend endpoint for live billing self-service.`}}async getSubscriptionStatus(){return{planId:vf.getCurrentPlan(),status:`development`,billingCycle:`monthly`,provider:`Development Test Provider`,isLive:!1}}},Cf=class{publishableKey;checkoutEndpoint;id=`stripe`;name=`Stripe`;isLive=!0;constructor(e,t=`/api/billing/create-checkout`){this.publishableKey=e,this.checkoutEndpoint=t}async createCheckoutSession(e,t){try{let n=await xf(this.checkoutEndpoint,{method:`POST`,body:JSON.stringify({planId:e,billingCycle:t})});return(n.checkoutUrl||n.url)&&(window.location.href=n.checkoutUrl||n.url),{success:!0,checkoutUrl:n.url,mode:`live_hosted`,message:`Redirecting to secure Stripe checkout...`,sessionId:n.sessionId}}catch(e){return{success:!1,mode:`live_hosted`,message:e?.message||`Failed to initialize Stripe checkout session.`}}}async createCreditCheckoutSession(e){try{let t=await xf(this.checkoutEndpoint,{method:`POST`,body:JSON.stringify({packId:e})});return(t.checkoutUrl||t.url)&&(window.location.href=t.checkoutUrl||t.url),{success:!0,checkoutUrl:t.url,mode:`live_hosted`,message:`Redirecting to secure Stripe checkout for credits...`,sessionId:t.sessionId}}catch(e){return{success:!1,mode:`live_hosted`,message:e?.message||`Failed to initialize credit purchase session.`}}}async createCustomerPortalSession(){try{return{success:!0,portalUrl:(await xf(`/api/billing/customer-portal`,{method:`POST`})).url,message:`Opening customer billing portal...`}}catch(e){return{success:!1,message:e?.message||`Failed to open customer portal.`}}}async getSubscriptionStatus(){return{planId:vf.getCurrentPlan(),status:`active`,billingCycle:`monthly`,provider:`Stripe`,isLive:!0}}},wf=new class{activeProvider;constructor(){let e=`pk_test_51UAulBLPLcdcdrGcyCMDdCY9MgVtKRV0M9VrJ6v4P7lu6v39CJa9wAOdLcpwBrjHaOtN3YdcbA0naEfxcWfipnpY00Z89z8PlI`;this.activeProvider=e.startsWith(`pk_`)?new Cf(e):new Sf}getProvider(){return this.activeProvider}setProvider(e){this.activeProvider=e}async verifyCheckoutSession(e){try{return await xf(`/api/billing/verify-session`,{method:`POST`,body:JSON.stringify({sessionId:e})})}catch(e){return console.error(`[Cyrus Billing] verifyCheckoutSession error:`,e?.message),null}}},Y=`C:/Users/Shadow/Desktop/cyrus/src/pages/SettingsPage.tsx`,Tf=[{id:`account`,label:`Account Profile`,icon:(0,F.jsxDEV)(Na,{className:`w-4 h-4`},void 0,!1,{fileName:Y,lineNumber:61,columnNumber:52},void 0)},{id:`appearance`,label:`Appearance & Theme`,icon:(0,F.jsxDEV)(Jr,{className:`w-4 h-4`},void 0,!1,{fileName:Y,lineNumber:62,columnNumber:58},void 0)},{id:`editor`,label:`Editor & Canvas`,icon:(0,F.jsxDEV)(Ea,{className:`w-4 h-4`},void 0,!1,{fileName:Y,lineNumber:63,columnNumber:51},void 0)},{id:`shortcuts`,label:`Keyboard Shortcuts`,icon:(0,F.jsxDEV)(f,{className:`w-4 h-4`},void 0,!1,{fileName:Y,lineNumber:64,columnNumber:57},void 0)},{id:`security`,label:`Security & Auth`,icon:(0,F.jsxDEV)(Ma,{className:`w-4 h-4`},void 0,!1,{fileName:Y,lineNumber:65,columnNumber:53},void 0)},{id:`data`,label:`Data & Backup`,icon:(0,F.jsxDEV)(un,{className:`w-4 h-4`},void 0,!1,{fileName:Y,lineNumber:66,columnNumber:47},void 0)},{id:`billing`,label:`Plan & Features`,icon:(0,F.jsxDEV)(Ie,{className:`w-4 h-4`},void 0,!1,{fileName:Y,lineNumber:67,columnNumber:52},void 0)}];function Ef(){let e=navigator.userAgent,t=`Modern Browser`;e.includes(`Chrome`)?t=`Google Chrome`:e.includes(`Firefox`)?t=`Mozilla Firefox`:e.includes(`Safari`)&&!e.includes(`Chrome`)?t=`Apple Safari`:e.includes(`Edg`)&&(t=`Microsoft Edge`);let n=`Desktop Client`;return e.includes(`Win`)?n=`Windows OS`:e.includes(`Mac`)?n=`macOS`:e.includes(`Linux`)?n=`Linux`:e.includes(`Android`)?n=`Android`:(e.includes(`iPhone`)||e.includes(`iPad`))&&(n=`iOS`),{browser:t,os:n}}function Df({onBack:e}){let[t,n]=(0,N.useState)(`account`),[r,i]=(0,N.useState)(0),[a,o]=(0,N.useState)(!1),[s,c]=(0,N.useState)(``),[l,u]=(0,N.useState)(!1),[d,f]=(0,N.useState)(!1),p=(0,N.useRef)(null),{account:m,appearance:h,editor:_,shortcuts:v,billing:y,updateAccount:b,updateAppearance:x,updateEditor:S,updateShortcuts:C,updateBilling:w,addCredits:T,resetToDefaults:ee}=No(),{session:E,signOut:te}=cs(),{addToast:D}=oo(),[ne,re]=(0,N.useState)(E.user?.name||m.name||`Cyrus Creator`),[ie,O]=(0,N.useState)(E.user?.avatarUrl||m.avatarUrl||``),[oe,se]=(0,N.useState)(y.billingCycle||`monthly`),[ce,le]=(0,N.useState)(null),ue=Ef(),k=async e=>{le(e);try{let t=await wf.getProvider().createCheckoutSession(e,oe);t.success&&t.checkoutUrl?window.location.href=t.checkoutUrl:t.success?(w({plan:e,billingCycle:oe}),D(t.message||`Switched to ${e.toUpperCase()} plan!`,`success`),df()):D(t.message||`Checkout failed`,`error`)}catch(e){D(e?.message||`Checkout error`,`error`)}finally{le(null)}},de=async e=>{le(e.id);try{let t=await wf.getProvider().createCreditCheckoutSession(e.id);t.success&&t.checkoutUrl?window.location.href=t.checkoutUrl:t.success?(T(e.credits),D(`Added ${e.credits} credits to your workspace!`,`success`),df()):D(t.message||`Credit purchase failed`,`error`)}catch(e){D(e?.message||`Credit checkout error`,`error`)}finally{le(null)}};return(0,N.useEffect)(()=>{so().then(e=>i(e.length))},[]),(0,N.useEffect)(()=>{E.user&&(re(E.user.name),O(E.user.avatarUrl||``))},[E.user]),(0,N.useEffect)(()=>{let e=window.location.hash,t=e.indexOf(`?`);if(t===-1)return;let r=new URLSearchParams(e.slice(t+1)).get(`stripe_session`);!r||!r.startsWith(`cs_`)||(window.location.hash=`settings`,n(`billing`),(async()=>{D(`Verifying your payment with Stripe...`,`info`);let e=await wf.verifyCheckoutSession(r);if(!e){D(`Could not verify payment. If you were charged, contact support.`,`error`);return}if(e.already_processed){D(`Payment already applied to your account.`,`info`);return}if(!e.verified){D(`Payment verification failed. Please contact support if you were charged.`,`error`);return}if(e.mode===`payment`&&e.credits)T(e.credits),D(`✅ Payment verified! ${e.credits} credits added to your workspace.`,`success`),df();else if(e.mode===`subscription`&&e.planId){let t=e.planId,n=e.billingCycle||`monthly`;w({plan:t,billingCycle:n}),se(n),D(`✅ Subscription active! Upgraded to ${t.toUpperCase()} plan.`,`success`),df()}else D(e.message||`✅ Payment verified.`,`success`)})())},[]),(0,F.jsxDEV)(`div`,{className:`h-full w-full overflow-y-auto bg-[#f5f5f7] dark:bg-[#000000] text-[#1d1d1f] dark:text-[#f5f5f7] flex flex-col font-sans selection:bg-[#7d2ae8] selection:text-white`,children:[(0,F.jsxDEV)(`header`,{className:`sticky top-0 z-30 h-14 bg-white/90 dark:bg-[#1c1c1e]/90 backdrop-blur-md border-b border-[#e5e5ea] dark:border-[#2c2c2e] px-6 sm:px-12 flex items-center justify-between shadow-2xs`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsxDEV)(fs,{variant:`ghost`,size:`sm`,onClick:e,icon:(0,F.jsxDEV)(Kt,{className:`w-4 h-4`},void 0,!1,{fileName:Y,lineNumber:377,columnNumber:19},this),children:`Back to Dashboard`},void 0,!1,{fileName:Y,lineNumber:373,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`h-4 w-[1px] bg-[#e5e5ea] dark:bg-[#2c2c2e]`},void 0,!1,{fileName:Y,lineNumber:381,columnNumber:11},this),(0,F.jsxDEV)(us,{size:`sm`},void 0,!1,{fileName:Y,lineNumber:382,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-xs font-bold text-[#7d2ae8] dark:text-[#9d52ff]`,children:`Settings`},void 0,!1,{fileName:Y,lineNumber:383,columnNumber:11},this)]},void 0,!0,{fileName:Y,lineNumber:372,columnNumber:9},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{te(),D(`Signed out of Cyrus Workspace`,`info`),e()},className:`flex items-center gap-1.5 text-xs font-semibold text-rose-500 hover:text-rose-600 px-3 py-1.5 rounded-lg hover:bg-rose-500/10 transition-colors cursor-pointer`,children:[(0,F.jsxDEV)(Sr,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Y,lineNumber:395,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:`Sign Out`},void 0,!1,{fileName:Y,lineNumber:396,columnNumber:11},this)]},void 0,!0,{fileName:Y,lineNumber:386,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:371,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 max-w-6xl w-full mx-auto px-6 sm:px-12 py-8 flex flex-col md:flex-row gap-8`,children:[(0,F.jsxDEV)(`aside`,{className:`w-full md:w-60 shrink-0 flex flex-col gap-1 select-none`,children:[(0,F.jsxDEV)(`div`,{className:`px-3 pb-2 text-[11px] font-semibold text-[#86868b] dark:text-[#8e8e93] uppercase tracking-wider`,children:`Workspace Preferences`},void 0,!1,{fileName:Y,lineNumber:404,columnNumber:11},this),Tf.map(e=>{let r=t===e.id;return(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>n(e.id),className:j(`flex items-center gap-2.5 px-3 py-2.5 rounded-[10px] text-[13px] font-medium transition-all text-left cursor-pointer`,r?`bg-white dark:bg-[#2c2c2e] text-[#7d2ae8] dark:text-[#9d52ff] shadow-apple-sm font-semibold`:`text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-[#ffffff] hover:bg-white/60 dark:hover:bg-[#1c1c1e]`),children:[(0,F.jsxDEV)(`span`,{className:j(r?`text-[#7d2ae8] dark:text-[#9d52ff]`:`text-[#86868b]`),children:e.icon},void 0,!1,{fileName:Y,lineNumber:421,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:e.label},void 0,!1,{fileName:Y,lineNumber:424,columnNumber:17},this)]},e.id,!0,{fileName:Y,lineNumber:410,columnNumber:15},this)})]},void 0,!0,{fileName:Y,lineNumber:403,columnNumber:9},this),(0,F.jsxDEV)(`main`,{className:`flex-1 min-w-0 flex flex-col gap-6`,children:[t===`account`&&(0,F.jsxDEV)(`div`,{className:`bg-white dark:bg-[#1c1c1e] rounded-[20px] border border-[#e5e5ea] dark:border-[#2c2c2e] p-6 sm:p-7 shadow-apple-sm flex flex-col gap-6`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h2`,{className:`text-[18px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Account Profile`},void 0,!1,{fileName:Y,lineNumber:436,columnNumber:17},this),(0,F.jsxDEV)(`p`,{className:`text-[12.5px] text-[#86868b] dark:text-[#8e8e93] mt-0.5`,children:`Your identity and authentication profile connected to Firebase.`},void 0,!1,{fileName:Y,lineNumber:437,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:435,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-4 p-4 rounded-2xl bg-[#fbfbfd] dark:bg-[#252528] border border-[#e5e5ea] dark:border-[#38383a]`,children:[(0,F.jsxDEV)(`div`,{className:`w-16 h-16 rounded-2xl bg-gradient-to-tr from-[#7d2ae8] to-[#0071e3] text-white flex items-center justify-center text-[20px] font-bold shadow-apple-sm overflow-hidden shrink-0`,children:ie?(0,F.jsxDEV)(`img`,{src:ie,alt:`Avatar`,className:`w-full h-full object-cover`},void 0,!1,{fileName:Y,lineNumber:446,columnNumber:21},this):(0,F.jsxDEV)(`span`,{children:(ne||`U`).split(` `).map(e=>e[0]).join(``).slice(0,2).toUpperCase()},void 0,!1,{fileName:Y,lineNumber:448,columnNumber:21},this)},void 0,!1,{fileName:Y,lineNumber:444,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1 min-w-0`,children:[(0,F.jsxDEV)(`span`,{className:`text-[15px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] truncate`,children:E.user?.name||ne||`Cyrus Creator`},void 0,!1,{fileName:Y,lineNumber:452,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`text-[12px] text-[#86868b] font-mono truncate`,children:E.user?.email||`Authenticated User`},void 0,!1,{fileName:Y,lineNumber:455,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 mt-0.5`,children:[(0,F.jsxDEV)(`span`,{className:`inline-flex items-center gap-1 text-[11px] font-bold text-[#7d2ae8] dark:text-[#9d52ff] bg-[#7d2ae8]/10 px-2 py-0.5 rounded-md`,children:[(0,F.jsxDEV)(vi,{className:`w-3 h-3`},void 0,!1,{fileName:Y,lineNumber:460,columnNumber:23},this),(0,F.jsxDEV)(`span`,{children:`Firebase Verified`},void 0,!1,{fileName:Y,lineNumber:461,columnNumber:23},this)]},void 0,!0,{fileName:Y,lineNumber:459,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#86868b]`,children:[`UID: `,E.user?.id?.slice(0,10),`...`]},void 0,!0,{fileName:Y,lineNumber:463,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:458,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:451,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:443,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,F.jsxDEV)(ms,{label:`Display Name`,value:ne,onChange:e=>re(e.target.value),placeholder:`Your Name`},void 0,!1,{fileName:Y,lineNumber:472,columnNumber:17},this),(0,F.jsxDEV)(ms,{label:`Email Address`,type:`email`,value:E.user?.email||m.email,disabled:!0,helperText:`Managed via Firebase Authentication`},void 0,!1,{fileName:Y,lineNumber:478,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`sm:col-span-2`,children:(0,F.jsxDEV)(ms,{label:`Avatar Image URL (Optional)`,placeholder:`https://...`,value:ie,onChange:e=>O(e.target.value),helperText:`Direct image URL for your profile picture`},void 0,!1,{fileName:Y,lineNumber:486,columnNumber:19},this)},void 0,!1,{fileName:Y,lineNumber:485,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:471,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`pt-2 border-t border-[#f4f4f6] dark:border-[#2c2c2e] flex justify-end`,children:(0,F.jsxDEV)(fs,{variant:`primary`,size:`md`,isLoading:l,onClick:async()=>{u(!0);try{as.updateUserProfile&&await as.updateUserProfile({displayName:ne.trim(),photoURL:ie.trim()||void 0}),b({name:ne.trim(),avatarUrl:ie.trim()}),D(`Profile successfully saved and synced to Firebase`,`success`),df()}catch(e){let t=e instanceof Error?e.message:`Failed to update profile`;D(t,`error`)}finally{u(!1)}},className:`bg-[#7d2ae8] hover:bg-[#6b21ce] text-white`,children:`Save Profile to Firebase`},void 0,!1,{fileName:Y,lineNumber:497,columnNumber:17},this)},void 0,!1,{fileName:Y,lineNumber:496,columnNumber:15},this)]},void 0,!0,{fileName:Y,lineNumber:434,columnNumber:13},this),t===`appearance`&&(0,F.jsxDEV)(`div`,{className:`bg-white dark:bg-[#1c1c1e] rounded-[20px] border border-[#e5e5ea] dark:border-[#2c2c2e] p-6 sm:p-7 shadow-apple-sm flex flex-col gap-6`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h2`,{className:`text-[18px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Appearance & Theme`},void 0,!1,{fileName:Y,lineNumber:514,columnNumber:17},this),(0,F.jsxDEV)(`p`,{className:`text-[12.5px] text-[#86868b] dark:text-[#8e8e93] mt-0.5`,children:`Customize the interface theme, accent color, and typography density.`},void 0,!1,{fileName:Y,lineNumber:515,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:513,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,F.jsxDEV)(`label`,{className:`text-[12px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] uppercase tracking-wider`,children:`Interface Theme`},void 0,!1,{fileName:Y,lineNumber:522,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-3 gap-3`,children:[{id:`light`,label:`Light Mode`,icon:(0,F.jsxDEV)(fa,{className:`w-5 h-5 text-amber-500`},void 0,!1,{fileName:Y,lineNumber:525,columnNumber:72},this)},{id:`dark`,label:`Dark Mode`,icon:(0,F.jsxDEV)(Qt,{className:`w-5 h-5 text-[#7d2ae8]`},void 0,!1,{fileName:Y,lineNumber:526,columnNumber:70},this)},{id:`system`,label:`System Sync`,icon:(0,F.jsxDEV)(dn,{className:`w-5 h-5 text-[#86868b]`},void 0,!1,{fileName:Y,lineNumber:527,columnNumber:74},this)}].map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{x({theme:e.id}),D(`Switched to ${e.label}`,`info`)},className:j(`p-4 rounded-2xl border flex flex-col items-center gap-2.5 transition-all cursor-pointer`,h.theme===e.id?`border-[#7d2ae8] bg-[#7d2ae8]/5 dark:bg-[#7d2ae8]/15 ring-2 ring-[#7d2ae8]/30 shadow-apple-xs`:`border-[#e5e5ea] dark:border-[#2c2c2e] bg-[#fbfbfd] dark:bg-[#252528] hover:border-[#7d2ae8]/40`),children:[e.icon,(0,F.jsxDEV)(`span`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:e.label},void 0,!1,{fileName:Y,lineNumber:544,columnNumber:23},this)]},e.id,!0,{fileName:Y,lineNumber:529,columnNumber:21},this))},void 0,!1,{fileName:Y,lineNumber:523,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:521,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5 pt-2`,children:[(0,F.jsxDEV)(`label`,{className:`text-[12px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] uppercase tracking-wider`,children:`Brand Accent Color`},void 0,!1,{fileName:Y,lineNumber:552,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[`#7d2ae8`,`#0071e3`,`#34c759`,`#ff2d55`,`#ff9500`,`#5856d6`].map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{x({accentColor:e}),D(`Accent color updated`,`info`)},style:{backgroundColor:e},className:`w-8 h-8 rounded-full flex items-center justify-center transition-transform hover:scale-115 shadow-apple-sm cursor-pointer`,children:h.accentColor===e&&(0,F.jsxDEV)(ke,{className:`w-4 h-4 text-white`},void 0,!1,{fileName:Y,lineNumber:565,columnNumber:60},this)},e,!1,{fileName:Y,lineNumber:555,columnNumber:21},this))},void 0,!1,{fileName:Y,lineNumber:553,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:551,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5 pt-2`,children:[(0,F.jsxDEV)(`label`,{className:`text-[12px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] uppercase tracking-wider`,children:`Interface Density`},void 0,!1,{fileName:Y,lineNumber:573,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-3 gap-2.5`,children:[{id:`compact`,label:`Compact`},{id:`standard`,label:`Standard`},{id:`relaxed`,label:`Relaxed`}].map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{x({fontScaling:e.id}),D(`Interface density set to ${e.label}`,`info`)},className:j(`py-2.5 px-3 rounded-xl border text-[12px] font-bold transition-colors cursor-pointer text-center`,h.fontScaling===e.id?`bg-[#7d2ae8] text-white border-[#7d2ae8]`:`bg-[#fbfbfd] dark:bg-[#252528] text-[#6e6e73] hover:text-[#1d1d1f] border-[#e5e5ea] dark:border-[#38383a]`),children:e.label},e.id,!1,{fileName:Y,lineNumber:580,columnNumber:21},this))},void 0,!1,{fileName:Y,lineNumber:574,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:572,columnNumber:15},this)]},void 0,!0,{fileName:Y,lineNumber:512,columnNumber:13},this),t===`editor`&&(0,F.jsxDEV)(`div`,{className:`bg-white dark:bg-[#1c1c1e] rounded-[20px] border border-[#e5e5ea] dark:border-[#2c2c2e] p-6 sm:p-7 shadow-apple-sm flex flex-col gap-5`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h2`,{className:`text-[18px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Canvas & Editor Preferences`},void 0,!1,{fileName:Y,lineNumber:606,columnNumber:17},this),(0,F.jsxDEV)(`p`,{className:`text-[12.5px] text-[#86868b] dark:text-[#8e8e93] mt-0.5`,children:`Tune precision snapping, grid displays, measurement units, and background auto-saving.`},void 0,!1,{fileName:Y,lineNumber:607,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:605,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-4 pt-1`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between py-3 border-b border-[#f4f4f6] dark:border-[#2c2c2e]`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[13.5px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Show Dot Grid by Default`},void 0,!1,{fileName:Y,lineNumber:615,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`text-[11.5px] text-[#86868b]`,children:`Display dot matrix background when opening visual canvas`},void 0,!1,{fileName:Y,lineNumber:616,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:614,columnNumber:19},this),(0,F.jsxDEV)(`input`,{type:`checkbox`,checked:_.showGridByDefault,onChange:e=>{S({showGridByDefault:e.target.checked}),D(e.target.checked?`Grid enabled by default`:`Grid hidden by default`,`info`)},className:`w-4 h-4 accent-[#7d2ae8] cursor-pointer`},void 0,!1,{fileName:Y,lineNumber:618,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:613,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between py-3 border-b border-[#f4f4f6] dark:border-[#2c2c2e]`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[13.5px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Smart Snapping Threshold`},void 0,!1,{fileName:Y,lineNumber:631,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`text-[11.5px] text-[#86868b]`,children:[`Distance in pixels before snapping to adjacent guide lines (`,_.snapThreshold,`px)`]},void 0,!0,{fileName:Y,lineNumber:632,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:630,columnNumber:19},this),(0,F.jsxDEV)(`input`,{type:`range`,min:2,max:16,step:1,value:_.snapThreshold,onChange:e=>S({snapThreshold:Number(e.target.value)}),className:`w-32 accent-[#7d2ae8] cursor-pointer`},void 0,!1,{fileName:Y,lineNumber:634,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:629,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between py-3 border-b border-[#f4f4f6] dark:border-[#2c2c2e]`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[13.5px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Smooth Canvas Transitions`},void 0,!1,{fileName:Y,lineNumber:647,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`text-[11.5px] text-[#86868b]`,children:`Smooth zoom, pan, and transform easing animations`},void 0,!1,{fileName:Y,lineNumber:648,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:646,columnNumber:19},this),(0,F.jsxDEV)(`input`,{type:`checkbox`,checked:_.canvasAnimations,onChange:e=>S({canvasAnimations:e.target.checked}),className:`w-4 h-4 accent-[#7d2ae8] cursor-pointer`},void 0,!1,{fileName:Y,lineNumber:650,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:645,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between py-3 border-b border-[#f4f4f6] dark:border-[#2c2c2e]`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[13.5px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Default Measurement Units`},void 0,!1,{fileName:Y,lineNumber:660,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`text-[11.5px] text-[#86868b]`,children:`Unit format used for sizing and layout dimensions`},void 0,!1,{fileName:Y,lineNumber:661,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:659,columnNumber:19},this),(0,F.jsxDEV)(`select`,{value:_.defaultUnit,onChange:e=>S({defaultUnit:e.target.value}),className:`bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#1d1d1f] dark:text-[#f5f5f7] border border-[#e5e5ea] dark:border-[#38383a] rounded-xl px-3 py-1.5 text-[12px] font-semibold cursor-pointer`,children:[(0,F.jsxDEV)(`option`,{value:`px`,children:`Pixels (px)`},void 0,!1,{fileName:Y,lineNumber:668,columnNumber:21},this),(0,F.jsxDEV)(`option`,{value:`rem`,children:`Relative (rem)`},void 0,!1,{fileName:Y,lineNumber:669,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:663,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:658,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between py-3`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[13.5px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Background Auto-Save Timer`},void 0,!1,{fileName:Y,lineNumber:675,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`text-[11.5px] text-[#86868b]`,children:`Frequency for saving design snapshots to local database`},void 0,!1,{fileName:Y,lineNumber:676,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:674,columnNumber:19},this),(0,F.jsxDEV)(`select`,{value:_.autoSaveInterval||10,onChange:e=>S({autoSaveInterval:Number(e.target.value)}),className:`bg-[#f4f4f6] dark:bg-[#2c2c2e] text-[#1d1d1f] dark:text-[#f5f5f7] border border-[#e5e5ea] dark:border-[#38383a] rounded-xl px-3 py-1.5 text-[12px] font-semibold cursor-pointer`,children:[(0,F.jsxDEV)(`option`,{value:5,children:`Every 5 seconds`},void 0,!1,{fileName:Y,lineNumber:683,columnNumber:21},this),(0,F.jsxDEV)(`option`,{value:10,children:`Every 10 seconds (Default)`},void 0,!1,{fileName:Y,lineNumber:684,columnNumber:21},this),(0,F.jsxDEV)(`option`,{value:30,children:`Every 30 seconds`},void 0,!1,{fileName:Y,lineNumber:685,columnNumber:21},this),(0,F.jsxDEV)(`option`,{value:60,children:`Every 1 minute`},void 0,!1,{fileName:Y,lineNumber:686,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:678,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:673,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:612,columnNumber:15},this)]},void 0,!0,{fileName:Y,lineNumber:604,columnNumber:13},this),t===`shortcuts`&&(0,F.jsxDEV)(`div`,{className:`bg-white dark:bg-[#1c1c1e] rounded-[20px] border border-[#e5e5ea] dark:border-[#2c2c2e] p-6 sm:p-7 shadow-apple-sm flex flex-col gap-5`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h2`,{className:`text-[18px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Keyboard Shortcuts`},void 0,!1,{fileName:Y,lineNumber:698,columnNumber:19},this),(0,F.jsxDEV)(`p`,{className:`text-[12.5px] text-[#86868b] dark:text-[#8e8e93] mt-0.5`,children:`Standard keybindings configured for rapid visual development.`},void 0,!1,{fileName:Y,lineNumber:699,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:697,columnNumber:17},this),(0,F.jsxDEV)(fs,{variant:`secondary`,size:`xs`,onClick:()=>{pd.resetAllToDefaults(),D(`Reset shortcuts to defaults`,`success`)},icon:(0,F.jsxDEV)(pn,{className:`w-3 h-3`},void 0,!1,{fileName:Y,lineNumber:710,columnNumber:25},this),children:`Reset Defaults`},void 0,!1,{fileName:Y,lineNumber:703,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:696,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2.5 text-[12px] pt-2`,children:[{action:`Save Design to Storage`,keys:`Ctrl/⌘ + S`},{action:`AI Magic Command Palette`,keys:`Ctrl/⌘ + K`},{action:`Undo Last Action`,keys:`Ctrl/⌘ + Z`},{action:`Redo Action`,keys:`Ctrl/⌘ + Shift + Z`},{action:`Live Interactive Preview`,keys:`Ctrl/⌘ + P`},{action:`Duplicate Selected Layer`,keys:`Ctrl/⌘ + D`},{action:`Group / Ungroup Selection`,keys:`Ctrl/⌘ + G`},{action:`Zoom to 100%`,keys:`Ctrl/⌘ + 1`},{action:`Zoom to Fit Canvas`,keys:`Ctrl/⌘ + 0`},{action:`Delete Selected Element`,keys:`Del / Backspace`}].map(e=>(0,F.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#fbfbfd] dark:bg-[#252528] border border-[#e5e5ea] dark:border-[#38383a] flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:e.action},void 0,!1,{fileName:Y,lineNumber:730,columnNumber:21},this),(0,F.jsxDEV)(`kbd`,{className:`px-2.5 py-1 rounded-md bg-white dark:bg-[#1c1c1e] border border-[#e5e5ea] dark:border-[#38383a] text-[11px] font-mono text-[#7d2ae8] dark:text-[#9d52ff] font-bold shadow-2xs`,children:e.keys},void 0,!1,{fileName:Y,lineNumber:731,columnNumber:21},this)]},e.action,!0,{fileName:Y,lineNumber:729,columnNumber:19},this))},void 0,!1,{fileName:Y,lineNumber:716,columnNumber:15},this)]},void 0,!0,{fileName:Y,lineNumber:695,columnNumber:13},this),t===`security`&&(0,F.jsxDEV)(`div`,{className:`bg-white dark:bg-[#1c1c1e] rounded-[20px] border border-[#e5e5ea] dark:border-[#2c2c2e] p-6 sm:p-7 shadow-apple-sm flex flex-col gap-6`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h2`,{className:`text-[18px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Security & Password`},void 0,!1,{fileName:Y,lineNumber:744,columnNumber:17},this),(0,F.jsxDEV)(`p`,{className:`text-[12.5px] text-[#86868b] dark:text-[#8e8e93] mt-0.5`,children:`Manage your credentials and view real client session details.`},void 0,!1,{fileName:Y,lineNumber:745,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:743,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`p-4 rounded-2xl bg-[#fbfbfd] dark:bg-[#252528] border border-[#e5e5ea] dark:border-[#38383a] flex flex-col gap-3`,children:(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsxDEV)(`div`,{className:`p-2.5 rounded-xl bg-[#7d2ae8]/10 text-[#7d2ae8] dark:text-[#9d52ff]`,children:(0,F.jsxDEV)(ht,{className:`w-5 h-5`},void 0,!1,{fileName:Y,lineNumber:755,columnNumber:23},this)},void 0,!1,{fileName:Y,lineNumber:754,columnNumber:21},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[13.5px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] flex items-center gap-2`,children:[(0,F.jsxDEV)(`span`,{children:[ue.os,` • `,ue.browser]},void 0,!0,{fileName:Y,lineNumber:759,columnNumber:25},this),(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full bg-emerald-500/15 text-emerald-600 dark:text-emerald-400 text-[10px] font-bold`,children:`Active Client`},void 0,!1,{fileName:Y,lineNumber:760,columnNumber:25},this)]},void 0,!0,{fileName:Y,lineNumber:758,columnNumber:23},this),(0,F.jsxDEV)(`div`,{className:`text-[11.5px] text-[#86868b] mt-0.5 font-mono`,children:`Firebase Project: faah-canfig • Domain: localhost`},void 0,!1,{fileName:Y,lineNumber:764,columnNumber:23},this)]},void 0,!0,{fileName:Y,lineNumber:757,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:753,columnNumber:19},this)},void 0,!1,{fileName:Y,lineNumber:752,columnNumber:17},this)},void 0,!1,{fileName:Y,lineNumber:751,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`pt-4 border-t border-[#f4f4f6] dark:border-[#2c2c2e] flex flex-col gap-4`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[14px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7] flex items-center gap-2`,children:[(0,F.jsxDEV)(Ri,{className:`w-4 h-4 text-[#7d2ae8]`},void 0,!1,{fileName:Y,lineNumber:776,columnNumber:21},this),(0,F.jsxDEV)(`span`,{children:`Password & Recovery Management`},void 0,!1,{fileName:Y,lineNumber:777,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:775,columnNumber:19},this),(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b] mt-1`,children:`Your password and authentication are managed securely by Firebase. Password changes must be authorized via verified email dispatch.`},void 0,!1,{fileName:Y,lineNumber:779,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:774,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`p-4 rounded-2xl bg-[#fbfbfd] dark:bg-[#252528] border border-[#e5e5ea] dark:border-[#38383a] flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Reset Password via Email`},void 0,!1,{fileName:Y,lineNumber:786,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`text-[11.5px] text-[#86868b] mt-0.5`,children:[`Send a secure Firebase password reset link to `,(0,F.jsxDEV)(`strong`,{className:`text-[#1d1d1f] dark:text-white font-mono`,children:E.user?.email||m.email},void 0,!1,{fileName:Y,lineNumber:790,columnNumber:69},this)]},void 0,!0,{fileName:Y,lineNumber:789,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:785,columnNumber:19},this),(0,F.jsxDEV)(fs,{type:`button`,variant:`secondary`,size:`sm`,disabled:d,onClick:async()=>{let e=E.user?.email||m.email;if(!e){D(`No email address associated with this account.`,`error`);return}f(!0);try{as.sendPasswordReset&&(await as.sendPasswordReset(e),D(`Password reset link sent to ${e}`,`success`))}catch(e){let t=e instanceof Error?e.message:`Failed to send reset email`;D(t,`error`)}finally{f(!1)}},icon:(0,F.jsxDEV)(ia,{className:`w-3.5 h-3.5 text-[#7d2ae8]`},void 0,!1,{fileName:Y,lineNumber:800,columnNumber:27},this),children:d?`Sending Link...`:`Send Reset Link`},void 0,!1,{fileName:Y,lineNumber:794,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:784,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-3 pt-2`,children:[(0,F.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#fbfbfd] dark:bg-[#252528] border border-[#e5e5ea] dark:border-[#38383a] flex items-center gap-2.5`,children:[(0,F.jsxDEV)($r,{className:`w-4 h-4 text-emerald-500 shrink-0`},void 0,!1,{fileName:Y,lineNumber:809,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`text-[11.5px] font-semibold text-[#1d1d1f] dark:text-white`,children:`256-bit SSL Auth`},void 0,!1,{fileName:Y,lineNumber:810,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:808,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#fbfbfd] dark:bg-[#252528] border border-[#e5e5ea] dark:border-[#38383a] flex items-center gap-2.5`,children:[(0,F.jsxDEV)($r,{className:`w-4 h-4 text-emerald-500 shrink-0`},void 0,!1,{fileName:Y,lineNumber:813,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`text-[11.5px] font-semibold text-[#1d1d1f] dark:text-white`,children:`Encrypted Tokens`},void 0,!1,{fileName:Y,lineNumber:814,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:812,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#fbfbfd] dark:bg-[#252528] border border-[#e5e5ea] dark:border-[#38383a] flex items-center gap-2.5`,children:[(0,F.jsxDEV)($r,{className:`w-4 h-4 text-emerald-500 shrink-0`},void 0,!1,{fileName:Y,lineNumber:817,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`text-[11.5px] font-semibold text-[#1d1d1f] dark:text-white`,children:`Firebase Protected`},void 0,!1,{fileName:Y,lineNumber:818,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:816,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:807,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:773,columnNumber:15},this)]},void 0,!0,{fileName:Y,lineNumber:742,columnNumber:13},this),t===`data`&&(0,F.jsxDEV)(`div`,{className:`bg-white dark:bg-[#1c1c1e] rounded-[20px] border border-[#e5e5ea] dark:border-[#2c2c2e] p-6 sm:p-7 shadow-apple-sm flex flex-col gap-6`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h2`,{className:`text-[18px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Data & Backup`},void 0,!1,{fileName:Y,lineNumber:829,columnNumber:17},this),(0,F.jsxDEV)(`p`,{className:`text-[12.5px] text-[#86868b] dark:text-[#8e8e93] mt-0.5`,children:`Export complete workspaces or import JSON archives into your local storage.`},void 0,!1,{fileName:Y,lineNumber:830,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:828,columnNumber:15},this),(0,F.jsxDEV)(`input`,{ref:p,type:`file`,accept:`.json,application/json`,onChange:async e=>{let t=e.target.files?.[0];if(t)try{let e=await t.text(),n=JSON.parse(e);if(Array.isArray(n.projects)){for(let e of n.projects)e.id&&e.name&&await _o(e);let e=await so();i(e.length),D(`Restored ${n.projects.length} projects into Cyrus!`,`success`),df()}else D(`Invalid backup file format.`,`error`)}catch(e){console.error(e),D(`Failed to read or parse backup file.`,`error`)}finally{e.target&&(e.target.value=``)}},className:`hidden`},void 0,!1,{fileName:Y,lineNumber:836,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,F.jsxDEV)(`div`,{className:`p-5 rounded-2xl border border-[#e5e5ea] dark:border-[#38383a] bg-[#fbfbfd] dark:bg-[#252528] flex flex-col justify-between gap-4`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h3`,{className:`text-[14px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Export Full Workspace`},void 0,!1,{fileName:Y,lineNumber:847,columnNumber:21},this),(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b] mt-1`,children:[`Download all `,r,` saved projects and configurations as a single portable JSON file.`]},void 0,!0,{fileName:Y,lineNumber:848,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:846,columnNumber:19},this),(0,F.jsxDEV)(fs,{variant:`secondary`,size:`md`,onClick:async()=>{let e=await so(),t={app:`Cyrus Design Studio`,version:`2.4.0`,exportedAt:new Date().toISOString(),user:E.user,settings:{appearance:h,editor:_,shortcuts:v,billing:y},projects:e},n=JSON.stringify(t,null,2),r=new Blob([n],{type:`application/json;charset=utf-8`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`cyrus_workspace_backup_${Date.now()}.json`,document.body.appendChild(a),a.click(),document.body.removeChild(a),setTimeout(()=>URL.revokeObjectURL(i),1e3),D(`Exported full data backup with ${e.length} projects`,`success`)},icon:(0,F.jsxDEV)(g,{className:`w-4 h-4`},void 0,!1,{fileName:Y,lineNumber:852,columnNumber:93},this),children:`Download Workspace JSON`},void 0,!1,{fileName:Y,lineNumber:852,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:845,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`p-5 rounded-2xl border border-[#e5e5ea] dark:border-[#38383a] bg-[#fbfbfd] dark:bg-[#252528] flex flex-col justify-between gap-4`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h3`,{className:`text-[14px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Import Backup Archive`},void 0,!1,{fileName:Y,lineNumber:859,columnNumber:21},this),(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b] mt-1`,children:`Restore projects and design systems from a previous Cyrus backup file on your device.`},void 0,!1,{fileName:Y,lineNumber:860,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:858,columnNumber:19},this),(0,F.jsxDEV)(fs,{variant:`secondary`,size:`md`,onClick:()=>p.current?.click(),icon:(0,F.jsxDEV)(ae,{className:`w-4 h-4 text-[#7d2ae8]`},void 0,!1,{fileName:Y,lineNumber:868,columnNumber:27},this),children:`Upload Backup JSON`},void 0,!1,{fileName:Y,lineNumber:864,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:857,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:844,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`p-4 rounded-2xl border border-[#e5e5ea] dark:border-[#38383a] bg-[#fbfbfd] dark:bg-[#252528] flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h3`,{className:`text-[13.5px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Restore Sample Templates`},void 0,!1,{fileName:Y,lineNumber:877,columnNumber:19},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] mt-0.5`,children:`Re-seed default landing pages, mobile apps, and SaaS templates.`},void 0,!1,{fileName:Y,lineNumber:878,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:876,columnNumber:17},this),(0,F.jsxDEV)(fs,{variant:`secondary`,size:`sm`,onClick:async()=>{if(!window.confirm(`Are you sure you want to reset all projects back to default sample templates?`))return;await lo();let e=await so();i(e.length),D(`Reset local database to default starter templates`,`success`)},icon:(0,F.jsxDEV)(pn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Y,lineNumber:882,columnNumber:91},this),children:`Reset Templates`},void 0,!1,{fileName:Y,lineNumber:882,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:875,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`pt-4 border-t border-[#f4f4f6] dark:border-[#2c2c2e] flex flex-col gap-3`,children:[(0,F.jsxDEV)(`div`,{className:`text-[13px] font-bold text-rose-500 flex items-center gap-1.5`,children:[(0,F.jsxDEV)(it,{className:`w-4 h-4`},void 0,!1,{fileName:Y,lineNumber:890,columnNumber:19},this),` Danger Zone`]},void 0,!0,{fileName:Y,lineNumber:889,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between p-4 rounded-2xl bg-rose-500/5 border border-rose-500/20`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[13px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Purge Local Workspace`},void 0,!1,{fileName:Y,lineNumber:894,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`text-[11.5px] text-[#86868b]`,children:`Permanently wipe all locally stored projects, tokens, and preferences`},void 0,!1,{fileName:Y,lineNumber:895,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:893,columnNumber:19},this),(0,F.jsxDEV)(fs,{variant:`destructive`,size:`sm`,onClick:()=>o(!0),children:`Wipe Workspace`},void 0,!1,{fileName:Y,lineNumber:897,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:892,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:888,columnNumber:15},this)]},void 0,!0,{fileName:Y,lineNumber:827,columnNumber:13},this),t===`billing`&&(0,F.jsxDEV)(`div`,{className:`bg-white dark:bg-[#1c1c1e] rounded-[20px] border border-[#e5e5ea] dark:border-[#2c2c2e] p-6 sm:p-7 shadow-apple-sm flex flex-col gap-6`,children:[(0,F.jsxDEV)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-4`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h2`,{className:`text-[18px] font-bold text-[#1d1d1f] dark:text-[#f5f5f7]`,children:`Plan & Subscriptions`},void 0,!1,{fileName:Y,lineNumber:910,columnNumber:19},this),(0,F.jsxDEV)(`p`,{className:`text-[12.5px] text-[#86868b] dark:text-[#8e8e93] mt-0.5`,children:`Select a plan tier or manage your connected Stripe subscription and invoices.`},void 0,!1,{fileName:Y,lineNumber:911,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:909,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center p-1 rounded-xl bg-[#f5f5f7] dark:bg-[#252528] border border-[#e5e5ea] dark:border-[#38383a] text-xs font-semibold self-start sm:self-auto`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>se(`monthly`),className:j(`px-3 py-1.5 rounded-lg transition-all cursor-pointer`,oe===`monthly`?`bg-white dark:bg-[#1c1c1e] text-[#1d1d1f] dark:text-white shadow-xs`:`text-[#86868b] hover:text-[#1d1d1f]`),children:`Monthly`},void 0,!1,{fileName:Y,lineNumber:918,columnNumber:19},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>se(`yearly`),className:j(`px-3 py-1.5 rounded-lg transition-all flex items-center gap-1.5 cursor-pointer`,oe===`yearly`?`bg-white dark:bg-[#1c1c1e] text-[#7d2ae8] font-bold shadow-xs`:`text-[#86868b] hover:text-[#1d1d1f]`),children:[(0,F.jsxDEV)(`span`,{children:`Annual`},void 0,!1,{fileName:Y,lineNumber:940,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`px-1.5 py-0.5 rounded-full bg-[#7d2ae8]/10 text-[#7d2ae8] text-[9.5px]`,children:`Save 20%`},void 0,!1,{fileName:Y,lineNumber:941,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:930,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:917,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:908,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`p-4 rounded-2xl bg-gradient-to-br from-[#7d2ae8]/10 via-[#0071e3]/10 to-transparent border border-[#7d2ae8]/30 flex flex-col sm:flex-row sm:items-center justify-between gap-4`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`inline-flex items-center gap-1.5 px-2.5 py-0.5 rounded-full bg-[#7d2ae8] text-white text-[10.5px] font-bold uppercase tracking-wider mb-1`,children:[(0,F.jsxDEV)(vi,{className:`w-3 h-3`},void 0,!1,{fileName:Y,lineNumber:950,columnNumber:21},this),` Active Workspace Plan: `,(y.plan||E.user?.plan||`pro`).toUpperCase()]},void 0,!0,{fileName:Y,lineNumber:949,columnNumber:19},this),(0,F.jsxDEV)(`h3`,{className:`text-base font-extrabold text-[#1d1d1f] dark:text-white`,children:`Full Studio Capabilities Enabled`},void 0,!1,{fileName:Y,lineNumber:952,columnNumber:19},this),(0,F.jsxDEV)(`p`,{className:`text-xs text-[#86868b] mt-0.5`,children:`Your workspace has unlimited artboards, multi-page routing, and code export enabled.`},void 0,!1,{fileName:Y,lineNumber:955,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:948,columnNumber:17},this),(0,F.jsxDEV)(fs,{variant:`secondary`,size:`sm`,onClick:async()=>{try{let e=await wf.getProvider().createCustomerPortalSession();e.portalUrl?window.location.href=e.portalUrl:D(e.message,`info`)}catch(e){D(e?.message||`Failed to open billing portal`,`error`)}},icon:(0,F.jsxDEV)(Ie,{className:`w-3.5 h-3.5 text-[#7d2ae8]`},void 0,!1,{fileName:Y,lineNumber:964,columnNumber:25},this),children:`Manage Stripe Portal`},void 0,!1,{fileName:Y,lineNumber:960,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:947,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-5 pt-2`,children:[`free`,`pro`,`team`].map(e=>{let t=ff[e],n=(y.plan||E.user?.plan||`pro`)===e,r=oe===`yearly`?t.priceYearly:t.priceMonthly;return(0,F.jsxDEV)(`div`,{className:j(`p-5 rounded-2xl border flex flex-col justify-between transition-all relative`,t.highlighted?`border-[#7d2ae8] bg-gradient-to-b from-[#7d2ae8]/5 to-transparent shadow-lg`:`border-[#e5e5ea] dark:border-[#38383a] bg-[#fbfbfd] dark:bg-[#252528]`),children:[t.badge&&(0,F.jsxDEV)(`div`,{className:`absolute -top-3 right-4 px-2.5 py-0.5 rounded-full bg-[#7d2ae8] text-white text-[10px] font-bold uppercase tracking-wider shadow-sm`,children:t.badge},void 0,!1,{fileName:Y,lineNumber:989,columnNumber:25},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-4`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`h3`,{className:`text-base font-bold text-[#1d1d1f] dark:text-white`,children:t.name},void 0,!1,{fileName:Y,lineNumber:997,columnNumber:29},this),n&&(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 text-[10px] font-bold uppercase`,children:`Current Plan`},void 0,!1,{fileName:Y,lineNumber:999,columnNumber:31},this)]},void 0,!0,{fileName:Y,lineNumber:996,columnNumber:27},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] mt-1 leading-snug`,children:t.tagline},void 0,!1,{fileName:Y,lineNumber:1004,columnNumber:27},this)]},void 0,!0,{fileName:Y,lineNumber:995,columnNumber:25},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col my-1`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-baseline gap-1`,children:[(0,F.jsxDEV)(`span`,{className:`text-3xl font-extrabold text-[#1d1d1f] dark:text-white`,children:[`$`,r]},void 0,!0,{fileName:Y,lineNumber:1010,columnNumber:29},this),(0,F.jsxDEV)(`span`,{className:`text-xs text-[#86868b]`,children:`/ month`},void 0,!1,{fileName:Y,lineNumber:1011,columnNumber:29},this)]},void 0,!0,{fileName:Y,lineNumber:1009,columnNumber:27},this),r>0&&oe===`yearly`&&(0,F.jsxDEV)(`span`,{className:`text-[11px] text-emerald-600 dark:text-emerald-400 font-semibold mt-0.5`,children:[`Billed annually ($`,r*12,`/yr) • Save 20%`]},void 0,!0,{fileName:Y,lineNumber:1014,columnNumber:29},this),r>0&&oe===`monthly`&&(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#86868b] mt-0.5`,children:`Billed monthly • Cancel anytime`},void 0,!1,{fileName:Y,lineNumber:1019,columnNumber:29},this),r===0&&(0,F.jsxDEV)(`span`,{className:`text-[11px] text-emerald-600 dark:text-emerald-400 font-semibold mt-0.5`,children:`Free forever • No credit card required`},void 0,!1,{fileName:Y,lineNumber:1024,columnNumber:29},this)]},void 0,!0,{fileName:Y,lineNumber:1008,columnNumber:25},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2 pt-2 border-t border-[#e5e5ea] dark:border-[#38383a]`,children:t.featureBullets.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-start gap-2 text-xs text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[(0,F.jsxDEV)($r,{className:`w-3.5 h-3.5 text-emerald-500 shrink-0 mt-0.5`},void 0,!1,{fileName:Y,lineNumber:1034,columnNumber:31},this),(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:Y,lineNumber:1035,columnNumber:31},this)]},t,!0,{fileName:Y,lineNumber:1033,columnNumber:29},this))},void 0,!1,{fileName:Y,lineNumber:1031,columnNumber:25},this)]},void 0,!0,{fileName:Y,lineNumber:994,columnNumber:23},this),(0,F.jsxDEV)(`div`,{className:`pt-5 mt-4`,children:(0,F.jsxDEV)(fs,{variant:t.highlighted?`primary`:`secondary`,size:`md`,className:`w-full justify-center`,disabled:n||ce===e,onClick:()=>k(e),children:ce===e?(0,F.jsxDEV)(`div`,{className:`w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin`},void 0,!1,{fileName:Y,lineNumber:1051,columnNumber:29},this):n?`Active Plan`:e===`free`?`Downgrade to Free`:`Upgrade to ${t.name} (${oe===`yearly`?`$${r*12}/yr`:`$${r}/mo`})`},void 0,!1,{fileName:Y,lineNumber:1043,columnNumber:25},this)},void 0,!1,{fileName:Y,lineNumber:1042,columnNumber:23},this)]},e,!0,{fileName:Y,lineNumber:979,columnNumber:21},this)})},void 0,!1,{fileName:Y,lineNumber:971,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`pt-6 border-t border-[#e5e5ea] dark:border-[#2c2c2e] flex flex-col gap-5`,children:[(0,F.jsxDEV)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`inline-flex items-center gap-1.5 px-2.5 py-0.5 rounded-full bg-amber-500/10 text-amber-600 dark:text-amber-400 text-[10.5px] font-bold uppercase tracking-wider mb-1`,children:[(0,F.jsxDEV)(qi,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Y,lineNumber:1071,columnNumber:23},this),` Pay-As-You-Go ($0.10 / Credit)`]},void 0,!0,{fileName:Y,lineNumber:1070,columnNumber:21},this),(0,F.jsxDEV)(`h3`,{className:`text-base font-bold text-[#1d1d1f] dark:text-white`,children:`AI & Export Credit Packs`},void 0,!1,{fileName:Y,lineNumber:1073,columnNumber:21},this),(0,F.jsxDEV)(`p`,{className:`text-xs text-[#86868b] mt-0.5`,children:`Don't need a recurring monthly subscription? Purchase credits on-demand for AI generations and project exports. Credits never expire.`},void 0,!1,{fileName:Y,lineNumber:1076,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:1069,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 px-3.5 py-2 rounded-xl bg-amber-500/10 border border-amber-500/20 text-xs font-semibold text-amber-700 dark:text-amber-300 self-start sm:self-auto`,children:[(0,F.jsxDEV)(qi,{className:`w-4 h-4 text-amber-500`},void 0,!1,{fileName:Y,lineNumber:1082,columnNumber:21},this),(0,F.jsxDEV)(`span`,{children:[`Balance: `,(0,F.jsxDEV)(`strong`,{children:y.credits||0},void 0,!1,{fileName:Y,lineNumber:1083,columnNumber:36},this),` Credits`]},void 0,!0,{fileName:Y,lineNumber:1083,columnNumber:21},this)]},void 0,!0,{fileName:Y,lineNumber:1081,columnNumber:19},this)]},void 0,!0,{fileName:Y,lineNumber:1068,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-5`,children:hf.map(e=>(0,F.jsxDEV)(`div`,{className:j(`p-5 rounded-2xl border flex flex-col justify-between transition-all relative`,e.highlighted?`border-amber-500/60 bg-gradient-to-b from-amber-500/5 to-transparent shadow-md`:`border-[#e5e5ea] dark:border-[#38383a] bg-[#fbfbfd] dark:bg-[#252528]`),children:[e.badge&&(0,F.jsxDEV)(`div`,{className:`absolute -top-3 right-4 px-2.5 py-0.5 rounded-full bg-amber-500 text-white text-[10px] font-bold uppercase tracking-wider shadow-sm`,children:e.badge},void 0,!1,{fileName:Y,lineNumber:1099,columnNumber:25},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-3`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h4`,{className:`text-base font-bold text-[#1d1d1f] dark:text-white`,children:e.name},void 0,!1,{fileName:Y,lineNumber:1106,columnNumber:27},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] mt-1 leading-snug`,children:e.description},void 0,!1,{fileName:Y,lineNumber:1107,columnNumber:27},this)]},void 0,!0,{fileName:Y,lineNumber:1105,columnNumber:25},this),(0,F.jsxDEV)(`div`,{className:`flex items-baseline gap-1 my-1`,children:[(0,F.jsxDEV)(`span`,{className:`text-3xl font-extrabold text-[#1d1d1f] dark:text-white`,children:[`$`,e.priceUsd]},void 0,!0,{fileName:Y,lineNumber:1111,columnNumber:27},this),(0,F.jsxDEV)(`span`,{className:`text-xs font-medium text-amber-600 dark:text-amber-400`,children:[`(`,e.pricePerCredit,`)`]},void 0,!0,{fileName:Y,lineNumber:1112,columnNumber:27},this)]},void 0,!0,{fileName:Y,lineNumber:1110,columnNumber:25},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2 pt-2 border-t border-[#e5e5ea] dark:border-[#38383a]`,children:e.features.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-start gap-2 text-xs text-[#1d1d1f] dark:text-[#f5f5f7]`,children:[(0,F.jsxDEV)(Ki,{className:`w-3.5 h-3.5 text-amber-500 shrink-0 mt-0.5`},void 0,!1,{fileName:Y,lineNumber:1118,columnNumber:31},this),(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:Y,lineNumber:1119,columnNumber:31},this)]},t,!0,{fileName:Y,lineNumber:1117,columnNumber:29},this))},void 0,!1,{fileName:Y,lineNumber:1115,columnNumber:25},this)]},void 0,!0,{fileName:Y,lineNumber:1104,columnNumber:23},this),(0,F.jsxDEV)(`div`,{className:`pt-5 mt-4`,children:(0,F.jsxDEV)(fs,{variant:e.highlighted?`primary`:`secondary`,size:`md`,className:`w-full justify-center`,disabled:ce===e.id,onClick:()=>de(e),children:ce===e.id?(0,F.jsxDEV)(`div`,{className:`w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin`},void 0,!1,{fileName:Y,lineNumber:1134,columnNumber:29},this):`Buy ${e.credits} Credits ($${e.priceUsd})`},void 0,!1,{fileName:Y,lineNumber:1126,columnNumber:25},this)},void 0,!1,{fileName:Y,lineNumber:1125,columnNumber:23},this)]},e.id,!0,{fileName:Y,lineNumber:1089,columnNumber:21},this))},void 0,!1,{fileName:Y,lineNumber:1087,columnNumber:17},this)]},void 0,!0,{fileName:Y,lineNumber:1067,columnNumber:15},this)]},void 0,!0,{fileName:Y,lineNumber:907,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:431,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:401,columnNumber:7},this),a&&(0,F.jsxDEV)(gs,{isOpen:a,onClose:()=>o(!1),title:`Wipe Workspace & Storage`,subtitle:`This action is permanent. All saved projects and local database records will be erased.`,maxWidth:`sm`,footer:(0,F.jsxDEV)(`div`,{className:`flex items-center justify-end gap-2 w-full`,children:[(0,F.jsxDEV)(fs,{variant:`secondary`,onClick:()=>o(!1),children:`Cancel`},void 0,!1,{fileName:Y,lineNumber:1159,columnNumber:15},this),(0,F.jsxDEV)(fs,{variant:`destructive`,disabled:s!==`DELETE`,onClick:async()=>{s===`DELETE`&&(await lo(),Object.keys(localStorage).filter(e=>e.startsWith(`cyrus_`)||e.startsWith(`cyrus-`)).forEach(e=>localStorage.removeItem(e)),ee(),o(!1),D(`Workspace data and cache wiped successfully`,`info`),e())},children:`Permanently Wipe`},void 0,!1,{fileName:Y,lineNumber:1162,columnNumber:15},this)]},void 0,!0,{fileName:Y,lineNumber:1158,columnNumber:13},this),children:(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-3`,children:[(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b]`,children:[`Please type `,(0,F.jsxDEV)(`strong`,{className:`text-rose-600 font-mono`,children:`DELETE`},void 0,!1,{fileName:Y,lineNumber:1174,columnNumber:27},this),` below to confirm.`]},void 0,!0,{fileName:Y,lineNumber:1173,columnNumber:13},this),(0,F.jsxDEV)(ms,{value:s,onChange:e=>c(e.target.value),placeholder:`DELETE`,className:`font-mono text-center`},void 0,!1,{fileName:Y,lineNumber:1176,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:1172,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:1151,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:369,columnNumber:5},this)}var X=`C:/Users/Shadow/Desktop/cyrus/src/runtime/RuntimeElement.tsx`,Of={ArrowRight:Aa,ArrowLeft:Kt,ArrowUp:zt,ArrowDown:le,ChevronRight:at,ChevronLeft:vt,ChevronUp:$e,ChevronDown:fe,MoreHorizontal:pe,MoreVertical:Ae,Compass:dr,MapPin:ji,Navigation:je,Route:De,ExternalLink:et,Move:Xa,CornerDownRight:gn,Plus:na,Minus:ye,X:Ln,Check:ke,CheckCheck:qe,Search:lt,Edit:rr,Trash2:Oe,Copy:Dn,Save:y,Download:g,Upload:ae,UploadCloud:Qn,Share2:gt,RefreshCw:yn,RotateCcw:pn,Undo2:E,Redo2:Ot,Filter:Oi,Sliders:Ea,SlidersHorizontal:Ka,ZoomIn:yi,ZoomOut:oa,Eye:l,EyeOff:qr,Maximize2:Ur,Minimize2:Ui,Lock:Ri,Unlock:_i,Key:Xr,Power:Bn,LogOut:Sr,LogIn:lr,Home:Me,Menu:hr,Grid:kn,List:In,Layers:ie,Settings:p,Layout:pt,Sidebar:u,PanelLeft:u,PanelTop:ti,User:Na,Users:Wn,UserPlus:b,UserCheck:Ht,UserX:Ft,Heart:v,Star:Wr,ThumbsUp:Yt,ThumbsDown:cn,Smile:D,Bookmark:ua,Award:Jn,Crown:He,Sparkles:vi,AtSign:La,Hash:be,Bell:li,BellRing:_a,BellOff:cr,Mail:ia,Inbox:xt,Phone:Pr,PhoneCall:Ua,PhoneOff:Pn,MessageSquare:On,MessageCircle:i,Megaphone:da,ShoppingCart:za,ShoppingBag:Vt,CreditCard:Ie,DollarSign:rn,Wallet:Ni,Coins:qi,Receipt:la,Banknote:Fn,Percent:qn,BadgePercent:Wa,Gift:Br,Tag:Ct,Package:tt,Truck:s,Scale:Qa,QrCode:Vr,PiggyBank:hi,Calculator:ln,TrendingUp:_t,TrendingDown:de,ListTodo:Ta,CheckSquare:ya,Calendar:Ce,CalendarDays:Xt,Clock:Tr,Timer:tn,AlarmClock:mt,Pin:br,History:xe,Paperclip:ne,Archive:re,Clipboard:Mn,ClipboardList:xa,Briefcase:hn,Folder:si,FolderPlus:ha,FolderKanban:yr,FileText:Kn,Smartphone:Ar,Tablet:t,Monitor:dn,Laptop:ht,Tv:Qr,Cpu:Sn,Database:un,Server:Zr,HardDrive:We,Wifi:ai,WifiOff:pa,Bluetooth:Vn,Battery:xr,BatteryCharging:Or,Terminal:En,Code2:Di,Globe:a,Fingerprint:Er,Scan:Ne,Bot:mr,Cloud:ea,CloudUpload:Qn,CloudDownload:Mr,Camera:nn,Video:ba,Mic:Le,MicOff:Cn,Volume2:wr,VolumeX:jr,Play:ci,Pause:ce,Square:Un,Circle:Gn,Music:Mt,Film:Nn,Image:he,Radio:Si,Headphones:Ee,Wand2:_r,Palette:Jr,Brush:xn,Crop:Hi,Scissors:St,Cast:Ja,Airplay:ni,Disc:we,Plane:ga,Car:h,Bike:tr,Train:Ke,Fuel:ta,Building:Ve,Hotel:Nt,Store:Ti,Ticket:Se,Luggage:va,Utensils:Ba,Coffee:Rn,Pizza:sr,HeartPulse:on,Activity:d,Stethoscope:Qi,Pill:Ii,Dumbbell:Je,Shield:Ma,ShieldCheck:k,ShieldAlert:O,AlertCircle:Kr,AlertTriangle:it,CheckCircle2:$r,XCircle:Pa,Info:nt,HelpCircle:x,LifeBuoy:T,Gauge:zn,Flag:Nr,Sun:fa,Moon:Qt,CloudRain:ar,Snowflake:Lr,Wind:Zn,Droplet:Ya,Thermometer:A,Leaf:qt,Zap:Ki,Flame:mi,Link:Yn,CircleDot:oe,AlignLeft:Bi,TextCursorInput:Be};function kf(e,t,n=``){if(!e)return n;for(let n of t)if(n in e&&e[n]!==void 0&&e[n]!==null)return String(e[n]);return n}function Af({element:e,styles:t,content:n}){let r=n.html||n.src||``,[i,a]=N.useState(null);return N.useEffect(()=>{let e=e=>{if(e.data?.type===`CYRUS_HTML_PAGE_HEIGHT`&&typeof e.data.height==`number`){let t=Math.ceil(e.data.height);t>100&&a(t)}};return window.addEventListener(`message`,e),()=>window.removeEventListener(`message`,e)},[]),r?(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:i?`${i}px`:`100%`,borderRadius:`${t.borderRadius??0}px`,overflow:`hidden`,opacity:t.opacity??1},children:(0,F.jsxDEV)(`iframe`,{srcDoc:r,sandbox:`allow-same-origin allow-scripts`,style:{width:`100%`,height:`100%`,border:`none`,display:`block`},title:e.name||`HTML Page`},void 0,!1,{fileName:X,lineNumber:506,columnNumber:7},this)},void 0,!1,{fileName:X,lineNumber:497,columnNumber:5},this):(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:`#0f0f0f`,borderRadius:`${t.borderRadius??0}px`},className:`flex items-center justify-center text-white/30 text-[13px]`,children:`No HTML content`},void 0,!1,{fileName:X,lineNumber:487,columnNumber:7},this)}function jf({element:e,designTokens:t,childElements:n,formValues:r,onFormChange:i,onTriggerInteraction:a,itemContext:o,onExecuteForm:s}){let c=I(e=>e.activeProject?.variables),l=I(e=>e.activeProject?.useSampleData??!0),u=El(e,c,l,o),f=u.content,p=u.styles,{type:m}=e;if(u.hidden)return null;if(e.collectionBinding&&!o&&!n){let n=wl(Tl(c,l),e.collectionBinding.variableKey);if(Array.isArray(n)&&n.length>0){let{layout:o=`grid`,columns:c=3,gap:l=16,itemAlias:u=`item`}=e.collectionBinding;return(0,F.jsxDEV)(`div`,{style:{display:o===`grid`?`grid`:`flex`,gridTemplateColumns:o===`grid`?`repeat(${c}, 1fr)`:void 0,flexDirection:o===`column`?`column`:`row`,gap:`${l}px`,width:`100%`,height:`100%`},children:n.map((n,o)=>(0,F.jsxDEV)(jf,{element:{...e,collectionBinding:void 0},designTokens:t,formValues:r,onFormChange:i,onTriggerInteraction:a,itemContext:{alias:u,data:n},onExecuteForm:s},`${e.id}_rep_${o}`,!1,{fileName:X,lineNumber:558,columnNumber:13},this))},void 0,!1,{fileName:X,lineNumber:547,columnNumber:9},this)}}let h=t?.components,g=h?.button,_=h?.card;h?.input;let v=g?.primaryBackground||t?.colors?.primary||`#0071e3`,y=_?.background||t?.colors?.surface||`#ffffff`;t?.colors?.text;let x=_?.border||t?.colors?.border||`#e5e5ea`,S=t?.typography?.body?.fontFamily,C={none:``,subtle:`shadow-apple-sm`,sm:`shadow-apple-sm`,md:`shadow-apple-md`,lg:`shadow-apple-lg`}[p.shadow||`none`]||``,w=(e.interactions||[]).find(e=>e.trigger===`onClick`),T=e=>{e&&e.stopPropagation(),w&&a(w)};switch(m){case`button`:{let e=p.backgroundColor===`#0071e3`||!p.backgroundColor?v:p.backgroundColor,n=p.textColor===`#ffffff`||!p.textColor?g?.primaryText||`#ffffff`:p.textColor,r=kf(f,[`label`,`text`,`buttonText`],`Button`),i=f.icon,a=i&&i!==`none`?Of[i]:null,o=f.iconPosition||`right`,s=p.borderRadius??g?.borderRadius??t?.radius?.medium??10,c=p.paddingLeft??g?.paddingX??18;return(0,F.jsxDEV)(`button`,{type:`button`,onClick:T,style:{width:`100%`,height:`100%`,fontFamily:p.fontFamily||S,background:p.backgroundGradient||e,color:n,fontSize:`${p.fontSize||g?.fontSize||14}px`,fontWeight:p.fontWeight||g?.fontWeight||`500`,fontStyle:p.fontStyle||`normal`,borderRadius:`${s}px`,borderWidth:`${p.borderWidth??0}px`,borderColor:p.borderColor||x,borderStyle:p.borderStyle||`solid`,paddingLeft:`${c}px`,paddingRight:`${c}px`,opacity:p.opacity??1,cursor:`pointer`},className:`inline-flex items-center justify-center gap-2 px-4 select-none active:scale-[0.98] hover:opacity-95 transition-all ${C}`,children:[a&&o===`left`&&(0,F.jsxDEV)(a,{className:`w-4 h-4 shrink-0`},void 0,!1,{fileName:X,lineNumber:641,columnNumber:51},this),r?(0,F.jsxDEV)(`span`,{className:`truncate`,children:r},void 0,!1,{fileName:X,lineNumber:642,columnNumber:20},this):null,a&&o===`right`&&(0,F.jsxDEV)(a,{className:`w-4 h-4 shrink-0`},void 0,!1,{fileName:X,lineNumber:643,columnNumber:52},this)]},void 0,!0,{fileName:X,lineNumber:618,columnNumber:9},this)}case`icon`:{let t=Of[f.iconName||f.icon||`Sparkles`]||vi,n=p.textColor||v,r=f.label??f.text??``,i=Math.min(e.width,e.height)*(r?.5:.7);return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,opacity:p.opacity??1,color:n,backgroundColor:p.backgroundColor||`transparent`,borderRadius:`${p.borderRadius??0}px`,borderWidth:`${p.borderWidth??0}px`,borderColor:p.borderColor||`transparent`,borderStyle:(p.borderWidth??0)>0?`solid`:`none`,cursor:w?`pointer`:`default`},className:`flex flex-col items-center justify-center select-none gap-1 ${C}`,children:[(0,F.jsxDEV)(t,{style:{width:`${Math.max(14,i)}px`,height:`${Math.max(14,i)}px`}},void 0,!1,{fileName:X,lineNumber:672,columnNumber:11},this),r&&(0,F.jsxDEV)(`span`,{style:{color:n},className:`text-[12px] font-medium text-center truncate max-w-full leading-tight px-1`,children:r},void 0,!1,{fileName:X,lineNumber:674,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:656,columnNumber:9},this)}case`text`:case`heading`:{let e=kf(f,[`text`,`title`,`headline`,`content`],`Heading Title`);return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,fontSize:`${p.fontSize||32}px`,fontWeight:p.fontWeight||`700`,fontStyle:p.fontStyle||`normal`,color:p.textColor||`#1d1d1f`,lineHeight:p.lineHeight||1.2,letterSpacing:p.letterSpacing||`-0.025em`,textAlign:p.textAlign||`left`,opacity:p.opacity??1,cursor:w?`pointer`:`default`},className:`flex items-center select-none overflow-hidden`,children:e?(0,F.jsxDEV)(`span`,{className:`w-full`,children:e},void 0,!1,{fileName:X,lineNumber:703,columnNumber:19},this):(0,F.jsxDEV)(`span`,{className:`opacity-0`,children:` `},void 0,!1,{fileName:X,lineNumber:703,columnNumber:60},this)},void 0,!1,{fileName:X,lineNumber:686,columnNumber:9},this)}case`paragraph`:{let e=kf(f,[`text`,`description`,`content`],`Body text content...`);return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,fontSize:`${p.fontSize||15}px`,fontWeight:p.fontWeight||`400`,fontStyle:p.fontStyle||`normal`,color:p.textColor||`#6e6e73`,lineHeight:p.lineHeight||1.5,letterSpacing:p.letterSpacing||`-0.01em`,textAlign:p.textAlign||`left`,opacity:p.opacity??1,cursor:w?`pointer`:`default`},className:`flex items-center select-none overflow-hidden`,children:e?(0,F.jsxDEV)(`span`,{className:`w-full`,children:e},void 0,!1,{fileName:X,lineNumber:728,columnNumber:19},this):(0,F.jsxDEV)(`span`,{className:`opacity-0`,children:` `},void 0,!1,{fileName:X,lineNumber:728,columnNumber:60},this)},void 0,!1,{fileName:X,lineNumber:711,columnNumber:9},this)}case`navbar`:{let e=kf(f,[`brandName`,`title`],`Cyrus`),t=f.links||[`Platform`,`Pricing`,`Docs`],n=kf(f,[`ctaLabel`,`buttonText`],`Get Started`);return(0,F.jsxDEV)(`header`,{style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||y,borderRadius:`${p.borderRadius??12}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||x,paddingLeft:`${p.paddingLeft??24}px`,paddingRight:`${p.paddingRight??24}px`,opacity:p.opacity??1},className:`flex items-center justify-between select-none ${C}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`w-6 h-6 rounded-[6px] bg-[#0071e3] text-white flex items-center justify-center font-bold text-[12px]`,children:`C`},void 0,!1,{fileName:X,lineNumber:754,columnNumber:13},this),e&&(0,F.jsxDEV)(`span`,{className:`text-[15px] font-semibold text-[#1d1d1f]`,children:e},void 0,!1,{fileName:X,lineNumber:757,columnNumber:23},this)]},void 0,!0,{fileName:X,lineNumber:753,columnNumber:11},this),(0,F.jsxDEV)(`nav`,{className:`flex items-center gap-6 text-[13px] font-medium text-[#6e6e73]`,children:t.map((e,t)=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:T,className:`hover:text-[#1d1d1f] transition-colors cursor-pointer`,children:e},t,!1,{fileName:X,lineNumber:762,columnNumber:15},this))},void 0,!1,{fileName:X,lineNumber:760,columnNumber:11},this),n&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:T,className:`px-3.5 py-1.5 rounded-[8px] bg-[#0071e3] text-white text-[13px] font-medium shadow-apple-sm hover:bg-[#0077ed] active:scale-[0.98] transition-apple cursor-pointer`,children:n},void 0,!1,{fileName:X,lineNumber:774,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:739,columnNumber:9},this)}case`hero`:case`heroSection`:{let e=f.badge,t=kf(f,[`headline`,`title`],`The visual engine for modern software.`),n=kf(f,[`subhead`,`subtitle`,`text`,`description`],`Design and deploy production-grade software visually.`),r=kf(f,[`primaryBtnText`,`buttonText`],`Get Started`),i=kf(f,[`secondaryBtnText`,`secondaryButtonText`],`Learn More`);return(0,F.jsxDEV)(`section`,{style:{width:`100%`,height:`100%`,opacity:p.opacity??1},className:`flex flex-col items-center justify-center text-center p-6 select-none`,children:[e&&(0,F.jsxDEV)(`div`,{className:`inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-[#f4f4f6] text-[#6e6e73] text-[12px] font-medium mb-4 shadow-2xs border border-[#e5e5ea]`,children:[(0,F.jsxDEV)(vi,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:X,lineNumber:805,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:X,lineNumber:806,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:804,columnNumber:13},this),t&&(0,F.jsxDEV)(`h1`,{className:`text-[38px] font-extrabold tracking-tight text-[#1d1d1f] max-w-2xl leading-[1.1] mb-3`,children:t},void 0,!1,{fileName:X,lineNumber:810,columnNumber:13},this),n&&(0,F.jsxDEV)(`p`,{className:`text-[16px] text-[#6e6e73] max-w-xl mb-6 leading-relaxed`,children:n},void 0,!1,{fileName:X,lineNumber:815,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[r&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:T,className:`px-5 py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[14px] font-semibold shadow-apple-sm hover:bg-[#0077ed] active:scale-[0.98] transition-apple cursor-pointer`,children:r},void 0,!1,{fileName:X,lineNumber:821,columnNumber:15},this),i&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:T,className:`px-5 py-2.5 rounded-[10px] bg-white text-[#1d1d1f] text-[14px] font-semibold border border-[#e5e5ea] hover:bg-[#f4f4f6] active:scale-[0.98] transition-apple cursor-pointer`,children:i},void 0,!1,{fileName:X,lineNumber:830,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:819,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:795,columnNumber:9},this)}case`input`:case`searchBar`:{let t=`field_${e.id}`,n=f.label,a=f.placeholder||`Enter value...`,o=r[t]??``;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,opacity:p.opacity??1},className:`flex flex-col justify-center gap-1.5`,children:[n&&(0,F.jsxDEV)(`label`,{className:`text-[12px] font-medium text-[#6e6e73]`,children:n},void 0,!1,{fileName:X,lineNumber:855,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[m===`searchBar`&&(0,F.jsxDEV)(lt,{className:`w-3.5 h-3.5 text-[#86868b] absolute left-3 pointer-events-none`},void 0,!1,{fileName:X,lineNumber:858,columnNumber:15},this),(0,F.jsxDEV)(`input`,{type:f.inputType||`text`,value:o,onChange:e=>i(t,e.target.value),placeholder:a,className:`w-full h-9 rounded-[8px] bg-white border border-[#e5e5ea] text-[13px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] focus:ring-2 focus:ring-[#0071e3]/20 transition-all ${m===`searchBar`?`pl-8 pr-3`:`px-3`}`},void 0,!1,{fileName:X,lineNumber:860,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:856,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:851,columnNumber:9},this)}case`switch`:{let t=`switch_${e.id}`,n=f.label||``,a=r[t]===void 0?f.enabled!==!1:r[t];return(0,F.jsxDEV)(`div`,{onClick:()=>i(t,!a),style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`transparent`,borderRadius:`${p.borderRadius??12}px`,borderWidth:`${p.borderWidth??0}px`,borderColor:p.borderColor||`transparent`,paddingLeft:n?`16px`:`0px`,paddingRight:n?`16px`:`0px`,opacity:p.opacity??1,cursor:`pointer`},className:`flex items-center ${n?`justify-between`:`justify-center`} select-none ${C}`,children:[n?(0,F.jsxDEV)(`span`,{className:`text-[13px] font-medium text-[#1d1d1f] dark:text-white`,children:n},void 0,!1,{fileName:X,lineNumber:896,columnNumber:20},this):null,(0,F.jsxDEV)(`div`,{className:`w-11 h-6 rounded-full transition-colors flex items-center p-0.5 ${a?`bg-[#34c759] justify-end`:`bg-zinc-600 justify-start`}`,children:(0,F.jsxDEV)(`div`,{className:`w-5 h-5 rounded-full bg-white shadow-2xs`},void 0,!1,{fileName:X,lineNumber:902,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:897,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:880,columnNumber:9},this)}case`loginForm`:{let e=f.title||`Sign In`,t=f.subtitle||`Enter your credentials to continue`,n=f.buttonText||`Sign In`;return(0,F.jsxDEV)(`form`,{onSubmit:e=>{e.preventDefault(),T(e)},style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??18}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,padding:`28px`,opacity:p.opacity??1},className:`flex flex-col justify-between ${C}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h3`,{className:`text-[18px] font-bold text-[#1d1d1f] tracking-tight`,children:e},void 0,!1,{fileName:X,lineNumber:932,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b] mt-1`,children:t},void 0,!1,{fileName:X,lineNumber:933,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:931,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5 my-4`,children:[(0,F.jsxDEV)(`input`,{type:`email`,required:!0,placeholder:`name@company.com`,className:`h-9 px-3 rounded-[8px] bg-[#f4f4f6] border border-[#e5e5ea] text-[12px] text-[#1d1d1f] focus:bg-white focus:outline-none focus:border-[#0071e3]`},void 0,!1,{fileName:X,lineNumber:936,columnNumber:13},this),(0,F.jsxDEV)(`input`,{type:`password`,required:!0,placeholder:`••••••••••••`,className:`h-9 px-3 rounded-[8px] bg-[#f4f4f6] border border-[#e5e5ea] text-[12px] text-[#1d1d1f] focus:bg-white focus:outline-none focus:border-[#0071e3]`},void 0,!1,{fileName:X,lineNumber:942,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:935,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`submit`,className:`w-full py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[13px] font-medium text-center shadow-apple-sm hover:bg-[#0077ed] active:scale-[0.98] transition-apple cursor-pointer`,children:n},void 0,!1,{fileName:X,lineNumber:949,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:914,columnNumber:9},this)}case`video`:{let e=f.url||f.src||`https://assets.mixkit.co/videos/preview/mixkit-software-developer-working-on-code-screen-close-up-1728-large.mp4`,t=f.autoplay!==!1,n=f.loop!==!1,r=f.muted!==!1,i=f.controls===!0,a=p.objectFit||`cover`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,borderRadius:`${p.borderRadius??14}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,opacity:p.opacity??1},className:`overflow-hidden bg-[#1d1d1f] ${C}`,children:(0,F.jsxDEV)(`video`,{src:e,autoPlay:t,loop:n,muted:r,controls:i,style:{width:`100%`,height:`100%`,objectFit:a}},void 0,!1,{fileName:X,lineNumber:979,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:968,columnNumber:9},this)}case`image`:{let t=f.url||`https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?w=800&auto=format&fit=crop&q=80`,n=p.objectFit||`cover`,r=e.accessibility||{},i=r.isDecorative?``:r.altText||e.name||`Asset Image`;return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,borderRadius:`${p.borderRadius??14}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,opacity:p.opacity??1,cursor:w?`pointer`:`default`},className:`overflow-hidden bg-[#f4f4f6] select-none ${C}`,children:(0,F.jsxDEV)(`img`,{src:t,alt:i,"aria-hidden":r.isDecorative?!0:void 0,style:{objectFit:n},className:`w-full h-full`},void 0,!1,{fileName:X,lineNumber:1011,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:998,columnNumber:9},this)}case`pricingCard`:{let e=kf(f,[`planName`,`title`],`Pro Plan`),t=kf(f,[`price`],`$29`),n=kf(f,[`period`],`/month`),r=kf(f,[`description`,`text`],``),i=kf(f,[`buttonText`],`Subscribe`);return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??18}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,padding:`24px`,opacity:p.opacity??1},className:`flex flex-col justify-between select-none ${C}`,children:[(0,F.jsxDEV)(`div`,{children:[e&&(0,F.jsxDEV)(`h4`,{className:`text-[16px] font-semibold text-[#1d1d1f]`,children:e},void 0,!1,{fileName:X,lineNumber:1044,columnNumber:22},this),(0,F.jsxDEV)(`div`,{className:`flex items-baseline gap-1 my-3`,children:[t&&(0,F.jsxDEV)(`span`,{className:`text-[32px] font-extrabold text-[#1d1d1f] tracking-tight`,children:t},void 0,!1,{fileName:X,lineNumber:1046,columnNumber:25},this),n&&(0,F.jsxDEV)(`span`,{className:`text-[13px] text-[#86868b]`,children:n},void 0,!1,{fileName:X,lineNumber:1047,columnNumber:26},this)]},void 0,!0,{fileName:X,lineNumber:1045,columnNumber:13},this),r&&(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#6e6e73] leading-relaxed`,children:r},void 0,!1,{fileName:X,lineNumber:1049,columnNumber:22},this)]},void 0,!0,{fileName:X,lineNumber:1043,columnNumber:11},this),i&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:T,className:`w-full py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[13px] font-medium text-center shadow-apple-sm hover:bg-[#0077ed] active:scale-[0.98] transition-apple cursor-pointer`,children:i},void 0,!1,{fileName:X,lineNumber:1052,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:1030,columnNumber:9},this)}case`metricCard`:{let e=kf(f,[`title`],`KPI Metric`),t=kf(f,[`value`],`$0`),n=kf(f,[`change`],`+0.0%`),r=f.isPositive!==!1,i=kf(f,[`timeframe`],``);return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??14}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??16}px`,paddingBottom:`${p.paddingBottom??16}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,opacity:p.opacity??1,cursor:w?`pointer`:`default`},className:`flex flex-col justify-between select-none ${C}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[e&&(0,F.jsxDEV)(`span`,{className:`text-[13px] font-medium text-[#86868b] truncate`,children:e},void 0,!1,{fileName:X,lineNumber:1091,columnNumber:23},this),n&&(0,F.jsxDEV)(`span`,{className:`inline-flex items-center gap-0.5 text-[12px] font-semibold ${r?`text-[#34c759]`:`text-[#ff3b30]`}`,children:[r?(0,F.jsxDEV)(_t,{className:`w-3 h-3`},void 0,!1,{fileName:X,lineNumber:1098,columnNumber:26},this):(0,F.jsxDEV)(de,{className:`w-3 h-3`},void 0,!1,{fileName:X,lineNumber:1098,columnNumber:63},this),n]},void 0,!0,{fileName:X,lineNumber:1093,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:1090,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[t&&(0,F.jsxDEV)(`div`,{className:`text-[26px] font-bold tracking-tight text-[#1d1d1f] leading-none`,children:t},void 0,!1,{fileName:X,lineNumber:1105,columnNumber:15},this),i&&(0,F.jsxDEV)(`div`,{className:`text-[11px] text-[#86868b] mt-1 truncate`,children:i},void 0,!1,{fileName:X,lineNumber:1109,columnNumber:20},this)]},void 0,!0,{fileName:X,lineNumber:1103,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:1072,columnNumber:9},this)}case`statCard`:{let e=kf(f,[`title`],`Total Revenue`),t=kf(f,[`value`],`$128,450.00`),n=kf(f,[`change`],`+14.2%`),r=f.isPositive!==!1,i=kf(f,[`timeframe`],`vs last month`),a=Of[f.icon]||_t;return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,cursor:w?`pointer`:`default`},className:`flex flex-col justify-between select-none ${C}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[e&&(0,F.jsxDEV)(`span`,{className:`text-[12px] font-semibold text-[#86868b]`,children:e},void 0,!1,{fileName:X,lineNumber:1142,columnNumber:23},this),(0,F.jsxDEV)(`div`,{className:`w-7 h-7 rounded-lg bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center`,children:(0,F.jsxDEV)(a,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:X,lineNumber:1144,columnNumber:15},this)},void 0,!1,{fileName:X,lineNumber:1143,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:1141,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[t&&(0,F.jsxDEV)(`div`,{className:`text-[24px] font-extrabold text-[#1d1d1f] tracking-tight`,children:t},void 0,!1,{fileName:X,lineNumber:1149,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 mt-1 text-[11px]`,children:[n&&(0,F.jsxDEV)(`span`,{className:`inline-flex items-center gap-0.5 font-bold px-1.5 py-0.2 rounded-full ${r?`bg-[#34c759]/10 text-[#34c759]`:`bg-[#ff3b30]/10 text-[#ff3b30]`}`,children:[r?(0,F.jsxDEV)(_t,{className:`w-3 h-3`},void 0,!1,{fileName:X,lineNumber:1157,columnNumber:28},this):(0,F.jsxDEV)(de,{className:`w-3 h-3`},void 0,!1,{fileName:X,lineNumber:1157,columnNumber:65},this),n]},void 0,!0,{fileName:X,lineNumber:1152,columnNumber:17},this),i&&(0,F.jsxDEV)(`span`,{className:`text-[#86868b]`,children:i},void 0,!1,{fileName:X,lineNumber:1161,columnNumber:29},this)]},void 0,!0,{fileName:X,lineNumber:1150,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:1148,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:1124,columnNumber:9},this)}case`kpiCard`:{let e=kf(f,[`title`],`Quarterly Goal`),t=kf(f,[`current`],`$84,200`),n=kf(f,[`target`],`$100,000`),r=f.percentage||84,i=kf(f,[`status`],`On Track`);return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,cursor:w?`pointer`:`default`},className:`flex flex-col justify-between select-none ${C}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[e&&(0,F.jsxDEV)(`span`,{className:`text-[12px] font-semibold text-[#86868b]`,children:e},void 0,!1,{fileName:X,lineNumber:1194,columnNumber:23},this),i&&(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full text-[10px] font-bold bg-[#34c759]/10 text-[#34c759]`,children:i},void 0,!1,{fileName:X,lineNumber:1196,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:1193,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`flex items-baseline justify-between mb-1.5`,children:[t&&(0,F.jsxDEV)(`span`,{className:`text-[22px] font-extrabold text-[#1d1d1f] tracking-tight`,children:t},void 0,!1,{fileName:X,lineNumber:1204,columnNumber:27},this),n&&(0,F.jsxDEV)(`span`,{className:`text-[11.5px] text-[#86868b] font-medium`,children:[`Goal: `,n]},void 0,!0,{fileName:X,lineNumber:1205,columnNumber:26},this)]},void 0,!0,{fileName:X,lineNumber:1203,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`w-full h-2 rounded-full bg-[#f4f4f6] overflow-hidden`,children:(0,F.jsxDEV)(`div`,{style:{width:`${Math.min(r,100)}%`},className:`h-full rounded-full bg-[#0071e3] transition-all`},void 0,!1,{fileName:X,lineNumber:1209,columnNumber:15},this)},void 0,!1,{fileName:X,lineNumber:1208,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:1202,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:1176,columnNumber:9},this)}case`metric`:{let e=kf(f,[`label`],`Active Users`),t=kf(f,[`value`],`48,290`),n=f.badge;return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,paddingLeft:`${p.paddingLeft??12}px`,paddingRight:`${p.paddingRight??12}px`,cursor:w?`pointer`:`default`},className:`flex flex-col justify-center select-none`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-[11px] font-semibold text-[#86868b]`,children:[e&&(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:X,lineNumber:1237,columnNumber:23},this),n&&(0,F.jsxDEV)(`span`,{className:`px-1.5 py-0.2 rounded-full text-[9px] font-bold bg-[#34c759]/15 text-[#34c759]`,children:n},void 0,!1,{fileName:X,lineNumber:1239,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:1236,columnNumber:11},this),t&&(0,F.jsxDEV)(`div`,{className:`text-[28px] font-extrabold text-[#1d1d1f] tracking-tight leading-none mt-1`,children:t},void 0,!1,{fileName:X,lineNumber:1245,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:1225,columnNumber:9},this)}case`chart`:case`lineChart`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:(0,F.jsxDEV)(Nl,{type:`line`,title:f.title||`Revenue Growth`,subtitle:f.subtitle,data:f.data,format:f.format||`currency`,color:p.textColor||`#7d2ae8`,width:e.width-40,height:e.height-40,showGrid:f.showGrid!==!1,showAxes:f.showAxes!==!1,showLegend:f.showLegend!==!1},void 0,!1,{fileName:X,lineNumber:1273,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:1256,columnNumber:9},this);case`multiLine`:case`multiLineChart`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:(0,F.jsxDEV)(Nl,{type:`multiLine`,title:f.title||`Comparison Analytics`,subtitle:f.subtitle,data:f.data,format:f.format||`currency`,color:p.textColor||`#7d2ae8`,secondaryColor:f.secondaryColor||`#0071e3`,width:e.width-40,height:e.height-40,showGrid:f.showGrid!==!1,showAxes:f.showAxes!==!1,showLegend:f.showLegend!==!1},void 0,!1,{fileName:X,lineNumber:1310,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:1293,columnNumber:9},this);case`areaChart`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:(0,F.jsxDEV)(Nl,{type:`area`,title:f.title||`Ingestion Volume`,subtitle:f.subtitle,data:f.data,format:f.format||`compact`,color:p.textColor||`#7d2ae8`,width:e.width-40,height:e.height-40,showGrid:f.showGrid!==!1,showAxes:f.showAxes!==!1},void 0,!1,{fileName:X,lineNumber:1347,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:1330,columnNumber:9},this);case`barChart`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:(0,F.jsxDEV)(Nl,{type:`bar`,title:f.title||`Weekly Volume`,subtitle:f.subtitle,data:f.data,format:f.format||`number`,color:p.textColor||`#34c759`,width:e.width-40,height:e.height-40,showGrid:f.showGrid!==!1,showAxes:f.showAxes!==!1},void 0,!1,{fileName:X,lineNumber:1382,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:1365,columnNumber:9},this);case`horizontalBar`:case`horizontalBarChart`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:(0,F.jsxDEV)(Nl,{type:`horizontalBar`,title:f.title||`Top Channels`,subtitle:f.subtitle,data:f.data,format:f.format||`compact`,color:p.textColor||`#0071e3`,width:e.width-40,height:e.height-40,showGrid:f.showGrid!==!1,showAxes:f.showAxes!==!1},void 0,!1,{fileName:X,lineNumber:1418,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:1401,columnNumber:9},this);case`stackedBar`:case`stackedBarChart`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:(0,F.jsxDEV)(Nl,{type:`stackedBar`,title:f.title||`Revenue vs Cost Breakdown`,subtitle:f.subtitle,data:f.data,format:f.format||`currency`,color:p.textColor||`#7d2ae8`,secondaryColor:f.secondaryColor||`#ff9500`,width:e.width-40,height:e.height-40,showGrid:f.showGrid!==!1,showAxes:f.showAxes!==!1,showLegend:f.showLegend!==!1},void 0,!1,{fileName:X,lineNumber:1454,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:1437,columnNumber:9},this);case`donutChart`:case`pieChart`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:(0,F.jsxDEV)(Nl,{type:e.type===`pieChart`?`pie`:`donut`,title:f.title||`Traffic Share`,subtitle:f.subtitle,data:f.data,format:f.format||`percentage`,width:e.width-40,height:e.height-50,showLegend:f.showLegend!==!1},void 0,!1,{fileName:X,lineNumber:1492,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:1475,columnNumber:9},this);case`gauge`:case`gaugeChart`:case`radialChart`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:(0,F.jsxDEV)(Nl,{type:`gauge`,title:f.title||`Goal Completion`,subtitle:f.subtitle,data:f.data,percentage:f.percentage??84,color:p.textColor||`#34c759`,width:e.width-40,height:e.height-40},void 0,!1,{fileName:X,lineNumber:1527,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:1510,columnNumber:9},this);case`funnel`:case`funnelChart`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??20}px`,paddingRight:`${p.paddingRight??20}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:(0,F.jsxDEV)(Nl,{type:`funnel`,title:f.title||`Conversion Funnel`,subtitle:f.subtitle,data:f.data,format:f.format||`number`,width:e.width-40,height:e.height-40},void 0,!1,{fileName:X,lineNumber:1561,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:1544,columnNumber:9},this);case`sparkline`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??12}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,padding:`${p.paddingTop??10}px`,cursor:w?`pointer`:`default`},className:`flex flex-col justify-center select-none ${C}`,children:(0,F.jsxDEV)(Nl,{type:`sparkline`,data:f.data,color:p.textColor||`#0071e3`,width:e.width-20,height:e.height-20},void 0,!1,{fileName:X,lineNumber:1590,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:1576,columnNumber:9},this);case`progressBar`:case`progress`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??14}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??14}px`,paddingBottom:`${p.paddingBottom??14}px`,paddingLeft:`${p.paddingLeft??16}px`,paddingRight:`${p.paddingRight??16}px`,cursor:w?`pointer`:`default`},className:`flex flex-col justify-center select-none ${C}`,children:(0,F.jsxDEV)(Nl,{type:`progress`,title:f.title||`Task Progress`,subtitle:f.subtitle,percentage:f.percentage??76,color:p.textColor||`#7d2ae8`},void 0,!1,{fileName:X,lineNumber:1621,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:1604,columnNumber:9},this);case`table`:case`dataTable`:{let e=f.title||`Data Table`,t=f.columns||[`Customer`,`Plan`,`Amount`,`Status`,`Date`],n=f.rows||[{customer:`Acme Corp`,plan:`Enterprise`,amount:`$4,800.00`,status:`Completed`,date:`Just now`},{customer:`Linear Labs`,plan:`Pro Studio`,amount:`$590.00`,status:`Completed`,date:`5m ago`},{customer:`Vercel Edge`,plan:`Enterprise`,amount:`$12,400.00`,status:`Processing`,date:`22m ago`}];return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,padding:`${p.paddingTop??18}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:[e&&(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,F.jsxDEV)(`h4`,{className:`text-[13.5px] font-bold text-[#1d1d1f]`,children:e},void 0,!1,{fileName:X,lineNumber:1659,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#0071e3] font-medium cursor-pointer`,children:`Export CSV`},void 0,!1,{fileName:X,lineNumber:1660,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:1658,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`w-full flex-1 flex flex-col justify-around text-[11.5px]`,children:[(0,F.jsxDEV)(`div`,{className:`grid grid-cols-5 pb-2 border-b border-[#f4f4f6] text-[#86868b] font-semibold`,children:t.map((e,t)=>(0,F.jsxDEV)(`span`,{children:e},t,!1,{fileName:X,lineNumber:1667,columnNumber:17},this))},void 0,!1,{fileName:X,lineNumber:1665,columnNumber:13},this),n.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`grid grid-cols-5 py-2 border-b border-[#f4f4f6] text-[#1d1d1f] items-center`,children:[(0,F.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:e.customer||e.name},void 0,!1,{fileName:X,lineNumber:1673,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73]`,children:e.plan||e.category||`-`},void 0,!1,{fileName:X,lineNumber:1674,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`font-mono font-medium`,children:e.amount||e.value||`-`},void 0,!1,{fileName:X,lineNumber:1675,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:(0,F.jsxDEV)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded-full text-[10px] font-bold ${e.status===`Completed`||e.status===`Paid`?`bg-[#34c759]/10 text-[#34c759]`:`bg-[#ff9500]/10 text-[#ff9500]`}`,children:e.status||`Active`},void 0,!1,{fileName:X,lineNumber:1677,columnNumber:19},this)},void 0,!1,{fileName:X,lineNumber:1676,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[#86868b] text-[10.5px]`,children:e.date||`Today`},void 0,!1,{fileName:X,lineNumber:1687,columnNumber:17},this)]},t,!0,{fileName:X,lineNumber:1672,columnNumber:15},this))]},void 0,!0,{fileName:X,lineNumber:1664,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:1643,columnNumber:9},this)}case`dataList`:{let e=f.title||`Top Performing Items`,t=f.items||[{label:`North America (us-east)`,value:`$64,200`,badge:`52%`},{label:`Europe (eu-west)`,value:`$42,800`,badge:`34%`},{label:`Asia Pacific (ap-northeast)`,value:`$18,450`,badge:`14%`}];return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??16}px`,paddingBottom:`${p.paddingBottom??16}px`,paddingLeft:`${p.paddingLeft??18}px`,paddingRight:`${p.paddingRight??18}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:[e&&(0,F.jsxDEV)(`h4`,{className:`text-[13px] font-bold text-[#1d1d1f] mb-2`,children:e},void 0,!1,{fileName:X,lineNumber:1721,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col justify-around divide-y divide-[#f4f4f6]`,children:t.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between py-1.5 text-[11.5px]`,children:[(0,F.jsxDEV)(`span`,{className:`font-medium text-[#1d1d1f]`,children:e.label},void 0,!1,{fileName:X,lineNumber:1726,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`span`,{className:`font-mono font-bold text-[#1d1d1f]`,children:e.value},void 0,!1,{fileName:X,lineNumber:1728,columnNumber:19},this),e.badge&&(0,F.jsxDEV)(`span`,{className:`px-1.5 py-0.2 rounded bg-[#f4f4f6] text-[#6e6e73] font-semibold text-[10px]`,children:e.badge},void 0,!1,{fileName:X,lineNumber:1730,columnNumber:21},this)]},void 0,!0,{fileName:X,lineNumber:1727,columnNumber:17},this)]},t,!0,{fileName:X,lineNumber:1725,columnNumber:15},this))},void 0,!1,{fileName:X,lineNumber:1723,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:1704,columnNumber:9},this)}case`activityFeed`:{let e=f.title||`Live Activity Feed`,t=f.events||[{user:`Alex Rivera`,action:`upgraded to Enterprise`,time:`2m ago`,icon:`Sparkles`},{user:`Sarah Chen`,action:`invited 4 collaborators`,time:`14m ago`,icon:`User`},{user:`Cloud Scheduler`,action:`deployed 3 edge nodes`,time:`1h ago`,icon:`Zap`}];return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??16}px`,paddingBottom:`${p.paddingBottom??16}px`,paddingLeft:`${p.paddingLeft??18}px`,paddingRight:`${p.paddingRight??18}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:[e&&(0,F.jsxDEV)(`h4`,{className:`text-[13px] font-bold text-[#1d1d1f] mb-2`,children:e},void 0,!1,{fileName:X,lineNumber:1768,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col justify-around`,children:t.map((e,t)=>{let n=Of[e.icon]||d;return(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5 py-1`,children:[(0,F.jsxDEV)(`div`,{className:`w-7 h-7 rounded-full bg-[#f4f4f6] text-[#0071e3] flex items-center justify-center shrink-0`,children:(0,F.jsxDEV)(n,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:X,lineNumber:1776,columnNumber:21},this)},void 0,!1,{fileName:X,lineNumber:1775,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`flex-1 min-w-0 text-[11.5px]`,children:[(0,F.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:[e.user,` `]},void 0,!0,{fileName:X,lineNumber:1779,columnNumber:21},this),(0,F.jsxDEV)(`span`,{className:`text-[#6e6e73]`,children:e.action},void 0,!1,{fileName:X,lineNumber:1780,columnNumber:21},this)]},void 0,!0,{fileName:X,lineNumber:1778,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] text-[#86868b] shrink-0`,children:e.time},void 0,!1,{fileName:X,lineNumber:1782,columnNumber:19},this)]},t,!0,{fileName:X,lineNumber:1774,columnNumber:17},this)})},void 0,!1,{fileName:X,lineNumber:1770,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:1751,columnNumber:9},this)}case`timeline`:{let e=f.title||`Deployment Timeline`,t=f.steps||[{label:`Production V2.4 Released`,date:`Today, 14:30`,completed:!0},{label:`WCAG 2.1 AA Audit Passed`,date:`Yesterday`,completed:!0},{label:`Database Sharding Migration`,date:`Scheduled Friday`,completed:!1}];return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??16}px`,paddingBottom:`${p.paddingBottom??16}px`,paddingLeft:`${p.paddingLeft??18}px`,paddingRight:`${p.paddingRight??18}px`,cursor:w?`pointer`:`default`},className:`flex flex-col select-none ${C}`,children:[e&&(0,F.jsxDEV)(`h4`,{className:`text-[13px] font-bold text-[#1d1d1f] mb-2`,children:e},void 0,!1,{fileName:X,lineNumber:1817,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col justify-around`,children:t.map((e,t)=>(0,F.jsxDEV)(`div`,{className:`flex items-start gap-2.5 relative`,children:[(0,F.jsxDEV)(`div`,{className:`w-4 h-4 rounded-full border-2 flex items-center justify-center shrink-0 mt-0.5 ${e.completed?`border-[#0071e3] bg-[#0071e3] text-white`:`border-[#d1d1d6] bg-white`}`,children:e.completed&&(0,F.jsxDEV)(ke,{className:`w-2.5 h-2.5 stroke-[3]`},void 0,!1,{fileName:X,lineNumber:1829,columnNumber:36},this)},void 0,!1,{fileName:X,lineNumber:1822,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex-1`,children:[(0,F.jsxDEV)(`div`,{className:`text-[12px] font-semibold text-[#1d1d1f]`,children:e.label},void 0,!1,{fileName:X,lineNumber:1832,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`text-[10px] text-[#86868b]`,children:e.date},void 0,!1,{fileName:X,lineNumber:1833,columnNumber:19},this)]},void 0,!0,{fileName:X,lineNumber:1831,columnNumber:17},this)]},t,!0,{fileName:X,lineNumber:1821,columnNumber:15},this))},void 0,!1,{fileName:X,lineNumber:1819,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:1800,columnNumber:9},this)}case`calendar`:{let e=f.month||`August 2026`,t=f.selectedDay||15,n=f.eventDays||[3,8,15,22,28];return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,padding:`16px`,cursor:w?`pointer`:`default`},className:`flex flex-col justify-between select-none ${C}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,F.jsxDEV)(`span`,{className:`text-[12px] font-bold text-[#1d1d1f]`,children:e},void 0,!1,{fileName:X,lineNumber:1864,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1 text-[#86868b]`,children:[(0,F.jsxDEV)(vt,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:X,lineNumber:1866,columnNumber:15},this),(0,F.jsxDEV)(at,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:X,lineNumber:1867,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:1865,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:1863,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-7 text-center text-[10px] font-semibold text-[#86868b] mb-1`,children:[`S`,`M`,`T`,`W`,`T`,`F`,`S`].map((e,t)=>(0,F.jsxDEV)(`span`,{children:e},t,!1,{fileName:X,lineNumber:1873,columnNumber:15},this))},void 0,!1,{fileName:X,lineNumber:1871,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-7 gap-1 text-center text-[11px]`,children:Array.from({length:31},(e,t)=>t+1).map(e=>{let r=e===t,i=n.includes(e);return(0,F.jsxDEV)(`div`,{className:`h-6 rounded-md flex items-center justify-center relative font-medium ${r?`bg-[#0071e3] text-white font-bold`:`text-[#1d1d1f] hover:bg-[#f4f4f6]`}`,children:[(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:X,lineNumber:1891,columnNumber:19},this),i&&!r&&(0,F.jsxDEV)(`span`,{className:`w-1 h-1 rounded-full bg-[#0071e3] absolute bottom-0.5`},void 0,!1,{fileName:X,lineNumber:1893,columnNumber:21},this)]},e,!0,{fileName:X,lineNumber:1883,columnNumber:17},this)})},void 0,!1,{fileName:X,lineNumber:1877,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:1849,columnNumber:9},this)}case`featureCard`:{let e=kf(f,[`title`,`headline`],`Feature Title`),t=kf(f,[`description`,`text`],`Feature description details`);return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??24}px`,paddingBottom:`${p.paddingBottom??24}px`,paddingLeft:`${p.paddingLeft??24}px`,paddingRight:`${p.paddingRight??24}px`,opacity:p.opacity??1,cursor:w?`pointer`:`default`},className:`flex flex-col select-none overflow-hidden ${C}`,children:[(0,F.jsxDEV)(`div`,{className:`w-9 h-9 rounded-[10px] bg-[#f4f4f6] border border-[#e5e5ea] flex items-center justify-center text-[#0071e3] mb-3.5 shrink-0`,children:(0,F.jsxDEV)(vi,{className:`w-4.5 h-4.5`},void 0,!1,{fileName:X,lineNumber:1927,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:1926,columnNumber:11},this),e&&(0,F.jsxDEV)(`h3`,{className:`text-[16px] font-semibold text-[#1d1d1f] tracking-tight mb-1.5 truncate`,children:e},void 0,!1,{fileName:X,lineNumber:1930,columnNumber:13},this),t&&(0,F.jsxDEV)(`p`,{className:`text-[13px] text-[#6e6e73] leading-relaxed line-clamp-3`,children:t},void 0,!1,{fileName:X,lineNumber:1935,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:1908,columnNumber:9},this)}case`footer`:{let e=kf(f,[`brandName`,`title`],`Cyrus`),t=kf(f,[`copyright`,`text`],`© 2026 Cyrus Software.`),n=kf(f,[`col1Title`],`Product`),r=f.col1Links||[`Features`,`Engine`,`Templates`],i=kf(f,[`col2Title`],`Resources`),a=f.col2Links||[`Documentation`,`API`,`Changelog`];return(0,F.jsxDEV)(`footer`,{style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??14}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,padding:`24px 32px`,opacity:p.opacity??1},className:`flex items-start justify-between select-none ${C}`,children:[(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2 max-w-xs`,children:[(0,F.jsxDEV)(`div`,{className:`text-[16px] font-bold text-[#1d1d1f] flex items-center gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`w-5 h-5 rounded-[5px] bg-[#1d1d1f] text-white flex items-center justify-center text-[10px]`,children:`C`},void 0,!1,{fileName:X,lineNumber:1967,columnNumber:15},this),e&&(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:X,lineNumber:1970,columnNumber:25},this)]},void 0,!0,{fileName:X,lineNumber:1966,columnNumber:13},this),t&&(0,F.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b]`,children:t},void 0,!1,{fileName:X,lineNumber:1972,columnNumber:27},this)]},void 0,!0,{fileName:X,lineNumber:1965,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-start gap-16`,children:[(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[n&&(0,F.jsxDEV)(`span`,{className:`text-[12px] font-semibold text-[#1d1d1f]`,children:n},void 0,!1,{fileName:X,lineNumber:1977,columnNumber:29},this),r.map((e,t)=>(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#6e6e73]`,children:e},t,!1,{fileName:X,lineNumber:1979,columnNumber:17},this))]},void 0,!0,{fileName:X,lineNumber:1976,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[i&&(0,F.jsxDEV)(`span`,{className:`text-[12px] font-semibold text-[#1d1d1f]`,children:i},void 0,!1,{fileName:X,lineNumber:1985,columnNumber:29},this),a.map((e,t)=>(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#6e6e73]`,children:e},t,!1,{fileName:X,lineNumber:1987,columnNumber:17},this))]},void 0,!0,{fileName:X,lineNumber:1984,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:1975,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:1952,columnNumber:9},this)}case`form`:{let o=f.title||`Form`,c=f.subtitle||``,l=f.submitLabel||`Submit`;return(0,F.jsxDEV)(`form`,{onSubmit:t=>{t.preventDefault(),s&&s(e)},style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,padding:`${p.padding??24}px`,opacity:p.opacity??1,display:`flex`,flexDirection:`column`,justifyContent:`space-between`,gap:`16px`},className:C,children:[(0,F.jsxDEV)(`div`,{children:[o&&(0,F.jsxDEV)(`h3`,{className:`text-[17px] font-bold text-[#1d1d1f] tracking-tight`,children:o},void 0,!1,{fileName:X,lineNumber:2027,columnNumber:23},this),c&&(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b] mt-0.5`,children:c},void 0,!1,{fileName:X,lineNumber:2028,columnNumber:26},this)]},void 0,!0,{fileName:X,lineNumber:2026,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col gap-3`,children:n&&n.length>0?n.map(e=>(0,F.jsxDEV)(`div`,{className:`w-full`,children:(0,F.jsxDEV)(jf,{element:e,designTokens:t,formValues:r,onFormChange:i,onTriggerInteraction:a,onExecuteForm:s},void 0,!1,{fileName:X,lineNumber:2035,columnNumber:19},this)},e.id,!1,{fileName:X,lineNumber:2034,columnNumber:17},this)):(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,F.jsxDEV)(`input`,{type:`text`,placeholder:`Name`,value:r[`field_name_${e.id}`]||``,onChange:t=>i(`field_name_${e.id}`,t.target.value),className:`h-8.5 px-3 bg-white rounded-[8px] border border-[#e5e5ea] text-[13px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3]`},void 0,!1,{fileName:X,lineNumber:2047,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`email`,placeholder:`Email`,value:r[`field_email_${e.id}`]||``,onChange:t=>i(`field_email_${e.id}`,t.target.value),className:`h-8.5 px-3 bg-white rounded-[8px] border border-[#e5e5ea] text-[13px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3]`},void 0,!1,{fileName:X,lineNumber:2054,columnNumber:17},this)]},void 0,!0,{fileName:X,lineNumber:2046,columnNumber:15},this)},void 0,!1,{fileName:X,lineNumber:2031,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`submit`,className:`w-full py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[13px] font-semibold text-center shadow-apple-sm hover:bg-[#0077ed] active:scale-[0.98] transition-apple cursor-pointer`,children:l},void 0,!1,{fileName:X,lineNumber:2065,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2008,columnNumber:9},this)}case`formField`:{let t=f.name||`field_${e.id}`,n=f.label,a=f.placeholder||`Enter value...`,o=f.required===!0,s=f.helperText,c=r[t]??``;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,opacity:p.opacity??1},className:`flex flex-col justify-center gap-1`,children:[n&&(0,F.jsxDEV)(`label`,{className:`text-[12px] font-semibold text-[#1d1d1f] flex items-center gap-1`,children:[(0,F.jsxDEV)(`span`,{children:n},void 0,!1,{fileName:X,lineNumber:2090,columnNumber:15},this),o&&(0,F.jsxDEV)(`span`,{className:`text-[#ff3b30] text-[11px]`,children:`*`},void 0,!1,{fileName:X,lineNumber:2091,columnNumber:25},this)]},void 0,!0,{fileName:X,lineNumber:2089,columnNumber:13},this),(0,F.jsxDEV)(`input`,{type:f.inputType||`text`,value:c,onChange:e=>i(t,e.target.value),placeholder:a,required:o,className:`w-full h-9 rounded-[8px] bg-white border border-[#e5e5ea] px-3 text-[13px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] focus:ring-2 focus:ring-[#0071e3]/20 transition-all shadow-2xs`},void 0,!1,{fileName:X,lineNumber:2094,columnNumber:11},this),s&&(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#86868b]`,children:s},void 0,!1,{fileName:X,lineNumber:2102,columnNumber:22},this)]},void 0,!0,{fileName:X,lineNumber:2084,columnNumber:9},this)}case`textarea`:{let t=f.name||`field_${e.id}`,n=f.label||`Message`,a=f.placeholder||`Type here...`,o=f.required===!0,s=r[t]??``;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,opacity:p.opacity??1},className:`flex flex-col justify-center gap-1`,children:[n&&(0,F.jsxDEV)(`label`,{className:`text-[12px] font-semibold text-[#1d1d1f] flex items-center gap-1`,children:[(0,F.jsxDEV)(`span`,{children:n},void 0,!1,{fileName:X,lineNumber:2121,columnNumber:15},this),o&&(0,F.jsxDEV)(`span`,{className:`text-[#ff3b30] text-[11px]`,children:`*`},void 0,!1,{fileName:X,lineNumber:2122,columnNumber:25},this)]},void 0,!0,{fileName:X,lineNumber:2120,columnNumber:13},this),(0,F.jsxDEV)(`textarea`,{rows:f.rows||3,value:s,onChange:e=>i(t,e.target.value),placeholder:a,required:o,className:`w-full p-2.5 rounded-[8px] bg-white border border-[#e5e5ea] text-[12.5px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] focus:ring-2 focus:ring-[#0071e3]/20 transition-all shadow-2xs resize-none`},void 0,!1,{fileName:X,lineNumber:2125,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2115,columnNumber:9},this)}case`select`:{let t=f.name||`field_${e.id}`,n=f.label,a=f.options||[`Option 1`,`Option 2`],o=r[t]??f.defaultValue??a[0];return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,opacity:p.opacity??1},className:`flex flex-col justify-center gap-1`,children:[n&&(0,F.jsxDEV)(`label`,{className:`text-[12px] font-semibold text-[#1d1d1f]`,children:n},void 0,!1,{fileName:X,lineNumber:2148,columnNumber:21},this),(0,F.jsxDEV)(`select`,{value:o,onChange:e=>i(t,e.target.value),className:`w-full h-9 rounded-[8px] bg-white border border-[#e5e5ea] px-3 text-[13px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] cursor-pointer shadow-2xs`,children:a.map(e=>(0,F.jsxDEV)(`option`,{value:e,children:e},e,!1,{fileName:X,lineNumber:2155,columnNumber:15},this))},void 0,!1,{fileName:X,lineNumber:2149,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2144,columnNumber:9},this)}case`checkbox`:{let t=f.name||`field_${e.id}`,n=f.label||`I agree`,a=r[t]===void 0?f.checked!==!1:!!r[t];return(0,F.jsxDEV)(`div`,{onClick:()=>i(t,!a),style:{width:`100%`,height:`100%`},className:`flex items-center gap-2.5 select-none cursor-pointer`,children:[(0,F.jsxDEV)(`div`,{className:`w-4.5 h-4.5 rounded-[5px] border flex items-center justify-center transition-colors ${a?`bg-[#0071e3] border-[#0071e3] text-white`:`bg-white border-[#d2d2d7]`}`,children:a&&(0,F.jsxDEV)(ke,{className:`w-3 h-3 stroke-[2.5]`},void 0,!1,{fileName:X,lineNumber:2180,columnNumber:25},this)},void 0,!1,{fileName:X,lineNumber:2175,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-[13px] text-[#1d1d1f] font-medium leading-none`,children:n},void 0,!1,{fileName:X,lineNumber:2182,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2170,columnNumber:9},this)}case`radioGroup`:{let t=f.name||`field_${e.id}`,n=f.label,a=f.options||[`Option A`,`Option B`],o=r[t]??a[f.selectedIndex??0];return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`},className:`flex flex-col gap-2 select-none`,children:[n&&(0,F.jsxDEV)(`span`,{className:`text-[12px] font-semibold text-[#1d1d1f]`,children:n},void 0,!1,{fileName:X,lineNumber:2198,columnNumber:21},this),a.map(e=>{let n=o===e;return(0,F.jsxDEV)(`div`,{onClick:()=>i(t,e),className:`flex items-center gap-2.5 cursor-pointer`,children:[(0,F.jsxDEV)(`div`,{className:`w-4.5 h-4.5 rounded-full border flex items-center justify-center ${n?`border-[#0071e3]`:`border-[#d2d2d7]`}`,children:n&&(0,F.jsxDEV)(`div`,{className:`w-2.5 h-2.5 rounded-full bg-[#0071e3]`},void 0,!1,{fileName:X,lineNumber:2212,columnNumber:29},this)},void 0,!1,{fileName:X,lineNumber:2207,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[13px] text-[#1d1d1f]`,children:e},void 0,!1,{fileName:X,lineNumber:2214,columnNumber:17},this)]},e,!0,{fileName:X,lineNumber:2202,columnNumber:15},this)})]},void 0,!0,{fileName:X,lineNumber:2194,columnNumber:9},this)}case`fileUpload`:{f.name||`${e.id}`;let t=f.label||`Upload Files`,n=f.helperText||`PNG, JPG or PDF`,r=f.buttonText||`Browse Files`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,borderRadius:`${p.borderRadius??12}px`,borderColor:p.borderColor||`#d2d2d7`,backgroundColor:p.backgroundColor||`#fbfbfd`},className:`border-1.5 border-dashed flex flex-col items-center justify-center p-4 text-center cursor-pointer hover:bg-[#f4f4f6] transition-apple gap-1.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-9 h-9 rounded-full bg-white shadow-2xs flex items-center justify-center text-[#0071e3] mb-1`,children:(0,F.jsxDEV)(Qn,{className:`w-5 h-5`},void 0,!1,{fileName:X,lineNumber:2240,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:2239,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-[13px] font-semibold text-[#1d1d1f]`,children:t},void 0,!1,{fileName:X,lineNumber:2242,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#86868b]`,children:n},void 0,!1,{fileName:X,lineNumber:2243,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`mt-1 px-3 py-1 rounded-[6px] bg-white border border-[#e5e5ea] text-[11.5px] font-medium text-[#1d1d1f] shadow-2xs`,children:r},void 0,!1,{fileName:X,lineNumber:2244,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2229,columnNumber:9},this)}case`submitButton`:{let t=f.label||`Submit`;return(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{s&&s(e),T()},style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||v,color:p.textColor||`#ffffff`,borderRadius:`${p.borderRadius??10}px`},className:`flex items-center justify-center gap-2 font-semibold text-[13.5px] shadow-apple-sm hover:opacity-95 active:scale-[0.98] transition-apple cursor-pointer`,children:[(0,F.jsxDEV)(rt,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:X,lineNumber:2269,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:t},void 0,!1,{fileName:X,lineNumber:2270,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2254,columnNumber:9},this)}case`loginForm`:{let t=f.title||`Sign In to Cyrus`,n=f.subtitle||`Enter your email and password`,a=f.submitLabel||`Sign In`,o=`email_${e.id}`,c=`password_${e.id}`;return(0,F.jsxDEV)(`form`,{onSubmit:t=>{t.preventDefault(),s&&s(e)},style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??18}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,padding:`28px`},className:`flex flex-col justify-between ${C}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`w-9 h-9 rounded-[10px] bg-[#0071e3] text-white flex items-center justify-center mb-3 shadow-apple-sm`,children:(0,F.jsxDEV)(Ri,{className:`w-4.5 h-4.5`},void 0,!1,{fileName:X,lineNumber:2304,columnNumber:15},this)},void 0,!1,{fileName:X,lineNumber:2303,columnNumber:13},this),(0,F.jsxDEV)(`h3`,{className:`text-[18px] font-bold text-[#1d1d1f] tracking-tight`,children:t},void 0,!1,{fileName:X,lineNumber:2306,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[12px] text-[#86868b] mt-0.5`,children:n},void 0,!1,{fileName:X,lineNumber:2307,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2302,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-3 my-2`,children:[(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,F.jsxDEV)(`span`,{className:`text-[11.5px] font-medium text-[#6e6e73]`,children:`Email Address`},void 0,!1,{fileName:X,lineNumber:2312,columnNumber:15},this),(0,F.jsxDEV)(`input`,{type:`email`,required:!0,value:r[o]||``,onChange:e=>i(o,e.target.value),placeholder:`alex@apple.com`,className:`h-8.5 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 text-[12.5px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] focus:bg-white`},void 0,!1,{fileName:X,lineNumber:2313,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:2311,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,F.jsxDEV)(`div`,{className:`flex justify-between items-center text-[11.5px]`,children:[(0,F.jsxDEV)(`span`,{className:`font-medium text-[#6e6e73]`,children:`Password`},void 0,!1,{fileName:X,lineNumber:2324,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] font-medium hover:underline cursor-pointer`,children:`Forgot?`},void 0,!1,{fileName:X,lineNumber:2325,columnNumber:17},this)]},void 0,!0,{fileName:X,lineNumber:2323,columnNumber:15},this),(0,F.jsxDEV)(`input`,{type:`password`,required:!0,value:r[c]||``,onChange:e=>i(c,e.target.value),placeholder:`••••••••••••`,className:`h-8.5 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 text-[12.5px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] focus:bg-white`},void 0,!1,{fileName:X,lineNumber:2327,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:2322,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2310,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`button`,{type:`submit`,className:`w-full py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[13px] font-semibold text-center shadow-apple-sm hover:bg-[#0077ed] active:scale-[0.98] transition-apple cursor-pointer`,children:a},void 0,!1,{fileName:X,lineNumber:2339,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] text-center mt-2.5`,children:[`Don't have an account? `,(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] font-medium hover:underline cursor-pointer`,children:`Sign up`},void 0,!1,{fileName:X,lineNumber:2346,columnNumber:38},this)]},void 0,!0,{fileName:X,lineNumber:2345,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2338,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2289,columnNumber:9},this)}case`signupForm`:{let t=f.title||`Create Your Account`,n=f.submitLabel||`Create Account`;return(0,F.jsxDEV)(`form`,{onSubmit:t=>{t.preventDefault(),s&&s(e)},style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??18}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,padding:`28px`},className:`flex flex-col justify-between ${C}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`w-9 h-9 rounded-[10px] bg-[#0071e3] text-white flex items-center justify-center mb-3 shadow-apple-sm`,children:(0,F.jsxDEV)(b,{className:`w-4.5 h-4.5`},void 0,!1,{fileName:X,lineNumber:2378,columnNumber:15},this)},void 0,!1,{fileName:X,lineNumber:2377,columnNumber:13},this),(0,F.jsxDEV)(`h3`,{className:`text-[18px] font-bold text-[#1d1d1f] tracking-tight`,children:t},void 0,!1,{fileName:X,lineNumber:2380,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2376,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5 my-2`,children:[(0,F.jsxDEV)(`input`,{type:`text`,required:!0,placeholder:`Full Name`,value:r[`name_${e.id}`]||``,onChange:t=>i(`name_${e.id}`,t.target.value),className:`h-8.5 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 text-[12.5px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] focus:bg-white`},void 0,!1,{fileName:X,lineNumber:2384,columnNumber:13},this),(0,F.jsxDEV)(`input`,{type:`email`,required:!0,placeholder:`Work Email`,value:r[`email_${e.id}`]||``,onChange:t=>i(`email_${e.id}`,t.target.value),className:`h-8.5 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 text-[12.5px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] focus:bg-white`},void 0,!1,{fileName:X,lineNumber:2392,columnNumber:13},this),(0,F.jsxDEV)(`input`,{type:`password`,required:!0,placeholder:`Create Password`,value:r[`pass_${e.id}`]||``,onChange:t=>i(`pass_${e.id}`,t.target.value),className:`h-8.5 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 text-[12.5px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] focus:bg-white`},void 0,!1,{fileName:X,lineNumber:2400,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2383,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`button`,{type:`submit`,className:`w-full py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[13px] font-semibold text-center shadow-apple-sm hover:bg-[#0077ed] active:scale-[0.98] transition-apple cursor-pointer`,children:n},void 0,!1,{fileName:X,lineNumber:2411,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#86868b] text-center mt-2.5`,children:[`Already registered? `,(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] font-medium hover:underline cursor-pointer`,children:`Sign in`},void 0,!1,{fileName:X,lineNumber:2418,columnNumber:35},this)]},void 0,!0,{fileName:X,lineNumber:2417,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2410,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2363,columnNumber:9},this)}case`contactForm`:{let t=f.title||`Get in Touch`,n=f.submitLabel||`Send Inquiry`;return(0,F.jsxDEV)(`form`,{onSubmit:t=>{t.preventDefault(),s&&s(e)},style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??18}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,padding:`28px`},className:`flex flex-col justify-between ${C}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`w-9 h-9 rounded-[10px] bg-[#0071e3] text-white flex items-center justify-center mb-3 shadow-apple-sm`,children:(0,F.jsxDEV)(ia,{className:`w-4.5 h-4.5`},void 0,!1,{fileName:X,lineNumber:2450,columnNumber:15},this)},void 0,!1,{fileName:X,lineNumber:2449,columnNumber:13},this),(0,F.jsxDEV)(`h3`,{className:`text-[18px] font-bold text-[#1d1d1f] tracking-tight`,children:t},void 0,!1,{fileName:X,lineNumber:2452,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2448,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5 my-2`,children:[(0,F.jsxDEV)(`input`,{type:`text`,required:!0,placeholder:`Your Name`,value:r[`name_${e.id}`]||``,onChange:t=>i(`name_${e.id}`,t.target.value),className:`h-8.5 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 text-[12.5px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] focus:bg-white`},void 0,!1,{fileName:X,lineNumber:2456,columnNumber:13},this),(0,F.jsxDEV)(`input`,{type:`email`,required:!0,placeholder:`Your Email`,value:r[`email_${e.id}`]||``,onChange:t=>i(`email_${e.id}`,t.target.value),className:`h-8.5 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] px-3 text-[12.5px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] focus:bg-white`},void 0,!1,{fileName:X,lineNumber:2464,columnNumber:13},this),(0,F.jsxDEV)(`textarea`,{rows:3,required:!0,placeholder:`How can we help?`,value:r[`msg_${e.id}`]||``,onChange:t=>i(`msg_${e.id}`,t.target.value),className:`p-2.5 bg-[#f4f4f6] rounded-[8px] border border-[#e5e5ea] text-[12.5px] text-[#1d1d1f] focus:outline-none focus:border-[#0071e3] focus:bg-white resize-none`},void 0,!1,{fileName:X,lineNumber:2472,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2455,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`submit`,className:`w-full py-2.5 rounded-[10px] bg-[#0071e3] text-white text-[13px] font-semibold text-center shadow-apple-sm hover:bg-[#0077ed] active:scale-[0.98] transition-apple cursor-pointer`,children:n},void 0,!1,{fileName:X,lineNumber:2482,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2435,columnNumber:9},this)}case`mobileHeader`:{let e=f.title||`Screen Title`,t=f.actionLabel||`Edit`,n=f.showBack!==!1;return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??14}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingLeft:`${p.paddingLeft??16}px`,paddingRight:`${p.paddingRight??16}px`},className:`flex items-center justify-between ${C}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-[#0071e3] font-medium text-[13px] cursor-pointer`,children:[n&&(0,F.jsxDEV)(vt,{className:`w-4 h-4`},void 0,!1,{fileName:X,lineNumber:2513,columnNumber:26},this),(0,F.jsxDEV)(`span`,{className:`text-[12px]`,children:`Back`},void 0,!1,{fileName:X,lineNumber:2514,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2512,columnNumber:11},this),(0,F.jsxDEV)(`h4`,{className:`text-[14px] font-bold text-[#1d1d1f] tracking-tight truncate max-w-[160px]`,children:e},void 0,!1,{fileName:X,lineNumber:2517,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`text-[12px] font-semibold text-[#0071e3] cursor-pointer`,children:t},void 0,!1,{fileName:X,lineNumber:2521,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2498,columnNumber:9},this)}case`bottomNav`:case`tabBar`:{let e=f.activeTab||`Home`,t=f.tabs||[{label:`Home`,icon:`Home`,badge:``},{label:`Cards`,icon:`CreditCard`,badge:`2`},{label:`Transfer`,icon:`Send`,badge:``},{label:`Profile`,icon:`User`,badge:``}];return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??20}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`},className:`flex items-center justify-around px-2 ${C}`,children:t.map((t,n)=>{let r=t.label===e,i=Of[t.icon]||Me;return(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{w&&a(w)},className:`flex flex-col items-center gap-0.5 relative py-1 px-2.5 rounded-xl cursor-pointer transition-apple ${r?`text-[#0071e3] font-bold`:`text-[#86868b] hover:text-[#1d1d1f]`}`,children:[(0,F.jsxDEV)(`div`,{className:`relative`,children:[(0,F.jsxDEV)(i,{className:`w-5 h-5`},void 0,!1,{fileName:X,lineNumber:2566,columnNumber:19},this),t.badge&&(0,F.jsxDEV)(`span`,{className:`absolute -top-1 -right-2 px-1 py-0.2 rounded-full bg-[#ff3b30] text-white text-[9px] font-bold leading-none`,children:t.badge},void 0,!1,{fileName:X,lineNumber:2568,columnNumber:21},this)]},void 0,!0,{fileName:X,lineNumber:2565,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-[10px] tracking-tight`,children:t.label},void 0,!1,{fileName:X,lineNumber:2573,columnNumber:17},this)]},n,!0,{fileName:X,lineNumber:2555,columnNumber:15},this)})},void 0,!1,{fileName:X,lineNumber:2539,columnNumber:9},this)}case`mobileCard`:{let e=f.subtitle||`Available Balance`,t=f.amount||`$14,250.80`,n=f.tag||`Checking •• 4092`,r=f.trend||`+12.4% this month`;return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#0071e3`,color:p.textColor||`#ffffff`,borderRadius:`${p.borderRadius??18}px`,borderWidth:`${p.borderWidth??0}px`,borderColor:p.borderColor||`transparent`,paddingTop:`${p.paddingTop??18}px`,paddingBottom:`${p.paddingBottom??18}px`,paddingLeft:`${p.paddingLeft??18}px`,paddingRight:`${p.paddingRight??18}px`,cursor:w?`pointer`:`default`},className:`flex flex-col justify-between ${C}`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{className:`text-[11px] font-medium opacity-80`,children:e},void 0,!1,{fileName:X,lineNumber:2607,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`px-2 py-0.5 rounded-full text-[10px] font-semibold bg-white/20 backdrop-blur-xs`,children:n},void 0,!1,{fileName:X,lineNumber:2608,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2606,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[26px] font-extrabold tracking-tight leading-tight`,children:t},void 0,!1,{fileName:X,lineNumber:2614,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`text-[11px] font-medium opacity-85 mt-0.5 flex items-center gap-1`,children:[(0,F.jsxDEV)(_t,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:X,lineNumber:2616,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:r},void 0,!1,{fileName:X,lineNumber:2617,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:2615,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2613,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2588,columnNumber:9},this)}case`mobileList`:{let e=f.title||`Recent Transactions`,t=f.items||[{title:`Apple Store`,subtitle:`Hardware & Tech`,amount:`-$1,299.00`,icon:`ShoppingBag`,isDebit:!0},{title:`Stripe Payout`,subtitle:`Direct Deposit`,amount:`+$4,820.00`,icon:`ArrowDownLeft`,isDebit:!1},{title:`Uber Rides`,subtitle:`Transportation`,amount:`-$24.50`,icon:`Car`,isDebit:!0}];return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??16}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??14}px`,paddingBottom:`${p.paddingBottom??14}px`,paddingLeft:`${p.paddingLeft??16}px`,paddingRight:`${p.paddingRight??16}px`},className:`flex flex-col ${C}`,children:[e&&(0,F.jsxDEV)(`div`,{className:`text-[12px] font-bold text-[#1d1d1f] mb-2 flex items-center justify-between`,children:[(0,F.jsxDEV)(`span`,{children:e},void 0,!1,{fileName:X,lineNumber:2650,columnNumber:15},this),(0,F.jsxDEV)(`span`,{className:`text-[10.5px] text-[#0071e3] font-medium cursor-pointer`,children:`See All`},void 0,!1,{fileName:X,lineNumber:2651,columnNumber:15},this)]},void 0,!0,{fileName:X,lineNumber:2649,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex flex-col justify-around divide-y divide-[#f5f5f7]`,children:t.map((e,t)=>{let n=Of[e.icon]||Ie;return(0,F.jsxDEV)(`div`,{onClick:T,className:`flex items-center justify-between py-2 cursor-pointer hover:bg-[#f5f5f7]/60 rounded-lg px-1 transition-apple`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-8 h-8 rounded-xl bg-[#f5f5f7] text-[#1d1d1f] flex items-center justify-center`,children:(0,F.jsxDEV)(n,{className:`w-4 h-4 text-[#0071e3]`},void 0,!1,{fileName:X,lineNumber:2667,columnNumber:23},this)},void 0,!1,{fileName:X,lineNumber:2666,columnNumber:21},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[12px] font-semibold text-[#1d1d1f]`,children:e.title},void 0,!1,{fileName:X,lineNumber:2670,columnNumber:23},this),(0,F.jsxDEV)(`div`,{className:`text-[10px] text-[#86868b]`,children:e.subtitle},void 0,!1,{fileName:X,lineNumber:2671,columnNumber:23},this)]},void 0,!0,{fileName:X,lineNumber:2669,columnNumber:21},this)]},void 0,!0,{fileName:X,lineNumber:2665,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`text-right`,children:[(0,F.jsxDEV)(`div`,{className:`text-[12px] font-bold ${e.isDebit?`text-[#1d1d1f]`:`text-[#34c759]`}`,children:e.amount},void 0,!1,{fileName:X,lineNumber:2676,columnNumber:21},this),(0,F.jsxDEV)(at,{className:`w-3 h-3 text-[#c7c7cc] inline-block ml-1`},void 0,!1,{fileName:X,lineNumber:2683,columnNumber:21},this)]},void 0,!0,{fileName:X,lineNumber:2675,columnNumber:19},this)]},t,!0,{fileName:X,lineNumber:2660,columnNumber:17},this)})},void 0,!1,{fileName:X,lineNumber:2655,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2633,columnNumber:9},this)}case`mobileSheet`:{let e=f.title||`Transfer Money`,t=f.subtitle||`Select payment method or contact.`,n=f.primaryAction||`Send Money`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??24}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??14}px`,paddingBottom:`${p.paddingBottom??16}px`,paddingLeft:`${p.paddingLeft??18}px`,paddingRight:`${p.paddingRight??18}px`},className:`flex flex-col justify-between ${C}`,children:[(0,F.jsxDEV)(`div`,{className:`w-10 h-1 rounded-full bg-[#d1d1d6] mx-auto mb-2`},void 0,!1,{fileName:X,lineNumber:2714,columnNumber:11},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h4`,{className:`text-[15px] font-bold text-[#1d1d1f]`,children:e},void 0,!1,{fileName:X,lineNumber:2717,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[11px] text-[#86868b] mt-0.5`,children:t},void 0,!1,{fileName:X,lineNumber:2718,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2716,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`p-3 rounded-xl bg-[#f5f5f7] border border-[#e5e5ea] flex items-center justify-between text-[11.5px]`,children:[(0,F.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:`Fast Wire Transfer`},void 0,!1,{fileName:X,lineNumber:2722,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] font-bold`,children:`Instant`},void 0,!1,{fileName:X,lineNumber:2723,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2721,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:T,className:`w-full py-2.5 rounded-xl bg-[#0071e3] text-white text-[12.5px] font-semibold text-center shadow-2xs hover:bg-[#0077ed] transition-apple cursor-pointer`,children:n},void 0,!1,{fileName:X,lineNumber:2726,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2699,columnNumber:9},this)}case`mobileModal`:{let e=f.title||`Confirm Payment`,t=f.message||`Are you sure you want to send $500.00 to Alex Rivera?`,n=f.confirmLabel||`Confirm & Send`,r=f.cancelLabel||`Cancel`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`${p.borderRadius??20}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??20}px`,paddingBottom:`${p.paddingBottom??20}px`,paddingLeft:`${p.paddingLeft??18}px`,paddingRight:`${p.paddingRight??18}px`},className:`flex flex-col justify-between text-center ${C}`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`w-10 h-10 rounded-2xl bg-[#0071e3]/10 text-[#0071e3] flex items-center justify-center mx-auto mb-2`,children:(0,F.jsxDEV)(rt,{className:`w-5 h-5`},void 0,!1,{fileName:X,lineNumber:2761,columnNumber:15},this)},void 0,!1,{fileName:X,lineNumber:2760,columnNumber:13},this),(0,F.jsxDEV)(`h4`,{className:`text-[14px] font-bold text-[#1d1d1f]`,children:e},void 0,!1,{fileName:X,lineNumber:2763,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-[11.5px] text-[#6e6e73] mt-1 leading-relaxed`,children:t},void 0,!1,{fileName:X,lineNumber:2764,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2759,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:T,className:`flex-1 py-2 rounded-xl bg-[#f5f5f7] text-[#1d1d1f] text-[11.5px] font-semibold text-center hover:bg-[#e5e5ea] transition-apple cursor-pointer`,children:r},void 0,!1,{fileName:X,lineNumber:2768,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:T,className:`flex-1 py-2 rounded-xl bg-[#0071e3] text-white text-[11.5px] font-semibold text-center shadow-2xs hover:bg-[#0077ed] transition-apple cursor-pointer`,children:n},void 0,!1,{fileName:X,lineNumber:2775,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2767,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2744,columnNumber:9},this)}case`mobileScreen`:return(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#f5f5f7`,borderRadius:`${p.borderRadius??28}px`,borderWidth:`${p.borderWidth??1}px`,borderColor:p.borderColor||`#e5e5ea`,paddingTop:`${p.paddingTop??16}px`,paddingBottom:`${p.paddingBottom??16}px`,paddingLeft:`${p.paddingLeft??16}px`,paddingRight:`${p.paddingRight??16}px`},className:`flex flex-col justify-between ${C}`,children:[(0,F.jsxDEV)(`div`,{className:`w-full flex items-center justify-between text-[10px] font-bold text-[#1d1d1f] px-2 py-0.5`,children:[(0,F.jsxDEV)(`span`,{children:`9:41`},void 0,!1,{fileName:X,lineNumber:2806,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`w-20 h-4 rounded-full bg-black mx-auto`},void 0,!1,{fileName:X,lineNumber:2807,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`5G 100%`},void 0,!1,{fileName:X,lineNumber:2808,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2805,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex-1 flex items-center justify-center text-[12px] text-[#86868b]`,children:e.name},void 0,!1,{fileName:X,lineNumber:2811,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`w-28 h-1 rounded-full bg-black mx-auto`},void 0,!1,{fileName:X,lineNumber:2815,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:2789,columnNumber:9},this);case`image`:{let t=f.imageUrl||f.src||f.url||``,n=f.alt||e.name||`Image`,r=f.fit||p.objectFit||`cover`,i=p.borderRadius??8;return t?(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,borderRadius:`${i}px`,overflow:`hidden`,opacity:p.opacity??1,position:`relative`,cursor:w?`pointer`:`default`},children:[(0,F.jsxDEV)(`img`,{src:t,alt:n,style:{width:`100%`,height:`100%`,objectFit:r,display:`block`}},void 0,!1,{fileName:X,lineNumber:2857,columnNumber:11},this),(f.title||f.text)&&(0,F.jsxDEV)(`div`,{style:{position:`absolute`,bottom:0,left:0,right:0,background:`linear-gradient(transparent, rgba(0,0,0,0.75))`,padding:`20px 16px 16px`},children:[f.title&&(0,F.jsxDEV)(`div`,{style:{color:p.textColor||`#ffffff`},className:`text-[16px] font-bold leading-tight`,children:f.title},void 0,!1,{fileName:X,lineNumber:2879,columnNumber:17},this),f.text&&(0,F.jsxDEV)(`div`,{style:{color:p.textColor?`${p.textColor}cc`:`rgba(255,255,255,0.75)`},className:`text-[12px] mt-0.5`,children:f.text},void 0,!1,{fileName:X,lineNumber:2884,columnNumber:17},this)]},void 0,!0,{fileName:X,lineNumber:2868,columnNumber:13},this)]},void 0,!0,{fileName:X,lineNumber:2845,columnNumber:9},this):(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#1a1a1a`,borderRadius:`${i}px`,opacity:p.opacity??1},className:`flex flex-col items-center justify-center gap-2 overflow-hidden select-none`,children:(0,F.jsxDEV)(`span`,{className:`text-[11px] text-white/40 font-medium`,children:n},void 0,!1,{fileName:X,lineNumber:2839,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:2828,columnNumber:11},this)}case`htmlPage`:return(0,F.jsxDEV)(Af,{element:e,styles:p,content:f},void 0,!1,{fileName:X,lineNumber:2895,columnNumber:14},this);default:{let t=Al.getCustomWidgetRenderer(e.type);return t?(0,F.jsxDEV)(`div`,{onClick:T,className:`w-full h-full`,children:(0,F.jsxDEV)(t,{element:e},void 0,!1,{fileName:X,lineNumber:2903,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:2902,columnNumber:11},this):(0,F.jsxDEV)(`div`,{onClick:T,style:{width:`100%`,height:`100%`,backgroundColor:p.backgroundColor||`#ffffff`,borderRadius:`10px`,borderWidth:`1px`,borderColor:`#e5e5ea`,cursor:w?`pointer`:`default`},className:`p-3 flex items-center justify-center text-[12px] text-[#86868b]`,children:e.name},void 0,!1,{fileName:X,lineNumber:2909,columnNumber:9},this)}}}var Mf=`C:/Users/Shadow/Desktop/cyrus/src/runtime/RuntimeErrorBoundary.tsx`,Nf=class extends N.Component{state={hasError:!1};static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`Cyrus Runtime Element Error:`,e,t)}render(){return this.state.hasError?(0,F.jsxDEV)(`div`,{className:`w-full h-full p-4 rounded-[10px] bg-[#fff2f2] border border-[#ffcdd2] flex flex-col items-center justify-center text-center text-[12px] text-[#d32f2f] select-none shadow-2xs`,children:[(0,F.jsxDEV)(Kr,{className:`w-5 h-5 mb-1 text-[#d32f2f]`},void 0,!1,{fileName:Mf,lineNumber:31,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`font-semibold text-[13px]`,children:this.props.fallbackName||`Element Rendering Error`},void 0,!1,{fileName:Mf,lineNumber:32,columnNumber:11},this),(0,F.jsxDEV)(`p`,{className:`text-[10.5px] text-[#b71c1c] max-w-xs mt-0.5 line-clamp-2`,children:this.state.error?.message||`A runtime error occurred in this component.`},void 0,!1,{fileName:Mf,lineNumber:35,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>this.setState({hasError:!1}),className:`mt-2.5 inline-flex items-center gap-1 px-2.5 py-1 bg-white border border-[#ffcdd2] rounded-[6px] text-[11px] font-medium text-[#d32f2f] hover:bg-[#ffebee] transition-apple cursor-pointer`,children:[(0,F.jsxDEV)(pn,{className:`w-3 h-3`},void 0,!1,{fileName:Mf,lineNumber:43,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Retry Element`},void 0,!1,{fileName:Mf,lineNumber:44,columnNumber:13},this)]},void 0,!0,{fileName:Mf,lineNumber:38,columnNumber:11},this)]},void 0,!0,{fileName:Mf,lineNumber:30,columnNumber:9},this):this.props.children}};async function Pf(e,t,n){let{actionType:r}=e;try{switch(r){case`api`:{if(!e.apiEndpoint)return{success:!1,message:`No API endpoint configured.`};let r=JSON.stringify(t);e.apiMethod===`GET`&&(r=void 0);let i=(e.apiMethod||`POST`).toUpperCase(),a=await fetch(e.apiEndpoint,{method:i,headers:{"Content-Type":`application/json`,...e.headers||{}},body:i===`GET`?void 0:r}),o=await a.json().catch(()=>null);if(!a.ok)throw Error(o&&(o.message||o.error)||`Request failed (${a.status})`);return n.addToast&&n.addToast(e.successMessage||`Form submitted successfully!`,`success`),e.targetVariable&&n.setVariable&&n.setVariable(e.targetVariable,o??t),e.targetPageId&&n.setActivePage&&n.setActivePage(e.targetPageId),{success:!0,message:e.successMessage||`Form submitted successfully!`,data:o??t}}case`setVariable`:return e.targetVariable&&n.setVariable&&n.setVariable(e.targetVariable,t),n.addToast&&n.addToast(e.successMessage||`Variables updated!`,`success`),e.targetPageId&&n.setActivePage&&n.setActivePage(e.targetPageId),{success:!0,message:`Updated variable state.`};case`navigate`:return e.targetPageId&&n.setActivePage&&n.setActivePage(e.targetPageId),e.targetUrl&&window.open(e.targetUrl,`_blank`),{success:!0};case`toast`:return n.addToast&&n.addToast(e.successMessage||`Action completed successfully!`,`success`),{success:!0};default:return n.addToast&&n.addToast(e.successMessage||`Submitted successfully!`,`success`),{success:!0}}}catch(t){let r=e.errorMessage||t?.message||`Failed to submit form.`;return n.addToast&&n.addToast(r,`error`),{success:!1,message:r}}}var Ff=`C:/Users/Shadow/Desktop/cyrus/src/runtime/RuntimeRenderer.tsx`;function If({project:e,initialPageId:t,viewportMode:n=`desktop`,previewTheme:r,onPageChange:i}){let{addToast:a}=oo(),o=I(e=>e.setVariableValue),s=e.pages||[],[c,l]=(0,N.useState)(t||s[0]?.id||``),[u,d]=(0,N.useState)(null),[f,p]=(0,N.useState)({}),[m,h]=(0,N.useState)({}),g=(0,N.useMemo)(()=>s.find(e=>e.id===c||e.slug===c)||s[0],[s,c]),_=Po[n],v=r===`dark`||e.designSystem?.mode===`dark`,y=g?.settings?.backgroundColor===`#ffffff`||!g?.settings?.backgroundColor?v?`#1c1c1e`:`#ffffff`:g.settings.backgroundColor,b=(0,N.useMemo)(()=>g?g.elements.map(e=>Tu(e,n)):[],[g,n]),x=e=>{switch(e.action){case`navigate`:{let t=s.find(t=>t.id===e.target||t.slug===e.target);t?(l(t.id),i?.(t)):e.target&&l(e.target);break}case`openModal`:d({isOpen:!0,title:e.modalTitle||`Action Dialog`});break;case`closeModal`:d(null);break;case`openUrl`:e.target&&/^https?:\/\//i.test(e.target.trim())&&window.open(e.target.trim(),`_blank`,`noopener,noreferrer`);break;case`toggleVisibility`:e.target&&p(t=>({...t,[e.target]:!t[e.target]}));break;case`scrollTo`:e.target&&document.getElementById(`runtime_el_${e.target}`)?.scrollIntoView({behavior:`smooth`})}},S=(e,t)=>{h(n=>({...n,[e]:t}))},C=async e=>{let t=e.formConfig||{actionType:`api`,apiEndpoint:`/api/submit`,apiMethod:`POST`,successMessage:`Form submitted successfully!`,resetOnSuccess:!0};(await Pf(t,m,{setVariable:(e,t)=>o(e,t),addToast:(e,t)=>a(e,t),setActivePage:e=>{l(e);let t=s.find(t=>t.id===e);t&&i?.(t)}})).success&&t.resetOnSuccess!==!1&&h({})};if(!g)return(0,F.jsxDEV)(`div`,{className:`w-full h-full flex items-center justify-center text-[13px] text-[#86868b]`,children:`No pages found in this project.`},void 0,!1,{fileName:Ff,lineNumber:145,columnNumber:7},this);let w=(0,N.useMemo)(()=>{let e=_.height;return b.forEach(t=>{let n=(t.effectiveY??t.y)+(t.effectiveHeight??t.height)+140;n>e&&(e=n)}),e},[b,_.height]),T=Math.max(_.height,g?.settings?.minHeight||0,w);return(0,F.jsxDEV)(`div`,{className:`w-full h-full relative overflow-y-auto flex flex-col items-center select-none bg-inherit`,children:[u&&(0,F.jsxDEV)($l,{title:u.title,isOpen:u.isOpen,onClose:()=>d(null)},void 0,!1,{fileName:Ff,lineNumber:172,columnNumber:9},this),(0,F.jsxDEV)(`div`,{id:`cyrus-runtime-artboard`,"data-theme":v?`dark`:`light`,style:{width:`${_.width}px`,minHeight:`${T}px`,background:g?.settings?.backgroundGradient||void 0,backgroundColor:g?.settings?.backgroundGradient?void 0:y,color:v?`#f5f5f7`:`#1d1d1f`},className:`relative mx-auto rounded-[12px] shadow-artboard transition-apple shrink-0 ${v?`dark bg-[#1c1c1e] text-[#f5f5f7]`:`bg-white text-[#1d1d1f]`}`,children:b.map(t=>{let n=f[t.id];if(n===void 0?t.effectiveHidden:n)return null;let r=(t.animations||[]).find(e=>e.trigger===`load`),i=(t.animations||[]).find(e=>e.trigger===`hover`),a=Ou(r),o=Ou(i).className,s=t.children?g.elements.filter(e=>t.children?.includes(e.id)):void 0;return(0,F.jsxDEV)(`div`,{id:`runtime_el_${t.id}`,style:{position:`absolute`,left:`${t.effectiveX}px`,top:`${t.effectiveY}px`,width:`${t.effectiveWidth}px`,height:`${t.effectiveHeight}px`,transform:`rotate(${t.rotation}deg)`,zIndex:t.zIndex,...a.style},className:`${a.className} ${o}`,children:(0,F.jsxDEV)(Nf,{fallbackName:t.name,children:(0,F.jsxDEV)(jf,{element:{...t,x:t.effectiveX,y:t.effectiveY,width:t.effectiveWidth,height:t.effectiveHeight},designTokens:e.designSystem,childElements:s,formValues:m,onFormChange:S,onTriggerInteraction:x,onExecuteForm:C},void 0,!1,{fileName:Ff,lineNumber:225,columnNumber:17},this)},void 0,!1,{fileName:Ff,lineNumber:224,columnNumber:15},this)},t.id,!1,{fileName:Ff,lineNumber:209,columnNumber:13},this)})},void 0,!1,{fileName:Ff,lineNumber:180,columnNumber:7},this)]},void 0,!0,{fileName:Ff,lineNumber:169,columnNumber:5},this)}var Lf=`C:/Users/Shadow/Desktop/cyrus/src/runtime/PreviewView.tsx`;function Rf({project:e,initialPageId:n,onExit:r}){let{addToast:i}=oo(),[a,o]=(0,N.useState)(`desktop`),[s,c]=(0,N.useState)(e.pages.find(e=>e.id===n)||e.pages[0]),[l,u]=(0,N.useState)(0);return(0,N.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]),(0,F.jsxDEV)(`div`,{className:`fixed inset-0 bg-[#e8e8ed] flex flex-col z-[9999999] select-none font-sans overflow-hidden`,children:[(0,F.jsxDEV)(`div`,{className:`h-12 bg-white/90 backdrop-blur-xl border-b border-[#e5e5ea] px-4 flex items-center justify-between shadow-2xs z-50`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`w-6 h-6 rounded-[6px] bg-[#0071e3] text-white flex items-center justify-center text-[11px] font-bold`,children:`C`},void 0,!1,{fileName:Lf,lineNumber:61,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-[12px]`,children:[(0,F.jsxDEV)(`span`,{className:`font-semibold text-[#1d1d1f]`,children:e.name},void 0,!1,{fileName:Lf,lineNumber:65,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[#86868b]`,children:`/`},void 0,!1,{fileName:Lf,lineNumber:66,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] font-medium`,children:[s.name,` (/`,s.slug,`)`]},void 0,!0,{fileName:Lf,lineNumber:67,columnNumber:13},this)]},void 0,!0,{fileName:Lf,lineNumber:64,columnNumber:11},this)]},void 0,!0,{fileName:Lf,lineNumber:60,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center p-0.5 rounded-[8px] bg-[#f4f4f6] border border-[#e5e5ea]`,children:[{id:`desktop`,label:`Desktop`,icon:(0,F.jsxDEV)(dn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Lf,lineNumber:76,columnNumber:70},this)},{id:`tablet`,label:`Tablet`,icon:(0,F.jsxDEV)(t,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Lf,lineNumber:77,columnNumber:68},this)},{id:`mobile`,label:`Mobile`,icon:(0,F.jsxDEV)(Ar,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Lf,lineNumber:78,columnNumber:68},this)}].map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>o(e.id),className:j(`flex items-center gap-1.5 px-3 py-1 rounded-[6px] text-[11.5px] font-medium transition-apple cursor-pointer`,a===e.id?`bg-white text-[#1d1d1f] shadow-2xs`:`text-[#86868b] hover:text-[#1d1d1f]`),children:[e.icon,(0,F.jsxDEV)(`span`,{children:e.label},void 0,!1,{fileName:Lf,lineNumber:92,columnNumber:15},this)]},e.id,!0,{fileName:Lf,lineNumber:80,columnNumber:13},this))},void 0,!1,{fileName:Lf,lineNumber:74,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{u(e=>e+1),c(e.pages[0]),i(`Prototype restarted`,`info`)},title:`Restart Prototype`,className:`p-1.5 rounded-[7px] text-[#6e6e73] hover:text-[#1d1d1f] hover:bg-[#f4f4f6] transition-apple cursor-pointer`,children:(0,F.jsxDEV)(pn,{className:`w-4 h-4`},void 0,!1,{fileName:Lf,lineNumber:105,columnNumber:13},this)},void 0,!1,{fileName:Lf,lineNumber:99,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{let t=`${window.location.origin}#/preview/${e.id}`;navigator.clipboard.writeText(t),i(`Preview link copied to clipboard`,`success`)},title:`Copy Share Link`,className:`flex items-center gap-1 px-2.5 py-1.5 rounded-[7px] bg-[#f4f4f6] hover:bg-[#ebebee] text-[#1d1d1f] text-[11.5px] font-medium border border-[#e5e5ea] transition-apple cursor-pointer`,children:[(0,F.jsxDEV)(gt,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:Lf,lineNumber:114,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Share`},void 0,!1,{fileName:Lf,lineNumber:115,columnNumber:13},this)]},void 0,!0,{fileName:Lf,lineNumber:108,columnNumber:11},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:r,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 ml-1`,children:[(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Lf,lineNumber:123,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Exit Preview`},void 0,!1,{fileName:Lf,lineNumber:124,columnNumber:13},this)]},void 0,!0,{fileName:Lf,lineNumber:118,columnNumber:11},this)]},void 0,!0,{fileName:Lf,lineNumber:98,columnNumber:9},this)]},void 0,!0,{fileName:Lf,lineNumber:58,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto p-8 flex items-start justify-center`,children:(0,F.jsxDEV)(If,{project:e,initialPageId:s.id,viewportMode:a,onPageChange:e=>c(e)},l,!1,{fileName:Lf,lineNumber:131,columnNumber:9},this)},void 0,!1,{fileName:Lf,lineNumber:130,columnNumber:7},this)]},void 0,!0,{fileName:Lf,lineNumber:56,columnNumber:5},this)}var zf=`C:/Users/Shadow/Desktop/cyrus/src/pages/PreviewPage.tsx`;function Bf({projectId:e,onExit:t}){let[n,r]=(0,N.useState)(null),[i,a]=(0,N.useState)(!0);return(0,N.useEffect)(()=>{let t=!0;return po(e).then(e=>{t&&(r(e),a(!1))}).catch(e=>{console.error(`Failed to load preview project:`,e),t&&a(!1)}),()=>{t=!1}},[e]),i?(0,F.jsxDEV)(`div`,{className:`h-screen w-screen flex flex-col items-center justify-center bg-[#f5f5f7] text-[#6e6e73] gap-3`,children:[(0,F.jsxDEV)(kr,{className:`w-6 h-6 animate-spin text-[#0071e3]`},void 0,!1,{fileName:zf,lineNumber:40,columnNumber:9},this),(0,F.jsxDEV)(`span`,{className:`text-[13px] font-medium text-[#1d1d1f]`,children:`Loading Cyrus Prototype Runtime...`},void 0,!1,{fileName:zf,lineNumber:41,columnNumber:9},this)]},void 0,!0,{fileName:zf,lineNumber:39,columnNumber:7},this):n?(0,F.jsxDEV)(Rf,{project:n,onExit:t},void 0,!1,{fileName:zf,lineNumber:62,columnNumber:10},this):(0,F.jsxDEV)(`div`,{className:`h-screen w-screen flex flex-col items-center justify-center bg-[#f5f5f7] p-6 text-center`,children:(0,F.jsxDEV)(`div`,{className:`p-5 rounded-[16px] bg-white border border-[#e5e5ea] shadow-apple-md max-w-sm flex flex-col items-center gap-3`,children:[(0,F.jsxDEV)(`div`,{className:`text-[16px] font-semibold text-[#1d1d1f]`,children:`Prototype Not Found`},void 0,!1,{fileName:zf,lineNumber:50,columnNumber:11},this),(0,F.jsxDEV)(`p`,{className:`text-[13px] text-[#86868b]`,children:`The requested project preview could not be loaded.`},void 0,!1,{fileName:zf,lineNumber:51,columnNumber:11},this),(0,F.jsxDEV)(fs,{variant:`primary`,onClick:t,icon:(0,F.jsxDEV)(Kt,{className:`w-4 h-4`},void 0,!1,{fileName:zf,lineNumber:54,columnNumber:60},this),children:`Return to Dashboard`},void 0,!1,{fileName:zf,lineNumber:54,columnNumber:11},this)]},void 0,!0,{fileName:zf,lineNumber:49,columnNumber:9},this)},void 0,!1,{fileName:zf,lineNumber:48,columnNumber:7},this)}var Z=`C:/Users/Shadow/Desktop/cyrus/src/pages/LoginPage.tsx`;function Vf({onAuthenticated:e}){let{signIn:t,signUp:n,signInWithProvider:r}=cs(),{addToast:i}=oo(),[a,o]=(0,N.useState)(`signin`),[s,c]=(0,N.useState)(``),[u,d]=(0,N.useState)(``),[f,p]=(0,N.useState)(``),[m,h]=(0,N.useState)(!1),[g,_]=(0,N.useState)(!1),[v,y]=(0,N.useState)(null),[b,x]=(0,N.useState)(null),S=async r=>{if(r.preventDefault(),!s.trim()){x(`Please enter a valid email address.`);return}if(f.length<8){x(`Password must be at least 8 characters.`);return}_(!0),x(null);try{a===`signup`?(await n(s,u,f),i(`Account created successfully`,`success`)):(await t(s,f),i(`Signed in to Cyrus Workspace`,`success`)),e()}catch(e){let t=e instanceof Error?e.message:`Authentication failed. Please try again.`;x(t)}finally{_(!1)}},C=async t=>{y(t),x(null);try{await r(t),i(`Successfully signed in with ${t.charAt(0).toUpperCase()+t.slice(1)}`,`success`),e()}catch(e){let n=e instanceof Error?e.message:`Failed to sign in with ${t}`;x(n)}finally{y(null)}};return(0,F.jsxDEV)(`div`,{className:`relative min-h-screen w-full overflow-x-hidden overflow-y-auto bg-[#080b11] text-slate-100 flex flex-col justify-between selection:bg-[#0071e3] selection:text-white font-sans`,children:[(0,F.jsxDEV)(`div`,{className:`fixed inset-0 pointer-events-none z-0`,children:[(0,F.jsxDEV)(`div`,{className:`absolute top-0 left-1/2 -translate-x-1/2 w-[1000px] h-[500px] bg-gradient-to-b from-[#0071e3]/15 via-[#7d2ae8]/08 to-transparent rounded-full blur-3xl`},void 0,!1,{fileName:Z,lineNumber:76,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`absolute bottom-0 right-0 w-[600px] h-[400px] bg-gradient-to-tl from-[#0071e3]/10 to-transparent rounded-full blur-3xl`},void 0,!1,{fileName:Z,lineNumber:77,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`absolute inset-0 opacity-[0.18]`,style:{backgroundImage:`radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.4) 1px, transparent 0)`,backgroundSize:`32px 32px`}},void 0,!1,{fileName:Z,lineNumber:80,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:74,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`relative z-10 min-h-screen flex flex-col items-center justify-center px-4 py-12`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3 mb-8`,children:[(0,F.jsxDEV)(`div`,{className:`p-2.5 rounded-2xl bg-slate-900/90 border border-slate-800 shadow-xl shadow-black/40 hover:scale-105 transition-all duration-300`,children:(0,F.jsxDEV)(us,{size:`md`},void 0,!1,{fileName:Z,lineNumber:94,columnNumber:13},this)},void 0,!1,{fileName:Z,lineNumber:93,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono font-semibold tracking-wider uppercase text-slate-300 bg-slate-800/80 px-3 py-1 rounded-full border border-slate-700/60 backdrop-blur-md shadow-xs flex items-center gap-1.5`,children:[(0,F.jsxDEV)(vi,{className:`w-3.5 h-3.5 text-[#0071e3]`},void 0,!1,{fileName:Z,lineNumber:97,columnNumber:13},this),` Cyrus Studio`]},void 0,!0,{fileName:Z,lineNumber:96,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:92,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`w-full max-w-[420px] bg-[#111622]/85 backdrop-blur-2xl rounded-2xl border border-slate-800/90 shadow-[0_24px_80px_rgba(0,0,0,0.65)] p-7 relative overflow-hidden transition-all duration-300`,children:[(0,F.jsxDEV)(`div`,{className:`absolute top-0 inset-x-0 h-1 bg-gradient-to-r from-[#0071e3] via-[#7d2ae8] to-[#34c759]`},void 0,!1,{fileName:Z,lineNumber:104,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`text-center mb-6`,children:[(0,F.jsxDEV)(`h1`,{className:`text-2xl font-bold tracking-tight text-white`,children:a===`signin`?`Sign in to Cyrus`:`Create an Account`},void 0,!1,{fileName:Z,lineNumber:108,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`mt-2 text-xs text-slate-400 leading-relaxed max-w-xs mx-auto`,children:a===`signin`?`Welcome back. Access your projects and visual workspace.`:`Start designing visual products and generating clean code.`},void 0,!1,{fileName:Z,lineNumber:111,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:107,columnNumber:11},this),b&&(0,F.jsxDEV)(`div`,{className:`mb-5 p-3.5 rounded-xl bg-red-500/15 border border-red-500/40 text-red-300 text-xs flex items-start gap-2.5 leading-relaxed`,children:[(0,F.jsxDEV)(k,{className:`w-4 h-4 shrink-0 text-red-400 mt-0.5`},void 0,!1,{fileName:Z,lineNumber:121,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:b},void 0,!1,{fileName:Z,lineNumber:122,columnNumber:15},this)]},void 0,!0,{fileName:Z,lineNumber:120,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5 mb-5`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>C(`google`),disabled:v!==null||g,className:`w-full h-10 px-4 rounded-xl bg-slate-900/90 hover:bg-slate-800 active:bg-slate-800/80 border border-slate-700/80 text-slate-200 font-medium text-xs flex items-center justify-center gap-3 transition-all duration-150 shadow-xs cursor-pointer disabled:opacity-50 group`,children:[v===`google`?(0,F.jsxDEV)(`div`,{className:`w-4 h-4 border-2 border-slate-400 border-t-white rounded-full animate-spin`},void 0,!1,{fileName:Z,lineNumber:135,columnNumber:17},this):(0,F.jsxDEV)(`svg`,{className:`w-4 h-4 transition-transform group-hover:scale-110`,viewBox:`0 0 24 24`,children:[(0,F.jsxDEV)(`path`,{fill:`#4285F4`,d:`M23.745 12.27c0-.7-.06-1.4-.19-2.07H12v4.51h6.6c-.29 1.52-1.14 2.82-2.4 3.68v3.05h3.88c2.27-2.09 3.665-5.17 3.665-9.17z`},void 0,!1,{fileName:Z,lineNumber:138,columnNumber:19},this),(0,F.jsxDEV)(`path`,{fill:`#34A853`,d:`M12 24c3.24 0 5.95-1.08 7.93-2.91l-3.88-3.05c-1.08.72-2.45 1.16-4.05 1.16-3.12 0-5.77-2.1-6.72-4.93H1.29v3.15C3.26 21.3 7.31 24 12 24z`},void 0,!1,{fileName:Z,lineNumber:139,columnNumber:19},this),(0,F.jsxDEV)(`path`,{fill:`#FBBC05`,d:`M5.28 14.27A7.17 7.17 0 0 1 4.9 12c0-.79.14-1.56.38-2.27V6.58H1.29A11.96 11.96 0 0 0 0 12c0 1.92.46 3.74 1.29 5.42l3.99-3.15z`},void 0,!1,{fileName:Z,lineNumber:140,columnNumber:19},this),(0,F.jsxDEV)(`path`,{fill:`#EA4335`,d:`M12 4.75c1.77 0 3.35.61 4.6 1.8l3.42-3.42C17.95 1.19 15.24 0 12 0 7.31 0 3.26 2.7 1.29 6.58l3.99 3.15c.95-2.83 3.6-4.98 6.72-4.98z`},void 0,!1,{fileName:Z,lineNumber:141,columnNumber:19},this)]},void 0,!0,{fileName:Z,lineNumber:137,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Continue with Google`},void 0,!1,{fileName:Z,lineNumber:144,columnNumber:15},this)]},void 0,!0,{fileName:Z,lineNumber:128,columnNumber:13},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>C(`github`),disabled:v!==null||g,className:`w-full h-10 px-4 rounded-xl bg-slate-900/90 hover:bg-slate-800 active:bg-slate-800/80 border border-slate-700/80 text-slate-200 font-medium text-xs flex items-center justify-center gap-3 transition-all duration-150 shadow-xs cursor-pointer disabled:opacity-50 group`,children:[v===`github`?(0,F.jsxDEV)(`div`,{className:`w-4 h-4 border-2 border-slate-400 border-t-white rounded-full animate-spin`},void 0,!1,{fileName:Z,lineNumber:154,columnNumber:17},this):(0,F.jsxDEV)(`svg`,{className:`w-4 h-4 shrink-0 fill-current text-white transition-transform group-hover:scale-110`,viewBox:`0 0 24 24`,children:(0,F.jsxDEV)(`path`,{d:`M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z`},void 0,!1,{fileName:Z,lineNumber:157,columnNumber:19},this)},void 0,!1,{fileName:Z,lineNumber:156,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Continue with GitHub`},void 0,!1,{fileName:Z,lineNumber:160,columnNumber:15},this)]},void 0,!0,{fileName:Z,lineNumber:147,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:127,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`relative flex items-center justify-center my-5`,children:[(0,F.jsxDEV)(`div`,{className:`border-t border-slate-800 w-full`},void 0,!1,{fileName:Z,lineNumber:166,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`bg-[#111622] px-3 text-[10px] uppercase tracking-wider text-slate-500 font-mono absolute`,children:`Or email`},void 0,!1,{fileName:Z,lineNumber:167,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:165,columnNumber:11},this),(0,F.jsxDEV)(`form`,{onSubmit:S,className:`flex flex-col gap-3.5`,children:[a===`signup`&&(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,F.jsxDEV)(`label`,{className:`text-xs font-medium text-slate-300`,children:`Full Name`},void 0,!1,{fileName:Z,lineNumber:177,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[(0,F.jsxDEV)(Na,{className:`w-4 h-4 text-slate-500 absolute left-3.5 pointer-events-none`},void 0,!1,{fileName:Z,lineNumber:179,columnNumber:19},this),(0,F.jsxDEV)(`input`,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:`Alex Rivera`,className:`w-full h-10 pl-10 pr-4 rounded-xl border border-slate-800 bg-slate-900/90 focus:bg-slate-900 focus:border-[#0071e3] text-xs text-slate-100 placeholder:text-slate-600 focus:outline-none transition-all duration-150`},void 0,!1,{fileName:Z,lineNumber:180,columnNumber:19},this)]},void 0,!0,{fileName:Z,lineNumber:178,columnNumber:17},this)]},void 0,!0,{fileName:Z,lineNumber:176,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,F.jsxDEV)(`label`,{className:`text-xs font-medium text-slate-300`,children:`Email Address`},void 0,!1,{fileName:Z,lineNumber:192,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[(0,F.jsxDEV)(ia,{className:`w-4 h-4 text-slate-500 absolute left-3.5 pointer-events-none`},void 0,!1,{fileName:Z,lineNumber:194,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`email`,value:s,onChange:e=>c(e.target.value),placeholder:`name@work-email.com`,required:!0,className:`w-full h-10 pl-10 pr-4 rounded-xl border border-slate-800 bg-slate-900/90 focus:bg-slate-900 focus:border-[#0071e3] text-xs text-slate-100 placeholder:text-slate-600 focus:outline-none transition-all duration-150`},void 0,!1,{fileName:Z,lineNumber:195,columnNumber:17},this)]},void 0,!0,{fileName:Z,lineNumber:193,columnNumber:15},this)]},void 0,!0,{fileName:Z,lineNumber:191,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`label`,{className:`text-xs font-medium text-slate-300`,children:`Password`},void 0,!1,{fileName:Z,lineNumber:208,columnNumber:17},this),a===`signin`&&(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>i(`Password reset link sent to email.`,`info`),className:`text-[11px] text-[#0071e3] hover:underline transition-colors`,children:`Forgot?`},void 0,!1,{fileName:Z,lineNumber:210,columnNumber:19},this)]},void 0,!0,{fileName:Z,lineNumber:207,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`relative flex items-center`,children:[(0,F.jsxDEV)(Ri,{className:`w-4 h-4 text-slate-500 absolute left-3.5 pointer-events-none`},void 0,!1,{fileName:Z,lineNumber:220,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:m?`text`:`password`,value:f,onChange:e=>p(e.target.value),placeholder:`••••••••••••`,required:!0,minLength:8,className:`w-full h-10 pl-10 pr-10 rounded-xl border border-slate-800 bg-slate-900/90 focus:bg-slate-900 focus:border-[#0071e3] text-xs text-slate-100 placeholder:text-slate-600 focus:outline-none transition-all duration-150`},void 0,!1,{fileName:Z,lineNumber:221,columnNumber:17},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>h(!m),className:`absolute right-3.5 text-slate-500 hover:text-slate-300 transition-colors cursor-pointer`,children:m?(0,F.jsxDEV)(qr,{className:`w-4 h-4`},void 0,!1,{fileName:Z,lineNumber:235,columnNumber:35},this):(0,F.jsxDEV)(l,{className:`w-4 h-4`},void 0,!1,{fileName:Z,lineNumber:235,columnNumber:68},this)},void 0,!1,{fileName:Z,lineNumber:230,columnNumber:17},this)]},void 0,!0,{fileName:Z,lineNumber:219,columnNumber:15},this)]},void 0,!0,{fileName:Z,lineNumber:206,columnNumber:13},this),(0,F.jsxDEV)(fs,{variant:`primary`,size:`md`,type:`submit`,isLoading:g,icon:(0,F.jsxDEV)(Aa,{className:`w-4 h-4`},void 0,!1,{fileName:Z,lineNumber:245,columnNumber:21},this),className:`mt-2 w-full h-10 justify-center bg-[#0071e3] hover:bg-[#0077ed] active:bg-[#0062c4] text-white font-semibold text-xs rounded-xl shadow-md shadow-[#0071e3]/20 border border-white/10 transition-all duration-150 cursor-pointer`,children:a===`signin`?`Sign In`:`Create Account`},void 0,!1,{fileName:Z,lineNumber:240,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`pt-3 mt-1 border-t border-slate-800/80 text-center text-xs text-slate-400`,children:a===`signin`?(0,F.jsxDEV)(`span`,{children:[`Don't have an account?`,` `,(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{o(`signup`),x(null)},className:`text-[#0071e3] font-semibold hover:underline cursor-pointer transition-colors`,children:`Sign up`},void 0,!1,{fileName:Z,lineNumber:256,columnNumber:19},this)]},void 0,!0,{fileName:Z,lineNumber:254,columnNumber:17},this):(0,F.jsxDEV)(`span`,{children:[`Already have an account?`,` `,(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{o(`signin`),x(null)},className:`text-[#0071e3] font-semibold hover:underline cursor-pointer transition-colors`,children:`Sign in`},void 0,!1,{fileName:Z,lineNumber:270,columnNumber:19},this)]},void 0,!0,{fileName:Z,lineNumber:268,columnNumber:17},this)},void 0,!1,{fileName:Z,lineNumber:252,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:173,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:102,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`mt-8 flex items-center gap-4 text-[11px] text-slate-500 font-medium`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)($r,{className:`w-3.5 h-3.5 text-emerald-500`},void 0,!1,{fileName:Z,lineNumber:289,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`256-bit SSL Encryption`},void 0,!1,{fileName:Z,lineNumber:290,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:288,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:`•`},void 0,!1,{fileName:Z,lineNumber:292,columnNumber:11},this),(0,F.jsxDEV)(`span`,{children:`SOC2 Type II Certified`},void 0,!1,{fileName:Z,lineNumber:293,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:287,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:90,columnNumber:7},this)]},void 0,!0,{fileName:Z,lineNumber:72,columnNumber:5},this)}var Hf=[{id:`rev_1`,name:`Elena Rostova`,role:`Lead UI/UX Designer`,rating:5,category:`experience`,comment:`The canvas speed and the Canva-style file downloads are phenomenal! It is super easy to draw and prototype ideas directly in browser.`,likes:14,createdAt:new Date(Date.now()-108e5).toISOString()},{id:`rev_2`,name:`Marcus Vance`,role:`Full-Stack Developer`,rating:5,category:`enhancement`,comment:`Real .cyrus and .html exports saved right onto my laptop disk. Would love to see even more tailwind micro-animations!`,likes:9,createdAt:new Date(Date.now()-432e5).toISOString()},{id:`rev_3`,name:`Sarah Chen`,role:`Product Manager`,rating:5,category:`praise`,comment:`This project is near completion and already feels like a native desktop app. The real-life pencil carving eraser is brilliant.`,likes:19,createdAt:new Date(Date.now()-864e5).toISOString()},{id:`rev_4`,name:`Devin Thorne`,role:`Frontend Architect`,rating:4,category:`feature`,comment:`Can you add custom sound themes for notifications? Overall, 10/10 experience on desktop and mobile.`,likes:6,createdAt:new Date(Date.now()-1296e5).toISOString()}],Uf=ro()(to((e,t)=>({reviews:Hf,addReview:t=>{let n={id:M(`rev`),...t,likes:0,likedByMe:!1,createdAt:new Date().toISOString()};return e(e=>({reviews:[n,...e.reviews]})),n},toggleLikeReview:t=>{e(e=>({reviews:e.reviews.map(e=>{if(e.id===t){let t=!e.likedByMe;return{...e,likedByMe:t,likes:t?e.likes+1:Math.max(0,e.likes-1)}}return e})}))},deleteReview:t=>{e(e=>({reviews:e.reviews.filter(e=>e.id!==t)}))}}),{name:`cyrus_community_reviews_v1`})),Wf=`C:/Users/Shadow/Desktop/cyrus/src/pages/ComentosReviewPage.tsx`;function Gf(e){try{let t=new Date(e);return`${t.toLocaleDateString()} at ${t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}`}catch{return`Recently`}}function Kf({onBack:e}){let{reviews:t,deleteReview:n}=Uf(),{addToast:r}=oo(),[i,a]=(0,N.useState)(``),o=t.filter(e=>{let t=i.toLowerCase().trim();return!t||e.name.toLowerCase().includes(t)||e.comment.toLowerCase().includes(t)||e.role&&e.role.toLowerCase().includes(t)});return(0,F.jsxDEV)(`div`,{className:`min-h-screen w-full bg-[#0d0e15] text-[#f5f5f7] flex flex-col font-sans selection:bg-[#7d2ae8] selection:text-white`,children:[(0,F.jsxDEV)(`header`,{className:`sticky top-0 z-30 h-14 bg-[#141522]/90 backdrop-blur-md border-b border-white/10 px-6 sm:px-12 flex items-center justify-between shadow-sm`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsxDEV)(fs,{variant:`ghost`,size:`sm`,onClick:e,icon:(0,F.jsxDEV)(Kt,{className:`w-4 h-4`},void 0,!1,{fileName:Wf,lineNumber:70,columnNumber:19},this),children:`Back`},void 0,!1,{fileName:Wf,lineNumber:66,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`h-4 w-[1px] bg-white/15`},void 0,!1,{fileName:Wf,lineNumber:74,columnNumber:11},this),(0,F.jsxDEV)(us,{size:`sm`},void 0,!1,{fileName:Wf,lineNumber:75,columnNumber:11},this)]},void 0,!0,{fileName:Wf,lineNumber:65,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:(0,F.jsxDEV)(`span`,{className:`text-[11px] font-mono text-emerald-400 bg-emerald-500/10 px-2.5 py-1 rounded-full border border-emerald-500/20 flex items-center gap-1`,children:[(0,F.jsxDEV)(k,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Wf,lineNumber:80,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`/#/comentos/review`},void 0,!1,{fileName:Wf,lineNumber:81,columnNumber:13},this)]},void 0,!0,{fileName:Wf,lineNumber:79,columnNumber:11},this)},void 0,!1,{fileName:Wf,lineNumber:78,columnNumber:9},this)]},void 0,!0,{fileName:Wf,lineNumber:64,columnNumber:7},this),(0,F.jsxDEV)(`main`,{className:`flex-1 max-w-4xl w-full mx-auto px-4 sm:px-6 py-8 flex flex-col gap-6`,children:[(0,F.jsxDEV)(`div`,{className:`flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4`,children:[(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`h1`,{className:`text-xl font-bold text-white flex items-center gap-2`,children:[(0,F.jsxDEV)(On,{className:`w-5 h-5 text-[#9d52ff]`},void 0,!1,{fileName:Wf,lineNumber:92,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`User Comments & Feedback Submissions`},void 0,!1,{fileName:Wf,lineNumber:93,columnNumber:15},this)]},void 0,!0,{fileName:Wf,lineNumber:91,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-xs text-slate-400 mt-1`,children:`Read all experiences, suggestions, and enhancement reviews submitted by users.`},void 0,!1,{fileName:Wf,lineNumber:95,columnNumber:13},this)]},void 0,!0,{fileName:Wf,lineNumber:90,columnNumber:11},this),(0,F.jsxDEV)(fs,{variant:`secondary`,size:`sm`,onClick:()=>{let e=JSON.stringify(t,null,2),n=new Blob([e],{type:`application/json`}),i=URL.createObjectURL(n),a=document.createElement(`a`);a.href=i,a.download=`cyrus_user_comments_${Date.now()}.json`,document.body.appendChild(a),a.click(),document.body.removeChild(a),setTimeout(()=>URL.revokeObjectURL(i),1e3),r(`Exported ${t.length} user comments to JSON file`,`success`)},icon:(0,F.jsxDEV)(g,{className:`w-3.5 h-3.5 text-[#9d52ff]`},void 0,!1,{fileName:Wf,lineNumber:104,columnNumber:19},this),children:[`Export All to JSON (`,t.length,`)`]},void 0,!0,{fileName:Wf,lineNumber:100,columnNumber:11},this)]},void 0,!0,{fileName:Wf,lineNumber:89,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`relative`,children:[(0,F.jsxDEV)(lt,{className:`w-4 h-4 text-slate-400 absolute left-3.5 top-1/2 -translate-y-1/2 pointer-events-none`},void 0,!1,{fileName:Wf,lineNumber:112,columnNumber:11},this),(0,F.jsxDEV)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),placeholder:`Search submitted comments or authors...`,className:`w-full h-10 pl-10 pr-4 rounded-xl bg-[#171826] border border-white/10 text-xs text-white placeholder-slate-500 focus:outline-none focus:border-[#7d2ae8]`},void 0,!1,{fileName:Wf,lineNumber:113,columnNumber:11},this)]},void 0,!0,{fileName:Wf,lineNumber:111,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-3`,children:o.length===0?(0,F.jsxDEV)(`div`,{className:`p-8 text-center rounded-2xl bg-[#171826] border border-white/10 text-slate-400 text-xs`,children:`No comments match your search query.`},void 0,!1,{fileName:Wf,lineNumber:125,columnNumber:13},this):o.map(e=>(0,F.jsxDEV)(`div`,{className:`p-4 rounded-xl bg-[#171826] border border-white/10 flex flex-col gap-2.5 transition-all hover:border-white/20`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-start justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-8 h-8 rounded-full bg-gradient-to-tr from-[#7d2ae8] to-[#0071e3] text-white flex items-center justify-center font-bold text-xs shrink-0`,children:e.name.charAt(0).toUpperCase()},void 0,!1,{fileName:Wf,lineNumber:136,columnNumber:21},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`span`,{className:`text-[13px] font-bold text-white`,children:e.name},void 0,!1,{fileName:Wf,lineNumber:141,columnNumber:25},this),e.role&&(0,F.jsxDEV)(`span`,{className:`text-[11px] text-slate-400`,children:[`• `,e.role]},void 0,!0,{fileName:Wf,lineNumber:143,columnNumber:27},this)]},void 0,!0,{fileName:Wf,lineNumber:140,columnNumber:23},this),(0,F.jsxDEV)(`div`,{className:`text-[10.5px] text-slate-500 flex items-center gap-1 mt-0.5`,children:[(0,F.jsxDEV)(Tr,{className:`w-3 h-3`},void 0,!1,{fileName:Wf,lineNumber:147,columnNumber:25},this),(0,F.jsxDEV)(`span`,{children:Gf(e.createdAt)},void 0,!1,{fileName:Wf,lineNumber:148,columnNumber:25},this)]},void 0,!0,{fileName:Wf,lineNumber:146,columnNumber:23},this)]},void 0,!0,{fileName:Wf,lineNumber:139,columnNumber:21},this)]},void 0,!0,{fileName:Wf,lineNumber:135,columnNumber:19},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>{window.confirm(`Delete comment from "${e.name}"?`)&&(n(e.id),r(`Comment removed`,`info`))},className:`p-1.5 rounded-lg text-slate-500 hover:text-rose-400 hover:bg-white/5 transition-colors cursor-pointer`,title:`Delete this comment`,children:(0,F.jsxDEV)(Oe,{className:`w-4 h-4`},void 0,!1,{fileName:Wf,lineNumber:164,columnNumber:21},this)},void 0,!1,{fileName:Wf,lineNumber:153,columnNumber:19},this)]},void 0,!0,{fileName:Wf,lineNumber:134,columnNumber:17},this),(0,F.jsxDEV)(`p`,{className:`text-xs text-slate-200 leading-relaxed pl-10`,children:e.comment},void 0,!1,{fileName:Wf,lineNumber:168,columnNumber:17},this)]},e.id,!0,{fileName:Wf,lineNumber:130,columnNumber:15},this))},void 0,!1,{fileName:Wf,lineNumber:123,columnNumber:9},this)]},void 0,!0,{fileName:Wf,lineNumber:87,columnNumber:7},this)]},void 0,!0,{fileName:Wf,lineNumber:62,columnNumber:5},this)}var Q=`C:/Users/Shadow/Desktop/cyrus/src/pages/FeedbackPage.tsx`,qf=`cyrus_user_feedbacks`;function Jf({onBack:e}){let{session:t}=cs(),{addToast:n}=oo(),[r,a]=(0,N.useState)(`feature`),[o,s]=(0,N.useState)(``),[c,l]=(0,N.useState)(5),[u,d]=(0,N.useState)(null),[f,p]=(0,N.useState)(t.user?.email||``),[m,h]=(0,N.useState)(!1),[g,_]=(0,N.useState)(!1),v=[{id:`feature`,label:`Feature Request`,icon:(0,F.jsxDEV)(Bt,{className:`w-4 h-4 text-amber-500`},void 0,!1,{fileName:Q,lineNumber:54,columnNumber:13},this),desc:`Suggest new tools, canvas capabilities, or workflows`},{id:`bug`,label:`Bug Report`,icon:(0,F.jsxDEV)(Fe,{className:`w-4 h-4 text-rose-500`},void 0,!1,{fileName:Q,lineNumber:60,columnNumber:13},this),desc:`Report an issue, visual glitch, or unexpected behavior`},{id:`design`,label:`Design & UX`,icon:(0,F.jsxDEV)(Jr,{className:`w-4 h-4 text-[#0071e3]`},void 0,!1,{fileName:Q,lineNumber:66,columnNumber:13},this),desc:`Share feedback about layout, themes, or ease of use`},{id:`general`,label:`General Feedback`,icon:(0,F.jsxDEV)(i,{className:`w-4 h-4 text-[#7d2ae8]`},void 0,!1,{fileName:Q,lineNumber:72,columnNumber:13},this),desc:`Tell us how you use Cyrus or what you love about it`}];return(0,F.jsxDEV)(`div`,{className:`h-full w-full overflow-y-auto bg-[#f4f4f7] dark:bg-[#000000] text-[#1d1d1f] dark:text-[#f5f5f7] flex flex-col font-sans selection:bg-[#7d2ae8] selection:text-white`,children:[(0,F.jsxDEV)(`header`,{className:`w-full bg-white dark:bg-[#1c1c1e] border-b border-[#e5e5ea] dark:border-[#38383a] px-6 py-3.5 flex items-center justify-between sticky top-0 z-30 shadow-xs`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-4`,children:(0,F.jsxDEV)(`button`,{type:`button`,onClick:e,className:`flex items-center gap-2 text-xs font-semibold text-[#6e6e73] dark:text-[#8e8e93] hover:text-[#1d1d1f] dark:hover:text-white px-3 py-1.5 rounded-lg hover:bg-[#f4f4f6] dark:hover:bg-[#2c2c2e] transition-all cursor-pointer`,children:[(0,F.jsxDEV)(Kt,{className:`w-4 h-4`},void 0,!1,{fileName:Q,lineNumber:131,columnNumber:13},this),(0,F.jsxDEV)(`span`,{children:`Back to Dashboard`},void 0,!1,{fileName:Q,lineNumber:132,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:126,columnNumber:11},this)},void 0,!1,{fileName:Q,lineNumber:125,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(us,{size:`sm`},void 0,!1,{fileName:Q,lineNumber:137,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-xs font-bold text-[#7d2ae8] dark:text-[#9d52ff]`,children:`Feedback Portal`},void 0,!1,{fileName:Q,lineNumber:138,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:136,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:124,columnNumber:7},this),(0,F.jsxDEV)(`main`,{className:`flex-1 max-w-3xl w-full mx-auto px-6 py-10 flex flex-col items-center`,children:g?(0,F.jsxDEV)(`div`,{className:`w-full bg-white dark:bg-[#1c1c1e] rounded-3xl border border-[#e5e5ea] dark:border-[#38383a] shadow-apple-md p-10 text-center flex flex-col items-center animate-in fade-in zoom-in-95 duration-200`,children:[(0,F.jsxDEV)(`div`,{className:`w-16 h-16 rounded-full bg-emerald-500/10 text-emerald-500 flex items-center justify-center mb-6`,children:(0,F.jsxDEV)($r,{className:`w-9 h-9`},void 0,!1,{fileName:Q,lineNumber:147,columnNumber:15},this)},void 0,!1,{fileName:Q,lineNumber:146,columnNumber:13},this),(0,F.jsxDEV)(`h2`,{className:`text-2xl font-extrabold text-[#1d1d1f] dark:text-white mb-2`,children:`Thank You for Your Feedback!`},void 0,!1,{fileName:Q,lineNumber:150,columnNumber:13},this),(0,F.jsxDEV)(`p`,{className:`text-sm text-[#6e6e73] dark:text-[#8e8e93] max-w-md mb-8 leading-relaxed`,children:`Your insights and ideas directly help us improve Cyrus Studio. We review every single submission to build the best product design platform for you.`},void 0,!1,{fileName:Q,lineNumber:153,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-3`,children:[(0,F.jsxDEV)(fs,{variant:`secondary`,onClick:()=>{_(!1),s(``)},children:`Send Another Response`},void 0,!1,{fileName:Q,lineNumber:158,columnNumber:15},this),(0,F.jsxDEV)(fs,{variant:`primary`,onClick:e,className:`bg-[#7d2ae8] hover:bg-[#6b21ce] text-white`,children:`Return to Dashboard`},void 0,!1,{fileName:Q,lineNumber:167,columnNumber:15},this)]},void 0,!0,{fileName:Q,lineNumber:157,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:145,columnNumber:11},this):(0,F.jsxDEV)(`div`,{className:`w-full bg-white dark:bg-[#1c1c1e] rounded-3xl border border-[#e5e5ea] dark:border-[#38383a] shadow-apple-md p-8 sm:p-10 relative overflow-hidden`,children:[(0,F.jsxDEV)(`div`,{className:`mb-8`,children:[(0,F.jsxDEV)(`div`,{className:`inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-[#7d2ae8]/10 text-[#7d2ae8] dark:text-[#9d52ff] text-[11px] font-bold uppercase tracking-wider mb-3`,children:[(0,F.jsxDEV)(vi,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:Q,lineNumber:181,columnNumber:17},this),` Cyrus Studio Feedback`]},void 0,!0,{fileName:Q,lineNumber:180,columnNumber:15},this),(0,F.jsxDEV)(`h1`,{className:`text-2xl sm:text-3xl font-extrabold text-[#1d1d1f] dark:text-white tracking-tight`,children:`Share Your Thoughts & Ideas`},void 0,!1,{fileName:Q,lineNumber:183,columnNumber:15},this),(0,F.jsxDEV)(`p`,{className:`mt-1.5 text-xs sm:text-sm text-[#6e6e73] dark:text-[#8e8e93] leading-relaxed`,children:`Tell us what features you’d like to see, report an issue, or share your thoughts on the experience.`},void 0,!1,{fileName:Q,lineNumber:186,columnNumber:15},this)]},void 0,!0,{fileName:Q,lineNumber:179,columnNumber:13},this),(0,F.jsxDEV)(`form`,{onSubmit:async e=>{if(e.preventDefault(),!o.trim()){n(`Please enter your feedback message before submitting.`,`warning`);return}h(!0);try{let e={id:`fb_${Date.now()}_${Math.random().toString(36).substring(2,7)}`,type:r,message:o.trim(),rating:c,email:f.trim()||t.user?.email||`anonymous`,userName:t.user?.name||`Cyrus Creator`,userId:t.user?.id,timestamp:new Date().toISOString()};try{let t=localStorage.getItem(qf),n=t?JSON.parse(t):[];n.unshift(e),localStorage.setItem(qf,JSON.stringify(n.slice(0,100)))}catch(e){console.warn(`Could not save feedback to localStorage:`,e)}await new Promise(e=>setTimeout(e,600)),_(!0),n(`Thank you! Your feedback was submitted successfully.`,`success`)}catch(e){console.error(`Error submitting feedback:`,e),n(`Failed to submit feedback. Please try again.`,`error`)}finally{h(!1)}},className:`flex flex-col gap-6`,children:[(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,F.jsxDEV)(`label`,{className:`text-xs font-bold text-[#1d1d1f] dark:text-[#f5f5f7] uppercase tracking-wider text-[11px]`,children:`1. What kind of feedback do you have?`},void 0,!1,{fileName:Q,lineNumber:194,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2.5`,children:v.map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>a(e.id),className:`p-3.5 rounded-2xl border text-left flex items-start gap-3 transition-all cursor-pointer ${r===e.id?`border-[#7d2ae8] bg-[#7d2ae8]/5 dark:bg-[#7d2ae8]/15 ring-2 ring-[#7d2ae8]/30 shadow-xs`:`border-[#e5e5ea] dark:border-[#38383a] bg-[#fbfbfd] dark:bg-[#252528] hover:border-[#7d2ae8]/40`}`,children:[(0,F.jsxDEV)(`div`,{className:`p-2 rounded-xl bg-white dark:bg-[#1c1c1e] shadow-2xs shrink-0`,children:e.icon},void 0,!1,{fileName:Q,lineNumber:209,columnNumber:23},this),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-xs font-bold text-[#1d1d1f] dark:text-white`,children:e.label},void 0,!1,{fileName:Q,lineNumber:213,columnNumber:25},this),(0,F.jsxDEV)(`div`,{className:`text-[11px] text-[#86868b] dark:text-[#a1a1a6] mt-0.5 leading-tight`,children:e.desc},void 0,!1,{fileName:Q,lineNumber:216,columnNumber:25},this)]},void 0,!0,{fileName:Q,lineNumber:212,columnNumber:23},this)]},e.id,!0,{fileName:Q,lineNumber:199,columnNumber:21},this))},void 0,!1,{fileName:Q,lineNumber:197,columnNumber:17},this)]},void 0,!0,{fileName:Q,lineNumber:193,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`label`,{className:`text-xs font-bold text-[#1d1d1f] dark:text-[#f5f5f7] uppercase tracking-wider text-[11px]`,children:`2. Your Message / Feedback`},void 0,!1,{fileName:Q,lineNumber:228,columnNumber:19},this),(0,F.jsxDEV)(`span`,{className:`text-[11px] text-[#86868b]`,children:[o.length,` / 2000`]},void 0,!0,{fileName:Q,lineNumber:231,columnNumber:19},this)]},void 0,!0,{fileName:Q,lineNumber:227,columnNumber:17},this),(0,F.jsxDEV)(`textarea`,{value:o,onChange:e=>s(e.target.value),placeholder:r===`bug`?`Describe what happened, the steps to reproduce, or what you expected to see...`:r===`feature`?`Describe the feature or tool you would love to see added in Cyrus...`:`Share your thoughts, suggestions, or comments with the team...`,required:!0,rows:6,maxLength:2e3,className:`w-full p-4 rounded-2xl border border-[#e5e5ea] dark:border-[#38383a] bg-[#fbfbfd] dark:bg-[#252528] text-xs sm:text-sm text-[#1d1d1f] dark:text-[#f5f5f7] placeholder:text-[#86868b] focus:outline-none focus:border-[#7d2ae8] focus:ring-2 focus:ring-[#7d2ae8]/20 transition-all resize-none shadow-2xs`},void 0,!1,{fileName:Q,lineNumber:235,columnNumber:17},this)]},void 0,!0,{fileName:Q,lineNumber:226,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[(0,F.jsxDEV)(`label`,{className:`text-xs font-bold text-[#1d1d1f] dark:text-[#f5f5f7] uppercase tracking-wider text-[11px]`,children:`3. How satisfied are you with Cyrus Studio so far?`},void 0,!1,{fileName:Q,lineNumber:254,columnNumber:17},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[[1,2,3,4,5].map(e=>(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>l(e),onMouseEnter:()=>d(e),onMouseLeave:()=>d(null),className:`p-1.5 transition-transform hover:scale-125 cursor-pointer`,children:(0,F.jsxDEV)(Wr,{className:`w-6 h-6 transition-colors ${(u===null?c:u)>=e?`fill-amber-400 text-amber-400 drop-shadow-xs`:`text-slate-300 dark:text-slate-700`}`},void 0,!1,{fileName:Q,lineNumber:269,columnNumber:25},this)},e,!1,{fileName:Q,lineNumber:261,columnNumber:23},this)),(0,F.jsxDEV)(`span`,{className:`ml-2 text-xs font-semibold text-[#86868b]`,children:c===5?`⭐️ Amazing`:c===4?`Great`:c===3?`Good`:c===2?`Needs Work`:`Poor`},void 0,!1,{fileName:Q,lineNumber:279,columnNumber:19},this)]},void 0,!0,{fileName:Q,lineNumber:257,columnNumber:17},this)]},void 0,!0,{fileName:Q,lineNumber:253,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,F.jsxDEV)(`label`,{className:`text-xs font-bold text-[#1d1d1f] dark:text-[#f5f5f7] uppercase tracking-wider text-[11px]`,children:`4. Your Email (Optional for updates)`},void 0,!1,{fileName:Q,lineNumber:287,columnNumber:17},this),(0,F.jsxDEV)(`input`,{type:`email`,value:f,onChange:e=>p(e.target.value),placeholder:`you@company.com`,className:`w-full h-11 px-4 rounded-xl border border-[#e5e5ea] dark:border-[#38383a] bg-[#fbfbfd] dark:bg-[#252528] text-xs text-[#1d1d1f] dark:text-[#f5f5f7] placeholder:text-[#86868b] focus:outline-none focus:border-[#7d2ae8] transition-all shadow-2xs`},void 0,!1,{fileName:Q,lineNumber:290,columnNumber:17},this)]},void 0,!0,{fileName:Q,lineNumber:286,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`pt-3 border-t border-[#e5e5ea] dark:border-[#38383a] flex items-center justify-between gap-4`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:e,className:`text-xs font-semibold text-[#86868b] hover:text-[#1d1d1f] dark:hover:text-white transition-colors cursor-pointer`,children:`Cancel`},void 0,!1,{fileName:Q,lineNumber:301,columnNumber:17},this),(0,F.jsxDEV)(fs,{variant:`primary`,type:`submit`,isLoading:m,icon:(0,F.jsxDEV)(rt,{className:`w-4 h-4`},void 0,!1,{fileName:Q,lineNumber:313,columnNumber:25},this),className:`px-6 py-2.5 rounded-xl bg-[#7d2ae8] hover:bg-[#6b21ce] active:bg-[#5b19b5] text-white font-bold text-xs shadow-md shadow-[#7d2ae8]/25 cursor-pointer transition-all`,children:`Submit Feedback`},void 0,!1,{fileName:Q,lineNumber:309,columnNumber:17},this)]},void 0,!0,{fileName:Q,lineNumber:300,columnNumber:15},this)]},void 0,!0,{fileName:Q,lineNumber:191,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:177,columnNumber:11},this)},void 0,!1,{fileName:Q,lineNumber:143,columnNumber:7},this)]},void 0,!0,{fileName:Q,lineNumber:122,columnNumber:5},this)}var Yf=`C:/Users/Shadow/Desktop/cyrus/src/components/ui/Toast.tsx`;function Xf(){let{toasts:e,removeToast:t}=oo();return e.length===0?null:(0,F.jsxDEV)(`div`,{className:`fixed bottom-5 right-5 z-[10000] flex flex-col gap-2 pointer-events-none`,"aria-live":`polite`,"aria-atomic":`false`,children:e.map(e=>{let n={success:(0,F.jsxDEV)($r,{className:`w-4 h-4 text-[#34c759] shrink-0`},void 0,!1,{fileName:Yf,lineNumber:15,columnNumber:20},this),info:(0,F.jsxDEV)(nt,{className:`w-4 h-4 text-[#0071e3] shrink-0`},void 0,!1,{fileName:Yf,lineNumber:16,columnNumber:17},this),warning:(0,F.jsxDEV)(it,{className:`w-4 h-4 text-[#ff9500] shrink-0`},void 0,!1,{fileName:Yf,lineNumber:17,columnNumber:20},this),error:(0,F.jsxDEV)(Kr,{className:`w-4 h-4 text-[#ff3b30] shrink-0`},void 0,!1,{fileName:Yf,lineNumber:18,columnNumber:18},this)};return(0,F.jsxDEV)(`div`,{role:`status`,className:j(`pointer-events-auto flex items-center gap-2.5 px-3.5 py-2.5 bg-white border border-[#e5e5ea] rounded-[12px] shadow-apple-lg text-[13px] text-[#1d1d1f] max-w-sm animate-in slide-in-from-bottom-2 fade-in duration-200`),children:[n[e.type],(0,F.jsxDEV)(`span`,{className:`font-medium flex-1`,children:e.text},void 0,!1,{fileName:Yf,lineNumber:30,columnNumber:13},this),(0,F.jsxDEV)(`button`,{onClick:()=>t(e.id),"aria-label":`Dismiss notification`,className:`p-1 text-[#86868b] hover:text-[#1d1d1f] rounded-[4px] hover:bg-[#f4f4f6] transition-apple`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`,"aria-hidden":`true`},void 0,!1,{fileName:Yf,lineNumber:36,columnNumber:15},this)},void 0,!1,{fileName:Yf,lineNumber:31,columnNumber:13},this)]},e.id,!0,{fileName:Yf,lineNumber:22,columnNumber:11},this)})},void 0,!1,{fileName:Yf,lineNumber:12,columnNumber:5},this)}var Zf=`C:/Users/Shadow/Desktop/cyrus/src/plugins/builtins/qrCodePlugin.tsx`,Qf={id:`com.cyrus.plugin.qr-generator`,name:`QR Code & Barcode Suite`,version:`1.0.0`,description:`Generates dynamic SVG QR codes, scan badges, and payment tickets.`,author:`Cyrus Ecosystem`,targetCyrusVersion:`^1.0.0`,permissions:[`widgets:register`],category:`widgets`,icon:`QrCode`},$f=({element:e})=>{let{content:t,styles:n}=e,r=t.value||`https://cyrus.design`,i=t.title||`Scan to Preview`,a=t.subtitle||`Point phone camera at code`,o=n.color||`#0071e3`,s=n.backgroundColor||`#ffffff`;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:s,borderRadius:`${n.borderRadius??16}px`,borderWidth:`${n.borderWidth??1}px`,borderColor:n.borderColor||`#e5e5ea`,padding:`20px`},className:`flex flex-col items-center justify-between select-none pointer-events-none shadow-apple-sm`,children:[(0,F.jsxDEV)(`div`,{className:`text-center`,children:[(0,F.jsxDEV)(`h4`,{className:`text-[13px] font-bold text-[#1d1d1f] tracking-tight`,children:i},void 0,!1,{fileName:Zf,lineNumber:50,columnNumber:9},void 0),(0,F.jsxDEV)(`p`,{className:`text-[10px] text-[#86868b] mt-0.5`,children:a},void 0,!1,{fileName:Zf,lineNumber:51,columnNumber:9},void 0)]},void 0,!0,{fileName:Zf,lineNumber:49,columnNumber:7},void 0),(0,F.jsxDEV)(`div`,{className:`p-3 bg-white rounded-xl border border-[#e5e5ea] shadow-2xs my-2 flex items-center justify-center`,children:(0,F.jsxDEV)(`svg`,{width:`120`,height:`120`,viewBox:`0 0 120 120`,className:`shape-rendering-crispEdges`,children:[(0,F.jsxDEV)(`rect`,{x:`10`,y:`10`,width:`30`,height:`30`,fill:o,rx:`4`},void 0,!1,{fileName:Zf,lineNumber:58,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`16`,y:`16`,width:`18`,height:`18`,fill:`#ffffff`,rx:`2`},void 0,!1,{fileName:Zf,lineNumber:59,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`20`,y:`20`,width:`10`,height:`10`,fill:o,rx:`1`},void 0,!1,{fileName:Zf,lineNumber:60,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`80`,y:`10`,width:`30`,height:`30`,fill:o,rx:`4`},void 0,!1,{fileName:Zf,lineNumber:63,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`86`,y:`16`,width:`18`,height:`18`,fill:`#ffffff`,rx:`2`},void 0,!1,{fileName:Zf,lineNumber:64,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`90`,y:`20`,width:`10`,height:`10`,fill:o,rx:`1`},void 0,!1,{fileName:Zf,lineNumber:65,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`10`,y:`80`,width:`30`,height:`30`,fill:o,rx:`4`},void 0,!1,{fileName:Zf,lineNumber:68,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`16`,y:`86`,width:`18`,height:`18`,fill:`#ffffff`,rx:`2`},void 0,!1,{fileName:Zf,lineNumber:69,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`20`,y:`90`,width:`10`,height:`10`,fill:o,rx:`1`},void 0,!1,{fileName:Zf,lineNumber:70,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`48`,y:`15`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:73,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`58`,y:`25`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:74,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`48`,y:`35`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:75,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`68`,y:`15`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:76,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`15`,y:`48`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:78,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`25`,y:`58`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:79,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`35`,y:`48`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:80,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`15`,y:`68`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:81,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`50`,y:`50`,width:`20`,height:`20`,fill:o,rx:`3`},void 0,!1,{fileName:Zf,lineNumber:83,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`55`,y:`55`,width:`10`,height:`10`,fill:`#ffffff`,rx:`1`},void 0,!1,{fileName:Zf,lineNumber:84,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`80`,y:`50`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:86,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`90`,y:`60`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:87,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`100`,y:`50`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:88,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`85`,y:`70`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:89,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`50`,y:`80`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:91,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`60`,y:`90`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:92,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`70`,y:`80`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:93,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`85`,y:`95`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:94,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`95`,y:`85`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:95,columnNumber:11},void 0),(0,F.jsxDEV)(`rect`,{x:`100`,y:`100`,width:`6`,height:`6`,fill:o},void 0,!1,{fileName:Zf,lineNumber:96,columnNumber:11},void 0)]},void 0,!0,{fileName:Zf,lineNumber:56,columnNumber:9},void 0)},void 0,!1,{fileName:Zf,lineNumber:55,columnNumber:7},void 0),(0,F.jsxDEV)(`div`,{className:`w-full py-1.5 px-2.5 rounded-lg bg-[#f5f5f7] border border-[#e5e5ea] flex items-center justify-between text-[10px] text-[#6e6e73]`,children:[(0,F.jsxDEV)(`span`,{className:`truncate max-w-[140px] font-mono`,children:r},void 0,!1,{fileName:Zf,lineNumber:101,columnNumber:9},void 0),(0,F.jsxDEV)(`span`,{className:`text-[#0071e3] font-semibold`,children:`Active`},void 0,!1,{fileName:Zf,lineNumber:102,columnNumber:9},void 0)]},void 0,!0,{fileName:Zf,lineNumber:100,columnNumber:7},void 0)]},void 0,!0,{fileName:Zf,lineNumber:37,columnNumber:5},void 0)},ep={initialize:e=>{e.logger.info(`Initializing QR Code & Barcode Suite plugin...`),e.widgets.register({id:`qr_code_widget`,type:`qrCodeWidget`,name:`QR Code Card`,category:`cards`,description:`Dynamic scannable QR Code and action card.`,icon:`QrCode`,defaultWidth:240,defaultHeight:270,defaultStyles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,color:`#0071e3`},defaultContent:{title:`Scan with Camera`,subtitle:`Instant mobile preview link`,value:`https://cyrus.design/preview`},propSchemas:[{key:`title`,label:`Title`,type:`text`,defaultValue:`Scan with Camera`},{key:`subtitle`,label:`Subtitle`,type:`text`,defaultValue:`Instant mobile preview link`},{key:`value`,label:`QR Target URL`,type:`text`,defaultValue:`https://cyrus.design/preview`}],renderer:$f})},destroy:()=>{console.log(`[Plugin: QR Code Suite] Cleaned up resources.`)}},tp=`C:/Users/Shadow/Desktop/cyrus/src/plugins/builtins/audioPlayerPlugin.tsx`,np={id:`com.cyrus.plugin.audio-player`,name:`Audio Player Pro`,version:`1.0.0`,description:`Interactive audio player with waveform visuals and playback controls.`,author:`Cyrus Audio Labs`,targetCyrusVersion:`^1.0.0`,permissions:[`widgets:register`,`storage:read_write`],category:`widgets`,icon:`Music`},rp=({element:e})=>{let{content:t,styles:n}=e,r=t.title||`Ambient Soundscapes`,i=t.artist||`Cyrus Audio Studio`,a=t.duration||`3:45`,o=typeof t.progress==`number`?t.progress:45;return(0,F.jsxDEV)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:n.backgroundColor||`#1c1c1e`,borderRadius:`${n.borderRadius??18}px`,borderWidth:`${n.borderWidth??1}px`,borderColor:n.borderColor||`#2c2c2e`,color:n.color||`#ffffff`,padding:`16px`},className:`flex flex-col justify-between select-none pointer-events-none shadow-apple-md`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[(0,F.jsxDEV)(`div`,{className:`w-8 h-8 rounded-lg bg-[#0071e3] text-white flex items-center justify-center shadow-apple-sm`,children:(0,F.jsxDEV)(Mt,{className:`w-4 h-4`},void 0,!1,{fileName:tp,lineNumber:51,columnNumber:13},void 0)},void 0,!1,{fileName:tp,lineNumber:50,columnNumber:11},void 0),(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`div`,{className:`text-[12px] font-bold truncate max-w-[130px]`,children:r},void 0,!1,{fileName:tp,lineNumber:54,columnNumber:13},void 0),(0,F.jsxDEV)(`div`,{className:`text-[9.5px] text-[#86868b] truncate max-w-[130px]`,children:i},void 0,!1,{fileName:tp,lineNumber:55,columnNumber:13},void 0)]},void 0,!0,{fileName:tp,lineNumber:53,columnNumber:11},void 0)]},void 0,!0,{fileName:tp,lineNumber:49,columnNumber:9},void 0),(0,F.jsxDEV)(`div`,{className:`w-7 h-7 rounded-full bg-white/10 flex items-center justify-center text-white`,children:(0,F.jsxDEV)(ci,{className:`w-3.5 h-3.5 fill-current ml-0.5`},void 0,!1,{fileName:tp,lineNumber:60,columnNumber:11},void 0)},void 0,!1,{fileName:tp,lineNumber:59,columnNumber:9},void 0)]},void 0,!0,{fileName:tp,lineNumber:48,columnNumber:7},void 0),(0,F.jsxDEV)(`div`,{className:`flex items-end gap-1 h-8 my-1 px-1 justify-between`,children:[20,45,75,90,60,80,40,95,65,35,70,85,50,60,90,40,30].map((e,t)=>(0,F.jsxDEV)(`div`,{className:`w-1 rounded-full transition-all`,style:{height:`${e}%`,backgroundColor:t<8?`#0071e3`:`rgba(255,255,255,0.2)`}},t,!1,{fileName:tp,lineNumber:67,columnNumber:11},void 0))},void 0,!1,{fileName:tp,lineNumber:65,columnNumber:7},void 0),(0,F.jsxDEV)(`div`,{className:`space-y-1`,children:[(0,F.jsxDEV)(`div`,{className:`w-full h-1 bg-white/20 rounded-full overflow-hidden`,children:(0,F.jsxDEV)(`div`,{className:`h-full bg-[#0071e3] rounded-full`,style:{width:`${o}%`}},void 0,!1,{fileName:tp,lineNumber:81,columnNumber:11},void 0)},void 0,!1,{fileName:tp,lineNumber:80,columnNumber:9},void 0),(0,F.jsxDEV)(`div`,{className:`flex justify-between text-[9px] text-[#86868b]`,children:[(0,F.jsxDEV)(`span`,{children:`1:42`},void 0,!1,{fileName:tp,lineNumber:84,columnNumber:11},void 0),(0,F.jsxDEV)(`span`,{children:a},void 0,!1,{fileName:tp,lineNumber:85,columnNumber:11},void 0)]},void 0,!0,{fileName:tp,lineNumber:83,columnNumber:9},void 0)]},void 0,!0,{fileName:tp,lineNumber:79,columnNumber:7},void 0)]},void 0,!0,{fileName:tp,lineNumber:35,columnNumber:5},void 0)},ip=[{manifest:Qf,implementation:ep,isInstalledByDefault:!0},{manifest:np,implementation:{initialize:e=>{e.logger.info(`Initializing Audio Player Pro plugin...`),e.widgets.register({id:`audio_player_widget`,type:`audioPlayerWidget`,name:`Audio Player`,category:`cards`,description:`Audio playback card with waveform visualizer.`,icon:`Music`,defaultWidth:260,defaultHeight:140,defaultStyles:{backgroundColor:`#1c1c1e`,borderRadius:18,borderWidth:1,borderColor:`#2c2c2e`,color:`#ffffff`},defaultContent:{title:`Ambient Soundscapes`,artist:`Cyrus Studio`,duration:`3:45`,progress:45},propSchemas:[{key:`title`,label:`Track Title`,type:`text`,defaultValue:`Ambient Soundscapes`},{key:`artist`,label:`Artist Name`,type:`text`,defaultValue:`Cyrus Studio`},{key:`duration`,label:`Duration`,type:`text`,defaultValue:`3:45`},{key:`progress`,label:`Progress (%)`,type:`number`,defaultValue:45}],renderer:rp})}},isInstalledByDefault:!0},{manifest:{id:`com.cyrus.plugin.lottie-player`,name:`Lottie Vector Animations`,version:`1.2.0`,description:`Embed dynamic lightweight JSON animations with interactive hover & scroll triggers.`,author:`Motion Labs`,targetCyrusVersion:`^1.0.0`,permissions:[`widgets:register`],category:`widgets`,icon:`Sparkles`},implementation:{initialize:()=>{}}},{manifest:{id:`com.cyrus.plugin.supabase-connector`,name:`Supabase Realtime Connector`,version:`1.0.0`,description:`Direct live synchronization with Supabase PostgreSQL tables & auth sessions.`,author:`Cloud Sync Team`,targetCyrusVersion:`^1.0.0`,permissions:[`data:connector`,`storage:read_write`],category:`data`,icon:`Database`},implementation:{initialize:()=>{}}}];async function ap(){for(let e of ip)e.isInstalledByDefault&&!Al.isPluginInstalled(e.manifest.id)&&await Al.installPlugin(e.manifest,e.implementation)}function op(e){let t=e;if(typeof e==`string`)try{let n=e.replace(/```json\s*/gi,``).replace(/```\s*$/gi,``).trim();t=JSON.parse(n)}catch{return lp(`AI Generated Application`)}if(!t||typeof t!=`object`)return lp(`AI Generated Application`);let n=String(t.projectTitle||t.name||t.title||`AI Generated Project`),r=[`webapp`,`website`,`dashboard`,`landing`,`mobile`].includes(t.type)?t.type:`webapp`,i=t.theme===`dark`?`dark`:`light`,a=Array.isArray(t.pages)?t.pages:[];a.length===0&&Array.isArray(t.elements)&&(a=[{name:`Home`,elements:t.elements}]),a.length===0&&(a=[{name:`Page 1`,elements:[]}]);let o=a.map((e,t)=>{let n=Array.isArray(e.elements)?e.elements:[],r=40,a=n.map((e,t)=>{let n=String(e.type||`button`),i=up(n),a=typeof e.x==`number`?e.x:n===`navbar`?40:40+t%2*440,o=typeof e.y==`number`?e.y:r,s=typeof e.width==`number`?e.width:i.width,c=typeof e.height==`number`?e.height:i.height;return r=Math.max(r,o+c+20),{id:e.id||`el_ir_${M()}`,type:n,name:e.name||`${n.charAt(0).toUpperCase()+n.slice(1)} ${t+1}`,x:a,y:o,width:s,height:c,styles:{backgroundColor:e.styles?.backgroundColor||i.styles.backgroundColor,textColor:e.styles?.textColor||i.styles.textColor,borderRadius:e.styles?.borderRadius??i.styles.borderRadius,borderWidth:e.styles?.borderWidth??i.styles.borderWidth,borderColor:e.styles?.borderColor||i.styles.borderColor,fontSize:e.styles?.fontSize||i.styles.fontSize,fontWeight:e.styles?.fontWeight||i.styles.fontWeight,shadow:e.styles?.shadow||i.styles.shadow,...e.styles},content:{...e.content,...e.label?{label:e.label}:{},...e.title?{title:e.title}:{},...e.text?{text:e.text}:{},...e.brandName?{brandName:e.brandName}:{},...e.placeholder?{placeholder:e.placeholder}:{}}}});return{id:e.id||`page_ir_${t+1}`,name:e.name||`Page ${t+1}`,slug:e.slug||`page-${t+1}`,backgroundColor:e.backgroundColor||(i===`dark`?`#0f0f12`:`#ffffff`),elements:a}});return{version:`1.0`,projectTitle:n,type:r,theme:i,palette:{primary:t.palette?.primary||`#0071e3`,secondary:t.palette?.secondary||`#7d2ae8`,background:t.palette?.background||(i===`dark`?`#0f0f12`:`#ffffff`),surface:t.palette?.surface||(i===`dark`?`#1c1c1e`:`#f5f5f7`),text:t.palette?.text||(i===`dark`?`#f5f5f7`:`#1d1d1f`)},pages:o}}function sp(e){let t=op(e);return{id:`proj_ir_${M()}`,name:t.projectTitle,type:t.type||`webapp`,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),settings:{canvasBackground:t.theme===`dark`?`#0f0f12`:`#ffffff`,primaryColor:t.palette?.primary||`#0071e3`,accentColor:t.palette?.secondary||`#7d2ae8`,theme:t.theme},designSystem:{mode:t.theme||`light`,colors:{primary:t.palette?.primary||`#0071e3`,secondary:t.palette?.secondary||`#7d2ae8`,background:t.palette?.background||`#ffffff`,surface:t.palette?.surface||`#f5f5f7`,text:t.palette?.text||`#1d1d1f`,textSecondary:`#86868b`,border:`#e5e5ea`}},pages:t.pages.map(e=>({id:e.id||`p_${M()}`,name:e.name||`Page 1`,slug:e.slug||`page-1`,settings:{backgroundColor:e.backgroundColor||`#ffffff`,width:1440,height:900},elements:e.elements.map(e=>({id:e.id||`el_${M()}`,type:e.type,name:e.name||`Element`,x:e.x||40,y:e.y||40,width:e.width||200,height:e.height||50,rotation:0,zIndex:1,styles:e.styles,content:e.content||{}}))}))}}function cp(e){return{version:`1.0`,projectTitle:e.name,type:e.type||`webapp`,theme:e.designSystem?.mode||`light`,palette:{primary:e.designSystem?.colors?.primary||`#0071e3`,secondary:e.designSystem?.colors?.secondary||`#7d2ae8`,background:e.designSystem?.colors?.background||`#ffffff`,surface:e.designSystem?.colors?.surface||`#f5f5f7`,text:e.designSystem?.colors?.text||`#1d1d1f`},pages:e.pages.map(e=>({id:e.id,name:e.name,slug:e.slug,backgroundColor:e.settings.backgroundColor,elements:(e.elements||[]).map(e=>({id:e.id,type:e.type,name:e.name,x:e.x,y:e.y,width:e.width,height:e.height,styles:e.styles,content:e.content}))}))}}function lp(e){return{version:`1.0`,projectTitle:e,type:`webapp`,theme:`light`,pages:[{id:`p_1`,name:`Page 1`,slug:`page-1`,elements:[]}]}}function up(e){switch(e){case`navbar`:return{width:800,height:64,styles:{backgroundColor:`#ffffff`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`}};case`sidebar`:return{width:260,height:600,styles:{backgroundColor:`#ffffff`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`}};case`lineChart`:return{width:460,height:260,styles:{backgroundColor:`#ffffff`,textColor:`#0071e3`,borderRadius:16,borderWidth:1,borderColor:`#e5e5ea`,shadow:`sm`}};case`searchBar`:return{width:320,height:44,styles:{backgroundColor:`#ffffff`,textColor:`#1d1d1f`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`,shadow:`subtle`,fontSize:14}};case`toggleSwitch`:return{width:200,height:44,styles:{backgroundColor:`#ffffff`,textColor:`#1d1d1f`,borderRadius:12,borderWidth:1,borderColor:`#e5e5ea`,shadow:`subtle`}};case`heading`:return{width:480,height:50,styles:{fontSize:32,fontWeight:`700`,textColor:`#1d1d1f`}};case`paragraph`:return{width:480,height:40,styles:{fontSize:14,fontWeight:`400`,textColor:`#6e6e73`}};default:return{width:140,height:42,styles:{backgroundColor:`#0071e3`,textColor:`#ffffff`,borderRadius:10,fontSize:14,fontWeight:`600`,shadow:`sm`}}}}var dp={};function fp(e,t){dp[e]=t}function pp(e){return dp[e]||null}async function mp(e,t,n,r=!1){if(!e)return{code:`// No active page selected`,source:`builtin`,providerName:`Cyrus Engine`};let i=pp(t);if(i&&!r)return{code:i,source:`host_ai`,providerName:`Host AI (Live)`};let a=No.getState().ai;if(a?.apiKey&&(r||a.provider!==`builtin`))try{let r=await hp(e,t,a,n);if(r)return{code:r,source:`connected_ai`,providerName:`${a.provider.toUpperCase()} (${a.model})`}}catch(e){console.warn(`[AI Code Service] Failed to generate with connected AI, falling back to built-in:`,e)}return{code:Oc(e,t),source:`builtin`,providerName:`Built-in Engine`}}async function hp(e,t,n,r){let i=r?cp(r):{pages:[e]},a=`You are a world-class frontend architect.
|
|
2168
|
+
Generate complete, clean, production-ready ${t} code matching this UI layout:
|
|
2169
|
+
${JSON.stringify(i,null,2)}
|
|
2170
|
+
|
|
2171
|
+
Requirements:
|
|
2172
|
+
- Emit ONLY the final, runnable code file.
|
|
2173
|
+
- Do NOT include conversational filler.
|
|
2174
|
+
- Use responsive layout and modern syntax.`;if(n.provider===`openai`){let e=await fetch(`https://api.openai.com/v1/chat/completions`,{method:`POST`,signal:AbortSignal.timeout(3e4),headers:{"Content-Type":`application/json`,Authorization:`Bearer ${n.apiKey}`},body:JSON.stringify({model:n.model||`gpt-4o`,messages:[{role:`user`,content:a}],temperature:.2})});if(!e.ok){let t=await e.text().catch(()=>`HTTP ${e.status}`);throw Error(`OpenAI API error (${e.status}): ${t}`)}return((await e.json()).choices?.[0]?.message?.content||``).replace(/^```[a-zA-Z]*\n/,``).replace(/\n```$/,``).trim()}if(n.provider===`anthropic`){let e=await fetch(`https://api.anthropic.com/v1/messages`,{method:`POST`,signal:AbortSignal.timeout(3e4),headers:{"Content-Type":`application/json`,"x-api-key":n.apiKey||``,"anthropic-version":`2023-06-01`},body:JSON.stringify({model:n.model||`claude-3-5-sonnet-20241022`,max_tokens:4096,messages:[{role:`user`,content:a}]})});if(!e.ok){let t=await e.text().catch(()=>`HTTP ${e.status}`);throw Error(`Anthropic API error (${e.status}): ${t}`)}return((await e.json()).content?.[0]?.text||``).replace(/^```[a-zA-Z]*\n/,``).replace(/\n```$/,``).trim()}if(n.provider===`gemini`){let e=n.model||`gemini-1.5-pro`,t=await fetch(`https://generativelanguage.googleapis.com/v1beta/models/${e}:generateContent?key=${n.apiKey}`,{method:`POST`,signal:AbortSignal.timeout(3e4),headers:{"Content-Type":`application/json`},body:JSON.stringify({contents:[{parts:[{text:a}]}]})});if(!t.ok){let e=await t.text().catch(()=>`HTTP ${t.status}`);throw Error(`Gemini API error (${t.status}): ${e}`)}return((await t.json()).candidates?.[0]?.content?.parts?.[0]?.text||``).replace(/^```[a-zA-Z]*\n/,``).replace(/\n```$/,``).trim()}return null}function gp(){let{activeProject:e,setProject:t}=I();(0,N.useEffect)(()=>{if(!e||typeof window>`u`)return;let t=cp(e),n={projectId:e.id,name:e.name,document:t};window.parent&&window.parent!==window&&window.parent.postMessage({type:`CYRUS_STATE_CHANGED`,payload:n},`*`);try{let e=window.__CYRUS_DEV_WS__;e&&e.readyState===WebSocket.OPEN&&e.send(JSON.stringify({type:`STATE_CHANGED`,payload:n}))}catch{}},[e]),(0,N.useEffect)(()=>{if(typeof window>`u`)return;window.parent.postMessage({type:`CYRUS_READY`,payload:{version:`1.0.7`}},`*`);let e=e=>{let n=e.detail;if(n){if(n.pages&&Array.isArray(n.pages)&&n.id)t(n);else{let e=sp(op(n));t(e)}}};window.addEventListener(`cyrus-restore-project`,e);let n=e=>{let n=e.data;if(!n||typeof n!=`object`)return;let r=I.getState();switch(n.type){case`CYRUS_LOAD_IR`:case`CYRUS_SET_DOCUMENT`:if(n.payload){if(n.payload.pages&&Array.isArray(n.payload.pages)&&n.payload.id)t(n.payload);else{let e=sp(op(n.payload));t(e)}}break;case`CYRUS_SET_THEME`:{let e=n.payload?.theme;e===`dark`?document.documentElement.classList.add(`dark`):e===`light`&&document.documentElement.classList.remove(`dark`);break}case`CYRUS_SELECT_ELEMENT`:{let{elementId:e}=n.payload||{};e&&r.selectElement(e);break}case`CYRUS_CREATE_ELEMENT`:{let{element:e,select:t}=n.payload||{};if(e){let n=typeof e.width==`number`?e.width:360,i=typeof e.height==`number`?e.height:180,a=Math.round((1440-n)/2),o=Math.round((900-i)/2),s={id:e.id||`el_${M()}`,type:e.type||`card`,name:e.name||e.content?.title||e.type,x:typeof e.x==`number`?e.x:a,y:typeof e.y==`number`?e.y:o,width:n,height:i,rotation:0,zIndex:10,styles:e.styles||{},content:e.content||{}};r.addElement(s),t!==!1&&r.selectElement(s.id)}break}case`CYRUS_DELETE_ELEMENT`:{let{id:e}=n.payload||{};e&&r.deleteElement(e);break}case`CYRUS_UPDATE_ELEMENT`:{let{id:e,elementId:t,updates:i}=n.payload||{},a=e||t;a&&i&&(i.styles&&r.updateElementStyles(a,i.styles),i.content&&r.updateElementContent(a,i.content),(typeof i.x==`number`||typeof i.y==`number`||typeof i.width==`number`||typeof i.height==`number`)&&r.updateElement(a,i));break}case`CYRUS_SET_DESIGN_TOKENS`:n.payload&&(r.applyDesignTokens(n.payload),window.dispatchEvent(new CustomEvent(`cyrus-design-tokens-updated`,{detail:n.payload})));break;case`CYRUS_REGISTER_CUSTOM_COMPONENT`:n.payload&&n.payload.type&&(r.registerCustomComponent(n.payload),window.dispatchEvent(new CustomEvent(`cyrus-custom-component-registered`,{detail:n.payload})));break;case`CYRUS_SET_WHITELABEL_CONFIG`:n.payload&&window.dispatchEvent(new CustomEvent(`cyrus-whitelabel-updated`,{detail:n.payload}));break;case`CYRUS_STREAM_INCREMENTAL_ELEMENTS`:{let{elements:e}=n.payload||{};if(Array.isArray(e))for(let t of e){let e={id:t.id||`el_${M()}`,type:t.type||`card`,name:t.name||t.content?.title||t.type,x:typeof t.x==`number`?t.x:100,y:typeof t.y==`number`?t.y:120,width:typeof t.width==`number`?t.width:360,height:typeof t.height==`number`?t.height:180,rotation:0,zIndex:10,styles:t.styles||{},content:t.content||{}};r.addElement(e)}break}case`CYRUS_REQUEST_CANVAS_SNAPSHOT`:{let e=r.activeProject;if(e&&window.parent!==window){let t=cp(e);window.parent.postMessage({type:`CYRUS_CANVAS_SNAPSHOT_RESPONSE`,payload:{document:t,timestamp:Date.now()}},`*`)}break}case`CYRUS_MCP_TOOL_CALL`:{let e=n.payload;if(e){let{name:t,arguments:n,id:i}=e;try{let e={executed:!0};if(t===`cyrus_create_element`){let t=typeof n.width==`number`?n.width:360,i=typeof n.height==`number`?n.height:180,a=Math.round((1440-t)/2),o=Math.round((900-i)/2),s={id:n.id||`el_${M()}`,type:n.type||`card`,name:n.name||n.content?.title||n.type,x:typeof n.x==`number`?n.x:a,y:typeof n.y==`number`?n.y:o,width:t,height:i,rotation:0,zIndex:10,styles:n.styles||{},content:n.content||{}};r.addElement(s),r.selectElement(s.id),e={created:!0,elementId:s.id}}else if(t===`cyrus_update_styles`&&n.elementId)r.updateElementStyles(n.elementId,n.styles||{}),e={updated:!0,elementId:n.elementId};else if(t===`cyrus_update_content`&&n.elementId)r.updateElementContent(n.elementId,n.content||{}),e={updated:!0,elementId:n.elementId};else if(t===`cyrus_apply_design_system`)r.applyDesignTokens(n),e={applied:!0,preset:n.preset||`custom`};else if(t===`cyrus_batch_update_elements`&&Array.isArray(n.updates)){for(let e of n.updates)e.id&&(e.styles&&r.updateElementStyles(e.id,e.styles),e.content&&r.updateElementContent(e.id,e.content));e={updatedCount:n.updates.length}}else if(t===`cyrus_get_canvas_state`){let t=r.activeProject;e={document:t?cp(t):null}}window.parent!==window&&window.parent.postMessage({type:`CYRUS_MCP_TOOL_RESULT`,payload:{toolCallId:i,success:!0,data:e}},`*`)}catch(e){window.parent!==window&&window.parent.postMessage({type:`CYRUS_MCP_TOOL_RESULT`,payload:{toolCallId:i,success:!1,error:e?.message||`Tool execution failed`}},`*`)}}break}case`CYRUS_SET_AI_CODE`:{let{framework:e,code:t}=n.payload||{};e&&t&&(fp(e,t),window.dispatchEvent(new CustomEvent(`cyrus-ai-code-updated`,{detail:{framework:e,code:t}})));break}}};return window.addEventListener(`message`,n),()=>{window.removeEventListener(`message`,n),window.removeEventListener(`cyrus-restore-project`,e)}},[t])}function _p(e,t){if(typeof window>`u`||window.parent===window)return;let n=cp(t);window.parent.postMessage({type:`CYRUS_REQUEST_AI_CODE`,payload:{framework:e,document:n}},`*`)}var $=`C:/Users/Shadow/Desktop/cyrus/src/embed/CyrusEmbedRuntime.tsx`,vp={react:`react-tailwind`,flutter:`flutter`,swiftui:`swiftui`,html:`html-css`};function yp({projectId:e,initialIR:n,theme:r=`dark`}){gp();let i=I(e=>e.activeProject),a=I(e=>e.activePageId),o=I(e=>e.setProject);I(e=>e.addElement);let s=I(e=>e.customComponents),{viewportMode:c,setViewportMode:l,zoom:u,setZoom:d,resetZoom:f}=P(),[p,m]=(0,N.useState)(`design`),[h,g]=(0,N.useState)(!0),[_,v]=(0,N.useState)(!1),[b,x]=(0,N.useState)(`react`),[S,C]=(0,N.useState)(!1),[w,T]=(0,N.useState)(!1),[ee,E]=(0,N.useState)(!1),[te,ne]=(0,N.useState)(!1),[re,ie]=(0,N.useState)(!1),[O,ae]=(0,N.useState)(()=>{if(typeof window>`u`)return{};let e=new URLSearchParams(window.location.search||window.location.hash.split(`?`)[1]||``);return{brandName:e.get(`brand`)||void 0,primaryColor:e.get(`primary`)||void 0,logoUrl:e.get(`logo`)||void 0,hideHeader:e.get(`hideHeader`)===`true`,hideProperties:e.get(`hideInspector`)===`true`,hideCodeDrawer:e.get(`hideCode`)===`true`}});(0,N.useEffect)(()=>{O.hideProperties&&g(!1);let e=e=>{e.detail&&(ae(t=>({...t,...e.detail})),e.detail.hideProperties!==void 0&&g(!e.detail.hideProperties))};return window.addEventListener(`cyrus-whitelabel-updated`,e),()=>window.removeEventListener(`cyrus-whitelabel-updated`,e)},[O.hideProperties]);let[oe,se]=(0,N.useState)({code:`// Initializing code engine...`,source:`builtin`,providerName:`Cyrus Engine`});(0,N.useEffect)(()=>{let t=window.__CYRUS_INITIAL_PROJECT__;if(t){if(t.pages&&Array.isArray(t.pages)&&t.id)o(t);else{let e=sp(op(t));o(e)}return}if(e===`env`){fetch(`/api/initial-project`).then(e=>e.ok?e.json():null).then(e=>{if(e&&(e.pages?.length>0||e.elements?.length>0||e.name)){if(e.pages&&Array.isArray(e.pages)&&e.id)o(e);else{let t=sp(op(e));o(t)}}else o(sp(op({projectTitle:`Visual Board`,theme:r||`dark`,pages:[{name:`Page 1`,elements:[]}]})))}).catch(()=>{o(sp(op({projectTitle:`Visual Board`,theme:r||`dark`,pages:[{name:`Page 1`,elements:[]}]})))});return}if(n){if(n.pages&&Array.isArray(n.pages)&&n.id)o(n);else{let e=sp(op(n));o(e)}}else e&&po(e).then(e=>{o(e||sp(op({projectTitle:`Visual Board`,theme:r||`dark`,pages:[{name:`Page 1`,elements:[]}]})))}).catch(()=>{o(sp(op({projectTitle:`Visual Board`,theme:r||`dark`,pages:[{name:`Page 1`,elements:[]}]})))})},[e,n,r]);let ce=i?.pages.find(e=>e.id===a)||i?.pages[0],le=(0,N.useCallback)(async(e=!1)=>{if(!ce)return;let t=vp[b];e&&ie(!0);try{let n=await mp(ce,t,i||void 0,e);if(se(n),typeof window<`u`&&ce){let[e,t,n,r]=await Promise.all([mp(ce,`react-tailwind`,i||void 0,!1),mp(ce,`html-css`,i||void 0,!1),mp(ce,`flutter`,i||void 0,!1),mp(ce,`swiftui`,i||void 0,!1)]),a={react:e.code,html:t.code,flutter:n.code,swiftui:r.code,timestamp:Date.now()};try{let e=window.__CYRUS_DEV_WS__;e&&e.readyState===WebSocket.OPEN&&e.send(JSON.stringify({type:`CODE_SYNC`,payload:a}))}catch{}window.postMessage({type:`CYRUS_CODE_SYNC`,payload:a},`*`),window.parent&&window.parent!==window&&window.parent.postMessage({type:`CYRUS_CODE_SYNC`,payload:a},`*`)}}finally{e&&ie(!1)}},[ce,b,i]);return(0,N.useEffect)(()=>{le(!1);let e=()=>le(!1);return window.addEventListener(`cyrus-ai-code-updated`,e),()=>window.removeEventListener(`cyrus-ai-code-updated`,e)},[le]),!i||!ce?(0,F.jsxDEV)(`div`,{className:`w-full h-screen bg-[#09090b] text-white flex flex-col items-center justify-center font-sans`,children:(0,F.jsxDEV)(`div`,{className:`flex flex-col items-center gap-3 p-8 rounded-3xl bg-[#121215] border border-white/10 shadow-2xl animate-pulse`,children:[(0,F.jsxDEV)(`div`,{className:`w-12 h-12 rounded-2xl bg-gradient-to-tr from-[#7d2ae8] to-[#0071e3] flex items-center justify-center shadow-lg shadow-[#7d2ae8]/30`,children:(0,F.jsxDEV)(vi,{className:`w-6 h-6 text-white`},void 0,!1,{fileName:$,lineNumber:245,columnNumber:13},this)},void 0,!1,{fileName:$,lineNumber:244,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-sm font-semibold tracking-wide text-zinc-300`,children:[`Initializing `,O.brandName||`Cyrus Studio`,` Engine...`]},void 0,!0,{fileName:$,lineNumber:247,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-xs text-zinc-500 font-mono`,children:`Loading vector canvas & AI bridge`},void 0,!1,{fileName:$,lineNumber:250,columnNumber:11},this)]},void 0,!0,{fileName:$,lineNumber:243,columnNumber:9},this)},void 0,!1,{fileName:$,lineNumber:242,columnNumber:7},this):(Object.values(s||{}),(0,F.jsxDEV)(`div`,{className:`w-full h-screen flex flex-col bg-[#09090b] text-[#f4f4f5] font-sans select-none overflow-hidden relative`,children:[!O.hideHeader&&(0,F.jsxDEV)(`header`,{className:`h-14 px-4 bg-[#121215]/90 backdrop-blur-xl border-b border-white/[0.08] flex items-center justify-between z-40 shrink-0`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5`,children:[O.logoUrl&&(0,F.jsxDEV)(`img`,{src:O.logoUrl,alt:`Logo`,className:`w-6 h-6 rounded object-contain mr-1`},void 0,!1,{fileName:$,lineNumber:306,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-[#34c759]/10 border border-[#34c759]/20 text-[#34c759] text-[11px] font-semibold`,children:[(0,F.jsxDEV)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-[#34c759] animate-pulse`},void 0,!1,{fileName:$,lineNumber:310,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`LIVE BRIDGE`},void 0,!1,{fileName:$,lineNumber:311,columnNumber:15},this)]},void 0,!0,{fileName:$,lineNumber:309,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:304,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 bg-[#18181b]/80 p-1 rounded-2xl border border-white/[0.08]`,children:[(0,F.jsxDEV)(`button`,{onClick:()=>m(`design`),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-xs font-semibold transition cursor-pointer ${p===`design`?`bg-gradient-to-r from-[#7d2ae8] to-[#6019c7] text-white shadow-md`:`text-zinc-400 hover:text-zinc-200`}`,children:[(0,F.jsxDEV)(Gt,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:$,lineNumber:325,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Canvas`},void 0,!1,{fileName:$,lineNumber:326,columnNumber:15},this)]},void 0,!0,{fileName:$,lineNumber:317,columnNumber:13},this),(0,F.jsxDEV)(`button`,{onClick:()=>m(`interactive`),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-xs font-semibold transition cursor-pointer ${p===`interactive`?`bg-gradient-to-r from-[#0071e3] to-[#005bb5] text-white shadow-md`:`text-zinc-400 hover:text-zinc-200`}`,children:[(0,F.jsxDEV)(ci,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:$,lineNumber:337,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:`Live Test`},void 0,!1,{fileName:$,lineNumber:338,columnNumber:15},this)]},void 0,!0,{fileName:$,lineNumber:329,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`h-4 w-px bg-white/10 mx-1`},void 0,!1,{fileName:$,lineNumber:341,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-0.5`,children:[(0,F.jsxDEV)(`button`,{onClick:()=>l(`desktop`),className:`p-1.5 rounded-lg transition cursor-pointer ${c===`desktop`?`bg-white/10 text-white`:`text-zinc-400 hover:text-zinc-200`}`,title:`Desktop View (1440px)`,children:(0,F.jsxDEV)(dn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:$,lineNumber:351,columnNumber:17},this)},void 0,!1,{fileName:$,lineNumber:344,columnNumber:15},this),(0,F.jsxDEV)(`button`,{onClick:()=>l(`tablet`),className:`p-1.5 rounded-lg transition cursor-pointer ${c===`tablet`?`bg-white/10 text-white`:`text-zinc-400 hover:text-zinc-200`}`,title:`Tablet View (768px)`,children:(0,F.jsxDEV)(t,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:$,lineNumber:360,columnNumber:17},this)},void 0,!1,{fileName:$,lineNumber:353,columnNumber:15},this),(0,F.jsxDEV)(`button`,{onClick:()=>l(`mobile`),className:`p-1.5 rounded-lg transition cursor-pointer ${c===`mobile`?`bg-white/10 text-white`:`text-zinc-400 hover:text-zinc-200`}`,title:`Mobile View (390px)`,children:(0,F.jsxDEV)(Ar,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:$,lineNumber:369,columnNumber:17},this)},void 0,!1,{fileName:$,lineNumber:362,columnNumber:15},this)]},void 0,!0,{fileName:$,lineNumber:343,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:316,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2 relative`,children:[(0,F.jsxDEV)(`button`,{onClick:async()=>{if(i){T(!0);try{await _o(i);let e=window.__CYRUS_DEV_WS__;e&&e.readyState===WebSocket.OPEN&&e.send(JSON.stringify({type:`SAVE_PROJECT`,payload:i})),await le(!1),E(!0),setTimeout(()=>E(!1),2e3)}catch(e){console.error(`Failed to save project:`,e)}finally{T(!1)}}},disabled:w,className:`flex items-center gap-1.5 px-3.5 py-1.5 rounded-xl border text-xs font-semibold transition cursor-pointer ${ee?`bg-emerald-500/20 border-emerald-500/40 text-emerald-300`:`bg-white/10 hover:bg-white/15 border-white/15 text-white active:scale-95`}`,title:`Save all changes to disk and storage`,children:[w?(0,F.jsxDEV)(kr,{className:`w-3.5 h-3.5 animate-spin text-zinc-300`},void 0,!1,{fileName:$,lineNumber:389,columnNumber:17},this):ee?(0,F.jsxDEV)(ke,{className:`w-3.5 h-3.5 text-emerald-400`},void 0,!1,{fileName:$,lineNumber:391,columnNumber:17},this):(0,F.jsxDEV)(y,{className:`w-3.5 h-3.5 text-zinc-300`},void 0,!1,{fileName:$,lineNumber:393,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:w?`Saving...`:ee?`Saved!`:`Save`},void 0,!1,{fileName:$,lineNumber:395,columnNumber:15},this)]},void 0,!0,{fileName:$,lineNumber:378,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`relative`,children:[(0,F.jsxDEV)(`button`,{onClick:()=>ne(!te),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-xl border text-xs font-semibold transition cursor-pointer ${te?`bg-[#7d2ae8]/20 border-[#7d2ae8] text-[#c4b5fd]`:`bg-white/5 hover:bg-white/10 border-white/10 text-zinc-200`}`,title:`Browse & insert 150+ vector icons`,children:[(0,F.jsxDEV)(D,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:$,lineNumber:409,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:`Add Icons`},void 0,!1,{fileName:$,lineNumber:410,columnNumber:17},this)]},void 0,!0,{fileName:$,lineNumber:400,columnNumber:15},this),te&&(0,F.jsxDEV)(`div`,{className:`absolute right-0 top-11 w-84 h-[440px] bg-[#18181b] border border-white/10 rounded-2xl shadow-2xl z-50 overflow-hidden flex flex-col animate-in fade-in zoom-in-95 duration-150 dark`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center justify-between px-3.5 py-2.5 border-b border-white/10 bg-[#121215]`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 text-xs font-bold text-zinc-200`,children:[(0,F.jsxDEV)(D,{className:`w-3.5 h-3.5 text-[#7d2ae8]`},void 0,!1,{fileName:$,lineNumber:417,columnNumber:23},this),(0,F.jsxDEV)(`span`,{children:`Vector Icons (150+)`},void 0,!1,{fileName:$,lineNumber:418,columnNumber:23},this)]},void 0,!0,{fileName:$,lineNumber:416,columnNumber:21},this),(0,F.jsxDEV)(`button`,{onClick:()=>ne(!1),className:`p-1 rounded-lg text-zinc-400 hover:text-white hover:bg-white/10 transition cursor-pointer`,children:(0,F.jsxDEV)(Ln,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:$,lineNumber:424,columnNumber:23},this)},void 0,!1,{fileName:$,lineNumber:420,columnNumber:21},this)]},void 0,!0,{fileName:$,lineNumber:415,columnNumber:19},this),(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-hidden`,children:(0,F.jsxDEV)(ul,{},void 0,!1,{fileName:$,lineNumber:428,columnNumber:21},this)},void 0,!1,{fileName:$,lineNumber:427,columnNumber:19},this)]},void 0,!0,{fileName:$,lineNumber:414,columnNumber:17},this)]},void 0,!0,{fileName:$,lineNumber:399,columnNumber:13},this),!O.hideCodeDrawer&&(0,F.jsxDEV)(`button`,{onClick:()=>v(!_),className:`flex items-center gap-1.5 px-3.5 py-1.5 rounded-xl font-semibold text-xs transition cursor-pointer ${_?`bg-white text-black font-bold`:`bg-gradient-to-r from-[#0071e3] to-[#005bb5] hover:opacity-95 text-white shadow-lg shadow-[#0071e3]/20`}`,children:[(0,F.jsxDEV)(Di,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:$,lineNumber:444,columnNumber:17},this),(0,F.jsxDEV)(`span`,{children:_?`Hide Code`:`Inspect Code`},void 0,!1,{fileName:$,lineNumber:445,columnNumber:17},this)]},void 0,!0,{fileName:$,lineNumber:436,columnNumber:15},this)]},void 0,!0,{fileName:$,lineNumber:375,columnNumber:11},this)]},void 0,!0,{fileName:$,lineNumber:301,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`flex-1 w-full h-full flex relative overflow-hidden bg-[#0c0c0e]`,children:[(0,F.jsxDEV)(`div`,{className:`flex-1 h-full relative overflow-hidden`,children:[p===`design`?(0,F.jsxDEV)(vd,{page:ce},void 0,!1,{fileName:$,lineNumber:458,columnNumber:13},this):(0,F.jsxDEV)(`div`,{className:`w-full h-full overflow-auto flex justify-center p-6`,children:(0,F.jsxDEV)(`div`,{className:`w-full max-w-[1440px] bg-white rounded-3xl overflow-hidden shadow-2xl`,children:(0,F.jsxDEV)(If,{project:i,initialPageId:ce.id},void 0,!1,{fileName:$,lineNumber:462,columnNumber:17},this)},void 0,!1,{fileName:$,lineNumber:461,columnNumber:15},this)},void 0,!1,{fileName:$,lineNumber:460,columnNumber:13},this),p===`design`&&!O.hideZoomControls&&(0,F.jsxDEV)(`div`,{className:`absolute bottom-6 left-6 flex items-center gap-1 p-1.5 rounded-2xl bg-[#18181b]/90 backdrop-blur-md border border-white/10 shadow-xl text-xs z-30`,children:[(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>d(Math.max(.2,Number((u-.1).toFixed(2)))),className:`p-1.5 rounded-xl hover:bg-white/10 text-zinc-300 transition cursor-pointer`,title:`Zoom Out`,children:(0,F.jsxDEV)(oa,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:$,lineNumber:476,columnNumber:17},this)},void 0,!1,{fileName:$,lineNumber:470,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>f(),className:`px-2 py-1 rounded-xl hover:bg-white/10 text-zinc-300 font-mono text-[11px] font-bold cursor-pointer`,title:`Reset Zoom to 100%`,children:[Math.round(u*100),`%`]},void 0,!0,{fileName:$,lineNumber:478,columnNumber:15},this),(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>d(Math.min(3,Number((u+.1).toFixed(2)))),className:`p-1.5 rounded-xl hover:bg-white/10 text-zinc-300 transition cursor-pointer`,title:`Zoom In`,children:(0,F.jsxDEV)(yi,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:$,lineNumber:492,columnNumber:17},this)},void 0,!1,{fileName:$,lineNumber:486,columnNumber:15},this)]},void 0,!0,{fileName:$,lineNumber:469,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:456,columnNumber:9},this),p===`design`&&!O.hideProperties&&h&&(0,F.jsxDEV)(`div`,{className:`h-full z-30 shrink-0 border-l border-white/[0.08] shadow-2xl flex flex-col overflow-hidden`,children:(0,F.jsxDEV)(jd,{},void 0,!1,{fileName:$,lineNumber:501,columnNumber:13},this)},void 0,!1,{fileName:$,lineNumber:500,columnNumber:11},this)]},void 0,!0,{fileName:$,lineNumber:453,columnNumber:7},this),!O.hideCodeDrawer&&_&&(0,F.jsxDEV)(`aside`,{className:`absolute right-0 top-14 bottom-0 w-full max-w-xl bg-[#121215]/95 backdrop-blur-2xl border-l border-white/10 shadow-2xl z-50 flex flex-col animate-in slide-in-from-right duration-200 font-mono`,children:[(0,F.jsxDEV)(`div`,{className:`h-12 px-4 border-b border-white/10 flex items-center justify-between text-xs bg-black/30`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,F.jsxDEV)(`button`,{onClick:()=>x(`react`),className:`px-3 py-1.5 rounded-lg text-xs font-sans font-semibold transition cursor-pointer ${b===`react`?`bg-[#0071e3] text-white`:`text-zinc-400 hover:text-white`}`,children:`React + Tailwind`},void 0,!1,{fileName:$,lineNumber:513,columnNumber:15},this),(0,F.jsxDEV)(`button`,{onClick:()=>x(`flutter`),className:`px-3 py-1.5 rounded-lg text-xs font-sans font-semibold transition cursor-pointer ${b===`flutter`?`bg-[#7d2ae8] text-white`:`text-zinc-400 hover:text-white`}`,children:`Flutter`},void 0,!1,{fileName:$,lineNumber:521,columnNumber:15},this),(0,F.jsxDEV)(`button`,{onClick:()=>x(`swiftui`),className:`px-3 py-1.5 rounded-lg text-xs font-sans font-semibold transition cursor-pointer ${b===`swiftui`?`bg-[#ff5f56] text-white`:`text-zinc-400 hover:text-white`}`,children:`Swift / SwiftUI`},void 0,!1,{fileName:$,lineNumber:529,columnNumber:15},this),(0,F.jsxDEV)(`button`,{onClick:()=>x(`html`),className:`px-3 py-1.5 rounded-lg text-xs font-sans font-semibold transition cursor-pointer ${b===`html`?`bg-zinc-700 text-white`:`text-zinc-400 hover:text-white`}`,children:`HTML / CSS`},void 0,!1,{fileName:$,lineNumber:537,columnNumber:15},this)]},void 0,!0,{fileName:$,lineNumber:512,columnNumber:13},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`button`,{onClick:()=>{navigator.clipboard.writeText(oe.code),C(!0),setTimeout(()=>C(!1),2e3)},className:`flex items-center gap-1.5 px-3 py-1 rounded-lg bg-white/10 hover:bg-white/20 text-white font-sans text-xs transition cursor-pointer`,children:[S?(0,F.jsxDEV)(ke,{className:`w-3.5 h-3.5 text-[#34c759]`},void 0,!1,{fileName:$,lineNumber:552,columnNumber:27},this):(0,F.jsxDEV)(Dn,{className:`w-3.5 h-3.5`},void 0,!1,{fileName:$,lineNumber:552,columnNumber:78},this),(0,F.jsxDEV)(`span`,{children:S?`Copied`:`Copy`},void 0,!1,{fileName:$,lineNumber:553,columnNumber:17},this)]},void 0,!0,{fileName:$,lineNumber:548,columnNumber:15},this),(0,F.jsxDEV)(`button`,{onClick:()=>v(!1),className:`p-1 rounded-lg text-zinc-400 hover:text-white cursor-pointer`,children:(0,F.jsxDEV)(Ln,{className:`w-4 h-4`},void 0,!1,{fileName:$,lineNumber:556,columnNumber:17},this)},void 0,!1,{fileName:$,lineNumber:555,columnNumber:15},this)]},void 0,!0,{fileName:$,lineNumber:547,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:511,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`h-9 px-4 bg-[#0a0a0c] border-b border-white/[0.06] flex items-center justify-between text-[11px] font-sans`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`span`,{className:`text-zinc-500 font-medium`,children:`Source:`},void 0,!1,{fileName:$,lineNumber:564,columnNumber:15},this),(0,F.jsxDEV)(`div`,{className:`flex items-center gap-1.5 px-2 py-0.5 rounded-md font-semibold text-[10.5px] ${oe.source===`host_ai`?`bg-[#34c759]/10 border border-[#34c759]/30 text-[#34c759]`:oe.source===`connected_ai`?`bg-[#7d2ae8]/15 border border-[#7d2ae8]/30 text-[#b37af7]`:`bg-white/5 border border-white/10 text-zinc-400`}`,children:[oe.source===`builtin`?(0,F.jsxDEV)(Sn,{className:`w-3 h-3`},void 0,!1,{fileName:$,lineNumber:572,columnNumber:52},this):(0,F.jsxDEV)(vi,{className:`w-3 h-3`},void 0,!1,{fileName:$,lineNumber:572,columnNumber:82},this),(0,F.jsxDEV)(`span`,{children:oe.providerName},void 0,!1,{fileName:$,lineNumber:573,columnNumber:17},this)]},void 0,!0,{fileName:$,lineNumber:565,columnNumber:15},this)]},void 0,!0,{fileName:$,lineNumber:563,columnNumber:13},this),(0,F.jsxDEV)(`button`,{onClick:()=>{i&&_p(vp[b],i),le(!0)},disabled:re,className:`flex items-center gap-1.5 px-2.5 py-1 rounded-md bg-white/5 hover:bg-white/10 text-zinc-300 text-[11px] font-medium transition cursor-pointer disabled:opacity-50`,title:`Request live AI compilation from connected host or API key`,children:[(0,F.jsxDEV)(yn,{className:`w-3 h-3 ${re?`animate-spin text-[#0071e3]`:``}`},void 0,!1,{fileName:$,lineNumber:583,columnNumber:15},this),(0,F.jsxDEV)(`span`,{children:re?`Synthesizing...`:`Synthesize with AI`},void 0,!1,{fileName:$,lineNumber:584,columnNumber:15},this)]},void 0,!0,{fileName:$,lineNumber:577,columnNumber:13},this)]},void 0,!0,{fileName:$,lineNumber:562,columnNumber:11},this),(0,F.jsxDEV)(`div`,{className:`flex-1 p-4 overflow-auto bg-[#0a0a0c] text-xs text-zinc-300 leading-relaxed font-mono`,children:(0,F.jsxDEV)(`pre`,{className:`whitespace-pre`,children:oe.code},void 0,!1,{fileName:$,lineNumber:590,columnNumber:13},this)},void 0,!1,{fileName:$,lineNumber:589,columnNumber:11},this)]},void 0,!0,{fileName:$,lineNumber:508,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:297,columnNumber:5},this))}var bp=`C:/Users/Shadow/Desktop/cyrus/src/app/Router.tsx`;function xp(){let e=window.location.hash.replace(/^#\/?/,``),t=window.location.pathname.replace(/^\//,``),n=(e||t||``).split(`?`)[0];return typeof window<`u`&&(window.__CYRUS_INITIAL_PROJECT__!==void 0||window.__CYRUS_DEV_WS__!==void 0||[`4799`,`4800`,`4801`,`4802`,`4803`,`4804`].includes(window.location.port))&&!e&&(!n||n===`dashboard`||n===`studio`||n===`canvas`||n===`env`)?{path:`embed`,projectId:`env`}:n===`feedback`||n===`dashboard/feedback`||n.endsWith(`/feedback`)||n===`feedbacks`?{path:`feedback`}:n===`comentos`||n===`comentos/review`||n.startsWith(`comentos`)?{path:`comentos`}:n.startsWith(`embed/`)?{path:`embed`,projectId:n.replace(`embed/`,``)}:n===`embed`?{path:`embed`,projectId:`env`}:n.startsWith(`editor/`)?{path:`editor`,projectId:n.replace(`editor/`,``)}:n.startsWith(`preview/`)||n.startsWith(`share/`)?{path:`preview`,projectId:n.replace(/^(preview|share)\//,``)}:n===`settings`?{path:`settings`}:n===`login`||n===`signup`?{path:`login`}:{path:`dashboard`}}function Sp(){let[e,t]=(0,N.useState)(xp),{session:n,isLoading:r,initAuth:i}=cs();(0,N.useEffect)(()=>{co(),ap(),i();let e=()=>{t(xp())};return window.addEventListener(`popstate`,e),window.addEventListener(`hashchange`,e),()=>{window.removeEventListener(`popstate`,e),window.removeEventListener(`hashchange`,e)}},[]);let a=e=>{t(e),e.path===`editor`?window.location.hash=`/editor/${e.projectId}`:e.path===`preview`?window.location.hash=`/preview/${e.projectId}`:e.path===`settings`?window.location.hash=`/settings`:e.path===`feedback`?window.location.hash=`/dashboard/feedback`:e.path===`comentos`?window.location.hash=`/comentos/review`:e.path===`login`?window.location.hash=`/login`:e.path===`embed`?window.location.hash=`/embed/${e.projectId}`:window.location.hash=`/dashboard`};return(0,N.useEffect)(()=>{!r&&e.path===`login`&&n.isAuthenticated&&a({path:`dashboard`})},[r,e.path,n.isAuthenticated]),e.path===`embed`?(0,F.jsxDEV)(`div`,{className:`h-full w-full`,children:[(0,F.jsxDEV)(yp,{projectId:e.projectId},void 0,!1,{fileName:bp,lineNumber:138,columnNumber:9},this),(0,F.jsxDEV)(Xf,{},void 0,!1,{fileName:bp,lineNumber:139,columnNumber:9},this)]},void 0,!0,{fileName:bp,lineNumber:137,columnNumber:7},this):r?(0,F.jsxDEV)(`div`,{className:`h-full w-full flex items-center justify-center bg-[#f5f5f7] dark:bg-black`,children:[(0,F.jsxDEV)(kr,{className:`w-6 h-6 animate-spin text-[#7d2ae8]`},void 0,!1,{fileName:bp,lineNumber:147,columnNumber:9},this),(0,F.jsxDEV)(Xf,{},void 0,!1,{fileName:bp,lineNumber:148,columnNumber:9},this)]},void 0,!0,{fileName:bp,lineNumber:146,columnNumber:7},this):e.path!==`login`&&e.path!==`preview`&&e.path!==`comentos`&&!n.isAuthenticated?(0,F.jsxDEV)(`div`,{className:`h-full w-full`,children:[(0,F.jsxDEV)(Vf,{onAuthenticated:()=>a({path:`dashboard`})},void 0,!1,{fileName:bp,lineNumber:157,columnNumber:9},this),(0,F.jsxDEV)(Xf,{},void 0,!1,{fileName:bp,lineNumber:158,columnNumber:9},this)]},void 0,!0,{fileName:bp,lineNumber:156,columnNumber:7},this):(0,F.jsxDEV)(`div`,{className:`h-full w-full`,children:[e.path===`feedback`?(0,F.jsxDEV)(Jf,{onBack:()=>a({path:`dashboard`})},void 0,!1,{fileName:bp,lineNumber:166,columnNumber:9},this):e.path===`comentos`?(0,F.jsxDEV)(Kf,{onBack:()=>a({path:n.isAuthenticated?`dashboard`:`login`})},void 0,!1,{fileName:bp,lineNumber:168,columnNumber:9},this):e.path===`login`?(0,F.jsxDEV)(Vf,{onAuthenticated:()=>a({path:`dashboard`})},void 0,!1,{fileName:bp,lineNumber:170,columnNumber:9},this):e.path===`dashboard`||e.path===`projects`?(0,F.jsxDEV)(zc,{onOpenProject:e=>a({path:`editor`,projectId:e}),onOpenSettings:()=>a({path:`settings`}),onOpenFeedback:()=>a({path:`feedback`})},void 0,!1,{fileName:bp,lineNumber:172,columnNumber:9},this):e.path===`editor`?(0,F.jsxDEV)(cf,{projectId:e.projectId,onNavigateDashboard:()=>a({path:`dashboard`}),onNavigateSettings:()=>a({path:`settings`})},void 0,!1,{fileName:bp,lineNumber:178,columnNumber:9},this):e.path===`preview`?(0,F.jsxDEV)(Bf,{projectId:e.projectId,onExit:()=>a({path:`editor`,projectId:e.projectId})},void 0,!1,{fileName:bp,lineNumber:184,columnNumber:9},this):(0,F.jsxDEV)(Df,{onBack:()=>a({path:`dashboard`})},void 0,!1,{fileName:bp,lineNumber:189,columnNumber:9},this),(0,F.jsxDEV)(Xf,{},void 0,!1,{fileName:bp,lineNumber:193,columnNumber:7},this)]},void 0,!0,{fileName:bp,lineNumber:164,columnNumber:5},this)}var Cp=null,wp=!1;function Tp(e){return{"src/App.tsx":Oc(e,`react-tailwind`),"index.html":Oc(e,`html-css`),"flutter/main.dart":Oc(e,`flutter`),"swiftui/ContentView.swift":Oc(e,`swiftui`),"src/styles/globals.css":`@tailwind base;
|
|
2175
|
+
@tailwind components;
|
|
2176
|
+
@tailwind utilities;
|
|
2177
|
+
|
|
2178
|
+
@layer base {
|
|
2179
|
+
* {
|
|
2180
|
+
box-sizing: border-box;
|
|
2181
|
+
margin: 0;
|
|
2182
|
+
padding: 0;
|
|
2183
|
+
}
|
|
2184
|
+
body {
|
|
2185
|
+
background-color: ${e.settings?.backgroundColor||`#ffffff`};
|
|
2186
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
2187
|
+
color: #1d1d1f;
|
|
2188
|
+
-webkit-font-smoothing: antialiased;
|
|
2189
|
+
-moz-osx-font-smoothing: grayscale;
|
|
2190
|
+
}
|
|
2191
|
+
}`,"package.json":JSON.stringify({name:e.name.toLowerCase().replace(/[^a-z0-9]/g,`-`)||`cyrus-app`,private:!0,version:`1.0.0`,type:`module`,scripts:{dev:`vite`,build:`tsc -b && vite build`,preview:`vite preview`},dependencies:{react:`^18.3.1`,"react-dom":`^18.3.1`,"lucide-react":`^0.441.0`,clsx:`^2.1.1`},devDependencies:{"@types/react":`^18.3.5`,"@types/react-dom":`^18.3.0`,"@vitejs/plugin-react":`^4.3.1`,autoprefixer:`^10.4.20`,postcss:`^8.4.47`,tailwindcss:`^3.4.11`,typescript:`^5.5.3`,vite:`^5.4.2`}},null,2),"README.md":`# ${e.name}
|
|
2192
|
+
|
|
2193
|
+
> Generated by **Cyrus Studio 2.0**
|
|
2194
|
+
|
|
2195
|
+
This project is copy-ready and fully runnable across **React + Tailwind CSS**, **HTML/CSS**, **Flutter**, and **SwiftUI**.
|
|
2196
|
+
|
|
2197
|
+
## Quick Start (React + Tailwind)
|
|
2198
|
+
\`\`\`bash
|
|
2199
|
+
npm install
|
|
2200
|
+
npm run dev
|
|
2201
|
+
\`\`\`
|
|
2202
|
+
|
|
2203
|
+
## Standalone HTML
|
|
2204
|
+
Open \`index.html\` directly in any browser — zero build steps required!
|
|
2205
|
+
`}}function Ep(){let e=I.getState().activeProject,t=I.getState().activePageId;if(!e)return;let n=e.pages.find(e=>e.id===t)||e.pages[0];if(!n)return;let r=Tp(n),i=mc.getState(),a={...i.files},o=!1;for(let[e,t]of Object.entries(r))a[e]!==t&&(a[e]=t,o=!0);(o||Object.keys(i.files).length===0)&&mc.setState({files:a,openTabs:i.openTabs.length>0?i.openTabs:[`src/App.tsx`,`index.html`],activeFilePath:i.activeFilePath||`src/App.tsx`})}function Dp(){wp||(wp=!0,setTimeout(()=>Ep(),100),I.subscribe((e,t)=>{(e.activeProject!==t.activeProject||e.activePageId!==t.activePageId)&&(Cp&&clearTimeout(Cp),Cp=setTimeout(()=>{Ep()},80))}))}var Op=`C:/Users/Shadow/Desktop/cyrus/src/App.tsx`;function kp(){let e=No(e=>e.appearance.theme);return(0,N.useEffect)(()=>{Dp()},[]),(0,N.useEffect)(()=>{if((e=>{let t=e===`dark`;e===`system`&&(t=window.matchMedia(`(prefers-color-scheme: dark)`).matches),t?(document.documentElement.classList.add(`dark`),document.documentElement.setAttribute(`data-theme`,`dark`)):(document.documentElement.classList.remove(`dark`),document.documentElement.setAttribute(`data-theme`,`light`))})(e),e===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=e=>{e.matches?(document.documentElement.classList.add(`dark`),document.documentElement.setAttribute(`data-theme`,`dark`)):(document.documentElement.classList.remove(`dark`),document.documentElement.setAttribute(`data-theme`,`light`))};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)}},[e]),(0,F.jsxDEV)(tu,{children:(0,F.jsxDEV)(Sp,{},void 0,!1,{fileName:Op,lineNumber:50,columnNumber:7},this)},void 0,!1,{fileName:Op,lineNumber:49,columnNumber:5},this)}var Ap=`C:/Users/Shadow/Desktop/cyrus/src/main.tsx`;window.clsx=j,(0,jo.createRoot)(document.getElementById(`root`)).render((0,F.jsxDEV)(N.StrictMode,{children:(0,F.jsxDEV)(tu,{children:(0,F.jsxDEV)(kp,{},void 0,!1,{fileName:Ap,lineNumber:13,columnNumber:7},void 0)},void 0,!1,{fileName:Ap,lineNumber:12,columnNumber:5},void 0)},void 0,!1,{fileName:Ap,lineNumber:11,columnNumber:3},void 0));export{os as C,No as E,cs as S,P as T,Ms as _,Gd as a,ms as b,pd as c,pc as d,dc as f,I as g,tc as h,Yd as i,tu as l,oc as m,If as n,od as o,sc as p,Kd as r,ad as s,Ep as t,mc as u,As as v,ss as w,fs as x,gs as y};
|