@codeyam-editor/codeyam-editor 0.1.6 → 0.1.8

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.
Files changed (37) hide show
  1. package/npm/cloud.js +308 -52
  2. package/npm/compose-conflict.js +59 -0
  3. package/npm/fleet-add-failure.js +174 -18
  4. package/npm/fleet-cleanup.js +129 -0
  5. package/npm/fleet-job-badge.js +28 -12
  6. package/npm/fleet-memory.js +73 -4
  7. package/npm/fleet-probe-transport.js +155 -0
  8. package/npm/fleet-queue.js +141 -0
  9. package/npm/fleet-revision.js +104 -0
  10. package/npm/fleet-running-plan.js +37 -7
  11. package/npm/fleet-vm-access.js +162 -0
  12. package/npm/ingress-invoke.js +46 -2
  13. package/npm/launch-config.js +163 -4
  14. package/npm/scenario-check.js +63 -19
  15. package/npm/scenario-handlers.js +18 -0
  16. package/npm/scenario-issues.js +11 -0
  17. package/npm/scenario-mocks.js +245 -39
  18. package/npm/scenario-playwright.js +114 -22
  19. package/package.json +5 -5
  20. package/ui/dist/assets/{ContainerInspector-DgM0pTAx.js → ContainerInspector-DSVZvEkB.js} +1 -1
  21. package/ui/dist/assets/EditorShell-DnXdHrar.js +256 -0
  22. package/ui/dist/assets/EditorShell-FvbXyqqD.css +1 -0
  23. package/ui/dist/assets/ProjectLauncherScreen-E0NYYiwy.js +1 -0
  24. package/ui/dist/assets/ScenarioDataPanel-6qJE-0lA.js +15 -0
  25. package/ui/dist/assets/{ScenarioDataPanelFullPage-BLqRCxQX.js → ScenarioDataPanelFullPage-Cyk6efiI.js} +1 -1
  26. package/ui/dist/assets/ScenarioRenderer-Uyt54vHI.js +21 -0
  27. package/ui/dist/assets/{index-DCHqRrwO.js → index-BPLKgwon.js} +9 -9
  28. package/ui/dist/assets/index-DKpgJLo3.css +1 -0
  29. package/ui/dist/assets/useServerIdentity-CVuHTzjg.js +1 -0
  30. package/ui/dist/index.html +2 -2
  31. package/ui/dist/assets/EditorShell-B7Q06uJ_.js +0 -252
  32. package/ui/dist/assets/EditorShell-DP5UY20G.css +0 -1
  33. package/ui/dist/assets/ProjectLauncherScreen-BRrEr8Ng.js +0 -1
  34. package/ui/dist/assets/ScenarioDataPanel-BeQfa28g.js +0 -9
  35. package/ui/dist/assets/ScenarioRenderer-CIAxfHPh.js +0 -21
  36. package/ui/dist/assets/index-BygCiJSb.css +0 -1
  37. package/ui/dist/assets/useServerIdentity-B7rI0u3O.js +0 -1
@@ -1,21 +0,0 @@
1
- import{j as e}from"./markdown-C9tbsVHX.js";import{b as d}from"./react-nrLBr15I.js";import{P as us,c as xs,L as w,C as Ve,S as Ue,M as We,f as bs,T as Je,e as gs,a as te,b as Qe,d as vs,g as A,N as J,h as hs,i as Q,j as Ke,k as Ye,l as Ie,D as Xe,F as Ze,m as et,R as se,p as fs,n as tt,o as R,X as K,q as N,I as st,r as at,s as ot,t as nt,u as G,v as Y,w as rt,x as Le,y as it,z as lt,A as ct,B as _t,E as dt,G as Ss,H as ys,J as js,K as Ps,O as ws,Q as Cs,U as Ns,V as ks,W as Ts,Y as Rs,Z as Ds,_ as Es,$ as Ms,a0 as Bs,a1 as Os,a2 as pt,a3 as As,a4 as Is,a5 as Ls,a6 as Fs,a7 as Hs,a8 as zs,a9 as Gs,aa as $s,ab as qs,ac as Vs,ad as Us,ae as Ws,af as Js,ag as Qs,ah as Ks,ai as Ys,aj as Xs,ak as Zs,al as ea,am as ta,an as sa,ao as aa,ap as oa,aq as na,ar as ra,as as ia,at as la,au as ca,av as _a,aw as da,ax as pa,ay as ma,az as ua,aA as xa,aB as ba,aC as ga,aD as va,aE as ha,aF as fa,aG as Sa,aH as ya,aI as ja,aJ as Pa,aK as wa,aL as Ca,aM as Na,aN as ka,aO as Ta,aP as Ra,aQ as Da,aR as Ea,aS as Ma,aT as Ba,aU as Oa,aV as Aa,aW as Ia,aX as La,aY as Fa,aZ as Ha,a_ as za,a$ as Ga,b0 as $a,b1 as qa,b2 as Va,b3 as Ua,b4 as Wa,b5 as Ja,b6 as Qa,b7 as Ka,b8 as Ya,b9 as Xa,ba as Za,bb as eo,bc as to,bd as so,be as ao,bf as oo,bg as no,bh as ro,bi as io,bj as lo,bk as co,bl as _o,bm as po,bn as mo,bo as uo,bp as xo,bq as bo,br as go,bs as vo,bt as ho,bu as fo,bv as So,bw as yo,bx as jo,by as Po,bz as wo,bA as Co,bB as No,bC as ko,bD as To,bE as Ro,bF as Do,bG as Eo,bH as Mo,bI as Bo,bJ as Oo,bK as Ao,bL as Io,bM as Lo,bN as Fo,bO as Ho,bP as zo,bQ as Go,bR as $o,bS as qo,bT as Vo,bU as Uo,bV as Wo,bW as Jo,bX as Qo,bY as Ko,bZ as Yo,b_ as Xo,b$ as Zo,c0 as en,c1 as tn,c2 as sn,c3 as an,c4 as on,c5 as nn,c6 as rn,c7 as ln,c8 as cn,c9 as _n,ca as dn,cb as pn,cc as mn,cd as un,ce as xn,cf as bn,cg as gn,ch as vn,ci as hn,cj as fn,ck as Sn,cl as yn,cm as jn,cn as Pn,co as wn,cp as Cn,cq as Nn,cr as kn,cs as Tn,ct as Rn,cu as Dn,cv as En,cw as Mn,cx as Bn,cy as On,cz as An,cA as In,cB as Ln,cC as Fn,cD as Hn,cE as zn,cF as Gn,cG as $n,cH as qn,cI as Vn,cJ as Un,cK as Wn,cL as Jn,cM as Qn,cN as Kn,cO as Yn,cP as Xn,cQ as Zn,cR as er,cS as tr,cT as sr,cU as ar,cV as or,cW as nr,cX as rr,cY as ir,cZ as lr,c_ as cr,c$ as _r,d0 as dr,d1 as pr,d2 as mr,d3 as ur,d4 as xr,d5 as br,d6 as gr,d7 as vr,d8 as hr,d9 as fr,da as Sr,db as yr,dc as jr,dd as Pr,de as wr,df as Cr,dg as Nr,dh as kr,di as Tr,dj as Rr,dk as Dr,dl as Er,dm as Mr,dn as Br,dp as Or,dq as Ar,dr as Ir,ds as Lr,dt as Fr,du as Hr,dv as zr,dw as Gr,dx as $r,dy as qr,dz as Vr,dA as Ur,dB as Wr,dC as Jr,dD as Qr,dE as Kr,dF as Yr,dG as Xr,dH as Zr,dI as ei,dJ as ti,dK as si,dL as ai,dM as oi,dN as ni,dO as ri,dP as ii,dQ as li,dR as ci,dS as _i,dT as di,dU as pi,dV as mi,dW as ui,dX as xi,dY as bi,dZ as gi,d_ as vi,d$ as hi,e0 as fi,e1 as Si,e2 as yi,e3 as ji,e4 as Pi,e5 as wi,e6 as Ci,e7 as Ni,e8 as ki,e9 as Ti,ea as Ri,eb as Di,ec as Ei,ed as Mi,ee as Bi,ef as Oi,eg as Ai,eh as Ii,ei as Li,ej as Fi,ek as Hi,el as zi,em as Gi,en as $i,eo as qi,ep as Vi,eq as Ui,er as Wi,es as Ji,et as Qi,eu as Ki,ev as Yi,ew as Xi,ex as Zi,ey as el,ez as tl,eA as sl,eB as al,eC as ol,eD as nl,eE as rl,eF as il,eG as ll,eH as cl,eI as _l,eJ as dl,eK as pl,eL as ml,eM as ul,eN as xl,eO as bl,eP as gl,eQ as vl,eR as hl,eS as fl,eT as Sl,eU as yl,eV as jl,eW as Pl,eX as wl,eY as Cl,eZ as Nl,e_ as kl,e$ as Tl,f0 as Rl,f1 as Dl,f2 as El,f3 as Ml,f4 as Bl,f5 as Ol,f6 as Al,f7 as Il,f8 as Ll,f9 as Fl,fa as Hl,fb as zl,fc as Gl,fd as $l,fe as ql,ff as Vl,fg as Ul,fh as Wl,fi as Jl,fj as Ql,fk as Kl,fl as Yl,fm as Xl,fn as Zl,fo as ec,fp as tc,fq as sc,fr as ac,fs as oc,ft as nc,fu as rc,fv as ic,fw as lc,fx as cc,fy as _c,fz as dc,fA as pc,fB as mc,fC as uc,fD as xc,fE as bc,fF as gc,fG as vc,fH as hc,fI as fc,fJ as Sc,fK as yc,fL as jc,fM as Pc,fN as wc,fO as Cc,fP as Nc,fQ as kc,fR as Tc,fS as Rc,fT as Dc,fU as Ec,fV as Mc,fW as Bc,fX as Oc,fY as Ac,fZ as Ic,f_ as Lc,f$ as Fc,g0 as Hc,g1 as zc,g2 as Gc,g3 as $c,g4 as qc,g5 as Vc,g6 as Uc,g7 as Wc,g8 as Jc,g9 as Qc,ga as Kc,gb as Yc,gc as Xc,gd as Zc,ge as e_,gf as t_,gg as s_,gh as a_,gi as o_,gj as n_,gk as r_,gl as i_,gm as l_,gn as c_,go as __,gp as d_,gq as p_,gr as m_,gs as u_,gt as x_,gu as b_,gv as g_,gw as v_,gx as h_,gy as f_,gz as S_,gA as y_,gB as j_,gC as P_,gD as w_,gE as C_,gF as N_,gG as k_,gH as T_,gI as R_,gJ as D_,gK as E_,gL as M_,gM as B_,gN as O_,gO as A_,gP as I_,gQ as L_,gR as F_,gS as H_,gT as z_,gU as G_,gV as $_,gW as q_,gX as V_,gY as U_,gZ as W_,g_ as J_,g$ as Q_,h0 as K_,h1 as Y_,h2 as X_,h3 as Z_,h4 as ed,h5 as td,h6 as sd,h7 as ad,h8 as od,h9 as nd,ha as rd,hb as id,hc as ld,hd as cd,he as _d,hf as dd,hg as pd,hh as md,hi as ud,hj as xd,hk as bd,hl as gd,hm as vd,hn as hd,ho as fd,hp as Sd,hq as yd,hr as jd,hs as Pd,ht as wd,hu as Cd,hv as Nd,hw as kd,hx as Td,hy as Rd,hz as Dd,hA as Ed,hB as Md,hC as Bd,hD as Od,hE as Ad,hF as Id,hG as Ld,hH as Fd,hI as Hd,hJ as zd,hK as Gd,hL as $d,hM as qd,hN as Vd,hO as Ud,hP as Wd,hQ as Jd,hR as Qd,hS as Kd,hT as Yd,hU as Xd,hV as Zd,hW as ep,hX as tp,hY as sp,hZ as ap,h_ as op,h$ as np,i0 as rp,i1 as ip,i2 as lp,i3 as cp,i4 as _p,i5 as dp,i6 as pp,i7 as mp,i8 as up,i9 as xp,ia as bp,ib as gp,ic as vp,id as hp,ie as fp,ig as Sp,ih as yp,ii as jp,ij as Pp,ik as wp,il as Cp,im as Np,io as kp,ip as Tp,iq as Rp,ir as Dp,is as Ep,it as Mp,iu as Bp,iv as Op,iw as Ap,ix as Ip,iy as Lp,iz as Fp,iA as Hp,iB as zp,iC as Gp,iD as $p,iE as qp,iF as Vp,iG as Up,iH as Wp,iI as Jp,iJ as Qp,iK as Kp,iL as Yp,iM as Xp,iN as Zp,iO as em,iP as tm,iQ as sm,iR as am,iS as om,iT as nm,iU as rm,iV as im,iW as lm,iX as cm,iY as _m,iZ as dm,i_ as pm,i$ as mm,j0 as um,j1 as xm,j2 as bm,j3 as gm,j4 as vm,j5 as hm,j6 as fm,j7 as Sm,j8 as ym,j9 as jm,ja as Pm,jb as wm,jc as Cm,jd as Nm,je as km,jf as Tm,jg as Rm,jh as Dm,ji as Em,jj as Mm,jk as Bm,jl as Om,jm as Am,jn as Im,jo as Lm,jp as Fm,jq as Hm,jr as zm,js as Gm,jt as $m,ju as qm,jv as Vm,jw as Um,jx as Wm,jy as Jm,jz as Qm,jA as Km,jB as Ym,jC as Xm,jD as Zm,jE as eu,jF as tu,jG as su,jH as au,jI as ou,jJ as nu,jK as ru,jL as iu,jM as lu,jN as cu,jO as _u,jP as du,jQ as pu,jR as mu,jS as uu,jT as xu,jU as bu,jV as gu,jW as vu,jX as hu,jY as fu,jZ as Su,j_ as yu,j$ as ju,k0 as Pu,k1 as wu,k2 as Cu,k3 as Nu,k4 as ku,k5 as Tu,k6 as Ru,k7 as Du,k8 as Eu,k9 as Mu,ka as Bu,kb as Ou,kc as Au,kd as Iu,ke as Lu,kf as Fu,kg as Hu,kh as zu,ki as Gu,kj as $u,kk as qu,kl as Vu,km as Uu,kn as Wu,ko as Ju,kp as Qu,kq as Ku,kr as Yu,ks as Xu,kt as Zu,ku as ex,kv as tx,kw as sx,kx as ax,ky as ox,kz as nx,kA as rx,kB as ix,kC as lx,kD as cx,kE as _x,kF as dx,kG as px,kH as mx,kI as ux,kJ as xx,kK as bx,kL as gx,kM as vx,kN as hx,kO as fx,kP as Sx,kQ as yx,kR as jx,kS as Px,kT as wx,kU as Cx,kV as Nx,kW as kx,kX as Tx,kY as Rx,kZ as Dx,k_ as Ex,k$ as Mx,l0 as Bx,l1 as Ox,l2 as Ax,l3 as Ix,l4 as Lx,l5 as Fx,l6 as Hx,l7 as zx,l8 as Gx,l9 as $x,la as qx,lb as Vx,lc as Ux,ld as Wx,le as Jx,lf as Qx,lg as Kx,lh as Yx,li as Xx,lj as Zx,lk as eb,ll as tb,lm as sb,ln as ab,lo as ob,lp as nb,lq as rb,lr as ib,ls as lb,lt as cb,lu as _b,lv as db,lw as pb,lx as mb,ly as ub,lz as xb,lA as bb,lB as gb,lC as vb,lD as hb,lE as fb,lF as Sb,lG as yb,lH as jb,lI as Pb,lJ as wb,lK as Cb,lL as Nb,lM as kb,lN as Tb,lO as Rb,lP as Db,lQ as Eb,lR as Mb,lS as Bb,lT as Ob,lU as Ab,lV as Ib,lW as Lb,lX as Fb,lY as Hb,lZ as zb,l_ as Gb,l$ as $b,m0 as qb,m1 as Vb,m2 as Ub,m3 as Wb,m4 as Jb,m5 as Qb,m6 as Kb,m7 as Yb,m8 as Xb,m9 as Zb,ma as eg,mb as tg,mc as sg,md as ag,me as og,mf as ng,mg as rg,mh as ig,mi as lg,mj as cg,mk as _g,ml as dg,mm as pg,mn as mg,mo as ug,mp as xg,mq as bg,mr as gg,ms as vg,mt as hg,mu as fg,mv as Sg,mw as yg,mx as jg,my as Pg,mz as wg,mA as Cg,mB as Ng,mC as kg,mD as Tg,mE as Rg,mF as Dg,mG as Eg,mH as Mg,mI as Bg,mJ as Og,mK as Ag,mL as Ig,mM as Lg,mN as Fg,mO as Hg,mP as zg,mQ as Gg,mR as $g,mS as qg,mT as Vg,mU as Ug,mV as Wg,mW as Jg,mX as Qg,mY as Kg,mZ as Yg,m_ as Xg,m$ as Zg,n0 as ev,n1 as tv,n2 as sv,n3 as av,n4 as ov,n5 as nv,n6 as rv,n7 as iv,n8 as lv,n9 as cv,na as _v,nb as dv,nc as pv,nd as mv,ne as uv,nf as xv,ng as bv,nh as gv,ni as vv,nj as hv,nk as fv,nl as Sv,nm as yv,nn as jv,no as Pv,np as wv,nq as Cv,nr as Nv,ns as kv,nt as Tv,nu as Rv,nv as Dv,nw as Ev,nx as Mv,ny as Bv,nz as Ov,nA as Av,nB as Iv,nC as Lv,nD as Fv,nE as Hv,nF as zv,nG as Gv,nH as $v,nI as qv,nJ as Vv,nK as Uv,nL as Wv,nM as Jv,nN as Qv,nO as Kv,nP as Yv,nQ as Xv,nR as Zv,nS as eh,nT as th,nU as sh,nV as ah,nW as oh,nX as nh,nY as rh,nZ as ih,n_ as lh,n$ as ch,o0 as _h,o1 as dh,o2 as ph,o3 as mh,o4 as uh,o5 as xh,o6 as bh,o7 as gh,o8 as vh,o9 as hh,oa as fh,ob as Sh,oc as yh,od as jh,oe as Ph,of as wh,og as Ch,oh as Nh,oi as kh,oj as Th,ok as Rh,ol as Dh,om as Eh,on as Mh,oo as Bh,op as Oh,oq as Ah,or as Ih,os as Lh,ot as Fh,ou as Hh,ov as zh,ow as Gh,ox as $h,oy as qh,oz as Vh,oA as Uh,oB as Wh,oC as Jh,oD as Qh,oE as Kh,oF as Yh,oG as Xh,oH as Zh,oI as ef,oJ as tf,oK as sf,oL as af,oM as of,oN as nf,oO as rf,oP as lf,oQ as cf,oR as _f,oS as df,oT as pf,oU as mf,oV as uf,oW as xf,oX as bf,oY as gf,oZ as vf,o_ as hf,o$ as ff,p0 as Sf,p1 as yf,p2 as jf,p3 as Pf,p4 as wf,p5 as Cf,p6 as Nf,p7 as kf,p8 as Tf,p9 as Rf,pa as Df,pb as Ef,pc as Mf,pd as Bf,pe as Of,pf as Af,pg as If,ph as Lf,pi as Ff,pj as Hf,pk as zf,pl as Gf,pm as $f,pn as qf,po as Vf,pp as Uf,pq as Wf,pr as Jf,ps as Qf,pt as Kf,pu as Yf,pv as Xf,pw as Zf,px as e0,py as t0,pz as s0,pA as a0,pB as o0,pC as n0,pD as r0,pE as i0,pF as l0,pG as c0,pH as _0,pI as d0,pJ as p0,pK as m0,pL as u0,pM as x0,pN as b0,pO as g0,pP as v0,pQ as h0,pR as f0,pS as S0,pT as y0,pU as j0,pV as P0,pW as w0,pX as C0,pY as N0,pZ as k0,p_ as T0,p$ as R0,q0 as D0,q1 as E0,q2 as M0,q3 as B0,q4 as O0,q5 as A0,q6 as I0,q7 as L0,q8 as F0,q9 as H0,qa as z0,qb as G0,qc as $0,qd as q0,qe as V0,qf as U0,qg as W0,qh as J0,qi as Q0,qj as K0,qk as Y0,ql as X0,qm as Z0,qn as eS,qo as tS,qp as sS,qq as aS,qr as oS,qs as nS,qt as rS,qu as iS,qv as lS,qw as cS,qx as _S,qy as dS,qz as pS,qA as mS,qB as W}from"./EditorShell-B7Q06uJ_.js";import{S as mt,M as ut,f as uS,a as xt,u as xS,A as bt,p as Fe,e as q,b as gt,c as vt,d as ht,g as bS,h as gS,i as vS,T as hS,j as fS,k as SS,l as yS,D as jS,m as PS,n as wS,B as CS,o as NS,q as kS,r as TS,J as RS,s as DS,t as ES,v as MS,w as BS,x as OS,y as AS,z as IS,C as LS,E as FS,F as HS,G as zS,H as GS,I as $S,K as qS,L as VS,N as US,O as WS,P as JS,Q as QS,R as KS,U as YS,V as XS,W as ZS,X as ey,Y as ty,Z as sy,_ as ay,$ as oy,a0 as ny,a1 as ry,a2 as iy,a3 as ly,a4 as cy,a5 as _y,a6 as dy,a7 as py,a8 as my,a9 as uy,aa as xy,ab as by,ac as gy,ad as vy,ae as hy,af as fy,ag as Sy,ah as yy,ai as jy,aj as Py,ak as wy,al as Cy,am as Ny,an as ky,ao as Ty,ap as Ry,aq as Dy,ar as Ey,as as My,at as By,au as Oy,av as Ay,aw as Iy,ax as Ly,ay as Fy,az as Hy,aA as zy,aB as Gy,aC as $y,aD as qy,aE as Vy,aF as Uy,aG as Wy,aH as Jy,aI as Qy,aJ as Ky,aK as Yy,aL as Xy,aM as Zy,aN as ej,aO as tj,aP as sj,aQ as aj,aR as oj,aS as nj,aT as rj,aU as ij,aV as lj,aW as cj,aX as _j,aY as dj,aZ as pj,a_ as mj,a$ as uj,b0 as xj,b1 as bj,b2 as gj}from"./ScenarioDataPanel-BeQfa28g.js";import{V as vj,S as hj,P as fj,a as Sj,B as yj,b as jj,c as Pj,d as wj,e as Cj,_ as Nj,f as kj,g as Tj,h as Rj}from"./StepsSimulator-CymGgfbu.js";import{M as ft,_ as Dj}from"./Markdown-Chgdf3PW.js";import{S as St,B as I,M,a as $,t as E,I as Ej,D as Mj,b as Bj,c as Oj,d as Aj,e as Ij,f as Lj,g as Fj,h as Hj,i as zj,j as Gj,k as $j,C as qj,l as Vj,_ as Uj,m as Wj,n as Jj,o as Qj,p as Kj,q as Yj,r as Xj,s as Zj,u as eP,v as tP,w as sP,x as aP,y as oP,z as nP}from"./ContainerInspector-DgM0pTAx.js";import{O as rP,a as iP,P as lP,C as cP,b as _P,c as dP,d as pP,e as mP,f as uP,g as xP,R as bP,T as gP,h as vP,i as hP,j as fP,k as SP,l as yP,m as jP,_ as PP,n as wP,o as CP,p as NP}from"./ProjectLauncherScreen-BRrEr8Ng.js";import{S as kP,_ as TP}from"./ScenarioDataPanelFullPage-BLqRCxQX.js";import"./useEvents-S3Qk1Y_d.js";import"./index-DCHqRrwO.js";import"./useServerIdentity-B7rI0u3O.js";import"./xterm--24IGk-x.js";const RP=Object.freeze(Object.defineProperty({__proto__:null,get ScenarioRenderer(){return ts}},Symbol.toStringTag,{value:"Module"}));function yt({previewOrigin:t="https://vm-2.preview.fleet.codeyam.com"}){return e.jsx("div",{style:{position:"relative",width:"100%",height:420,background:"#1e1e1e"},children:e.jsx(us,{previewOrigin:t,onRecheck:()=>{}})})}const DP=Object.freeze(Object.defineProperty({__proto__:null,PreviewSignInNoticeShowcase:yt},Symbol.toStringTag,{value:"Module"}));function ae({files:t}){if(t.length===0)return null;const{added:s,modified:a,deleted:o}=xs(t);return e.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[s>0&&e.jsxs("span",{className:"text-[var(--accent-green)]",children:["+",s," "]}),a>0&&e.jsxs("span",{className:"text-[var(--accent-orange)]",children:["~",a," "]}),o>0&&e.jsxs("span",{className:"text-[var(--accent-red)]",children:["-",o," "]}),"file",t.length!==1?"s":""]})}const EP=Object.freeze(Object.defineProperty({__proto__:null,FileChangeSummary:ae},Symbol.toStringTag,{value:"Module"}));function oe({entry:t}){return e.jsxs("div",{className:"mt-3 pt-3",style:{borderTop:"1px solid var(--border-default)"},children:[t.userRequest&&e.jsx(w,{label:"Request",children:e.jsx(Ve,{children:t.userRequest})}),e.jsx(w,{label:"Description",children:e.jsx(ft,{variant:"compact",children:t.description})}),t.scenarioScreenshots.length>0&&e.jsx(w,{label:"Scenarios",children:e.jsx(Ue,{screenshots:t.scenarioScreenshots})}),t.modifiedFiles.length>0&&e.jsx(w,{label:"Modified Files",children:e.jsx(We,{files:t.modifiedFiles})}),t.commitSha&&e.jsxs("p",{className:"text-xs",style:{color:"var(--text-dim)"},children:["Commit: ",e.jsx("span",{className:"font-mono",children:t.commitSha.slice(0,7)}),t.commitMessage&&` — ${t.commitMessage}`]})]})}const MP=Object.freeze(Object.defineProperty({__proto__:null,JournalEntryDetails:oe},Symbol.toStringTag,{value:"Module"}));function ne({entry:t}){const[s,a]=d.useState(!1);return e.jsxs("div",{className:"rounded-lg border p-4",style:{borderColor:"var(--border-default)",background:"var(--bg-surface)"},children:[e.jsxs("button",{onClick:()=>a(!s),className:"flex w-full items-start gap-3 text-left",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(re,{type:t.type}),e.jsx("h3",{className:"text-sm font-medium",style:{color:"var(--text-secondary)"},children:t.title})]}),e.jsxs("div",{className:"mt-1 flex items-center gap-3",children:[e.jsx("span",{className:"text-xs",style:{color:"var(--text-dim)"},children:bs(t.timestamp)}),t.testResults&&e.jsx(Je,{total:t.testResults.total,passed:t.testResults.passed,failed:t.testResults.failed}),e.jsx(ae,{files:t.modifiedFiles})]})]}),e.jsx("span",{className:"text-xs mt-1",style:{color:"var(--text-dim)"},children:s?"▼":"▶"})]}),s&&e.jsx(oe,{entry:t})]})}function re({type:t}){return e.jsx("span",{className:`text-xs font-medium ${gs(t)}`,children:t})}const BP=Object.freeze(Object.defineProperty({__proto__:null,EntryTypeBadge:re,JournalEntryCard:ne},Symbol.toStringTag,{value:"Module"}));function jt({entries:t,total:s,hasMore:a,loading:o,loadingMore:n,error:r,onLoadMore:l}){if(o)return e.jsx("div",{className:"py-12 text-center text-[var(--text-muted)]",children:"Loading journal..."});if(r)return e.jsxs("div",{className:"py-12 text-center text-[var(--accent-red)]",children:["Failed to load journal: ",r]});if(t.length===0)return e.jsxs("div",{className:"py-12 text-center text-[var(--text-dim)]",children:[e.jsx("p",{children:"No journal entries yet."}),e.jsx("p",{className:"mt-2 text-sm text-[var(--text-dim)]",children:"Journal entries capture what was requested, what changed, and the state of tests and scenarios."})]});const c=Math.max(s,t.length);return e.jsxs("div",{className:"overflow-y-auto px-6 py-4",style:{maxHeight:"calc(100vh - 110px)"},children:[e.jsxs("p",{className:"mb-4 text-sm text-[var(--text-muted)]",children:[t.length," of ",c," journal entr",c===1?"y":"ies"]}),e.jsx("div",{className:"flex flex-col gap-3",children:t.map(_=>e.jsx(ne,{entry:_},_.timestamp))}),a?e.jsx("div",{className:"mt-4 flex justify-center",children:e.jsx("button",{type:"button",onClick:l,disabled:n,className:"rounded border border-[var(--border)] px-3 py-1 text-sm text-[var(--text-muted)] hover:bg-[var(--bg-subtle)] disabled:opacity-50",children:n?"Loading...":"Load older entries"})}):null]})}const OP=Object.freeze(Object.defineProperty({__proto__:null,JournalView:jt},Symbol.toStringTag,{value:"Module"})),ie=[{key:"api-key",term:"API key",aka:["secret key","access token"],category:"Security",body:`**What is it?** A long secret your app uses to identify itself to another service.
2
-
3
- **Why?** Any time your app talks to a paid or protected outside service.
4
-
5
- **The catch?** Anyone who has it can act as you — keep it out of public code.`},{key:"database",term:"Database",aka:["db","data store"],category:"Infrastructure",body:`**What is it?** Where your app keeps information that has to stick around.
6
-
7
- **Why?** As soon as your app must remember anything between visits.
8
-
9
- **The catch?** The data is precious — you'll want backups.`},{key:"domain",term:"Domain",aka:["domain name","custom domain"],category:"Infrastructure",body:`**What is it?** The human-friendly name people type to find your app, like \`myapp.com\`.
10
-
11
- **Why?** For a memorable, professional address. You can skip it at first.
12
-
13
- **The catch?** Rented yearly, usually $10–$20 — you don't own it forever.`},{key:"hosting",term:"Hosting",aka:["web hosting","host"],category:"Infrastructure",body:`**What is it?** Renting a computer that stays on all the time so others can reach your app.
14
-
15
- **Why?** The moment anyone other than you needs to use it.
16
-
17
- **The catch?** Often free or a few dollars; costs grow with traffic.`},{key:"ssl-https",term:"SSL / HTTPS",aka:["HTTPS","the padlock","SSL certificate"],category:"Security",body:`**What is it?** The padlock by a web address — it encrypts the connection.
18
-
19
- **Why?** Always, for anything on the public internet.
20
-
21
- **The catch?** Almost none — most hosts set it up free and automatically.`}];function le(t){const s=new Map(t.map(a=>[a.key,a]));return{concepts:t,byKey:a=>s.get(a)}}function Pt(){return e.jsx(te.Provider,{value:le(ie),children:e.jsx("div",{className:"learn-screen",style:{maxWidth:520,padding:24,fontSize:15,lineHeight:1.7},children:e.jsxs("p",{style:{color:"var(--text-secondary, #b6bdcc)"},children:["To put your app online you'll set up"," ",e.jsx(A,{k:"hosting",children:"hosting"})," and point a"," ",e.jsx(A,{k:"domain",children:"domain"})," at it. Your host turns on"," ",e.jsx(A,{k:"ssl-https",children:"HTTPS"})," automatically, and if your app saves anything you'll add a"," ",e.jsx(A,{k:"database",children:"database"})," and an"," ",e.jsx(A,{k:"api-key",children:"API key"})," or two. Tap any underlined word to learn what it means."]})})})}function wt(){return e.jsx(te.Provider,{value:le(ie),children:e.jsx(vs,{onBack:()=>{}})})}const AP=[{key:"run-locally",name:"Run it locally",desc:"Start the app on your own machine.",icon:"terminal",status:"available"},{key:"hosting",name:"Hosting & going live",desc:"Put your app online with a link.",icon:"cloud",status:"next"},{key:"real-data",name:"Real data",desc:"Read and write real, saved information.",icon:"database",status:"available"},{key:"accounts",name:"Accounts & sign-in",desc:"Let people log in safely.",icon:"lock",status:"available"}];function Ct(){return e.jsx(te.Provider,{value:le(ie),children:e.jsx(Qe,{topics:AP,onBack:()=>{},onOpenHosting:()=>{},onOpenTopic:()=>{},onOpenConcepts:()=>{}})})}const IP=Object.freeze(Object.defineProperty({__proto__:null,ConceptTermShowcase:Pt,ConceptsGlossaryScreenShowcase:wt,LearnSetupConceptsNudgeShowcase:Ct},Symbol.toStringTag,{value:"Module"}));function Nt({apps:t,selected:s,onChange:a}){return t.length===0?null:e.jsxs("div",{className:"flex gap-1",children:[t.map(o=>e.jsx(J,{href:hs(o.dir),onNavigate:()=>a(o.dir),className:`rounded-md px-3 py-1 text-sm ${s===o.dir?"bg-[var(--bg-input)] text-[var(--text-primary)]":"text-[var(--text-muted)] hover:text-[var(--text-secondary)]"}`,children:o.name},o.dir)),e.jsx(J,{href:"/apps",onNavigate:()=>a(null),className:`rounded-md px-3 py-1 text-sm ${s===null?"bg-[var(--bg-input)] text-[var(--text-primary)]":"text-[var(--text-muted)] hover:text-[var(--text-secondary)]"}`,children:"All"})]})}const LP=Object.freeze(Object.defineProperty({__proto__:null,AppSelector:Nt},Symbol.toStringTag,{value:"Module"}));function kt(){return e.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-slate-500 space-y-4 px-10 text-center",children:[e.jsx("div",{className:"text-lg font-medium text-slate-400",children:"Ready to build"}),e.jsx("p",{className:"max-w-md",children:"Your first session will start automatically. You can queue changes or wait for the project to initialize."})]})}const FP=Object.freeze(Object.defineProperty({__proto__:null,BuildTabReadyToBuildPlaceholder:kt},Symbol.toStringTag,{value:"Module"})),HP=Object.freeze(Object.defineProperty({__proto__:null,EditorShellPreviewPane:Q},Symbol.toStringTag,{value:"Module"})),zP={http_request:"#3fb950",db_query:"#D7FF63",process_output:"#6e7681",health_check:"#d29922",hook_execution:"#bc8cff",error:"#f85149",scenario_switch:"#d29922"};function GP(t){const s=zP[t.type]??"#6e7681";switch(t.type){case"http_request":{const a=t.status??"";return{label:"HTTP",detail:`${t.method} ${t.url} ${a} ${t.durationMs}ms`,badge:t.mocked?"MOCKED":"LIVE",color:s}}case"db_query":return{label:"DB",detail:`${t.query} (${t.durationMs}ms)`,badge:t.mocked?"MOCKED":"LIVE",color:s};case"process_output":return{label:"Process",detail:`[${t.stream}] ${t.line}`,color:s};case"health_check":return{label:"Health",detail:t.healthy?"healthy":"unhealthy",color:s};case"hook_execution":return{label:"Hook",detail:`${t.hook} exit=${t.exitCode} ${t.durationMs}ms`,color:s};case"error":return{label:"Error",detail:`${t.source}: ${t.message}`,color:s};case"scenario_switch":return{label:"Scenario",detail:`${t.from??"(none)"} → ${t.to}`,color:s}}}function ce({event:t}){const{label:s,detail:a,badge:o,color:n}=GP(t);return e.jsxs("div",{className:"my-1 rounded-md bg-[var(--bg-surface)] px-3 py-2 font-mono text-sm",style:{borderLeft:`3px solid ${n}`},children:[e.jsx("span",{className:"mr-2 font-semibold",children:s}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:a}),o&&e.jsx("span",{className:`ml-2 text-xs ${o==="MOCKED"?"text-[var(--accent-green)]":"text-[var(--text-muted)]"}`,children:o})]})}const $P=Object.freeze(Object.defineProperty({__proto__:null,EventCard:ce},Symbol.toStringTag,{value:"Module"}));function Tt({events:t}){return t.length===0?e.jsx("div",{className:"py-12 text-center text-[var(--text-dim)]",children:"Waiting for events..."}):e.jsx("div",{className:"overflow-y-auto px-6 py-2",style:{maxHeight:"calc(100vh - 110px)"},children:t.map(s=>e.jsx(ce,{event:s},s.id))})}const qP=Object.freeze(Object.defineProperty({__proto__:null,EventStream:Tt},Symbol.toStringTag,{value:"Module"}));function _e({passed:t,failed:s,total:a}){return s>0?e.jsxs("span",{className:"rounded bg-[var(--accent-red)]/20 px-2 py-0.5 text-xs text-[var(--accent-red)]",children:[s," failed"]}):t===a&&a>0?e.jsxs("span",{className:"rounded bg-[var(--accent-green)]/20 px-2 py-0.5 text-xs text-[var(--accent-green)]",children:[t," passed"]}):e.jsxs("span",{className:"text-xs text-[var(--text-dim)]",children:["(",a,")"]})}const VP=Object.freeze(Object.defineProperty({__proto__:null,StatusBadge:_e},Symbol.toStringTag,{value:"Module"}));function de({group:t}){const[s,a]=d.useState(!0),o=t.tests.filter(l=>l.status==="passed").length,n=t.tests.filter(l=>l.status==="failed").length,r=t.tests.length;return e.jsxs("div",{className:"mb-4",children:[e.jsxs("button",{onClick:()=>a(!s),className:"flex w-full items-center gap-2 text-left text-sm font-medium text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[e.jsx("span",{className:"text-[var(--text-dim)]",children:s?"▼":"▶"}),e.jsx("span",{children:t.feature}),e.jsx(_e,{passed:o,failed:n,total:r})]}),s&&e.jsx("div",{className:"ml-5 mt-1 border-l border-[var(--border-default)] pl-3",children:t.tests.map((l,c)=>e.jsx(Ke,{test:l},c))})]})}const UP=Object.freeze(Object.defineProperty({__proto__:null,FeatureGroupView:de},Symbol.toStringTag,{value:"Module"}));function Rt({filters:t,active:s,onChange:a}){return e.jsx("div",{className:"flex gap-2 border-b px-6 py-3",style:{borderColor:"var(--border-default)"},children:t.map(o=>e.jsx("button",{onClick:()=>a(o),className:"rounded-md border px-3 py-1 text-sm",style:o===s?{borderColor:"var(--accent-active)",background:"var(--accent-active)",color:"var(--bg-nav)"}:{borderColor:"var(--border-default)",background:"var(--bg-surface)",color:"var(--text-secondary)"},children:o},o))})}const WP=Object.freeze(Object.defineProperty({__proto__:null,FilterBar:Rt},Symbol.toStringTag,{value:"Module"}));function pe({group:t,onPreviewScenario:s}){const[a,o]=d.useState(!0);return e.jsxs("div",{className:"mb-6",children:[e.jsxs("button",{onClick:()=>o(!a),className:"flex w-full items-center gap-2 text-left text-sm font-medium text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[e.jsx("span",{className:"text-[var(--text-dim)]",children:a?"▼":"▶"}),e.jsx("span",{className:"font-mono",children:t.route}),e.jsxs("span",{className:"text-[var(--text-dim)]",children:["(",t.scenarios.length,")"]})]}),a&&e.jsx("div",{className:"mt-2 grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3",children:t.scenarios.map(n=>e.jsx(Ye,{scenario:n,onPreview:s?()=>s(n.slug):void 0},n.slug))})]})}const JP=Object.freeze(Object.defineProperty({__proto__:null,RouteGroupView:pe},Symbol.toStringTag,{value:"Module"}));function Dt({roundId:t,onUse:s,onDiscard:a}={}){const[o,n]=d.useState(null),r=d.useCallback(c=>{c.kind==="use"&&(n("use"),s?s(c.filename):Ie(`I've picked the design "${c.filename}" for this round. Please record the selection (branch-outcome design-iterate use), apply it, and return to the build.`))},[s]),l=d.useCallback(()=>{n("discard"),a?a():Ie("Let's discard this design round — none of these directions. Please record the discard (branch-outcome design-iterate discard), archive the round, and return to the build with the design unchanged.")},[a]);return e.jsxs("div",{className:"flex-1 flex flex-col min-w-0",style:{overflow:"hidden"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--spacing-md, 12px)",padding:"var(--spacing-md, 12px) var(--spacing-lg, 16px)",borderBottom:"1px solid var(--border-default)"},children:[e.jsxs("div",{style:{minWidth:0},children:[e.jsx("div",{style:{fontSize:"var(--text-sm, 14px)",fontWeight:600,color:"var(--text-primary)"},children:"Design round"}),e.jsx("div",{style:{fontSize:"var(--text-xs, 12px)",color:"var(--text-secondary)"},children:"The first card reads as the app today, changed. Pick a direction to carry into the build, or discard the round."})]}),e.jsx("button",{type:"button",onClick:l,disabled:o!=null,style:{flexShrink:0,padding:"var(--spacing-xs, 6px) var(--spacing-md, 12px)",borderRadius:8,border:"1px solid var(--border-default)",background:"transparent",color:"var(--text-secondary)",fontSize:"var(--text-sm, 14px)",cursor:o!=null?"default":"pointer",opacity:o!=null?.6:1},children:o==="discard"?"Discarding…":"Discard round"})]}),e.jsx(Xe,{round:t,onDesignConfirmed:r})]})}const QP=Object.freeze(Object.defineProperty({__proto__:null,DesignRoundPreviewPane:Dt},Symbol.toStringTag,{value:"Module"}));function me({fileName:t,dirPath:s}){return e.jsxs("div",{className:"flex items-center gap-3 rounded-md px-3 py-2 text-left bg-[var(--bg-card)] border border-[var(--border-subtle)] hover:border-[var(--border-default)] transition",children:[e.jsx("span",{className:"text-xs text-[var(--text-secondary)]",children:t}),e.jsxs("span",{className:"font-mono text-[10px] text-[var(--text-dim)]",children:[s,"/"]})]})}const KP=Object.freeze(Object.defineProperty({__proto__:null,RouteImportRow:me},Symbol.toStringTag,{value:"Module"}));function Et({slug:t,name:s,url:a,componentName:o,props:n,mocks:r,seed:l,localStorage:c,dimensions:_}){const[m,x]=d.useState(!1),u=Object.keys((r==null?void 0:r.http)??{}).length,i=Object.keys((r==null?void 0:r.db)??{}).length,b=Object.keys(c??{});return e.jsxs("div",{className:"space-y-3 text-sm",children:[e.jsx("h3",{className:"font-medium text-[var(--text-secondary)]",children:s}),a&&e.jsx(w,{label:"URL",children:e.jsx("span",{className:"font-mono text-xs text-[var(--text-muted)]",children:a})}),o&&e.jsx(w,{label:"Component",children:e.jsx("span",{className:"font-mono text-xs text-[var(--accent-blue)]",children:o})}),n&&e.jsx(w,{label:"Props",children:e.jsx("pre",{className:"max-h-32 overflow-auto rounded bg-[var(--bg-input)] p-2 font-mono text-xs text-[var(--text-muted)]",children:JSON.stringify(n,null,2)})}),u>0&&e.jsxs(w,{label:"Mocks",children:[t?e.jsxs("button",{type:"button",onClick:()=>x(!0),className:"text-xs text-[var(--accent-blue)] hover:underline bg-transparent border-none cursor-pointer p-0",children:[u," HTTP mock",u!==1?"s":""," →"]}):e.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:[u," HTTP mock",u!==1?"s":""]}),i>0&&e.jsxs("span",{className:"ml-2 text-xs text-[var(--text-muted)]",children:[i," DB mock",i!==1?"s":""]})]}),l&&e.jsx(w,{label:"Seed",children:l.command&&e.jsx("span",{className:"font-mono text-xs text-[var(--text-muted)]",children:l.command})}),b.length>0&&e.jsx(w,{label:"localStorage",children:b.map(g=>e.jsxs("p",{className:"font-mono text-xs text-[var(--text-muted)]",children:[g,": ",c[g]]},g))}),_.length>0&&e.jsx(w,{label:"Dimensions",children:e.jsx("div",{className:"flex gap-1",children:_.map(g=>e.jsx("span",{className:"rounded bg-[var(--bg-input)] px-1.5 py-0.5 text-xs text-[var(--text-muted)]",children:g},g))})}),m&&t&&e.jsx(mt,{slug:t,scenarioName:s,initialSection:"mocks",onClose:()=>x(!1)})]})}const YP=Object.freeze(Object.defineProperty({__proto__:null,ScenarioDetailPanel:Et},Symbol.toStringTag,{value:"Module"}));function ue({value:t,onChange:s=()=>{},parseError:a,onParseError:o=()=>{}}){return d.useEffect(()=>{if(t.trim()===""){o(null);return}try{JSON.parse(t),o(null)}catch(n){o(n instanceof Error?n.message:"Invalid JSON")}},[t,o]),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Body (JSON)"}),e.jsx("textarea",{value:t,onChange:n=>s(n.target.value),rows:8,spellCheck:!1,className:`w-full rounded border bg-[var(--bg-surface)] px-2 py-1 text-xs font-mono resize-y ${a?"border-red-500":"border-[var(--border-default)]"}`}),a&&e.jsx("p",{className:"text-xs text-red-400 font-mono",children:a})]})}const XP=Object.freeze(Object.defineProperty({__proto__:null,MockBodyJsonTextarea:ue},Symbol.toStringTag,{value:"Module"}));function xe({initialStatus:t,initialBody:s,initialHeaders:a,onSave:o,onCancel:n}){const r=d.useMemo(()=>{if(s==null)return"";try{return JSON.stringify(s,null,2)}catch{return""}},[s]),[l,c]=d.useState(t),[_,m]=d.useState(r),[x,u]=d.useState(null),[i,b]=d.useState(()=>Object.entries(a).map(([v,S])=>({name:v,value:S}))),[g,f]=d.useState(!0),y=x!==null||g;function h(){const v=_.trim()===""?null:JSON.parse(_),S={};for(const j of i)j.name.trim()&&(S[j.name.trim()]=j.value);o({status:l,body:v,headers:S})}return e.jsxs("div",{className:"mt-2 border border-[var(--border-subtle)] rounded bg-[var(--bg-input)] p-3 space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("label",{className:"text-xs text-[var(--text-muted)]",children:"Status"}),e.jsx("input",{type:"number",value:l,onChange:v=>{f(!1),c(Number(v.target.value))},className:"w-20 rounded border border-[var(--border-default)] bg-[var(--bg-surface)] px-2 py-1 text-xs font-mono"})]}),e.jsx(ut,{headers:i,onChange:v=>{f(!1),b(v)}}),e.jsx(ue,{value:_,parseError:x,onChange:v=>{f(!1),m(v)},onParseError:u}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx("button",{type:"button",onClick:n,className:"px-3 py-1 text-xs rounded border border-[var(--border-default)] bg-transparent text-[var(--text-muted)] hover:text-[var(--text-primary)] cursor-pointer",children:"Cancel"}),e.jsx("button",{type:"button",onClick:h,disabled:y,className:"px-3 py-1 text-xs rounded border border-[var(--accent-blue)] bg-[var(--accent-blue)]/10 text-[var(--accent-blue)] hover:bg-[var(--accent-blue)]/20 disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer",children:"Save"})]})]})}const ZP=Object.freeze(Object.defineProperty({__proto__:null,MockBodyEditor:xe},Symbol.toStringTag,{value:"Module"}));function be({entry:t,scenarioHasDefaultFallback:s,editing:a,onToggleEdit:o,onPromoteDefaultToScenario:n,onRemove:r,onPassthrough:l,onCaptureLive:c}){const[_,m]=d.useState(!1),[x,u]=d.useState(null);async function i(){m(!0),u(null);try{await c()}catch(g){u(g instanceof Error?g.message:"Capture failed")}finally{m(!1)}}const b="px-2 py-0.5 rounded border border-[var(--border-default)] bg-transparent text-[var(--text-muted)] hover:text-[var(--text-primary)] cursor-pointer text-[10px]";return e.jsxs("div",{className:"flex flex-wrap gap-1 pt-1",children:[t.source==="scenario"&&e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:o,className:b,children:a?"Close":"Edit"}),s&&e.jsx("button",{onClick:r,className:b,title:"Revert to default",children:"Revert to default"}),e.jsx("button",{onClick:l,className:b,children:"Mark passthrough"})]}),t.source==="default"&&e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:n,className:"px-2 py-0.5 rounded border border-emerald-500/50 bg-emerald-500/10 text-emerald-300 hover:bg-emerald-500/20 cursor-pointer text-[10px]",title:"Copy default body into this scenario",children:"Promote to scenario"}),e.jsx("button",{onClick:l,className:b,children:"Mark passthrough"})]}),t.source==="catalog-only"&&e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:i,disabled:_,className:"px-2 py-0.5 rounded border border-[#D7FF63]/50 bg-[#D7FF63]/10 text-[#D7FF63] hover:bg-[#D7FF63]/20 disabled:opacity-50 disabled:cursor-wait cursor-pointer text-[10px]",title:"Write last-observed body as this scenario's mock",children:_?"Capturing…":"Capture from live"}),x&&e.jsx("span",{className:"text-red-400 text-[10px]",children:x})]}),t.source==="passthrough"&&e.jsx("button",{onClick:r,className:b,children:"Undo passthrough"})]})}const ew=Object.freeze(Object.defineProperty({__proto__:null,MockPanelRowActions:be},Symbol.toStringTag,{value:"Module"})),He={GET:"text-emerald-400 border-emerald-400/40",POST:"text-[#D7FF63] border-[#D7FF63]/40",PUT:"text-amber-400 border-amber-400/40",PATCH:"text-purple-400 border-purple-400/40",DELETE:"text-red-400 border-red-400/40"};function ge({entry:t}){const s=He[t.method]??He.GET,a=t.status??t.lastObservedStatus,o=t.lastObservedMs?uS(t.lastObservedMs,Date.now()):null;return e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:`px-1.5 py-0.5 rounded border font-mono ${s}`,children:t.method}),e.jsx("span",{className:"font-mono text-[var(--text-primary)] break-all",children:t.pathPattern}),e.jsx(xt,{source:t.source}),a!==void 0&&e.jsx("span",{className:"px-1.5 py-0.5 rounded border border-[var(--border-default)] text-[var(--text-muted)] font-mono",children:a}),t.observedCount>0&&e.jsxs("span",{className:"ml-auto text-[var(--text-dim)]",children:[t.observedCount,"× ",o?`· ${o}`:""]})]})}const tw=Object.freeze(Object.defineProperty({__proto__:null,MockPanelRowHeader:ge},Symbol.toStringTag,{value:"Module"}));function ve({entry:t,scenarioHasDefaultFallback:s,onSave:a,onRemove:o,onPassthrough:n,onCaptureLive:r}){const[l,c]=d.useState(!1),_=`${t.method} ${t.pathPattern}`;return e.jsxs("div",{className:"border border-[var(--border-subtle)] rounded p-2 text-xs space-y-1",children:[e.jsx(ge,{entry:t}),t.variants.length>1&&e.jsxs("div",{className:"text-[10px] text-[var(--text-dim)] font-mono",children:["variants: ",t.variants.filter(m=>m!==_).join(", ")]}),e.jsx(be,{entry:t,scenarioHasDefaultFallback:s,editing:l,onToggleEdit:()=>c(m=>!m),onPromoteDefaultToScenario:()=>a({routeKey:_,status:t.status??200,body:t.body,headers:t.headers??{}}),onRemove:()=>o(_),onPassthrough:()=>n(_),onCaptureLive:()=>r(t.method,t.pathPattern)}),l&&e.jsx(xe,{initialStatus:t.status??200,initialBody:t.body,initialHeaders:t.headers??{},onCancel:()=>c(!1),onSave:async m=>{await a({routeKey:_,...m}),c(!1)}})]})}const sw=Object.freeze(Object.defineProperty({__proto__:null,MockPanelRow:ve},Symbol.toStringTag,{value:"Module"})),F=async()=>{};function Mt({label:t,entries:s,defaultEndpointKeys:a=[],onSave:o=F,onRemove:n=F,onPassthrough:r=F,onCaptureLive:l=F}){if(s.length===0)return null;const c=a instanceof Set?a:new Set(a);return e.jsxs("section",{className:"space-y-2",children:[e.jsxs("h3",{className:"text-[10px] font-semibold uppercase tracking-wide text-[var(--text-dim)]",children:[t," (",s.length,")"]}),e.jsx("div",{className:"space-y-2",children:s.map(_=>e.jsx(ve,{entry:_,scenarioHasDefaultFallback:c.has(`${_.method} ${_.pathPattern}`),onSave:o,onRemove:n,onPassthrough:r,onCaptureLive:l},`${_.method} ${_.pathPattern}`))})]})}const aw=Object.freeze(Object.defineProperty({__proto__:null,MockPanelGroup:Mt},Symbol.toStringTag,{value:"Module"}));function Bt({scenarioName:t,defaultSlug:s,onClose:a}){return e.jsxs("header",{className:"sticky top-0 z-10 flex items-center justify-between gap-2 border-b border-[var(--border-subtle)] bg-[var(--bg-deep)] px-4 py-3",children:[e.jsxs("div",{children:[e.jsxs("h2",{className:"text-sm font-medium text-[var(--text-primary)]",children:["Mocks for ",t]}),s&&e.jsxs("p",{className:"text-xs text-[var(--text-dim)]",children:["Defaults inherited from ",e.jsx("span",{className:"font-mono",children:s})]})]}),e.jsx("button",{onClick:a,className:"rounded border border-[var(--border-default)] bg-transparent px-2 py-1 text-xs text-[var(--text-muted)] hover:text-[var(--text-primary)] cursor-pointer",children:"Close"})]})}const ow=Object.freeze(Object.defineProperty({__proto__:null,MockPanelHeader:Bt},Symbol.toStringTag,{value:"Module"}));function Ot({total:t,passed:s,failed:a,discovered:o}){if(t===0&&(o??0)>0)return e.jsxs("span",{className:"text-[var(--text-dim)]",children:[o," ",o===1?"test":"tests"," (not run)"]});if(t===0)return e.jsx("span",{className:"text-[var(--text-dim)]",children:"No tests"});const n=(o??t)>t?(o??t)-t:0;return n>0?e.jsxs("span",{children:[e.jsxs("span",{className:"text-[var(--accent-green)]",children:[s," passed"]}),a>0&&e.jsxs("span",{className:"text-[var(--accent-red)]",children:[" · ",a," failed"]}),e.jsxs("span",{className:"text-[var(--text-dim)]",children:[" · ",n," not run"]})]}):a>0?e.jsxs("span",{className:"text-[var(--accent-red)]",children:[s,"/",t," passed"]}):e.jsxs("span",{className:"text-[var(--accent-green)]",children:[s,"/",t," passed"]})}const nw=Object.freeze(Object.defineProperty({__proto__:null,TestSummary:Ot},Symbol.toStringTag,{value:"Module"}));function At({title:t}){return e.jsx("div",{className:"flex h-full items-center justify-center",style:{color:"var(--text-dim)"},children:e.jsxs("p",{className:"text-sm",children:[t," — coming soon"]})})}const rw=Object.freeze(Object.defineProperty({__proto__:null,PlaceholderPane:At},Symbol.toStringTag,{value:"Module"}));function It(){return xS(()=>!0,!0),null}const iw=Object.freeze(Object.defineProperty({__proto__:null,ReadyAgentRegistrar:It},Symbol.toStringTag,{value:"Module"}));function Lt({paths:t}){return e.jsxs(bt,{children:[e.jsx(It,{}),e.jsx(Ze,{paths:t,onClose:()=>{}})]})}const lw=Object.freeze(Object.defineProperty({__proto__:null,FileDropConfirmModalAgentReadyShowcase:Lt},Symbol.toStringTag,{value:"Module"}));function Ft({groups:t,loading:s,error:a,totalScenarios:o,onPreviewScenario:n}){return s?e.jsx("div",{className:"py-12 text-center text-[var(--text-muted)]",children:"Loading scenarios..."}):a?e.jsxs("div",{className:"py-12 text-center text-[var(--accent-red)]",children:["Failed to load scenarios: ",a]}):t.length===0?e.jsxs("div",{className:"py-12 text-center text-[var(--text-dim)]",children:[e.jsx("p",{children:"No scenarios defined yet."}),e.jsx("p",{className:"mt-2 text-sm text-[var(--text-dim)]",children:"Create scenario JSON files in .codeyam/scenarios/"})]}):e.jsxs("div",{className:"overflow-y-auto px-6 py-4",style:{maxHeight:"calc(100vh - 110px)"},children:[e.jsxs("p",{className:"mb-4 text-sm text-[var(--text-muted)]",children:[o," scenarios across ",t.length," routes"]}),t.map(r=>e.jsx(pe,{group:r,onPreviewScenario:n},r.route))]})}const cw=Object.freeze(Object.defineProperty({__proto__:null,ScenariosView:Ft},Symbol.toStringTag,{value:"Module"}));function Ht({groups:t,loading:s,error:a,cached:o,totalTests:n,passedTests:r,coverage:l,onRefresh:c}){return s?e.jsx("div",{className:"py-12 text-center text-[var(--text-muted)]",children:"Loading tests..."}):a?e.jsxs("div",{className:"py-12 text-center text-[var(--accent-red)]",children:["Failed to load tests: ",a]}):t.length===0?e.jsx("div",{className:"py-12 text-center text-[var(--text-dim)]",children:"No tests found"}):e.jsxs("div",{className:"overflow-y-auto px-6 py-4",style:{maxHeight:"calc(100vh - 110px)"},children:[e.jsxs("div",{className:"mb-4 flex items-center gap-3 text-sm text-[var(--text-muted)]",children:[e.jsxs("span",{children:[r,"/",n," passed across ",t.length," features"]}),e.jsx(et,{coverage:l,testId:"tests-view-coverage",className:"rounded bg-[var(--bg-input)] px-2 py-0.5 text-xs font-medium text-[var(--text-secondary)]"}),o&&e.jsx("span",{className:"rounded bg-[var(--bg-input)] px-2 py-0.5 text-xs text-[var(--text-muted)]",children:"cached"}),e.jsx("button",{onClick:c,disabled:s,className:"rounded bg-[var(--bg-input)] px-2 py-0.5 text-xs text-[var(--text-muted)] hover:bg-[var(--bg-surface)] hover:text-[var(--text-secondary)] disabled:opacity-50",children:s?"Running...":"Run Tests"})]}),t.map(_=>e.jsx(de,{group:_},_.feature))]})}const _w=Object.freeze(Object.defineProperty({__proto__:null,TestsView:Ht},Symbol.toStringTag,{value:"Module"}));function zt({onClick:t,isOpen:s,disabled:a}){return e.jsx("button",{type:"button",onClick:t,disabled:a,"aria-expanded":s,"aria-haspopup":"dialog",className:`flex items-center h-7 px-2 rounded text-[11px] font-mono tracking-wide cursor-pointer transition-colors ${a?"text-gray-500 bg-[#2d2d2d] cursor-not-allowed":s?"text-white bg-[#555]":"text-gray-300 bg-[#3a3a3a] hover:bg-[#444]"}`,title:"Edit scenario data",children:"EDIT DATA"})}const dw=Object.freeze(Object.defineProperty({__proto__:null,EditDataButton:zt},Symbol.toStringTag,{value:"Module"}));function he(t){return`${t.method} ${t.pathPattern}`}function pw({slug:t,onApplied:s}){const[a,o]=d.useState({kind:"idle"}),n=d.useCallback(async r=>{o({kind:"submitting"});try{const c=await(await fetch(`/api/scenarios/${encodeURIComponent(t)}/data/describe`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:r})})).json();c.success?(s(),o({kind:"applied",message:c.message??"Changes applied. Review the table and click Save."})):o({kind:"error",message:c.error??"AI rewrite failed."})}catch(l){o({kind:"error",message:l instanceof Error?l.message:"Network error"})}},[t,s]);return{status:a,submit:n}}function mw(t,s){d.useEffect(()=>{function a(n){t.current&&!t.current.contains(n.target)&&s()}function o(n){n.key==="Escape"&&s()}return document.addEventListener("mousedown",a),document.addEventListener("keydown",o),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("keydown",o)}},[t,s])}function uw({props:t,seedTabs:s,mockEntries:a}){const[o,n]=d.useState(null),[r,l]=d.useState(null),[c,_]=d.useState(null),m=d.useMemo(()=>{const i=[];return t&&Object.keys(t).length>0&&i.push({kind:"props",label:"Props",tabs:[]}),s.length>0&&i.push({kind:"seed",label:"Seed Data",tabs:s.map(b=>({id:b.dataKey,label:b.label}))}),a.length>0&&i.push({kind:"mock",label:"Mock Data",tabs:a.map(b=>({id:he(b),label:`${b.method} ${b.pathPattern}`}))}),i},[t,s,a]);d.useEffect(()=>{if(o!==null||m.length===0)return;const i=m[0];n(i.kind),i.kind==="seed"&&i.tabs[0]?l(i.tabs[0].id):i.kind==="mock"&&i.tabs[0]&&_(i.tabs[0].id)},[o,m]);const x=m.find(i=>i.kind===o)??null;function u(i){var b,g,f,y;if(n(i),i==="seed"&&!r){const h=(g=(b=m.find(v=>v.kind==="seed"))==null?void 0:b.tabs[0])==null?void 0:g.id;h&&l(h)}if(i==="mock"&&!c){const h=(y=(f=m.find(v=>v.kind==="mock"))==null?void 0:f.tabs[0])==null?void 0:y.id;h&&_(h)}}return{sections:m,activeSection:x,section:o,activeSeedKey:r,activeMockKey:c,selectSection:u,selectSeedKey:l,selectMockKey:_}}function xw(t){const[s,a]=d.useState(null);return d.useEffect(()=>{var l;const o=(l=t.current)==null?void 0:l.closest("[data-preview-pane='true']");if(!o)return;const n=()=>a(o.getBoundingClientRect().width);n();const r=new ResizeObserver(n);return r.observe(o),()=>r.disconnect()},[t]),s}function fe(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function bw(t){return Array.isArray(t)&&t.length>0&&t.every(fe)}function X(t,s,a){if(fe(t)){for(const[o,n]of Object.entries(t)){const r=s?`${s}.${o}`:o;X(n,r,a)}return}if(bw(t)){t.forEach((o,n)=>X(o,`${s}[${n}]`,a));return}a.push({path:s,value:t})}function ze(t){if(!fe(t))return[];const s=[];return X(t,"",s),s}function gw(t){return t===null?"null":t===void 0?"":typeof t=="object"?JSON.stringify(t):String(t)}function vw({slug:t,initialProps:s,onCellEdited:a}){const[o,n]=d.useState(()=>ze(s)),[r,l]=d.useState(null),[c,_]=d.useState(""),[m,x]=d.useState(""),u=d.useRef(null);d.useEffect(()=>{n(ze(s)),l(null)},[s]);function i(h){const v=o.find(T=>T.path===h);l(h);const S=v==null?void 0:v.value,j=S==null?"":typeof S=="object"?JSON.stringify(S):String(S);_(j),x(j)}function b(h){if(_(h),u.current&&clearTimeout(u.current),!r)return;const v=r;u.current=setTimeout(()=>{y(v,h)},600)}function g(){r&&(u.current&&clearTimeout(u.current),y(r,c),l(null))}function f(){if(u.current&&clearTimeout(u.current),!!r){if(c!==m){const h=o.map(v=>v.path===r?{...v,value:Fe(m)}:v);n(h),fetch(`/api/scenarios/${encodeURIComponent(t)}/data`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:`props.${r}`,value:m})}).then(()=>{q(),a&&a()}).catch(()=>{})}l(null)}}async function y(h,v){const S=o.map(j=>j.path===h?{...j,value:Fe(v)}:j);n(S);try{await fetch(`/api/scenarios/${encodeURIComponent(t)}/data`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:`props.${h}`,value:v})}),q(),a&&a()}catch{}}return{rows:o,editingPath:r,editValue:c,handleEditPath:i,handleEditValueChange:b,handleSave:g,handleCancelEdit:f}}function Se({path:t,value:s,onValueChange:a,onSave:o,onCancel:n}){return e.jsxs("div",{className:"border-t border-[var(--border-default)] bg-[var(--bg-deep)] px-3 py-2",children:[e.jsx("div",{className:"flex items-center gap-2 mb-1.5",children:e.jsxs("span",{className:"text-[10px] text-[var(--text-muted)]",children:["Editing"," ",e.jsx("strong",{className:"text-[var(--text-secondary)] font-mono",children:t})]})}),e.jsx("textarea",{value:s,onChange:r=>a(r.target.value),className:"w-full px-2 py-1.5 text-[11px] bg-[var(--bg-card)] text-[var(--text-primary)] border border-[var(--border-default)] rounded outline-none focus:border-[var(--accent-active)]/50 resize-y min-h-[60px] max-h-[200px] font-mono",autoFocus:!0,rows:s.length>100?4:2,onKeyDown:r=>{r.key==="Escape"&&n(),r.key==="Enter"&&(r.metaKey||r.ctrlKey)&&o()}}),e.jsxs("div",{className:"flex items-center gap-2 mt-1.5",children:[e.jsx("button",{onClick:o,className:"px-3 py-1 text-[10px] font-medium text-[var(--bg-deep)] bg-[var(--accent-active)] rounded cursor-pointer border-none hover:bg-[var(--accent-active)]/80 transition-colors",children:"Save"}),e.jsx("button",{onClick:n,className:"px-3 py-1 text-[10px] text-[var(--text-muted)] hover:text-[var(--text-primary)] bg-transparent border-none cursor-pointer",children:"Cancel"}),e.jsxs("span",{className:"text-[9px] text-[var(--text-dim)] ml-auto",children:["⌘","+Enter to save, Esc to cancel"]})]})]})}const hw=Object.freeze(Object.defineProperty({__proto__:null,ScenarioDataPanelPropsEditor:Se},Symbol.toStringTag,{value:"Module"}));function ye({slug:t,props:s,onCellEdited:a}){const{rows:o,editingPath:n,editValue:r,handleEditPath:l,handleEditValueChange:c,handleSave:_,handleCancelEdit:m}=vw({slug:t,initialProps:s,onCellEdited:a});return o.length===0?e.jsx("p",{className:"p-4 text-xs text-[var(--text-dim)] italic",children:"This scenario has no props to edit."}):e.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[e.jsx("div",{className:"flex-1 min-h-0 overflow-auto",children:e.jsxs("table",{className:"w-full text-[11px] border-separate border-spacing-0",children:[e.jsx("thead",{className:"bg-[var(--bg-card)] sticky top-0 z-10",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left font-medium text-[var(--text-secondary)] px-3 py-2 border-b border-[var(--border-default)] w-1/3",children:"Key"}),e.jsx("th",{className:"text-left font-medium text-[var(--text-secondary)] px-3 py-2 border-b border-[var(--border-default)]",children:"Value"})]})}),e.jsx("tbody",{children:o.map(x=>e.jsxs("tr",{className:"hover:bg-[var(--bg-card)]",children:[e.jsx("td",{className:"px-3 py-1.5 border-b border-[var(--border-subtle)] font-mono text-[var(--text-secondary)] align-top",children:x.path}),e.jsx("td",{className:"px-3 py-1.5 border-b border-[var(--border-subtle)] cursor-text text-[var(--text-primary)] align-top",onClick:()=>l(x.path),children:gw(x.value)})]},x.path))})]})}),n&&e.jsx(Se,{path:n,value:r,onValueChange:c,onSave:_,onCancel:m})]})}const fw=Object.freeze(Object.defineProperty({__proto__:null,ScenarioDataPanelMainProps:ye},Symbol.toStringTag,{value:"Module"}));function je({slug:t,section:s,hasAnything:a,loading:o,seedError:n,mocksError:r,draftError:l,props:c,selectedSeedTab:_,filteredSeedRows:m,selectedMock:x,onSeedCellEdit:u,onMockSave:i}){return e.jsxs("div",{className:"min-h-0 flex-1 flex flex-col bg-[var(--bg-deep)] overflow-hidden",children:[n&&e.jsxs("p",{className:"p-3 text-xs text-red-400",children:["Seed error: ",n]}),r&&e.jsxs("p",{className:"p-3 text-xs text-red-400",children:["Mocks error: ",r]}),l&&e.jsxs("p",{className:"p-3 text-xs text-red-400",children:["Draft error: ",l]}),o&&!a&&e.jsx("p",{className:"p-4 text-xs text-[var(--text-dim)]",children:"Loading scenario data…"}),!o&&!a&&e.jsx("p",{className:"p-4 text-xs text-[var(--text-dim)] italic",children:"This scenario has no data, mocks, or props to edit."}),s==="props"&&e.jsx(ye,{slug:t,props:c,onCellEdited:u}),s==="seed"&&_&&e.jsx(gt,{slug:t,tab:_,initialRows:m,onCellEdited:u}),s==="mock"&&x&&e.jsx("div",{className:"flex-1 min-h-0 overflow-auto p-3",children:x.source==="scenario"||x.source==="default"||x.source==="shared"?e.jsx(vt,{entry:x,routeKey:he(x),scenarioSlug:t,onSave:i}):e.jsx(ht,{entry:x})})]})}const Sw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverBody:je},Symbol.toStringTag,{value:"Module"}));function Pe({status:t,onSubmit:s}){const[a,o]=d.useState(""),n=t.kind==="submitting";function r(){const l=a.trim();!l||n||(s(l),o(""))}return e.jsxs("div",{className:"shrink-0 border-t border-[var(--border-default)] bg-[var(--bg-deep)] px-4 py-3",children:[e.jsxs("div",{className:"flex items-end gap-2",children:[e.jsx("textarea",{value:a,onChange:l=>o(l.target.value),placeholder:"Describe Changes",rows:2,disabled:n,className:"flex-1 px-3 py-2 text-[12px] bg-[var(--bg-card)] text-[var(--text-primary)] border border-[var(--border-default)] rounded outline-none focus:border-[var(--accent-active)]/50 resize-none min-h-[44px] disabled:opacity-50",onKeyDown:l=>{l.key==="Enter"&&(l.metaKey||l.ctrlKey)&&(l.preventDefault(),r())}}),e.jsx("button",{type:"button",onClick:r,disabled:n||!a.trim(),className:"px-3 py-2 text-[11px] font-medium text-[var(--bg-deep)] bg-[var(--accent-active)] rounded cursor-pointer border-none hover:bg-[var(--accent-active)]/80 disabled:opacity-50 disabled:cursor-not-allowed transition-colors h-fit",children:n?"Applying…":"Submit"})]}),t.kind==="applied"&&e.jsx("p",{className:"text-[10px] text-[var(--accent-active)] mt-1.5",children:t.message}),t.kind==="error"&&e.jsx("p",{className:"text-[10px] text-red-400 mt-1.5",children:t.message})]})}const yw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverDescribeInput:Pe},Symbol.toStringTag,{value:"Module"}));function we({isDirty:t,saving:s,cancelling:a,onSave:o,onCancel:n,onClose:r}){const l=s||a;return e.jsxs(e.Fragment,{children:[t&&e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",onClick:o,disabled:l,className:"px-2 py-0.5 text-[10px] font-medium text-[var(--bg-deep)] bg-[var(--accent-active)] rounded cursor-pointer border-none hover:bg-[var(--accent-active)]/80 disabled:opacity-50",children:s?"Saving…":"Save"}),e.jsx("button",{type:"button",onClick:n,disabled:l,className:"px-2 py-0.5 text-[10px] text-[var(--text-muted)] hover:text-[var(--text-primary)] bg-transparent border border-[var(--border-default)] rounded cursor-pointer disabled:opacity-50",children:a?"Cancelling…":"Cancel"})]}),e.jsx("button",{type:"button",onClick:r,"aria-label":"Close",className:"text-[var(--text-muted)] hover:text-[var(--text-primary)] text-sm bg-transparent border-none cursor-pointer px-1 leading-none",children:"✕"})]})}const jw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverSaveCancelClose:we},Symbol.toStringTag,{value:"Module"}));function Ce({value:t,disabled:s,onChange:a}){return e.jsx("input",{type:"search",value:t,onChange:o=>a(o.target.value),placeholder:"Search…",disabled:s,className:"text-[10px] bg-[var(--bg-card)] text-[var(--text-primary)] border border-[var(--border-default)] rounded px-2 py-0.5 outline-none focus:border-[var(--accent-active)]/50 disabled:opacity-40 w-36"})}const Pw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverSearchInput:Ce},Symbol.toStringTag,{value:"Module"}));function Ne({sections:t,section:s,activeSection:a,onSelect:o}){return t.length>1?e.jsx("select",{value:s??"",onChange:n=>o(n.target.value),className:"text-[9px] font-semibold tracking-wider uppercase text-[var(--text-primary)] bg-[var(--bg-card)] border border-[var(--border-default)] rounded px-1.5 py-0.5 cursor-pointer outline-none",children:t.map(n=>e.jsx("option",{value:n.kind,children:n.label},n.kind))}):a?e.jsx("span",{className:"text-[9px] font-semibold tracking-wider uppercase text-[var(--text-primary)] px-1.5 py-0.5",children:a.label}):null}const ww=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverSectionSelector:Ne},Symbol.toStringTag,{value:"Module"}));function ke({tabs:t,activeId:s,onSelect:a}){return e.jsx("div",{className:"flex items-center gap-0.5 overflow-x-auto min-w-0",children:t.map(o=>{const n=o.id===s;return e.jsx("button",{type:"button",onClick:()=>a(o.id),className:`px-1.5 py-0.5 text-[9px] font-medium tracking-wide uppercase rounded whitespace-nowrap cursor-pointer transition-colors ${n?"text-[var(--accent-active)] bg-[var(--accent-active)]/10":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"}`,children:o.label},o.id)})})}const Cw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverTabStrip:ke},Symbol.toStringTag,{value:"Module"}));function Te({sections:t,section:s,activeSection:a,activeTabId:o,onSelectSection:n,onSelectTab:r,search:l,searchDisabled:c,onSearchChange:_,isDirty:m,saving:x,cancelling:u,onSave:i,onCancel:b,onClose:g}){return e.jsxs("header",{className:"shrink-0 flex items-center justify-between gap-3 px-3 py-1.5 border-b border-[var(--border-subtle)]",children:[e.jsxs("div",{className:"flex items-center gap-1.5 min-w-0 flex-1",children:[e.jsx(Ne,{sections:t,section:s,activeSection:a,onSelect:n}),e.jsx("span",{className:"text-[var(--text-dim)] text-[10px]",children:"/"}),e.jsx(ke,{tabs:(a==null?void 0:a.tabs)??[],activeId:o,onSelect:r})]}),e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsx(Ce,{value:l,disabled:c,onChange:_}),e.jsx(we,{isDirty:m,saving:x,cancelling:u,onSave:i,onCancel:b,onClose:g})]})]})}const Nw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverHeader:Te},Symbol.toStringTag,{value:"Module"}));function Re({popoverRef:t,paneWidth:s}){return e.jsx("div",{"aria-hidden":"true",onMouseDown:a=>{const o=t.current;if(!o)return;a.preventDefault();const n=o.getBoundingClientRect(),r=a.clientX,l=a.clientY,c=n.width,_=n.height,m=n.right,x=i=>{const b=i.clientX-r,g=i.clientY-l,f=420,y=280,h=s?Math.max(f,s-16):c+1e3,v=Math.max(f,Math.min(h,c-b)),S=Math.max(y,_+g);o.style.width=`${v}px`,o.style.height=`${S}px`,o.style.right=`${o.parentElement.getBoundingClientRect().right-m}px`},u=()=>{window.removeEventListener("mousemove",x),window.removeEventListener("mouseup",u)};window.addEventListener("mousemove",x),window.addEventListener("mouseup",u)},className:"absolute bottom-0 left-0 w-3 h-3 z-50",style:{cursor:"nesw-resize"}})}const kw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverResizeHandleLeft:Re},Symbol.toStringTag,{value:"Module"}));function Gt({slug:t,scenarioName:s,onClose:a}){const o=d.useRef(null),n=bS({slug:t,onPreviewReload:q}),r=xw(o),{data:l,tableTabs:c,props:_,loading:m,error:x}=gS(t),{entries:u,loading:i,error:b,upsertScoped:g}=vS(t),{sections:f,activeSection:y,section:h,activeSeedKey:v,activeMockKey:S,selectSection:j,selectSeedKey:T,selectMockKey:D}=uw({props:_,seedTabs:c,mockEntries:u}),[C,k]=d.useState(""),V=h==="seed"?c.find(P=>P.dataKey===v)??null:null,ss=h==="mock"?u.find(P=>he(P)===S)??null:null,U=V&&l?l[V.dataKey]??[]:[],as=d.useMemo(()=>{if(!C.trim())return U;const P=C.toLowerCase();return U.filter(ps=>Object.values(ps).some(ms=>String(ms??"").toLowerCase().includes(P)))},[U,C]),L=d.useCallback(()=>{n.markDirty(),q()},[n]),os=d.useCallback(async P=>{await g(P),L()},[g,L]),Oe=d.useCallback(()=>{n.confirmIfDirty("Discard unsaved changes to this scenario?")&&a()},[n,a]);mw(o,Oe);const ns=d.useCallback(async()=>{await n.save(),n.error||a()},[n,a]),Ae=pw({slug:t,onApplied:L}),rs=h==="seed"?v:h==="mock"?S:null;function is(P){h==="seed"&&T(P),h==="mock"&&D(P)}function ls(P){P!==null&&(j(P),k(""))}const cs=s??t,_s=f.length>0,ds=m||i;return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"fixed inset-0 z-30 bg-black/30 pointer-events-none","aria-hidden":"true"}),e.jsxs("div",{ref:o,role:"dialog","aria-label":`Edit data for ${cs}`,style:{resize:"both",maxWidth:r?`${Math.max(420,r-16)}px`:"calc(100vw - 2rem)"},className:"absolute right-0 top-full mt-1 z-40 flex flex-col rounded-lg border border-[var(--border-default)] bg-[var(--bg-deep)] shadow-2xl overflow-hidden w-[640px] max-h-[calc(100vh-6rem)] min-w-[420px] min-h-[200px]",children:[e.jsx(Te,{sections:f,section:h,activeSection:y,activeTabId:rs,onSelectSection:ls,onSelectTab:is,search:C,searchDisabled:h!=="seed",onSearchChange:k,isDirty:n.isDirty,saving:n.saving,cancelling:n.cancelling,onSave:ns,onCancel:()=>void n.cancel(),onClose:Oe}),e.jsx(je,{slug:t,section:h,hasAnything:_s,loading:ds,seedError:x,mocksError:b,draftError:n.error,props:_,selectedSeedTab:V,filteredSeedRows:as,selectedMock:ss,onSeedCellEdit:L,onMockSave:os}),e.jsx(Pe,{status:Ae.status,onSubmit:Ae.submit}),e.jsx(Re,{popoverRef:o,paneWidth:r})]})]})}const Tw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopover:Gt},Symbol.toStringTag,{value:"Module"}));function $t({tabs:t,active:s,onChange:a}){return e.jsx("div",{className:"flex gap-0",children:t.map(o=>e.jsx("button",{onClick:()=>a(o.key),className:`px-3 py-2 text-sm transition-colors border-b-2 ${s===o.key?"font-medium":"border-transparent hover:text-[var(--text-primary)]"}`,style:s===o.key?{color:"var(--accent-active)",borderBottomColor:"var(--accent-active)"}:{color:"var(--text-muted)"},children:o.label},o.key))})}const Rw=Object.freeze(Object.defineProperty({__proto__:null,ViewTabs:$t},Symbol.toStringTag,{value:"Module"}));function qt({restartCount:t}){return e.jsx("div",{className:"absolute inset-0 bg-white/90 dark:bg-gray-900/90 backdrop-blur-sm flex flex-col items-center justify-center z-50 animate-in fade-in duration-300",children:e.jsxs("div",{className:"flex flex-col items-center space-y-4 text-center max-w-md p-6",children:[e.jsx(se,{restartCount:t}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-gray-100",children:"Dev Server Restarting"}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"The Live Preview server crashed unexpectedly. CodeYam is automatically recovering it..."})]}),t>2&&e.jsx("div",{className:"pt-2",children:e.jsx("p",{className:"text-xs text-amber-600 dark:text-amber-400 font-medium",children:"Recovery is taking longer than usual..."})})]})})}const Dw=Object.freeze(Object.defineProperty({__proto__:null,DevServerRestartingOverlay:qt},Symbol.toStringTag,{value:"Module"}));function Vt(){return e.jsx("div",{className:"absolute inset-0 bg-white/90 dark:bg-gray-900/90 backdrop-blur-sm flex flex-col items-center justify-center z-50 animate-in fade-in duration-300",children:e.jsxs("div",{className:"flex flex-col items-center space-y-4 text-center max-w-md p-6",children:[e.jsx(se,{restartCount:0}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-gray-100",children:"Starting Dev Server"}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Waiting for the development server to start..."})]})]})})}const Ew=Object.freeze(Object.defineProperty({__proto__:null,DevServerStartingOverlay:Vt},Symbol.toStringTag,{value:"Module"}));function Ut(){return e.jsx("div",{className:"absolute inset-0 bg-white/90 dark:bg-gray-900/90 backdrop-blur-sm flex flex-col items-center justify-center z-50 animate-in fade-in duration-300",children:e.jsxs("div",{className:"flex flex-col items-center space-y-4 text-center max-w-md p-6",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-gray-200 dark:bg-gray-700 flex items-center justify-center",children:e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"w-6 h-6 text-gray-500 dark:text-gray-400","aria-hidden":"true",children:[e.jsx("rect",{x:"6",y:"5",width:"4",height:"14",rx:"1"}),e.jsx("rect",{x:"14",y:"5",width:"4",height:"14",rx:"1"})]})}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-gray-100",children:"Dev Server Not Running"}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Starting automatically…"})]})]})})}const Mw=Object.freeze(Object.defineProperty({__proto__:null,DevServerStoppedOverlay:Ut},Symbol.toStringTag,{value:"Module"}));function Wt({title:t,count:s,children:a}){return e.jsxs("div",{className:"mt-5",children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between gap-4",children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--text-dim)]",children:t}),e.jsxs("p",{className:"text-xs text-[var(--text-dim)]",children:[s," total"]})]}),a]})}const Bw=Object.freeze(Object.defineProperty({__proto__:null,RouteEntitySection:Wt},Symbol.toStringTag,{value:"Module"}));function De(){return e.jsx("div",{className:"rounded-xl border border-dashed border-[var(--border-default)] px-4 py-5 text-sm text-[var(--text-dim)]",children:"No direct imports were found for this route file."})}const Ow=Object.freeze(Object.defineProperty({__proto__:null,RouteImportEmptyState:De},Symbol.toStringTag,{value:"Module"}));function Jt({directImports:t}){return t.length===0?e.jsx(De,{}):e.jsx("div",{className:"grid grid-cols-1 gap-1",children:t.map(s=>{const{fileName:a,dirPath:o}=fs(s);return e.jsx(me,{fileName:a,dirPath:o},s)})})}const Aw=Object.freeze(Object.defineProperty({__proto__:null,RouteImportList:Jt},Symbol.toStringTag,{value:"Module"}));function Qt({routeEntity:t}){return e.jsxs("div",{className:"rounded-xl border border-[var(--border-default)] bg-[var(--bg-elevated)] px-4 py-4",children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--text-dim)]",children:"Route"}),e.jsx("p",{className:"mt-2 text-lg font-semibold text-[var(--text-primary)]",children:t.displayName}),e.jsx("p",{className:"mt-1 font-mono text-xs text-[var(--accent-blue)]",children:t.route}),t.pageFilePath?e.jsx("p",{className:"mt-3 text-sm text-[var(--text-muted)]",children:t.pageFilePath}):e.jsx("p",{className:"mt-3 text-sm text-[var(--text-dim)]",children:"No source file is linked to this route yet."})]})}const Iw=Object.freeze(Object.defineProperty({__proto__:null,RouteSummaryCard:Qt},Symbol.toStringTag,{value:"Module"}));function Kt({tabs:t,activeTable:s,onSelectTable:a,onClose:o}){return e.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1.5 bg-[var(--bg-card)] border-b border-[var(--border-default)] flex-wrap",children:[t.map(n=>e.jsx(Ee,{tab:n,isActive:s===n.dataKey,onClick:()=>a(n.dataKey)},n.dataKey)),e.jsx("div",{className:"flex-1"}),e.jsx("button",{onClick:o,className:"w-5 h-5 flex items-center justify-center text-[var(--text-dim)] hover:text-[var(--text-primary)] bg-[var(--bg-input)] hover:bg-[var(--border-default)] rounded-full border-none cursor-pointer text-xs transition-colors",title:"Close",children:"×"})]})}function Ee({tab:t,isActive:s,onClick:a}){const o=t.category==="datastore"?s?"text-[var(--accent-active)] bg-[var(--accent-active)]/15 border-[var(--accent-active)]/40":"text-[var(--accent-active)]/60 bg-transparent border-transparent hover:text-[var(--accent-active)]/80":t.category==="mock-api"?s?"text-[#D7FF63] bg-[#D7FF63]/15 border-[#D7FF63]/40":"text-[#D7FF63]/60 bg-transparent border-transparent hover:text-[#D7FF63]/80":s?"text-[var(--text-primary)] bg-[var(--border-default)] border-[var(--border-default)]":"text-[var(--text-dim)] bg-transparent border-transparent hover:text-[var(--text-secondary)]";return e.jsx("button",{onClick:a,className:`px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider rounded cursor-pointer border transition-colors ${o}`,children:t.label})}const Lw=Object.freeze(Object.defineProperty({__proto__:null,DataViewerTabBar:Kt,DataViewerTabButton:Ee},Symbol.toStringTag,{value:"Module"}));function Yt({featureName:t,onClose:s}){return e.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center",style:{background:"rgba(30, 30, 30, 0.90)"},children:e.jsx(tt,{featureName:t,onClose:s})})}const Fw=Object.freeze(Object.defineProperty({__proto__:null,SendTranscriptOverlay:Yt},Symbol.toStringTag,{value:"Module"}));function Z(){return e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:16,padding:16,background:"#0d1117",color:"#c9d1d9",fontFamily:"'SF Mono', Menlo, monospace",fontSize:13},children:[e.jsx(St,{title:"Section Header Example"}),e.jsxs("div",{style:{display:"flex",gap:8},children:[e.jsx(I,{color:"#238636",children:"ACTIVE"}),e.jsx(I,{color:"#d29922",children:"WARNING"}),e.jsx(I,{color:"#da3633",children:"ERROR"}),e.jsx(I,{color:"#D7FF63",children:"INFO"})]}),e.jsxs("div",{style:{display:"flex",gap:12},children:[e.jsx(M,{method:"GET"}),e.jsx(M,{method:"POST"}),e.jsx(M,{method:"PUT"}),e.jsx(M,{method:"DELETE"}),e.jsx(M,{method:"PATCH"})]}),e.jsx($,{color:"#238636",children:"Success status message"}),e.jsx($,{color:"#d29922",children:"Warning status message"}),e.jsx($,{color:"#8b949e",children:"Neutral status message"})]})}const Hw=Object.freeze(Object.defineProperty({__proto__:null,InspectorPrimitivesShowcase:Z},Symbol.toStringTag,{value:"Module"})),zw=[{type:"http_request",id:"evt-1",timestampMs:Date.now(),method:"GET",url:"/api/tasks",status:200,durationMs:2,mocked:!0},{type:"http_request",id:"evt-2",timestampMs:Date.now(),method:"POST",url:"/api/users/register",status:201,durationMs:145,mocked:!1}];function ee({events:t}){const s=t??zw;return e.jsx("div",{style:{background:"#0d1117",padding:16},children:e.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12,fontFamily:"'SF Mono', Menlo, monospace",color:"#c9d1d9"},children:[e.jsx("thead",{children:e.jsxs("tr",{style:{borderBottom:"1px solid #30363d"},children:[e.jsx("th",{style:E,children:"Time"}),e.jsx("th",{style:E,children:"Method"}),e.jsx("th",{style:{...E,textAlign:"left"},children:"URL"}),e.jsx("th",{style:E,children:"Status"}),e.jsx("th",{style:E,children:"Duration"}),e.jsx("th",{style:E,children:"Source"})]})}),e.jsx("tbody",{children:s.map(a=>e.jsx(Ej,{event:a},a.id))})]})})}const Gw=Object.freeze(Object.defineProperty({__proto__:null,InspectorTrafficRowShowcase:ee},Symbol.toStringTag,{value:"Module"}));function Xt(){return e.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-0",style:{background:"repeating-linear-gradient(45deg, transparent 0 24px, rgba(255,255,255,0.025) 24px 48px)"}})}const $w=Object.freeze(Object.defineProperty({__proto__:null,StaleDbStripeOverlay:Xt},Symbol.toStringTag,{value:"Module"}));function Me({error:t}){return e.jsx("div",{"data-codeyam-scenario-error":"seed",className:"flex min-h-screen items-center justify-center bg-[var(--bg-deep)] text-[var(--accent-red)]",children:e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-lg",children:"Seed Error"}),e.jsx("p",{className:"mt-2 text-sm",children:t}),e.jsx("p",{className:"mt-2 text-xs text-[var(--text-muted)]",children:"The database state shown may not match this scenario."})]})})}const qw=Object.freeze(Object.defineProperty({__proto__:null,ScenarioSeedErrorView:Me},Symbol.toStringTag,{value:"Module"}));function Be({name:t,url:s}){return e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-[var(--bg-deep)] text-[var(--text-muted)]",children:e.jsxs("div",{className:"max-w-md text-center",children:[e.jsx("p",{className:"text-lg",children:t}),e.jsx("p",{className:"mt-2 text-sm",children:"This is an application scenario — it renders on its own app route, not the component preview path."}),s?e.jsxs("p",{className:"mt-3 text-sm",children:["Open it at"," ",e.jsx("a",{href:s,className:"underline text-[var(--accent-blue,#6ab0ff)]",children:s})," ","(its seed and mocks are already active)."]}):e.jsx("p",{className:"mt-3 text-sm",children:"Activate the scenario, then navigate the preview to its app route to see it."})]})})}const Vw=Object.freeze(Object.defineProperty({__proto__:null,ScenarioRendererAppDeadEnd:Be},Symbol.toStringTag,{value:"Module"})),Ge={singular:"item",plural:"items",pluralCap:"Items",field:"name",fields:"name, description, image",fieldsTitleCase:"Name, description, and image",currentCount:0,exampleSuggestions:["Add user accounts","Track saves per item","Remember people's preferences"]},Uw={supabaseProject:"your-app",connectedOn:"today",describedOn:"today"};function Ww(t){return[{title:`A ${t.singular} table`,caption:`${t.fieldsTitleCase}, ready to edit.`,where:"database"},{title:`Saved ${t.plural} tied to each person`,caption:"Their list is remembered between visits and devices.",where:"database"},{title:`An admin screen to add & edit ${t.plural}`,caption:"A simple form, no code, changes go live instantly.",where:"/admin"},{title:`Your current ${t.plural} copied in`,caption:`The ${t.currentCount} ${t.plural} already in your app become real, editable data.`,where:"migration"}]}function Jw(t){return`Store ${t.plural} (${t.fields}) and which ${t.plural} each person saved. Let me add and edit ${t.plural} from an admin screen.`}function O({tone:t,icon:s,title:a,subtitle:o,children:n}){return e.jsxs("div",{className:`rd-zone rd-z-${t}`,children:[e.jsxs("div",{className:"rd-zhd",children:[e.jsx("div",{className:"rd-zn",children:s}),e.jsxs("div",{className:"rd-ztext",children:[e.jsx("div",{className:"rd-zt",children:a}),e.jsx("div",{className:"rd-zs",children:o})]})]}),n]})}const Qw=Object.freeze(Object.defineProperty({__proto__:null,RealDataZone:O},Symbol.toStringTag,{value:"Module"}));function Zt({entity:t,connection:s,onPlan:a}){const[o,n]=d.useState(new Set),[r,l]=d.useState(!1),c=Ww(t),_=Jw(t),m=u=>{n(i=>{const b=new Set(i);return b.has(u)?b.delete(u):b.add(u),b})},x=()=>{r||(l(!0),a==null||a())};return e.jsxs("div",{className:"rd-content",children:[e.jsxs("div",{className:"rd-shead",children:[e.jsx("div",{className:"rd-badge",children:e.jsx(R,{size:25})}),e.jsxs("div",{children:[e.jsx("h1",{className:"rd-title",children:"Use real data"}),e.jsxs("div",{className:"rd-via",children:["powered by ",e.jsx("b",{children:"Supabase"})," · a secure database used by modern apps"]}),e.jsxs("p",{className:"rd-lead",children:["Move your ",t.plural," out of the code and into a database, so you (or a teammate) can add and edit them without a developer, and so each person's saved list is remembered for good."]})]})]}),e.jsxs(O,{tone:"learn",icon:e.jsx(st,{size:16}),title:"Understand it first",subtitle:"No jargon — here's what a database actually does for you.",children:[e.jsxs("p",{children:["A database is just a ",e.jsx("b",{children:"labelled place your app remembers things"})," — like a spreadsheet it can read and write instantly. Today your"," ",t.plural," are typed into the code, so changing one means changing the app."]}),e.jsxs("p",{children:["Move them into a database and a ",t.singular," becomes"," ",e.jsx("b",{children:"data you can edit"})," from a simple screen. Update a ",t.field," ","once and it changes everywhere, instantly."]}),e.jsxs("div",{className:"rd-ba",children:[e.jsxs("div",{className:"rd-bx2 rd-now",children:[e.jsx("div",{className:"rd-batag",children:"Now · in the code"}),e.jsxs("div",{className:"rd-baln",children:[e.jsx(K,{size:13}),"A developer edits ",t.plural]}),e.jsxs("div",{className:"rd-baln",children:[e.jsx(K,{size:13}),"Saves reset on refresh"]})]}),e.jsx("div",{className:"rd-arrowmid",children:"→"}),e.jsxs("div",{className:"rd-bx2 rd-next",children:[e.jsx("div",{className:"rd-batag",children:"After · in a database"}),e.jsxs("div",{className:"rd-baln",children:[e.jsx(N,{size:13}),"You edit ",t.plural," yourself"]}),e.jsxs("div",{className:"rd-baln",children:[e.jsx(N,{size:13}),"Saves last forever"]})]})]})]}),e.jsxs(O,{tone:"tell",icon:e.jsx(at,{size:16}),title:"Tell CodeYam what to remember",subtitle:"Describe it in plain words. This is the instruction it follows.",children:[e.jsxs("div",{className:"rd-field",children:[e.jsx("span",{className:"rd-edit",children:"Edit"}),_]}),e.jsx("div",{className:"rd-examples",children:t.exampleSuggestions.map((u,i)=>e.jsxs("button",{type:"button",className:"rd-ex"+(o.has(i)?" added":""),onClick:()=>m(i),children:[e.jsx("span",{className:"rd-plus",children:o.has(i)?"✓":"+"}),u]},u))})]}),e.jsx(O,{tone:"build",icon:e.jsx(ot,{size:16}),title:"What CodeYam will build",subtitle:`${c.length} changes, each previewable before it ships.`,children:e.jsx("div",{className:"rd-builds",children:c.map(u=>e.jsxs("div",{className:"rd-bitem",children:[e.jsx("div",{className:"rd-bx",children:e.jsx(N,{size:13})}),e.jsxs("div",{className:"rd-bmain",children:[e.jsx("b",{children:u.title}),e.jsx("span",{children:u.caption})]}),e.jsx("span",{className:"rd-where",children:u.where})]},u.title))})}),e.jsx(O,{tone:"track",icon:e.jsx(nt,{size:16}),title:"Track what's done",subtitle:"So you always know where you left off, even weeks later.",children:e.jsxs("div",{className:"rd-tl",children:[e.jsxs("div",{className:"rd-te",children:[e.jsxs("div",{className:"rd-tdot",children:[e.jsx("div",{className:"rd-nd done",children:e.jsx(N,{size:12})}),e.jsx("div",{className:"rd-tline"})]}),e.jsxs("div",{className:"rd-tc",children:[e.jsxs("div",{className:"rd-tt",children:["Connected a Supabase project"," ",e.jsx("span",{className:"rd-when",children:s.connectedOn})]}),e.jsxs("div",{className:"rd-td",children:['Project "',s.supabaseProject,`" linked. CodeYam holds the keys — you don't manage servers.`]})]})]}),e.jsxs("div",{className:"rd-te",children:[e.jsxs("div",{className:"rd-tdot",children:[e.jsx("div",{className:"rd-nd done",children:e.jsx(N,{size:12})}),e.jsx("div",{className:"rd-tline"})]}),e.jsxs("div",{className:"rd-tc",children:[e.jsxs("div",{className:"rd-tt",children:["Described what to store"," ",e.jsx("span",{className:"rd-when",children:s.describedOn})]}),e.jsxs("div",{className:"rd-td",children:[t.pluralCap," and per-person saved lists. You can refine this above anytime."]})]})]}),e.jsxs("div",{className:"rd-te is-todo",children:[e.jsx("div",{className:"rd-tdot",children:e.jsx("div",{className:"rd-nd now",children:"3"})}),e.jsxs("div",{className:"rd-tc",children:[e.jsxs("div",{className:"rd-tt",children:["Plan & build the ",c.length," changes"]}),e.jsx("div",{className:"rd-td",children:"Next step. Nothing is built or charged until you do this."})]})]})]})}),e.jsxs("div",{className:"rd-foot",children:[e.jsx("button",{type:"button",className:"rd-cta"+(r?" done":""),onClick:x,disabled:r,children:r?"Added to your plans ✓":e.jsxs(e.Fragment,{children:["Plan these ",c.length," changes"," ",e.jsx("span",{className:"rd-ar",children:"→"})]})}),e.jsxs("div",{className:"rd-fnote",children:["They'll land in your ",e.jsx("b",{children:"Plan"})," tab. Your live app keeps working on its current data until they ship."]})]})]})}const Kw=Object.freeze(Object.defineProperty({__proto__:null,RealDataConnected:Zt},Symbol.toStringTag,{value:"Module"})),Yw=1800;function es({entity:t,onConnect:s}){const[a,o]=d.useState(!1),n=()=>{a||(o(!0),window.setTimeout(s,Yw))};return e.jsxs("div",{className:"rd-content",children:[e.jsxs("div",{className:"rd-shead",children:[e.jsx("div",{className:"rd-badge",children:e.jsx(R,{size:25})}),e.jsxs("div",{children:[e.jsxs("h1",{className:"rd-title",children:["Use real data ",e.jsx("span",{className:"rd-pill",children:"Not set up"})]}),e.jsxs("div",{className:"rd-via",children:["powered by ",e.jsx("b",{children:"Supabase"})]}),e.jsxs("p",{className:"rd-lead",children:["Right now your ",t.plural," live inside the code, and anything people save resets when they leave. To remember things for good, your app needs a database. CodeYam uses Supabase."]})]})]}),e.jsxs("div",{className:"rd-explain",children:[e.jsxs("div",{className:"rd-eh",children:[e.jsx("span",{className:"rd-q",children:"?"}),"New to Supabase? Here's the short version"]}),e.jsxs("div",{className:"rd-lede",children:[e.jsx("b",{children:"Supabase is your app's memory."})," It's a database — a secure, organised place your app stores everything it needs to remember: your"," ",t.plural,", who saved what, people's profiles. Think of a smart filing cabinet your app can read from and write to in an instant."]}),e.jsxs("div",{className:"rd-erows",children:[e.jsxs("div",{className:"rd-erow",children:[e.jsx("div",{className:"rd-en",children:e.jsx(R,{size:16})}),e.jsxs("div",{className:"rd-et",children:[e.jsx("b",{children:"It remembers everything"}),e.jsxs("span",{children:["Your ",t.plural,", saved lists, and profiles are kept safe"," ",e.jsx("em",{children:"even after everyone closes the app"}),", instead of resetting."]})]})]}),e.jsxs("div",{className:"rd-erow",children:[e.jsx("div",{className:"rd-en",children:e.jsx(G,{size:16})}),e.jsxs("div",{className:"rd-et",children:[e.jsx("b",{children:"It keeps data private"}),e.jsxs("span",{children:["Built-in rules decide who can see what, so"," ",e.jsx("em",{children:"one person can't read another's"})," saved ",t.plural," or details."]})]})]}),e.jsxs("div",{className:"rd-erow",children:[e.jsx("div",{className:"rd-en",children:e.jsx(Y,{size:16})}),e.jsxs("div",{className:"rd-et",children:[e.jsx("b",{children:"It's yours to edit"}),e.jsxs("span",{children:["Change a ",t.singular," in a simple screen and it updates"," ",e.jsx("em",{children:"everywhere, instantly"}),", with no developer involved."]})]})]})]}),e.jsxs("div",{className:"rd-why",children:[e.jsxs("div",{className:"rd-wh",children:[e.jsx(rt,{size:15}),"Why CodeYam picks Supabase for you"]}),[{lead:"Free to start, no card needed.",rest:"A generous free tier covers a new app comfortably. You only pay if it grows popular, and you'll see it coming."},{lead:"Built on standard Postgres.",rest:"Your core data lives in a standard Postgres database, so it's portable and easy to export — moving it elsewhere is straightforward. (Auth, file storage, and row-level security are Supabase-specific.)"},{lead:"Little for you to manage.",rest:`No servers to run or patch, and paid tiers keep automatic daily backups. One caveat on the free tier: ${Le("supabase.free").value} — so keep your own export and plan to upgrade before launch.`}].map(r=>e.jsxs("div",{className:"rd-whyrow",children:[e.jsx("span",{className:"rd-wc",children:e.jsx(N,{size:11})}),e.jsxs("p",{children:[e.jsx("b",{children:r.lead})," ",r.rest]})]},r.lead))]})]}),e.jsxs("div",{className:"rd-connect",children:[e.jsx("div",{className:"rd-ct",children:"Connect or create your Supabase project"}),e.jsx("div",{className:"rd-cd",children:"A new window opens on Supabase. If you already have an account, sign in. If not, you'll make one — it's free and takes a few minutes. CodeYam links to it and holds the keys, so you never touch a server."}),e.jsx("button",{type:"button",className:"rd-cbtn",onClick:n,disabled:a,children:a?e.jsxs(e.Fragment,{children:[e.jsx(it,{size:16}),"Opening Supabase…"]}):e.jsxs(e.Fragment,{children:[e.jsx(lt,{size:16}),"Connect Supabase"]})}),e.jsxs("div",{className:"rd-reassure",children:[e.jsxs("span",{children:[e.jsx(N,{size:13}),"Free to start, no card needed"]}),e.jsxs("span",{children:[e.jsx(N,{size:13}),"Takes about 3 minutes"]}),e.jsxs("span",{children:[e.jsx(N,{size:13}),"Disconnect any time"]})]})]}),e.jsx("div",{className:"rd-uplabel",children:"Then, once you're connected"}),e.jsxs("div",{className:"rd-locked",children:[e.jsxs("div",{className:"rd-lrow",children:[e.jsx("div",{className:"rd-ln",children:e.jsx(ct,{size:15})}),e.jsxs("div",{className:"rd-lt",children:[e.jsx("b",{children:"Tell us what to remember"}),e.jsxs("span",{children:['A sentence in plain language, like "store ',t.plural,' and which ones each person saved."']})]}),e.jsx("span",{className:"rd-lk",children:e.jsx(G,{size:15})})]}),e.jsxs("div",{className:"rd-lrow",children:[e.jsx("div",{className:"rd-ln",children:e.jsx(Y,{size:15})}),e.jsxs("div",{className:"rd-lt",children:[e.jsx("b",{children:"CodeYam builds your data & admin screen"}),e.jsxs("span",{children:["A ",t.singular," table, saved lists, and a simple screen to add or edit ",t.plural," — each a plan you preview before it ships."]})]}),e.jsx("span",{className:"rd-lk",children:e.jsx(G,{size:15})})]})]}),e.jsx("div",{className:"rd-uplabel",children:"Common questions"}),e.jsx(_t,{items:[{q:"What happens to my data if I stop paying or leave?",a:`Your data is in standard Postgres, so you can export it at any time and take it with you. On Supabase's free tier, ${Le("supabase.free").value}, so keep your own export and don't rely on it for anything you can't lose. Paid tiers add automatic daily backups, and because the core is Postgres, moving to another host later is straightforward.`},{q:"Is my data really safe on the free tier?",a:"It's secure, but the free tier is meant for building and trying things, not for production data you can't afford to lose. Free projects pause when idle and have no automatic backups, so upgrade to a paid tier (or keep regular exports) before real people depend on it."}]}),e.jsx(dt,{assistKey:"real-data",topicName:"Use real data"})]})}const Xw=Object.freeze(Object.defineProperty({__proto__:null,RealDataNotConnected:es},Symbol.toStringTag,{value:"Module"})),Zw={AppleGlyph:Jp,ArrowRightIcon:Wp,GoogleGlyph:Up,GraduationIcon:Vp,MagicLinkIcon:qp,PaperPlaneIcon:$p,PersonIcon:Gp,WarningTriangleIcon:zp,ChatIcon:at,CheckGlyph:N,ClockIcon:nt,CubeIcon:ot,InfoCircleIcon:st,LinkIcon:lt,ListLinesIcon:ct,ScreenIcon:Y,ShieldCheckIcon:rt,SpinnerIcon:it,XCircleIcon:K,SetupStepper:Hp,SetupStep:Fp,SetupAccountRow:Lp,MethodChips:Ip,EditableField:Ap,ExampleChips:Op,BuildList:Bp,ControlNote:Mp,SetupPlanFooter:Ep,AccountsConnected:Dp,EmailsConnected:Rp,PaymentsConnected:Tp,ModeBar:kp,RealDataConnected:Zt,RealDataNotConnected:es,RealDataZone:O,RealSetupFlow:Np,SetupNotConnected:Cp,DesignAssetDropLabel:wp,PendingFileCard:Pp,PendingFileList:jp,SaveAssetsButton:yp,AssetSaveErrorMessage:Sp,AssetSaveSuccessMessage:fp,ProviderAuthGate:hp,ProviderAuthenticateCta:by,GatedAgentChat:xy,ProviderAuthModal:uy,ClaudeOAuthFlow:my,ApiKeyFlow:py,AppServiceCredentialModal:vp,DetectedServiceRow:gp,ServiceRow:bp,ApiKeyField:xp,ProviderLogo:up,G:mp,ExternalServicesScreenConnected:pp,ConnectionIdentityLine:dp,PreviewForwardPortNotice:_p,AppCard:cp,AppDetail:lp,AppOverview:ip,BuildTab:rp,BuildTabLayout:np,BuildTabPane:op,BuildTabPaneLayout:ap,BuildTabRecoveryPanel:sp,BuildTabSessionContent:tp,BuildTabStartupError:ep,BuildTabReadyToBuildPlaceholder:kt,BuildTabTerminalSession:Zd,AppSelector:Nt,AppTypeBadge:Xd,BreadcrumbNav:Yd,EntityBreadcrumb:Kd,BuildingPreviewOverlay:Qd,ConnectionBadge:Vj,DebugModeButton:Jd,DebugModal:Wd,DebugModalElementPreview:Ud,DebugModalInfoPanel:Vd,DebugOverlay:qd,DebugAncestryList:$d,DebugAncestrySection:Gd,DebugPropsChips:zd,DebugFreezePill:Hd,OpenInEditorErrorToast:Fd,CyLogo:Ld,DeviceIcon:Id,EditorNavBar:Ad,DesktopTitleBar:Od,IdleBanner:Bd,EditorSessionRecoveryActionButton:Md,EditorSessionRecoveryDialog:Ed,EditorSessionRecoveryHeader:Dd,EditorSessionRecovery:Rd,EditorSessionRecoverySummaryRow:Td,EditorSessionRecoverySummary:kd,EditorShellHomeTabContent:Nd,EditorShellBuildLayer:Cd,EditorShellLayout:wd,EditorShellLeftPane:Pd,EditorShellPlanLayer:jd,EditorShellPreviewPane:Q,EditorShellTabLayer:yd,MobilePaneSwitcher:Sd,GearIcon:fd,EventCard:ce,EventStream:Tt,EntryTypeBadge:re,CollapsibleMarkdown:Ve,FeatureNameButton:hd,FeatureGroupView:de,FileChangeSummary:ae,FileStatusIndicator:vd,HistoryTab:gd,HistoryEntryCard:bd,HistoryDigest:xd,HistoryDigestStatRow:ud,HistoryRangeSelector:md,DigestHeader:pd,CommitOnlyHistoryRow:dd,NotificationSettingsPopover:_d,NotificationSettingsControls:cd,NotificationSetupBanner:ld,DebugNotificationsButton:id,IdleTriggerCheckbox:rd,JournalEntryCard:ne,JournalEntryDetails:oe,JournalView:jt,ReviewsTab:nd,ReviewDetailCard:od,ScenarioComparisonRow:ad,CapturePane:sd,ReviewFindingRow:td,LearnSetupScreen:Qe,LibrariesCatalogScreen:ed,LibraryGroupSection:Z_,LibraryRow:X_,AddTopicForm:Y_,SetupAddTopicRow:K_,SetupTopicRouter:Q_,ExternalServicesScreen:J_,HostingScreen:W_,RunLocallyScreen:U_,WiredProviderBanner:V_,StoreAccountsScreen:q_,ExtensionAssetsScreen:$_,PermissionsJustificationScreen:G_,PermissionRow:z_,ExtensionPrivacyPolicyScreen:H_,OAuthVerificationScreen:F_,SinglePurposeListingScreen:L_,ManifestVersioningScreen:I_,SubmitReviewScreen:A_,ExtensionDistributionScreen:O_,StagingPreviewScreen:B_,StagingEnvironmentScreen:M_,PreReleaseScreen:E_,RealDataScreen:D_,DeployTargetScreen:R_,DatabaseBackupsScreen:T_,SecretsScreen:k_,ApiAuthScreen:N_,CorsOriginsScreen:C_,BackgroundJobsScreen:w_,LoggingMonitoringScreen:P_,AccountsScreen:j_,EmailsScreen:y_,PaymentsScreen:S_,AnalyticsMonitoringScreen:f_,LegalScreen:h_,DataSafetyScreen:v_,PublishScreen:g_,CustomDomainScreen:b_,FormsScreen:x_,AnalyticsSeoScreen:u_,RedirectsNotFoundScreen:m_,PerformanceImagesScreen:p_,CommentsSearchScreen:d_,PublishRegistryScreen:__,VersioningChangelogScreen:c_,InstallDocsScreen:l_,ReleaseBuildsScreen:i_,ShellCompletionsScreen:r_,CliUxScreen:n_,SupplyChainScreen:o_,ExamplesScreen:a_,ApiDocsScreen:s_,BackendApiDocsScreen:t_,SemverPolicyScreen:e_,ReadmeLicenseScreen:Zc,ChangelogCiScreen:Xc,DevAccountsScreen:Yc,StoreAssetsScreen:Kc,StoreListingScreen:Qc,TestingDistributionScreen:Jc,PushNotificationsScreen:Wc,CrashReportingScreen:Uc,InAppPurchasesScreen:Vc,AppPrivacyScreen:qc,AppReviewScreen:$c,LabeledSection:w,FilterBar:Rt,LeftPanel:Gc,ModifiedFilesList:We,NavLink:J,Markdown:ft,NewProjectQuestionnaire:zc,NewProjectQuestionnaireInner:Hc,DesignAddAssetsStep:Fc,QuestionnaireDesignApproachStep:Lc,QuestionnaireNotificationsStep:Ic,QuestionnaireDesignChatStep:Ac,QuestionnaireDesignChatLaunchPanel:Oc,MockupArchivedRoundView:Bc,MockupCard:Mc,MockupCardPreviewSlot:Ec,MockupCardFeedback:Dc,MockupFeedbackCommentBox:Rc,MockupFeedbackRatingSlider:Tc,MockupGridGeneratingOverlay:kc,MockupGridInfoBanner:Nc,MockupGridIterateButton:Cc,MockupPlaceholderCard:wc,MockupRoundPager:Pc,DesignExplorationView:Xe,DesignRoundPreviewPane:Dt,QuestionnaireIntroBanner:jc,QuestionnaireDeviceSelector:yc,QuestionnaireNavButtons:Sc,QuestionnaireOptionCard:fc,PanelDivider:hc,PromptDropdownPanel:vc,PreviewCanvas:gc,PreviewEmptyState:bc,PreviewFrame:xc,BackendResultsPanelView:uc,PlanPreviewPanelView:mc,PlanPreviewEmptyState:pc,PlanPreviewHeader:dc,ProjectSetupPreviewView:_c,ProjectSetupPreviewPane:cc,StartBuildingConfirmModal:lc,ResetBuildConfirmModal:ic,ProjectSetupHeader:rc,ProjectSetupDescriptionCard:nc,ProjectSetupDesignCard:oc,ProjectSetupChosenMockup:ac,ProjectSetupDesignAssetList:sc,ProjectLauncher:jP,ProjectRow:yP,ProjectRowActions:SP,ProjectScanForm:fP,ProjectCreateForm:hP,ProjectBootstrapBanner:vP,Thumbnail:gP,RunningBadge:bP,CurrentBadge:xP,ProjectLauncherHeader:uP,ProjectLauncherLoading:mP,ProjectLauncherError:pP,ProjectLauncherEmpty:dP,ProjectOpenError:_P,CreateProjectModal:cP,ProjectLauncherScreen:lP,OpenSourceProjectsSection:iP,OpenSourceProjectRow:rP,ProjectSetupProgressList:tc,ProjectSetupProgressRow:ec,LiveIframeHealthPill:Zl,PreviewPanel:Q,BuildLogsModal:Xl,SimulatorLauncherControls:Yl,SimulatorPreviewFrame:()=>d.createElement(Yp,{currentWidth:390,currentHeight:844,isFilled:!1,scale:.6,pollMs:6e4}),SimulatorNotBootedPrompt:()=>d.createElement(Kp,{pollMs:6e4}),NoBootedSimulatorPlaceholder:Kl,DeviceFrameImage:()=>d.createElement(Qp,{src:"/api/screenshots/app-overview-single-app--desktop.png",currentWidth:390,currentHeight:844,isFilled:!1,scale:1}),SimulatorFrameNotice:Ql,NativeMirrorNotice:Jl,QuestionnaireStepNav:Wl,QuestionnaireStepPanel:Ul,AppDetailContent:Vl,AppDetailContentError:ql,AppDetailContentLoading:$l,AppDetailHeader:Gl,AppCapabilitiesPanel:zl,AppStackPanel:Hl,AppStackPanelSummary:Fl,AppStackPanelBody:Ll,AppStackCapabilitiesSlot:Il,CapabilityRow:Al,AppTestSummary:Ol,LayoutChainCard:Bl,LayoutChainSection:Ml,RouteDependencyCard:El,RouteDependencyCardHeader:Dl,RouteDependencyEmptyState:Rl,RouteDependencyList:Tl,RouteDependencyScenarioStrip:kl,RouteEntityDetail:Nl,RouteEntityDetailContent:Cl,RouteFunctionCard:wl,RouteFunctionEmptyState:Pl,RouteFunctionList:jl,RouteEntityDetailHeader:yl,RouteEntityTabs:Sl,RouteGroupView:pe,RouteImportRow:me,RouteList:fl,UnsurfacedPagesSection:hl,UnsurfacedPagesSectionHeader:vl,UnsurfacedPageGroup:gl,UnsurfacedPageRow:bl,UnsurfacedPageRowSummary:xl,UnsurfacedPageInvestigateButton:ul,RouteListCardThumbnail:ml,RouteScenarioList:pl,ScenarioCard:Ye,ScenarioRow:dl,ScenarioDetailPanel:Et,MockBodyEditor:xe,MockBodyHeadersEditor:ut,MockBodyJsonTextarea:ue,MockPanelGroup:Mt,MockPanelHeader:Bt,MockPanelRow:ve,MockPanelRowActions:be,MockPanelRowHeader:ge,MockSourceBadge:xt,ScenarioThumbnailGrid:Ue,StatusBadge:_e,StepIndicatorBar:_l,StepIndicatorDropdownItem:cl,TabPane:ll,TestItem:Ke,TestGroupHeader:il,TestGroupList:rl,TestGroupRow:nl,TestResultsBadge:Je,TestSummary:Ot,TestStatusIcon:ol,ThumbnailStrip:al,CollapseToggleButton:sl,DimensionInput:tl,EditorShell:el,EntityDetail:Zi,EntityDetailContent:Xi,EntityDetailHeader:Yi,EntityRefCard:Ki,EntityRefList:Qi,FillPreviewButton:Ji,OpenInNewTabButton:Wi,PlaceholderPane:At,SettingsTab:Ui,CheckInToggleRow:Vi,WorkflowSettingsSection:qi,HardeningAutoAction:$i,SegmentedPicker:Gi,PlanTab:zi,PlanTabHeader:Hi,PlanNextChangeButton:Fi,PlanAuthoringChat:Li,PlanSubTabs:Ii,DescribePane:Ai,PrototypePane:Oi,PrototypeAgentChat:Bi,StartPrototypingButton:Mi,FinishAndFormalizeButton:Ei,PrototypeBuildingInProgressBanner:Di,PlanChatLaunchCaption:Ri,PlanExpandedHeader:Ti,PlanRow:ki,PlanRowClaimBadge:Ni,PlanRowDependencyEntry:Ci,PlanRowEditButton:wi,PlanRowEditChatButton:Pi,PlanRowExpandedBody:ji,PlanRowExpandedChat:yi,PlanRowExpandedDependencies:Si,PlanRowExpandedEdit:fi,PlanRowExpandedView:hi,PlanRunButton:vi,PlanRunBlockedModal:gi,PlanRunForeignClaimModal:bi,PlanRunDependenciesModal:xi,QueuedChangesSection:ui,InFlightSection:mi,InFlightPlanRow:pi,CommitQueueSection:di,CommitQueueRow:_i,CommitQueuePriorityChip:ci,CommitQueueReleaseButton:li,CommitQueueSaveBar:ii,CommitQueueRowIdentity:ri,SortablePlanRow:ni,RecentPlansSection:oi,CompletedPlanRow:ai,CompletedPlanExpandedBody:si,TabScrollPanel:ti,BuildLaunchModal:ei,GlobalFileDropOverlay:Zr,GlobalFileDropToast:Xr,FileDropConfirmModal:Ze,FileDropConfirmModalAgentReadyShowcase:Lt,AttachFileButton:dy,PostPushTransition:Yr,PostPushTransitionDialog:Kr,SelectPlanModal:Qr,PlanCompleteDialog:Jr,PlanCompleteTransition:Wr,ScenarioRenderer:ts,ScenariosView:Ft,TerminalEmulator:Ur,RawTerminalModal:Vr,RawTerminalEmulator:qr,SetupTerminalPane:$r,SetupTerminalHeader:Gr,SetupBrowserPane:zr,SetupBrowserHeader:Hr,TerminalDropOverlay:Fr,TerminalDropToast:Lr,TerminalDisconnectOverlay:_y,MobileTerminalCommandMenu:Ir,MobileTerminalCommandMenuPanel:Ar,TerminalConnectingHint:cy,TerminalReconnectingBanner:ly,TerminalFailedBanner:iy,TerminalServerStoppedBanner:ry,TestsView:Ht,NavigationBar:Or,PagePill:Br,PagePickerDropdown:Mr,StatesDropdown:Er,CreateStatePlaceholderModal:Dr,StatesPillButton:Rr,EditDataButton:zt,EditDataPopover:Gt,EditDataPopoverBody:je,EditDataPopoverDescribeInput:Pe,EditDataPopoverHeader:Te,EditDataPopoverResizeHandleLeft:Re,EditDataPopoverSaveCancelClose:we,EditDataPopoverSearchInput:Ce,EditDataPopoverSectionSelector:Ne,EditDataPopoverTabStrip:ke,ScenarioDataPanelMainProps:ye,ScenarioDataPanelPropsEditor:Se,ViewportPresetButton:Tr,PagePickerTabButton:kr,PagePickerEmptyMessage:Nr,PagePickerScenarioThumbnail:Cr,PagePickerRouteSection:wr,StatesDropdownRow:Pr,ComponentGlyph:jr,DropdownChevron:yr,PageGlyph:Sr,ViewTabs:$t,SessionResultsPanel:fr,SessionResultsPanelHeader:hr,MinimizedSessionResults:vr,BackendResultsPage:gr,BackendResultsHeader:br,BuildProgressDetail:xr,BuildFileRow:ur,FunctionChangeRow:mr,BackendConnectionStatusBadge:pr,BehaviorGallery:dr,ChangeCard:_r,WaysToTestList:cr,BehaviorGroup:lr,BehaviorItem:ir,BehaviorEvidenceDrawer:rr,RerunSection:nr,BehaviorExampleTable:or,BehaviorGalleryEmptyState:ar,RunEvidenceLine:sr,NarrativeTestStatusIcon:tr,CoverageBadge:et,CoverageBar:er,CoverageWarningsBanner:Zn,CoverageSectionHeader:Xn,OrphanedFileRow:Yn,CoverageDetailsModal:Kn,CoverageFileDrilldown:Qn,CoverageDetailsEntriesSection:Jn,CoverageDetailsEntryRow:Wn,CoverageDetailsOrphanedSection:Un,CoverageDetailsDirectoriesSection:Vn,CoverageDetailsDirectoryGroup:qn,CoverageDetailsDirectoryFileRow:$n,CoverageLineRow:Gn,AppCardFooter:zn,RunTestsButton:Hn,TestBar:Fn,AppCardHeader:Ln,AppCardScenarioStrip:In,AppOverviewEmptyState:An,AppOverviewEmptyStateBuildingPanel:On,AppOverviewEmptyStateNoAppPanel:Bn,OpenBuildTabButton:Mn,AppOverviewGrid:En,AppOverviewHeader:Dn,HomeBuildStatusSection:Rn,ExploreRail:Tn,CopyButton:kn,CrashLogFooter:Nn,CrashLogFooterMessage:Cn,CrashLogHeader:wn,CrashLogViewer:Pn,DevServerCrashLog:jn,DevServerRestartingOverlay:qt,DevServerStartingOverlay:Vt,DevServerStoppedOverlay:Ut,PreviewUnhealthyOverlay:yn,ClientRoutingAdvisory:Sn,PreviewErrorOverlay:fn,PreviewErrorOverlayHeader:hn,PreviewErrorOverlayFooter:vn,PreviewErrorList:gn,PreviewErrorRow:bn,PreviewErrorBadge:xn,BuildSpinner:un,BuildShaBadge:mn,RestartSpinner:se,RouteEntitySection:Wt,RouteImportEmptyState:De,RouteImportList:Jt,RouteListCard:pn,RouteListEmptyState:dn,RouteListSection:_n,RouteListSectionHeader:cn,RouteScenarioEmptyState:ln,RouteSummaryCard:Qt,DoorRows:rn,BuildingDoor:nn,SafeScreenshot:on,ScenarioRowMeta:an,ScenarioRowOverrideBadge:sn,ScenarioRowThumbnail:tn,SidebarGroupOverrideHeader:ny,SidebarInheritedSection:oy,DataViewerCategoryBadge:ay,DataViewerCellEditor:sy,DataViewerTabBar:Kt,DataViewerTable:ty,ScenarioDataPanel:mt,ScenarioDataPanelCloseButton:ey,ScenarioDataPanelEditChatButton:ZS,ScenarioDataPanelEmptyState:XS,ScenarioDataPanelFullPage:kP,ScenarioDataPanelHeader:YS,ScenarioDataPanelInspectButton:KS,ScenarioDataPanelMainMock:QS,ScenarioDataPanelMainMockEditable:vt,ScenarioDataPanelMainMockHeader:JS,ScenarioDataPanelMainMockReadOnly:ht,ScenarioDataPanelMainTable:gt,ScenarioDataPanelOpenInNewButton:WS,ScenarioDataPanelMockDataBadge:US,ScenarioDataPanelMockDataStrip:VS,ScenarioDataPanelSidebar:qS,SaveScopeChoiceRow:$S,SaveScopeModal:GS,SidebarMockEntryRow:zS,MockSharedSlugBadge:HS,ScenarioDraftBar:FS,JsonBodyActions:LS,JsonTreeAddKeyInput:IS,JsonTreeArrayNode:AS,JsonTreeEditor:OS,JsonTreeNode:BS,JsonTreeNodeLine:MS,JsonTreeObjectNode:ES,JsonTreePrimitiveEditor:DS,JsonTreePrimitiveNode:RS,ScenarioRenameForm:en,ScenarioRowActions:Zo,MiniAgentChat:TS,MiniAgentLaunchOverlay:kS,EnvelopeIcon:Xo,SendTranscriptModal:tt,SendTranscriptOverlay:Yt,ContainerInspector:qj,InspectorScenarioSection:$j,InspectorRouteTable:Gj,InspectorTrafficSection:zj,InspectorExplainerSection:Hj,InspectorExplainerResult:Fj,InspectorPrimitivesShowcase:Z,InspectorTrafficRowShowcase:ee,InspectorTrafficDetail:Lj,InspectorTrafficFilterBar:Ij,InspectorTrafficTable:Aj,InspectorTrafficUrlChips:Oj,InspectorUrlGlossary:Bj,InspectorPrimitives:Z,InspectorTrafficRow:ee,StepsSimulator:Cj,StepsSimulatorStepList:wj,StepsSimulatorVariableControl:Pj,StepsSimulatorInstructionsPanel:jj,SeedErrorBanner:Yo,SeedLoadingOverlay:Ko,PreviewLoadingSpinner:Qo,StaleDbStripeOverlay:Xt,ScenarioSeedErrorView:Me,InspectModeRibbon:Jo,IframeClickThroughErrorCard:Wo,InspectResultCard:Uo,InspectResultCardBackdrop:Vo,InspectResultCardBody:qo,InspectResultCardHeader:$o,InspectResultCardMatchButton:Go,InspectResultCardMatchList:zo,SkeletonBar:Ho,PreviewWaitingPlaceholder:Fo,AgentInputProvider:bt,Alts:Lo,AskBox:Io,Badge:I,BellIcon:Ao,BoxIcon:Oo,CardIcon:Bo,ChartIcon:Mo,Check:Eo,ChevronLeftIcon:Do,ChevronRightIcon:Ro,Chips:To,CloseIcon:ko,CloudIcon:No,DatabaseIcon:R,DocIcon:Co,EmbeddedPreviewPlaceholder:wo,EmptyTabCopy:Po,ExploreIcon:jo,Faq:yo,GlobeIcon:So,HSHeader:fo,HostingConnectStep:ho,HostingDeployStep:vo,HostingRealDeployStep:go,HostingLiveStep:bo,HostingOverviewConnected:xo,HostingOverviewGuided:uo,Journey:mo,LightbulbIcon:po,LockIcon:G,MailIcon:_o,OpenInNewTabIcon:co,PlansIcon:lo,ProviderMark:io,QuestionnaireOptionIndicator:ro,Reasons:no,RefreshCycleIcon:oo,RefreshPreviewButton:ao,ReqList:so,RocketIcon:to,SetupIcon:eo,SimulatedSetupOverview:Za,SimulatedSetupScreen:Xa,StatusBox:$,StoreAlternativesNote:Ya,TeachSetupScreen:Ka,TerminalCopiedToast:Qa,TerminalIcon:Ja,ThumbDownIcon:Wa,ThumbUpIcon:Ua,VercelMark:Va,ActiveScenarioOverlay:qa,Alternatives:$a,FactFreshness:Ga,ProviderCard:za,TopicFaq:_t,FaqSection:Ha,ChangelogSection:Fa,ApplicationGroups:La,BranchRows:yj,BrowserStateButton:NS,BrowserStateTab:CS,CheckList:Ia,CollapsedImpactedScenarios:Aa,ColorPalettePicker:Oa,ColorSwatchEditor:Ba,ComponentGroups:Ma,CostCallout:Ea,DataViewerCell:wS,DataViewerColumnHeader:PS,DataViewerRow:jS,DataViewerTabButton:Ee,DesignAssetDropZone:Da,DesignAssetsView:Ra,DesignChatPreviewPane:Ta,DetailSection:Mj,DevServerFailedPanel:ka,FilesList:Na,FlowBar:Ca,FontOptionRow:wa,FontPicker:Pa,FunctionsList:ja,HomeLanding:ya,MethodBadge:M,MockupCardFooter:Sa,MockupCardThemeToggleButton:fa,MockupCustomizeColorsPanel:ha,MockupCustomizeFontsPanel:va,MockupCustomizePreviewArea:ga,MockupCustomizeToolbar:ba,MockupCustomizeView:xa,MockupGrid:ua,PagerArrowButton:ma,PanelBody:Sj,PanelHeader:fj,PlanClaimSyncBanner:pa,PreviewPortMismatchCard:da,QueuedChangesBody:_a,RecentPlansBody:ca,ReqItem:la,RunLocallyCommandRow:ia,ScenarioRendererAppDeadEnd:Be,ScenarioThumbnail:ra,ScenarioThumbnailStrip:na,Section:oa,SectionHeader:St,ServerStalenessBanner:aa,UpdateAvailableBanner:sa,SetupGoalAssist:ta,SetupGoalAssistList:dt,SetupCompleteCta:ea,SetupDetailHeader:Zs,SetupFlowBar:Xs,SetupSubCrumb:Ys,SetupTopicPlaceholder:Ks,SidebarGroup:yS,SimulatedConnect:Qs,SimulatedProvision:Js,SimulatedReady:Ws,StatusIndicator:Us,StatusPill:Vs,StepRow:hj,StoreCard:qs,TerminalServerErrorBanner:SS,UserPrompt:$s,VariableField:vj,ConceptTerm:Pt,ConceptsGlossaryScreen:wt,LearnSetupConceptsNudge:Ct,MockupGridEmptyState:Gs,TerminalEdgeUnreachableBanner:fS,TerminalSessionStaleBanner:hS,WebFallbackNotice:zs,PreviewSignInNotice:yt,NonWebAppDetail:Hs,ScenarioTypeSection:Fs,ScenarioImpactSection:Ls,ReviewCard:Is,SetupExternalLink:As,SetupJourney:pt,SetupSplit:Os,SetupStack:Bs,SetupOrbit:Ms,SetupBars:Es,SetupEmblem:Ds,SetupChannels:Rs,SetupTopicPage:Ts,GridColumnsIcon:ks,GridDensityControl:Ns,HomeExploreSection:Cs,LivePageScenariosModal:ws,RouteListTabs:Ps,ComponentSurfaceReasonNote:js,ScenarioGalleryModal:ys,FullScreenIcon:Ss};function eC({traceWindow:t}){const[s,a]=d.useState(!1),[o,n]=d.useState([]),[r,l]=d.useState(!1),[c,_]=d.useState(!1),[m,x]=d.useState(null);d.useEffect(()=>{if(!s||o.length>0||c||m)return;let i=!0;async function b(){l(!0),x(null);try{const g=await fetch(`/api/events/window?from=${t.from}&to=${t.to}`);if(!i)return;if(!g.ok)throw new Error(`HTTP ${g.status}`);const f=await g.json();f.evicted?_(!0):n(f.events||[])}catch(g){i&&x(g instanceof Error?g.message:String(g))}finally{i&&l(!1)}}return b(),()=>{i=!1}},[s,t.from,t.to,o.length,c,m]);const u=()=>{a(i=>!s)};return e.jsxs("div",{className:"mt-2","data-testid":"behavior-trace-section",children:[e.jsxs("button",{onClick:u,className:"flex items-center gap-x-1.5 text-[10px] font-semibold uppercase tracking-wide text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors focus:outline-none","aria-expanded":s,"data-testid":"trace-toggle-btn",children:[e.jsx("svg",{className:`w-3 h-3 transition-transform ${s?"rotate-90":""}`,fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:e.jsx("path",{d:"M9 5l7 7-7 7",strokeLinecap:"round",strokeLinejoin:"round"})}),e.jsx("span",{children:"Trace"})]}),s&&e.jsxs("div",{className:"mt-1 ml-4","data-testid":"trace-content",children:[r&&e.jsxs("p",{className:"text-[11px] text-[var(--text-dim)] m-0 animate-pulse",children:["Loading trace window ",t.from,"..",t.to,"…"]}),m&&e.jsxs("p",{className:"text-[11px] text-red-600 m-0","data-testid":"trace-error",children:["Could not load trace: ",m]}),c&&e.jsx("p",{className:"text-[11px] text-[var(--text-secondary)] italic m-0","data-testid":"trace-evicted",children:"Trace no longer available — re-run to capture a fresh one."}),!r&&!m&&!c&&o.length===0&&e.jsx("p",{className:"text-[11px] text-[var(--text-dim)] italic m-0","data-testid":"trace-empty",children:"No intercepted calls captured during this run."}),!r&&!m&&!c&&o.length>0&&e.jsx("div",{className:"max-h-60 overflow-y-auto border border-[var(--border-muted)] rounded bg-[var(--bg-secondary)] p-2 space-y-1.5 font-mono text-[10px] leading-relaxed text-[var(--text-secondary)] shadow-inner","data-testid":"trace-events-list",children:o.map((i,b)=>{const g=i.seq!==void 0?`#${i.seq}`:"";return i.type==="http_request"?e.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-1.5","data-testid":"trace-event-http",children:[e.jsx("span",{className:"text-emerald-600 font-bold",children:"[HTTP]"}),e.jsx("span",{className:"text-[var(--text-muted)] text-[9px]",children:g}),e.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:i.method}),e.jsx("span",{className:"break-all text-[var(--text-secondary)]",children:i.url}),i.status!==void 0&&e.jsxs("span",{className:`font-semibold ${i.status>=400?"text-red-600":"text-emerald-600"}`,children:["→ ",i.status]}),i.durationMs!==void 0&&e.jsxs("span",{className:"text-[var(--text-dim)]",children:["(",i.durationMs,"ms)"]}),i.mocked&&e.jsx("span",{className:"px-1 py-0.2 bg-purple-100 text-purple-700 text-[8px] rounded font-sans uppercase font-bold tracking-wider",children:"Mocked"})]},b):i.type==="db_query"?e.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-1.5","data-testid":"trace-event-db",children:[e.jsx("span",{className:"text-blue-600 font-bold",children:"[SQL]"}),e.jsx("span",{className:"text-[var(--text-muted)] text-[9px]",children:g}),e.jsx("span",{className:"italic break-all text-[var(--text-secondary)]",children:i.query}),i.durationMs!==void 0&&e.jsxs("span",{className:"text-[var(--text-dim)]",children:["(",i.durationMs,"ms)"]})]},b):i.type==="error"?e.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-1.5","data-testid":"trace-event-error",children:[e.jsx("span",{className:"text-red-600 font-bold",children:"[ERROR]"}),e.jsx("span",{className:"text-[var(--text-muted)] text-[9px]",children:g}),i.source&&e.jsxs("span",{className:"text-red-700 font-semibold",children:[i.source,":"]}),e.jsx("span",{className:"text-red-600 break-all",children:i.message})]},b):i.type==="process_output"?e.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-1.5","data-testid":"trace-event-process",children:[e.jsx("span",{className:"text-amber-600 font-bold",children:"[PROC]"}),e.jsx("span",{className:"text-[var(--text-muted)] text-[9px]",children:g}),i.source&&e.jsxs("span",{className:"text-amber-700 font-semibold",children:[i.source,":"]}),e.jsx("span",{className:"text-[var(--text-secondary)] break-all",children:i.output})]},b):i.type==="scenario_switch"?e.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-1.5","data-testid":"trace-event-scenario",children:[e.jsx("span",{className:"text-purple-600 font-bold",children:"[SCENARIO]"}),e.jsx("span",{className:"text-[var(--text-muted)] text-[9px]",children:g}),e.jsxs("span",{className:"text-[var(--text-secondary)] font-semibold",children:["Active Slug: ",i.scenarioSlug]})]},b):i.type==="hook_execution"?e.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-1.5","data-testid":"trace-event-hook",children:[e.jsx("span",{className:"text-indigo-600 font-bold",children:"[HOOK]"}),e.jsx("span",{className:"text-[var(--text-muted)] text-[9px]",children:g}),e.jsx("span",{className:"font-semibold text-[var(--text-primary)]",children:i.hookName}),i.exitCode!==void 0&&e.jsxs("span",{className:`font-semibold ${i.exitCode!==0?"text-red-600":"text-emerald-600"}`,children:["exit ",i.exitCode]}),i.durationMs!==void 0&&e.jsxs("span",{className:"text-[var(--text-dim)]",children:["(",i.durationMs,"ms)"]})]},b):e.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-1.5","data-testid":"trace-event-generic",children:[e.jsxs("span",{className:"text-gray-500 font-bold",children:["[",i.type.toUpperCase(),"]"]}),e.jsx("span",{className:"text-[var(--text-muted)] text-[9px]",children:g}),e.jsx("span",{className:"text-[var(--text-secondary)] break-all",children:JSON.stringify(i)})]},b)})})]})]})}const tC=Object.freeze(Object.defineProperty({__proto__:null,BehaviorTraceSection:eC},Symbol.toStringTag,{value:"Module"}));function sC(t,s=()=>{}){const a={};for(const o of Object.values(t))for(const[n,r]of Object.entries(o))if(!(n==="default"||!aC(n))&&typeof r=="function"){if(Object.prototype.hasOwnProperty.call(a,n)){s(n);continue}a[n]=r}return a}function aC(t){return/^[A-Z]/.test(t)}const oC=Object.assign({"../components/AccountsRealConnect.tsx":mS,"../components/AccountsScreen.tsx":pS,"../components/ActiveScenarioOverlay.tsx":dS,"../components/AddTopicForm.tsx":_S,"../components/AnalyticsMonitoringScreen.tsx":cS,"../components/AnalyticsSeoScreen.tsx":lS,"../components/ApiAuthScreen.tsx":iS,"../components/ApiDocsScreen.tsx":rS,"../components/AppCapabilitiesPanel.tsx":nS,"../components/AppCard.tsx":oS,"../components/AppCardFooter.tsx":aS,"../components/AppCardHeader.tsx":sS,"../components/AppCardScenarioStrip.tsx":tS,"../components/AppDetail.tsx":eS,"../components/AppDetailContent.tsx":Z0,"../components/AppDetailContentError.tsx":X0,"../components/AppDetailContentLoading.tsx":Y0,"../components/AppDetailHeader.tsx":K0,"../components/AppOverview.tsx":Q0,"../components/AppOverviewEmptyState.tsx":J0,"../components/AppOverviewEmptyStateBuildingPanel.tsx":W0,"../components/AppOverviewEmptyStateNoAppPanel.tsx":U0,"../components/AppOverviewGrid.tsx":V0,"../components/AppOverviewHeader.tsx":q0,"../components/AppPrivacyScreen.tsx":$0,"../components/AppReviewScreen.tsx":G0,"../components/AppSelector.tsx":LP,"../components/AppServiceCredentialModal.tsx":z0,"../components/AppStackCapabilitiesSlot.tsx":H0,"../components/AppStackPanel.tsx":F0,"../components/AppStackPanelBody.tsx":L0,"../components/AppStackPanelSummary.tsx":I0,"../components/AppTestSummary.tsx":A0,"../components/AppTypeBadge.tsx":O0,"../components/AssetSaveErrorMessage.tsx":B0,"../components/AssetSaveSuccessMessage.tsx":M0,"../components/AttachFileButton.tsx":gj,"../components/BackendApiDocsScreen.tsx":E0,"../components/BackendConnectionStatusBadge.tsx":D0,"../components/BackendResultsHeader.tsx":R0,"../components/BackendResultsPage.tsx":T0,"../components/BackendResultsPanelView.tsx":k0,"../components/BackgroundJobsScreen.tsx":N0,"../components/BehaviorEvidenceDrawer.tsx":C0,"../components/BehaviorExampleTable.tsx":w0,"../components/BehaviorGallery.tsx":P0,"../components/BehaviorGalleryEmptyState.tsx":j0,"../components/BehaviorGroup.tsx":y0,"../components/BehaviorItem.tsx":S0,"../components/BehaviorTraceSection.tsx":tC,"../components/BreadcrumbNav.tsx":f0,"../components/BrowserStateTab.tsx":bj,"../components/BuildFileRow.tsx":h0,"../components/BuildLaunchModal.tsx":v0,"../components/BuildLogsModal.tsx":g0,"../components/BuildProgressDetail.tsx":b0,"../components/BuildShaBadge.tsx":x0,"../components/BuildSpinner.tsx":u0,"../components/BuildTab.tsx":m0,"../components/BuildTabLayout.tsx":p0,"../components/BuildTabPane.tsx":d0,"../components/BuildTabPaneLayout.tsx":_0,"../components/BuildTabReadyToBuildPlaceholder.tsx":FP,"../components/BuildTabRecoveryPanel.tsx":c0,"../components/BuildTabSessionContent.tsx":l0,"../components/BuildTabStartupError.tsx":i0,"../components/BuildTabTerminalSession.tsx":r0,"../components/BuildingDoor.tsx":n0,"../components/BuildingPreviewOverlay.tsx":o0,"../components/ChangeCard.tsx":a0,"../components/ChangelogCiScreen.tsx":s0,"../components/CheckInToggleRow.tsx":t0,"../components/CliUxScreen.tsx":e0,"../components/ClientRoutingAdvisory.tsx":Zf,"../components/CollapseToggleButton.tsx":Xf,"../components/CollapsibleMarkdown.tsx":Yf,"../components/ColorPalettePicker.tsx":Kf,"../components/ColorSwatchEditor.tsx":Qf,"../components/CommentsSearchScreen.tsx":Jf,"../components/CommitOnlyHistoryRow.tsx":Wf,"../components/CommitQueuePriorityChip.tsx":Uf,"../components/CommitQueueReleaseButton.tsx":Vf,"../components/CommitQueueRow.tsx":qf,"../components/CommitQueueRowIdentity.tsx":$f,"../components/CommitQueueSaveBar.tsx":Gf,"../components/CommitQueueSection.tsx":zf,"../components/CompletedPlanExpandedBody.tsx":Hf,"../components/CompletedPlanRow.tsx":Ff,"../components/ComponentSurfaceReasonNote.tsx":Lf,"../components/ConceptShowcase.tsx":IP,"../components/ConceptTerm.tsx":If,"../components/ConceptsContext.tsx":Af,"../components/ConceptsGlossaryScreen.tsx":Of,"../components/ConnectionBadge.tsx":nP,"../components/ConnectionIdentityLine.tsx":Bf,"../components/ContainerInspector.tsx":oP,"../components/CopyButton.tsx":Mf,"../components/CorsOriginsScreen.tsx":Ef,"../components/CoverageBadge.tsx":Df,"../components/CoverageBar.tsx":Rf,"../components/CoverageDetailsDirectoriesSection.tsx":Tf,"../components/CoverageDetailsDirectoryFileRow.tsx":kf,"../components/CoverageDetailsDirectoryGroup.tsx":Nf,"../components/CoverageDetailsEntriesSection.tsx":Cf,"../components/CoverageDetailsEntryRow.tsx":wf,"../components/CoverageDetailsModal.tsx":Pf,"../components/CoverageDetailsOrphanedSection.tsx":jf,"../components/CoverageFileDrilldown.tsx":yf,"../components/CoverageLineRow.tsx":Sf,"../components/CoverageSectionHeader.tsx":ff,"../components/CoverageWarningsBanner.tsx":hf,"../components/CrashLogFooter.tsx":vf,"../components/CrashLogFooterMessage.tsx":gf,"../components/CrashLogHeader.tsx":bf,"../components/CrashLogViewer.tsx":xf,"../components/CrashReportingScreen.tsx":uf,"../components/CreateProjectModal.tsx":NP,"../components/CreateStatePlaceholderModal.tsx":mf,"../components/CustomDomainScreen.tsx":pf,"../components/CyLogo.tsx":df,"../components/DataSafetyScreen.tsx":_f,"../components/DataViewerCategoryBadge.tsx":xj,"../components/DataViewerCellEditor.tsx":uj,"../components/DataViewerTabBar.tsx":Lw,"../components/DataViewerTable.tsx":mj,"../components/DatabaseBackupsScreen.tsx":cf,"../components/DebugAncestryList.tsx":lf,"../components/DebugAncestrySection.tsx":rf,"../components/DebugFreezePill.tsx":nf,"../components/DebugModal.tsx":of,"../components/DebugModalElementPreview.tsx":af,"../components/DebugModalInfoPanel.tsx":sf,"../components/DebugModeButton.tsx":tf,"../components/DebugNotificationsButton.tsx":ef,"../components/DebugOverlay.tsx":Zh,"../components/DebugPropsChips.tsx":Xh,"../components/DeployTargetScreen.tsx":Yh,"../components/DescribePane.tsx":Kh,"../components/DesignAddAssetsStep.tsx":Qh,"../components/DesignAssetDropLabel.tsx":Jh,"../components/DesignAssetDropZone.tsx":Wh,"../components/DesignAssetsView.tsx":Uh,"../components/DesignChatPreviewPane.tsx":Vh,"../components/DesignExplorationView.tsx":qh,"../components/DesignRoundPreviewPane.tsx":QP,"../components/DesktopTitleBar.tsx":$h,"../components/DetectedServiceRow.tsx":Gh,"../components/DevAccountsScreen.tsx":zh,"../components/DevServerCrashLog.tsx":Hh,"../components/DevServerFailedPanel.tsx":Fh,"../components/DevServerRestartingOverlay.tsx":Dw,"../components/DevServerStartingOverlay.tsx":Ew,"../components/DevServerStoppedOverlay.tsx":Mw,"../components/DeviceFrameImage.tsx":Lh,"../components/DeviceIcon.tsx":Ih,"../components/DimensionInput.tsx":Ah,"../components/DoorRows.tsx":Oh,"../components/EditDataButton.tsx":dw,"../components/EditDataPopover.tsx":Tw,"../components/EditDataPopoverBody.tsx":Sw,"../components/EditDataPopoverDescribeInput.tsx":yw,"../components/EditDataPopoverHeader.tsx":Nw,"../components/EditDataPopoverResizeHandleLeft.tsx":kw,"../components/EditDataPopoverSaveCancelClose.tsx":jw,"../components/EditDataPopoverSearchInput.tsx":Pw,"../components/EditDataPopoverSectionSelector.tsx":ww,"../components/EditDataPopoverTabStrip.tsx":Cw,"../components/EditorNavBar.tsx":Bh,"../components/EditorSessionRecovery.tsx":Mh,"../components/EditorSessionRecoveryActionButton.tsx":Eh,"../components/EditorSessionRecoveryDialog.tsx":Dh,"../components/EditorSessionRecoveryHeader.tsx":Rh,"../components/EditorSessionRecoverySummary.tsx":Th,"../components/EditorSessionRecoverySummaryRow.tsx":kh,"../components/EditorShell.tsx":Nh,"../components/EditorShellBuildLayer.tsx":Ch,"../components/EditorShellHomeTabContent.tsx":wh,"../components/EditorShellLayout.tsx":Ph,"../components/EditorShellLeftPane.tsx":jh,"../components/EditorShellPlanLayer.tsx":yh,"../components/EditorShellPreviewPane.tsx":HP,"../components/EditorShellTabLayer.tsx":Sh,"../components/EmailsScreen.tsx":fh,"../components/EntityBreadcrumb.tsx":hh,"../components/EntityDetail.tsx":vh,"../components/EntityDetailContent.tsx":gh,"../components/EntityDetailHeader.tsx":bh,"../components/EntityRefCard.tsx":xh,"../components/EntityRefList.tsx":uh,"../components/EnvelopeIcon.tsx":mh,"../components/EventCard.tsx":$P,"../components/EventStream.tsx":qP,"../components/ExamplesScreen.tsx":ph,"../components/ExploreRail.tsx":dh,"../components/ExtensionAssetsScreen.tsx":_h,"../components/ExtensionDistributionScreen.tsx":ch,"../components/ExtensionPrivacyPolicyScreen.tsx":lh,"../components/ExternalServicesScreen.tsx":ih,"../components/ExternalServicesScreenConnected.tsx":rh,"../components/FactFreshness.tsx":nh,"../components/FeatureGroupView.tsx":UP,"../components/FeatureNameButton.tsx":oh,"../components/FileChangeSummary.tsx":EP,"../components/FileDropConfirmModal.tsx":ah,"../components/FileDropConfirmModalAgentReadyShowcase.tsx":lw,"../components/FileStatusIndicator.tsx":sh,"../components/FillPreviewButton.tsx":th,"../components/FilterBar.tsx":WP,"../components/FinishAndFormalizeButton.tsx":eh,"../components/FontPicker.tsx":Zv,"../components/FormsScreen.tsx":Xv,"../components/FullScreenIcon.tsx":Yv,"../components/FunctionChangeRow.tsx":Kv,"../components/GatedAgentChat.tsx":pj,"../components/GearIcon.tsx":Qv,"../components/GlobalFileDropOverlay.tsx":Jv,"../components/GlobalFileDropToast.tsx":Wv,"../components/GridColumnsIcon.tsx":Uv,"../components/GridDensityControl.tsx":Vv,"../components/HardeningAutoAction.tsx":qv,"../components/HistoryDigest.tsx":$v,"../components/HistoryDigestStatRow.tsx":Gv,"../components/HistoryEntryCard.tsx":zv,"../components/HistoryRangeSelector.tsx":Hv,"../components/HistoryTab.tsx":Fv,"../components/HomeBuildStatusSection.tsx":Lv,"../components/HomeExploreSection.tsx":Iv,"../components/HomeLanding.tsx":Av,"../components/HomeScreenIcons.tsx":Ov,"../components/HostingConnectStep.tsx":Bv,"../components/HostingDeployStep.tsx":Mv,"../components/HostingLiveStep.tsx":Ev,"../components/HostingOverviewConnected.tsx":Dv,"../components/HostingOverviewGuided.tsx":Rv,"../components/HostingRealDeployStep.tsx":Tv,"../components/HostingScreen.tsx":kv,"../components/HostingScreenChrome.tsx":Nv,"../components/HostingScreenParts.tsx":Cv,"../components/IdleBanner.tsx":wv,"../components/IdleTriggerCheckbox.tsx":Pv,"../components/IframeClickThroughErrorCard.tsx":jv,"../components/InAppPurchasesScreen.tsx":yv,"../components/InFlightPlanRow.tsx":Sv,"../components/InFlightSection.tsx":fv,"../components/InspectModeRibbon.tsx":hv,"../components/InspectResultCard.tsx":vv,"../components/InspectResultCardBackdrop.tsx":gv,"../components/InspectResultCardBody.tsx":bv,"../components/InspectResultCardHeader.tsx":xv,"../components/InspectResultCardMatchButton.tsx":uv,"../components/InspectResultCardMatchList.tsx":mv,"../components/InspectorExplainerResult.tsx":aP,"../components/InspectorExplainerSection.tsx":sP,"../components/InspectorPrimitives.tsx":tP,"../components/InspectorPrimitivesShowcase.tsx":Hw,"../components/InspectorRouteTable.tsx":eP,"../components/InspectorScenarioSection.tsx":Zj,"../components/InspectorTrafficDetail.tsx":Xj,"../components/InspectorTrafficFilterBar.tsx":Yj,"../components/InspectorTrafficRow.tsx":Kj,"../components/InspectorTrafficRowShowcase.tsx":Gw,"../components/InspectorTrafficSection.tsx":Qj,"../components/InspectorTrafficTable.tsx":Jj,"../components/InspectorTrafficUrlChips.tsx":Wj,"../components/InspectorUrlGlossary.tsx":Uj,"../components/InstallDocsScreen.tsx":pv,"../components/JournalEntryCard.tsx":BP,"../components/JournalEntryDetails.tsx":MP,"../components/JournalView.tsx":OP,"../components/JsonBodyActions.tsx":dj,"../components/JsonTreeAddKeyInput.tsx":_j,"../components/JsonTreeArrayNode.tsx":cj,"../components/JsonTreeEditor.tsx":lj,"../components/JsonTreeNode.tsx":ij,"../components/JsonTreeNodeLine.tsx":rj,"../components/JsonTreeObjectNode.tsx":nj,"../components/JsonTreePrimitiveEditor.tsx":oj,"../components/JsonTreePrimitiveNode.tsx":aj,"../components/LabeledSection.tsx":dv,"../components/LayoutChainCard.tsx":_v,"../components/LayoutChainSection.tsx":cv,"../components/LearnSetupScreen.tsx":lv,"../components/LeftPanel.tsx":iv,"../components/LegalScreen.tsx":rv,"../components/LibrariesCatalogScreen.tsx":nv,"../components/LibraryGroupSection.tsx":ov,"../components/LibraryRow.tsx":av,"../components/LiveIframeHealthPill.tsx":sv,"../components/LivePageScenariosModal.tsx":tv,"../components/LoggingMonitoringScreen.tsx":ev,"../components/ManifestVersioningScreen.tsx":Zg,"../components/Markdown.tsx":Dj,"../components/MiniAgentChat.tsx":sj,"../components/MiniAgentLaunchOverlay.tsx":tj,"../components/MinimizedSessionResults.tsx":Xg,"../components/MobilePaneSwitcher.tsx":Yg,"../components/MobileSetupParts.tsx":Kg,"../components/MobileTerminalCommandMenu.tsx":Qg,"../components/MockBodyEditor.tsx":ZP,"../components/MockBodyHeadersEditor.tsx":ej,"../components/MockBodyJsonTextarea.tsx":XP,"../components/MockPanelGroup.tsx":aw,"../components/MockPanelHeader.tsx":ow,"../components/MockPanelRow.tsx":sw,"../components/MockPanelRowActions.tsx":ew,"../components/MockPanelRowHeader.tsx":tw,"../components/MockSharedSlugBadge.tsx":Zy,"../components/MockSourceBadge.tsx":Xy,"../components/MockupArchivedRoundView.tsx":Jg,"../components/MockupCard.tsx":Wg,"../components/MockupCardFeedback.tsx":Ug,"../components/MockupCardFooter.tsx":Vg,"../components/MockupCardPreviewSlot.tsx":qg,"../components/MockupCardThemeToggleButton.tsx":$g,"../components/MockupCustomizeColorsPanel.tsx":Gg,"../components/MockupCustomizeErrorBanner.tsx":zg,"../components/MockupCustomizeFontsPanel.tsx":Hg,"../components/MockupCustomizePanelSectionHeading.tsx":Fg,"../components/MockupCustomizePreviewArea.tsx":Lg,"../components/MockupCustomizeToolbar.tsx":Ig,"../components/MockupCustomizeView.tsx":Ag,"../components/MockupFeedbackCommentBox.tsx":Og,"../components/MockupFeedbackRatingSlider.tsx":Bg,"../components/MockupFeedbackThumbIcons.tsx":Mg,"../components/MockupGrid.tsx":Eg,"../components/MockupGridEmptyState.tsx":Dg,"../components/MockupGridGeneratingOverlay.tsx":Rg,"../components/MockupGridInfoBanner.tsx":Tg,"../components/MockupGridIterateButton.tsx":kg,"../components/MockupPlaceholderCard.tsx":Ng,"../components/MockupRoundPager.tsx":Cg,"../components/MockupSkeletonOverlay.tsx":wg,"../components/ModifiedFilesList.tsx":Pg,"../components/NarrativeTestStatusIcon.tsx":jg,"../components/NativeMirrorNotice.tsx":yg,"../components/NavLink.tsx":Sg,"../components/NavigationBar.tsx":fg,"../components/NewProjectQuestionnaire.tsx":hg,"../components/NoBootedSimulatorPlaceholder.tsx":vg,"../components/NonWebAppDetail.tsx":gg,"../components/NotificationSettingsControls.tsx":bg,"../components/NotificationSettingsPopover.tsx":xg,"../components/NotificationSetupBanner.tsx":ug,"../components/OAuthVerificationScreen.tsx":mg,"../components/OpenBuildTabButton.tsx":pg,"../components/OpenInEditorErrorToast.tsx":dg,"../components/OpenInNewTabButton.tsx":_g,"../components/OpenSourceProjectsSection.tsx":CP,"../components/OrphanedFileRow.tsx":cg,"../components/PagePickerDropdown.tsx":lg,"../components/PagePickerEmptyMessage.tsx":ig,"../components/PagePickerRouteSection.tsx":rg,"../components/PagePickerScenarioThumbnail.tsx":ng,"../components/PagePickerTabButton.tsx":og,"../components/PagePill.tsx":ag,"../components/PagePillIcons.tsx":sg,"../components/PanelDivider.tsx":tg,"../components/PaymentsScreen.tsx":eg,"../components/PendingFileCard.tsx":Zb,"../components/PendingFileList.tsx":Xb,"../components/PerformanceImagesScreen.tsx":Yb,"../components/PermissionsJustificationScreen.tsx":Kb,"../components/PlaceholderPane.tsx":rw,"../components/PlanAuthoringChat.tsx":Qb,"../components/PlanChatLaunchCaption.tsx":Jb,"../components/PlanClaimSyncBanner.tsx":Wb,"../components/PlanCompleteDialog.tsx":Ub,"../components/PlanCompleteTransition.tsx":Vb,"../components/PlanExpandedHeader.tsx":qb,"../components/PlanNextChangeButton.tsx":$b,"../components/PlanPreviewEmptyState.tsx":Gb,"../components/PlanPreviewHeader.tsx":zb,"../components/PlanPreviewPanelView.tsx":Hb,"../components/PlanRow.tsx":Fb,"../components/PlanRowClaimBadge.tsx":Lb,"../components/PlanRowDependencyEntry.tsx":Ib,"../components/PlanRowEditButton.tsx":Ab,"../components/PlanRowEditChatButton.tsx":Ob,"../components/PlanRowExpandedBody.tsx":Bb,"../components/PlanRowExpandedChat.tsx":Mb,"../components/PlanRowExpandedDependencies.tsx":Eb,"../components/PlanRowExpandedEdit.tsx":Db,"../components/PlanRowExpandedView.tsx":Rb,"../components/PlanRunBlockedModal.tsx":Tb,"../components/PlanRunButton.tsx":kb,"../components/PlanRunDependenciesModal.tsx":Nb,"../components/PlanRunForeignClaimModal.tsx":Cb,"../components/PlanSubTabs.tsx":wb,"../components/PlanTab.tsx":Pb,"../components/PlanTabHeader.tsx":jb,"../components/PostPushTransition.tsx":yb,"../components/PostPushTransitionDialog.tsx":Sb,"../components/PreReleaseScreen.tsx":fb,"../components/PreviewCanvas.tsx":hb,"../components/PreviewEmptyState.tsx":vb,"../components/PreviewErrorBadge.tsx":gb,"../components/PreviewErrorList.tsx":bb,"../components/PreviewErrorOverlay.tsx":xb,"../components/PreviewErrorOverlayFooter.tsx":ub,"../components/PreviewErrorOverlayHeader.tsx":mb,"../components/PreviewErrorRow.tsx":pb,"../components/PreviewForwardPortNotice.tsx":db,"../components/PreviewFrame.tsx":_b,"../components/PreviewLoadingSpinner.tsx":cb,"../components/PreviewPanel.tsx":lb,"../components/PreviewPortMismatchCard.tsx":ib,"../components/PreviewSignInNotice.tsx":rb,"../components/PreviewSignInNoticeShowcase.tsx":DP,"../components/PreviewUnhealthyOverlay.tsx":nb,"../components/PreviewWaitingPlaceholder.tsx":ob,"../components/ProjectLauncher.tsx":wP,"../components/ProjectLauncherScreen.tsx":PP,"../components/ProjectSetupChosenMockup.tsx":ab,"../components/ProjectSetupDescriptionCard.tsx":sb,"../components/ProjectSetupDesignAssetList.tsx":tb,"../components/ProjectSetupDesignCard.tsx":eb,"../components/ProjectSetupHeader.tsx":Zx,"../components/ProjectSetupPreviewPane.tsx":Xx,"../components/ProjectSetupPreviewView.tsx":Yx,"../components/ProjectSetupProgressList.tsx":Kx,"../components/ProjectSetupProgressRow.tsx":Qx,"../components/PromptDropdownPanel.tsx":Jx,"../components/PrototypeAgentChat.tsx":Wx,"../components/PrototypeBuildingInProgressBanner.tsx":Ux,"../components/PrototypePane.tsx":Vx,"../components/ProviderAuthGate.tsx":qx,"../components/ProviderAuthModal.tsx":Yy,"../components/ProviderAuthenticateCta.tsx":Ky,"../components/ProviderLogo.tsx":$x,"../components/PublishRegistryScreen.tsx":Gx,"../components/PublishScreen.tsx":zx,"../components/PushNotificationsScreen.tsx":Hx,"../components/QuestionnaireDesignApproachStep.tsx":Fx,"../components/QuestionnaireDesignChatLaunchPanel.tsx":Lx,"../components/QuestionnaireDesignChatStep.tsx":Ix,"../components/QuestionnaireDeviceSelector.tsx":Ax,"../components/QuestionnaireIntroBanner.tsx":Ox,"../components/QuestionnaireNavButtons.tsx":Bx,"../components/QuestionnaireNotificationsStep.tsx":Mx,"../components/QuestionnaireOptionCard.tsx":Ex,"../components/QuestionnaireStepNav.tsx":Dx,"../components/QuestionnaireStepPanel.tsx":Rx,"../components/QueuedChangesSection.tsx":Tx,"../components/RawTerminalEmulator.tsx":kx,"../components/RawTerminalModal.tsx":Nx,"../components/ReadmeLicenseScreen.tsx":Cx,"../components/ReadyAgentRegistrar.tsx":iw,"../components/RealDataConnected.tsx":Kw,"../components/RealDataNotConnected.tsx":Xw,"../components/RealDataScreen.tsx":wx,"../components/RealDataZone.tsx":Qw,"../components/RealSetupFlow.tsx":Px,"../components/RecentPlansSection.tsx":jx,"../components/RedirectsNotFoundScreen.tsx":yx,"../components/RefreshPreviewButton.tsx":Sx,"../components/ReleaseBuildsScreen.tsx":fx,"../components/RerunSection.tsx":hx,"../components/ResetBuildConfirmModal.tsx":vx,"../components/RestartSpinner.tsx":gx,"../components/ReviewCard.tsx":bx,"../components/ReviewDetailCard.tsx":xx,"../components/ReviewFindingRow.tsx":ux,"../components/ReviewsTab.tsx":mx,"../components/RouteDependencyCard.tsx":px,"../components/RouteDependencyCardHeader.tsx":dx,"../components/RouteDependencyEmptyState.tsx":_x,"../components/RouteDependencyList.tsx":cx,"../components/RouteDependencyScenarioStrip.tsx":lx,"../components/RouteEntityDetail.tsx":ix,"../components/RouteEntityDetailContent.tsx":rx,"../components/RouteEntityDetailHeader.tsx":nx,"../components/RouteEntitySection.tsx":Bw,"../components/RouteEntityTabs.tsx":ox,"../components/RouteFunctionCard.tsx":ax,"../components/RouteFunctionEmptyState.tsx":sx,"../components/RouteFunctionList.tsx":tx,"../components/RouteGroupView.tsx":JP,"../components/RouteImportEmptyState.tsx":Ow,"../components/RouteImportList.tsx":Aw,"../components/RouteImportRow.tsx":KP,"../components/RouteList.tsx":ex,"../components/RouteListCard.tsx":Zu,"../components/RouteListCardThumbnail.tsx":Xu,"../components/RouteListEmptyState.tsx":Yu,"../components/RouteListSection.tsx":Ku,"../components/RouteListSectionHeader.tsx":Qu,"../components/RouteListTabs.tsx":Ju,"../components/RouteScenarioEmptyState.tsx":Wu,"../components/RouteScenarioList.tsx":Uu,"../components/RouteSummaryCard.tsx":Iw,"../components/RunEvidenceLine.tsx":Vu,"../components/RunLocallyCommandRow.tsx":qu,"../components/RunLocallyScreen.tsx":$u,"../components/RunTestsButton.tsx":Gu,"../components/SafeScreenshot.tsx":zu,"../components/SaveAssetsButton.tsx":Hu,"../components/SaveScopeChoiceRow.tsx":Qy,"../components/SaveScopeModal.tsx":Jy,"../components/ScenarioCard.tsx":Fu,"../components/ScenarioComparisonRow.tsx":Lu,"../components/ScenarioDataPanel.tsx":Wy,"../components/ScenarioDataPanelCloseButton.tsx":Uy,"../components/ScenarioDataPanelEditChatButton.tsx":Vy,"../components/ScenarioDataPanelEmptyState.tsx":qy,"../components/ScenarioDataPanelFullPage.tsx":TP,"../components/ScenarioDataPanelHeader.tsx":$y,"../components/ScenarioDataPanelInspectButton.tsx":Gy,"../components/ScenarioDataPanelMainMock.tsx":zy,"../components/ScenarioDataPanelMainMockEditable.tsx":Hy,"../components/ScenarioDataPanelMainMockHeader.tsx":Fy,"../components/ScenarioDataPanelMainMockReadOnly.tsx":Ly,"../components/ScenarioDataPanelMainProps.tsx":fw,"../components/ScenarioDataPanelMainTable.tsx":Iy,"../components/ScenarioDataPanelMockDataBadge.tsx":Ay,"../components/ScenarioDataPanelMockDataStrip.tsx":Oy,"../components/ScenarioDataPanelOpenInNewButton.tsx":By,"../components/ScenarioDataPanelPropsEditor.tsx":hw,"../components/ScenarioDataPanelSidebar.tsx":My,"../components/ScenarioDetailPanel.tsx":YP,"../components/ScenarioDraftBar.tsx":Ey,"../components/ScenarioGalleryModal.tsx":Iu,"../components/ScenarioImpactSection.tsx":Au,"../components/ScenarioRenameForm.tsx":Ou,"../components/ScenarioRenderer.tsx":RP,"../components/ScenarioRendererAppDeadEnd.tsx":Vw,"../components/ScenarioRow.tsx":Bu,"../components/ScenarioRowActions.tsx":Mu,"../components/ScenarioRowMeta.tsx":Eu,"../components/ScenarioRowOverrideBadge.tsx":Du,"../components/ScenarioRowThumbnail.tsx":Ru,"../components/ScenarioSeedErrorView.tsx":qw,"../components/ScenarioThumbnailGrid.tsx":Tu,"../components/ScenarioTypeSection.tsx":ku,"../components/ScenariosView.tsx":cw,"../components/SecretsScreen.tsx":Nu,"../components/SeedErrorBanner.tsx":Cu,"../components/SeedLoadingOverlay.tsx":wu,"../components/SegmentedPicker.tsx":Pu,"../components/SelectPlanModal.tsx":ju,"../components/SemverPolicyScreen.tsx":yu,"../components/SendTranscriptModal.tsx":Su,"../components/SendTranscriptOverlay.tsx":Fw,"../components/ServerStalenessBanner.tsx":fu,"../components/SessionResultsPanel.tsx":hu,"../components/SessionResultsPanelHeader.tsx":vu,"../components/SettingsTab.tsx":gu,"../components/SetupAddTopicRow.tsx":bu,"../components/SetupBrowserHeader.tsx":xu,"../components/SetupBrowserPane.tsx":uu,"../components/SetupDetailChrome.tsx":mu,"../components/SetupDetailParts.tsx":pu,"../components/SetupGoalAssist.tsx":du,"../components/SetupGoalAssistList.tsx":_u,"../components/SetupIllustrations.tsx":cu,"../components/SetupJourney.tsx":lu,"../components/SetupNotConnected.tsx":iu,"../components/SetupStepper.tsx":ru,"../components/SetupTerminalHeader.tsx":nu,"../components/SetupTerminalPane.tsx":ou,"../components/SetupTopicPage.tsx":au,"../components/SetupTopicRouter.tsx":su,"../components/ShellCompletionsScreen.tsx":tu,"../components/SidebarGroupOverrideHeader.tsx":Dy,"../components/SidebarInheritedSection.tsx":Ry,"../components/SidebarMockEntryRow.tsx":Ty,"../components/SimulatedSetupFlow.tsx":eu,"../components/SimulatedSetupOverview.tsx":Zm,"../components/SimulatedSetupScreen.tsx":Xm,"../components/SimulatorFrameNotice.tsx":Ym,"../components/SimulatorLauncherControls.tsx":Km,"../components/SimulatorNotBootedPrompt.tsx":Qm,"../components/SimulatorPreviewFrame.tsx":Jm,"../components/SinglePurposeListingScreen.tsx":Wm,"../components/SkeletonBar.tsx":Um,"../components/SortablePlanRow.tsx":Vm,"../components/StagingEnvironmentScreen.tsx":qm,"../components/StagingPreviewScreen.tsx":$m,"../components/StaleDbStripeOverlay.tsx":$w,"../components/StartBuildingConfirmModal.tsx":Gm,"../components/StartPrototypingButton.tsx":zm,"../components/StatesDropdown.tsx":Hm,"../components/StatesDropdownRow.tsx":Fm,"../components/StatesPillButton.tsx":Lm,"../components/StatusBadge.tsx":VP,"../components/StepIndicatorBar.tsx":Im,"../components/StepIndicatorDropdownItem.tsx":Am,"../components/StepsSimulator.tsx":Rj,"../components/StepsSimulatorInstructionsPanel.tsx":Tj,"../components/StepsSimulatorStepList.tsx":kj,"../components/StepsSimulatorVariableControl.tsx":Nj,"../components/StoreAccountsScreen.tsx":Om,"../components/StoreAssetsScreen.tsx":Bm,"../components/StoreListingScreen.tsx":Mm,"../components/SubmitReviewScreen.tsx":Em,"../components/SupplyChainScreen.tsx":Dm,"../components/TabPane.tsx":Rm,"../components/TabScrollPanel.tsx":Tm,"../components/TeachSetupScreen.tsx":km,"../components/TerminalConnectingHint.tsx":ky,"../components/TerminalCopiedToast.tsx":Nm,"../components/TerminalDisconnectOverlay.tsx":Ny,"../components/TerminalDropOverlay.tsx":Cm,"../components/TerminalDropToast.tsx":wm,"../components/TerminalEdgeUnreachableBanner.tsx":Cy,"../components/TerminalEmulator.tsx":Pm,"../components/TerminalFailedBanner.tsx":wy,"../components/TerminalReconnectingBanner.tsx":Py,"../components/TerminalServerErrorBanner.tsx":jy,"../components/TerminalServerStoppedBanner.tsx":yy,"../components/TerminalSessionStaleBanner.tsx":Sy,"../components/TestBar.tsx":jm,"../components/TestGroupHeader.tsx":ym,"../components/TestGroupList.tsx":Sm,"../components/TestGroupRow.tsx":fm,"../components/TestItem.tsx":hm,"../components/TestResultsBadge.tsx":vm,"../components/TestStatusIcon.tsx":gm,"../components/TestSummary.tsx":nw,"../components/TestingDistributionScreen.tsx":bm,"../components/TestsView.tsx":_w,"../components/ThumbnailStrip.tsx":xm,"../components/UnsurfacedPageGroup.tsx":um,"../components/UnsurfacedPageInvestigateButton.tsx":mm,"../components/UnsurfacedPageRow.tsx":pm,"../components/UnsurfacedPageRowSummary.tsx":dm,"../components/UnsurfacedPagesSection.tsx":_m,"../components/UnsurfacedPagesSectionHeader.tsx":cm,"../components/UpdateAvailableBanner.tsx":lm,"../components/VersioningChangelogScreen.tsx":im,"../components/ViewTabs.tsx":Rw,"../components/ViewportPresetButton.tsx":rm,"../components/WaysToTestList.tsx":nm,"../components/WebFallbackNotice.tsx":om,"../components/WiredProviderBanner.tsx":am,"../components/WorkflowSettingsSection.tsx":sm,"../components/authFlows/ApiKeyFlow.tsx":fy,"../components/authFlows/ClaudeOAuthFlow.tsx":hy,"../components/realDataIcons.tsx":tm,"../components/setupFlowParts.tsx":em,"../components/setupIcons.tsx":Zp,"../components/setupTopicIllustration.tsx":Xp,"../context/AgentInputContext.tsx":vy,"../context/FilePickerContext.tsx":gy});let H=null;function nC(){if(H)return H;const t=[];return H=sC(oC,s=>t.push(s)),t.length>0&&console.warn("[scenario] auto-component index found duplicate export names:",Array.from(new Set(t)).sort().join(", ")),H}function rC(t){return nC()[t]??null}function iC(t,s){const{structural:a,fixtureProps:o}=s;if(!a&&!o)return t;const n=r=>{const l=o?{...o,...r}:r,c=e.jsx(t,{...l});return a?lC(a,c):c};return n.displayName=`ScenarioComponent(${t.displayName||t.name||"Anonymous"})`,n}function lC(t,s){const a="w-full text-[10px] border-collapse table-fixed";switch(t){case"tr":return e.jsx("table",{className:a,children:e.jsx("tbody",{children:s})});case"td":return e.jsx("table",{className:a,children:e.jsx("tbody",{children:e.jsx("tr",{children:s})})});case"th":return e.jsx("table",{className:a,children:e.jsx("thead",{children:e.jsx("tr",{children:s})})});case"li":return e.jsx("ul",{children:s})}}const p=()=>{},z={key:"real-data",Icon:R,title:"Real data",crumbLabel:"Real data",meta:"Foundation · about 10 minutes",leads:[{text:"Right now your app runs on sample data. Connecting real data lets it remember what people create."},{text:"We'll set up a managed database — no servers to run yourself.",dim:!0}],recommendLabel:"Recommended for your app",recommended:{initial:"S",color:"#3ecf8e",name:"Supabase",bestFit:!0,description:"A managed Postgres database with auth and storage built in.",reasons:[{lead:"No setup.",rest:"Provisioned and ready in under a minute."},{lead:"Generous free tier.",rest:"Plenty for getting started."}],chips:["Postgres","Free tier","Auth included"]},alternatives:[{initial:"N",color:"#000",name:"Neon",description:"Serverless Postgres with branching."}],ctaLabel:"Set up real data with Supabase",ctaNote:"You can change providers later — nothing is locked in.",faq:[{q:"Will this cost me anything?",a:"No — the free tier covers everything you need to start."}],flowLabels:["Connect","Provision","Ready"],connect:{heading:"Connect your database",sub:"Sign in to provision a managed Postgres instance.",grants:["Create a new database","Store your app's data securely"],continueLabel:"Continue with Supabase",reassure:"We never see your password — sign-in happens on Supabase."},provisionTitle:"Setting up your database…",provisionDesc:"This usually takes under a minute. You can keep working.",provisionSteps:["Creating your project","Provisioning Postgres","Wiring up your app","Running the first migration"],ready:{title:"Real data is live 🎉",desc:"Your app now reads and writes to a real database.",resultLabel:"Your database",resultValue:"app-db.supabase.co",donePill:"Real data is now set up"}},cC={key:"privacy-legal",Icon:R,title:"Privacy & legal",crumbLabel:"Privacy & legal",meta:"Foundation · about 5 minutes",leads:[{text:"A few small things keep you on the right side of privacy law and app-store rules."}],sections:[{heading:"What you need",body:"Most apps need a privacy policy and clear terms of use.",bullets:[{lead:"Privacy policy:",text:"explains what data you collect."},{lead:"Terms of use:",text:"sets the rules for using your app."}]}],optionsLabel:"Generators we like",options:[{initial:"T",color:"#6366f1",name:"Termly",description:"Free privacy-policy and terms generator.",reasons:[],chips:["Free","Fast"]}],faq:[{q:"Do I really need a privacy policy?",a:"If you collect any personal data, yes — and app stores require one."}],doneLabel:"Mark privacy & legal as handled",doneNote:"You can revisit this anytime."},$e={monogram:"YA",name:"Your app",detail:"you@your-app.com · acct_1Q8…7fED"},_C={accent:"blue",badge:"●",title:"Let people sign in",providerName:"Supabase",connectColor:"lime",lead:"Right now everyone using your app is anonymous, so anything they save vanishes when they close the tab. Give people their own account and their saved items follow them on any device.",explainerHeading:"New to accounts? Here's the short version",lede:"An account is how your app knows who someone is — each person gets a private space they can reach from any device by signing in.",explainerRows:[{icon:"•",title:"Everything stays tied to them",desc:"Their saved items and profile are remembered even after they close the app."},{icon:"•",title:"It follows them across devices",desc:"Sign in on a phone, see the same data on a laptop."},{icon:"•",title:"It keeps private things private",desc:"Accounts let you say only this person can see their data."}],whyHeading:"Why CodeYam picks Supabase for you",whyRows:[{lead:"Free to start, no card needed.",rest:"A generous free tier covers a new app comfortably."},{lead:"Security handled for you.",rest:"Passwords and social sign-in are managed by Supabase."}],connectTitle:"Connect or create your Supabase project",connectDesc:"A new window opens on Supabase. Sign in or make a free account — CodeYam links to it and holds the keys.",connectButtonLabel:"Connect Supabase",reassure:["Free to start, no card needed","Takes about 3 minutes","Disconnect any time"],altToggleLabel:"Supabase not for you? See other options",alternatives:[{monogram:"C",color:"linear-gradient(140deg,#6c47ff,#4b2fcc)",name:"Clerk",desc:"Polished sign-in screens and user management out of the box."}],lockedLabel:"Then, once you're connected",lockedSteps:[{icon:"•",title:"Choose how people sign in",desc:"Google, Apple, email, magic link — pick as many as you like."},{icon:"•",title:"CodeYam builds your sign-in screens",desc:"Each a plan you preview before it ships."}]},dC={DataViewerRow:{structural:"tr"},DataViewerColumnHeader:{structural:"th"},DataViewerCell:{structural:"td"},RouteListTabs:{fixtureProps:{onSelectRoute:p,onSelectScenario:p}},HostingDeployStep:{fixtureProps:{onDone:p}},HostingScreen:{fixtureProps:{connector:{provider:"vercel"},onBack:p,onComplete:p}},HostingLiveStep:{fixtureProps:{onFinish:p}},HostingRealDeployStep:{fixtureProps:{provider:"vercel",credential:"demo-token",onDone:p,onRetry:p}},HistoryRangeSelector:{fixtureProps:{onChange:p}},AppServiceCredentialModal:{fixtureProps:{onStored:p,onClose:p}},SetupCompleteCta:{fixtureProps:{onComplete:p,onRevert:p,onBack:p}},DetectedServiceRow:{fixtureProps:{onDismiss:p,onAddCredential:p}},DigestHeader:{fixtureProps:{onCopy:p}},SimulatedSetupOverview:{fixtureProps:{config:z,onBack:p,onSetup:p}},SimulatedSetupScreen:{fixtureProps:{config:z,onBack:p,onComplete:p}},SimulatedProvision:{fixtureProps:{config:z,onDone:p}},TeachSetupScreen:{fixtureProps:{config:cC,onBack:p,onComplete:p}},MobileTerminalCommandMenu:{fixtureProps:{defaultOpen:!0}},MobileTerminalCommandMenuPanel:{fixtureProps:{defaultOpen:!0}},RealDataScreen:{fixtureProps:{onBack:p,onComplete:p}},RealSetupFlow:{fixtureProps:{config:z,provider:"supabase",onBack:p,onComplete:p}},AccountsScreen:{fixtureProps:{onBack:p,onComplete:p}},EmailsScreen:{fixtureProps:{onBack:p,onComplete:p}},PaymentsScreen:{fixtureProps:{onBack:p,onComplete:p}},AccountsConnected:{fixtureProps:{app:W,startedOn:"June 14",onComplete:p}},EmailsConnected:{fixtureProps:{app:W,verifiedAddress:"hello@your-app.com",account:$e,onComplete:p}},PaymentsConnected:{fixtureProps:{app:W,account:$e,onComplete:p}},RealDataConnected:{fixtureProps:{entity:Ge,connection:Uw,onPlan:p}},RealDataNotConnected:{fixtureProps:{entity:Ge,onConnect:p}},SetupNotConnected:{fixtureProps:{config:_C,onConnect:p}},SetupPlanFooter:{fixtureProps:{onPlan:p}},ProjectLauncher:{fixtureProps:{onOpen:p,onStop:p,onScan:p,onClone:p}},ProjectRow:{fixtureProps:{onOpen:p,onStop:p}},ProjectRowActions:{fixtureProps:{onOpen:p,onStop:p}},ProjectScanForm:{fixtureProps:{onScan:p}},ProjectCreateForm:{fixtureProps:{onCreate:p}},CreateProjectModal:{fixtureProps:{onCreate:p,onClose:p}},ProjectLauncherEmpty:{fixtureProps:{onCreateFirst:p,onScan:p}},OpenSourceProjectsSection:{fixtureProps:{onClone:p}},OpenSourceProjectRow:{fixtureProps:{onClone:p}},SetupTopicPage:{fixtureProps:{icon:d.createElement(R,{size:26}),title:"Use real data",crumbLabel:"Real data",meta:"Foundation · about 10 minutes",assistKey:"real-data",onBack:p,lead:"Right now your app's information lives inside the code, so anything people enter disappears when they reload. A real database gives your app a memory.",illustration:d.createElement(pt,{nodes:[{emoji:"📝",label:"In the code",sub:"Resets on refresh"},{emoji:"🗄️",label:"A real database",sub:"Your app's memory",lime:!0},{emoji:"♾️",label:"Saved for good",sub:"Remembered everywhere"}]}),chatPrompt:"Help me set up real data for my app.",faqs:[{q:"What is a database, really?",a:"A labelled place your app remembers things — like a spreadsheet it can read from and write to instantly."}]}}};function pC(t){const s={};for(const[a,o]of Object.entries(t))s[a]=B(o);return s}const mC=new Set(["div","span","p","strong","em","code","pre","h1","h2","h3","h4","h5","h6","ul","ol","li","a","br","hr","img","section","header","footer","nav","article","button"]);function B(t){if(t==="__noop__")return()=>{};if(t==null||typeof t!="object")return t;if(Array.isArray(t))return t.map(B);if(t.__type==="noop")return()=>{};if(t.__type==="undefined")return;if(t.__type==="Ref")return{current:null};if(t.__type==="Date"&&typeof t.value=="string")return new Date(t.value);if(t.__type==="Set"&&Array.isArray(t.values))return new Set(t.values.map(B));if(t.__type==="ReactNode"){if(typeof t.text=="string")return t.text;if(typeof t.element=="string"){if(!mC.has(t.element))return null;const a=t.children!=null?B(t.children):void 0;return d.createElement(t.element,t.props||null,a)}}if(t.__type==="Map"&&typeof t.entries=="object"&&t.entries!==null){const a=new Map;for(const[o,n]of Object.entries(t.entries))a.set(o,B(n));return a}const s={};for(const[a,o]of Object.entries(t))s[a]=B(o);return s}function uC(t){if(!t||typeof t!="object")return!1;const s=t,a=s.http?Object.keys(s.http).length:0,o=s.db?Object.keys(s.db).length:0;return a>0||o>0}function xC(t){if(!t||typeof t!="object")return null;const s=t.http;return!s||typeof s!="object"||Object.keys(s).length===0?null:s}const bC=new Set(["EditorShell"]),qe=new Map;function gC(t){if(!t)return null;const s=Zw[t]??rC(t);if(!s)return null;const a=dC[t];if(!a)return s;const o=qe.get(t);if(o)return o;const n=iC(s,a);return qe.set(t,n),n}function vC(t){const[s,a]=d.useState({Component:null,props:{},name:"",loading:!0,error:null,needsRouter:!1,displayHints:null,seed:null,scenarioType:null,hasMocks:!1,httpMocks:null,url:null});return d.useEffect(()=>{let o=!1;return a(n=>({...n,loading:!0,error:null})),fetch(`/api/scenarios/${encodeURIComponent(t)}`).then(n=>n.json()).then(n=>{if(o)return;if(n.error){a({Component:null,props:{},name:"",loading:!1,error:n.error,needsRouter:!1,displayHints:null,seed:null,scenarioType:null,hasMocks:!1,httpMocks:null,url:null});return}const r=gC(n.componentName),l=n.scenarioType==="application"||n.scenarioType==="component"?n.scenarioType:null,c=n.seed??null,_=uC(n.mocks),m=xC(n.mocks),x=typeof n.url=="string"?n.url:null;if(!r&&n.componentName){a({Component:null,props:{},name:n.name??"",loading:!1,error:`Component "${n.componentName}" not found in registry`,needsRouter:!1,displayHints:null,seed:c,scenarioType:l,hasMocks:_,httpMocks:m,url:x});return}a({Component:r,props:pC(n.props??{}),name:n.name??"",loading:!1,error:null,needsRouter:bC.has(n.componentName??""),displayHints:n.displayHints??null,seed:c,scenarioType:l,hasMocks:_,httpMocks:m,url:x})}).catch(n=>{o||a({Component:null,props:{},name:"",loading:!1,error:n.message,needsRouter:!1,displayHints:null,seed:null,scenarioType:null,hasMocks:!1,httpMocks:null,url:null})}),()=>{o=!0}},[t]),s}function hC(t){const s=t.indexOf(" ");return s>0&&s<8?{method:t.slice(0,s).toUpperCase(),pathname:t.slice(s+1)}:{method:"GET",pathname:t}}function fC(t){if(typeof t=="string")try{return new URL(t,"http://localhost").pathname}catch{return t}if(t instanceof URL)return t.pathname;if(t instanceof Request)try{return new URL(t.url,"http://localhost").pathname}catch{return t.url}return String(t)}function SC(t,s){return s!=null&&s.method?s.method.toUpperCase():t instanceof Request?t.method.toUpperCase():"GET"}function yC(t){const s=window.fetch,a=Object.entries(t).map(([o,n])=>({...hC(o),response:n}));return window.fetch=function(n,r){const l=fC(n),c=SC(n,r);for(const _ of a)if(_.method===c&&_.pathname===l){const m=_.response.status??200,x=new Headers(_.response.headers??{});x.has("Content-Type")||x.set("Content-Type","application/json");const u=_.response.body!==void 0?JSON.stringify(_.response.body):null;return Promise.resolve(new Response(u,{status:m,headers:x}))}return s.call(window,n,r)},()=>{window.fetch=s}}function ts({slug:t}){const{Component:s,props:a,name:o,loading:n,error:r,needsRouter:l,displayHints:c,seed:_,scenarioType:m,hasMocks:x,httpMocks:u,url:i}=vC(t),[b,g]=d.useState(!1),[f,y]=d.useState(null);if(d.useEffect(()=>{if(n)return;let T=!1;g(!1),y(null);const D=u?yC(u):null;return m==="component"&&_==null&&!x?(g(!0),()=>{T=!0,D&&D()}):(fetch("/api/editor-activate-scenario",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t})}).then(async C=>{const k=await C.json().catch(()=>null);T||(k&&(k.seedError||k.success===!1)&&(_!=null?y(k.seedError||k.error||"scenario activation failed"):console.warn("[scenario] activation returned failure for no-seed scenario; ignoring",k)),g(!0))}).catch(C=>{T||(_!=null?y(C instanceof Error?C.message:String(C)):console.warn("[scenario] activation request failed for no-seed scenario; ignoring",C),g(!0))}),()=>{T=!0,D&&D(),fetch("/api/editor-deactivate-scenario",{method:"POST"}).catch(()=>{})})},[t,n,_,m,x,u]),n||!b)return e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-[var(--bg-deep)] text-[var(--text-muted)]",children:"Loading scenario..."});if(f)return e.jsx(Me,{error:f});if(r)return e.jsx("div",{"data-codeyam-scenario-error":"scenario",className:"flex min-h-screen items-center justify-center bg-[var(--bg-deep)] text-[var(--accent-red)]",children:e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-lg",children:"Scenario Error"}),e.jsx("p",{className:"mt-2 text-sm",children:r})]})});if(!s)return m==="application"?e.jsx(Be,{name:o,url:i}):e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-[var(--bg-deep)] text-[var(--text-muted)]",children:e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-lg",children:o}),e.jsx("p",{className:"mt-2 text-sm",children:"No component specified for this scenario"})]})});const h=e.jsx(s,{...a});if(l)return h;const v=c==null?void 0:c.height,S={...c!=null&&c.maxWidth?{maxWidth:c.maxWidth}:{},...v?{height:v,display:"flex",flexDirection:"column"}:{}},j=c!=null&&c.anchor?"w-full relative":"w-full";return e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-[var(--bg-deep)] p-4",children:e.jsx("div",{className:j,style:Object.keys(S).length>0?S:void 0,children:h})})}export{ts as ScenarioRenderer};