@codeyam-editor/codeyam-editor 0.1.7 → 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.
- package/npm/cloud.js +116 -23
- package/npm/fleet-add-failure.js +59 -12
- package/npm/fleet-memory.js +29 -4
- package/npm/fleet-queue.js +141 -0
- package/npm/fleet-vm-access.js +162 -0
- package/npm/ingress-invoke.js +46 -2
- package/npm/launch-config.js +43 -0
- package/npm/scenario-check.js +11 -1
- package/npm/scenario-handlers.js +18 -0
- package/npm/scenario-issues.js +11 -0
- package/npm/scenario-mocks.js +245 -39
- package/npm/scenario-playwright.js +70 -12
- package/package.json +5 -5
- package/ui/dist/assets/{ContainerInspector-Cu1tSN-o.js → ContainerInspector-DSVZvEkB.js} +1 -1
- package/ui/dist/assets/EditorShell-DnXdHrar.js +256 -0
- package/ui/dist/assets/EditorShell-FvbXyqqD.css +1 -0
- package/ui/dist/assets/{ProjectLauncherScreen-Dmm6Z0mv.js → ProjectLauncherScreen-E0NYYiwy.js} +1 -1
- package/ui/dist/assets/ScenarioDataPanel-6qJE-0lA.js +15 -0
- package/ui/dist/assets/{ScenarioDataPanelFullPage-BqMxWVKW.js → ScenarioDataPanelFullPage-Cyk6efiI.js} +1 -1
- package/ui/dist/assets/ScenarioRenderer-Uyt54vHI.js +21 -0
- package/ui/dist/assets/{index-VuyqBbGJ.js → index-BPLKgwon.js} +9 -9
- package/ui/dist/assets/index-DKpgJLo3.css +1 -0
- package/ui/dist/assets/useServerIdentity-CVuHTzjg.js +1 -0
- package/ui/dist/index.html +2 -2
- package/ui/dist/assets/EditorShell--V2ExYQ6.js +0 -260
- package/ui/dist/assets/EditorShell-DP5UY20G.css +0 -1
- package/ui/dist/assets/ScenarioDataPanel-DjprZq2L.js +0 -9
- package/ui/dist/assets/ScenarioRenderer-DqLVVMYS.js +0 -21
- package/ui/dist/assets/index-CjxWhkSy.css +0 -1
- package/ui/dist/assets/useServerIdentity-BdXy8TQv.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{C as w,a as se,_ as gs,b as vs}from"./useServerIdentity-BdXy8TQv.js";import{P as hs,c as fs,L as C,C as We,S as Je,M as Qe,f as Ss,T as Ke,e as ys,a as ae,b as Ye,d as js,g as I,N as Q,h as Ps,i as K,j as Xe,k as Ze,l as Fe,D as et,F as tt,m as st,R as oe,p as ws,n as at,o as D,X as Y,q as k,I as ot,r as nt,s as rt,t as it,u as $,v as X,w as lt,x as He,y as ct,z as _t,A as dt,B as pt,E as mt,G as Cs,H as Ns,J as ks,K as Ts,O as Rs,Q as Ds,U as Es,V as Ms,W as Bs,Y as Os,Z as As,_ as Is,$ as Ls,a0 as Fs,a1 as Hs,a2 as zs,a3 as Gs,a4 as ut,a5 as $s,a6 as qs,a7 as Vs,a8 as Us,a9 as Ws,aa as Js,ab as Qs,ac as Ks,ad as Ys,ae as Xs,af as Zs,ag as ea,ah as ta,ai as sa,aj as aa,ak as oa,al as na,am as ra,an as ia,ao as la,ap as ca,aq as _a,ar as da,as as pa,at as ma,au as ua,av as xa,aw as ba,ax as ga,ay as va,az as ha,aA as fa,aB as Sa,aC as ya,aD as ja,aE as Pa,aF as wa,aG as Ca,aH as Na,aI as ka,aJ as Ta,aK as Ra,aL as Da,aM as Ea,aN as Ma,aO as Ba,aP as Oa,aQ as Aa,aR as Ia,aS as La,aT as Fa,aU as Ha,aV as za,aW as Ga,aX as $a,aY as qa,aZ as Va,a_ as Ua,a$ as Wa,b0 as Ja,b1 as Qa,b2 as Ka,b3 as Ya,b4 as Xa,b5 as Za,b6 as eo,b7 as to,b8 as so,b9 as ao,ba as oo,bb as no,bc as ro,bd as io,be as lo,bf as co,bg as _o,bh as po,bi as mo,bj as uo,bk as xo,bl as bo,bm as go,bn as vo,bo as ho,bp as fo,bq as So,br as yo,bs as jo,bt as Po,bu as wo,bv as Co,bw as No,bx as ko,by as To,bz as Ro,bA as Do,bB as Eo,bC as Mo,bD as Bo,bE as Oo,bF as Ao,bG as Io,bH as Lo,bI as Fo,bJ as Ho,bK as zo,bL as Go,bM as $o,bN as qo,bO as Vo,bP as Uo,bQ as Wo,bR as Jo,bS as Qo,bT as Ko,bU as Yo,bV as Xo,bW as Zo,bX as en,bY as tn,bZ as sn,b_ as an,b$ as on,c0 as nn,c1 as rn,c2 as ln,c3 as cn,c4 as _n,c5 as dn,c6 as pn,c7 as mn,c8 as un,c9 as xn,ca as bn,cb as gn,cc as vn,cd as hn,ce as fn,cf as Sn,cg as yn,ch as jn,ci as Pn,cj as wn,ck as Cn,cl as Nn,cm as kn,cn as Tn,co as Rn,cp as Dn,cq as En,cr as Mn,cs as Bn,ct as On,cu as An,cv as In,cw as Ln,cx as Fn,cy as Hn,cz as zn,cA as Gn,cB as $n,cC as qn,cD as Vn,cE as Un,cF as Wn,cG as Jn,cH as Qn,cI as Kn,cJ as Yn,cK as Xn,cL as Zn,cM as er,cN as tr,cO as sr,cP as ar,cQ as or,cR as nr,cS as rr,cT as ir,cU as lr,cV as cr,cW as _r,cX as dr,cY as pr,cZ as mr,c_ as ur,c$ as xr,d0 as br,d1 as gr,d2 as vr,d3 as hr,d4 as fr,d5 as Sr,d6 as yr,d7 as jr,d8 as Pr,d9 as wr,da as Cr,db as Nr,dc as kr,dd as Tr,de as Rr,df as Dr,dg as Er,dh as Mr,di as Br,dj as Or,dk as Ar,dl as Ir,dm as Lr,dn as Fr,dp as Hr,dq as zr,dr as Gr,ds as $r,dt as qr,du as Vr,dv as Ur,dw as Wr,dx as Jr,dy as Qr,dz as Kr,dA as Yr,dB as Xr,dC as Zr,dD as ei,dE as ti,dF as si,dG as ai,dH as oi,dI as ni,dJ as ri,dK as ii,dL as li,dM as ci,dN as _i,dO as di,dP as pi,dQ as mi,dR as ui,dS as xi,dT as bi,dU as gi,dV as vi,dW as hi,dX as fi,dY as Si,dZ as yi,d_ as ji,d$ as Pi,e0 as wi,e1 as Ci,e2 as Ni,e3 as ki,e4 as Ti,e5 as Ri,e6 as Di,e7 as Ei,e8 as Mi,e9 as Bi,ea as Oi,eb as Ai,ec as Ii,ed as Li,ee as Fi,ef as Hi,eg as zi,eh as Gi,ei as $i,ej as qi,ek as Vi,el as Ui,em as Wi,en as Ji,eo as Qi,ep as Ki,eq as Yi,er as Xi,es as Zi,et as el,eu as tl,ev as sl,ew as al,ex as ol,ey as nl,ez as rl,eA as il,eB as ll,eC as cl,eD as _l,eE as dl,eF as pl,eG as ml,eH as ul,eI as xl,eJ as bl,eK as gl,eL as vl,eM as hl,eN as fl,eO as Sl,eP as yl,eQ as jl,eR as Pl,eS as wl,eT as Cl,eU as Nl,eV as kl,eW as Tl,eX as Rl,eY as Dl,eZ as El,e_ as Ml,e$ as Bl,f0 as Ol,f1 as Al,f2 as Il,f3 as Ll,f4 as Fl,f5 as Hl,f6 as zl,f7 as Gl,f8 as $l,f9 as ql,fa as Vl,fb as Ul,fc as Wl,fd as Jl,fe as Ql,ff as Kl,fg as Yl,fh as Xl,fi as Zl,fj as ec,fk as tc,fl as sc,fm as ac,fn as oc,fo as nc,fp as rc,fq as ic,fr as lc,fs as cc,ft as _c,fu as dc,fv as pc,fw as mc,fx as uc,fy as xc,fz as bc,fA as gc,fB as vc,fC as hc,fD as fc,fE as Sc,fF as yc,fG as jc,fH as Pc,fI as wc,fJ as Cc,fK as Nc,fL as kc,fM as Tc,fN as Rc,fO as Dc,fP as Ec,fQ as Mc,fR as Bc,fS as Oc,fT as Ac,fU as Ic,fV as Lc,fW as Fc,fX as Hc,fY as zc,fZ as Gc,f_ as $c,f$ as qc,g0 as Vc,g1 as Uc,g2 as Wc,g3 as Jc,g4 as Qc,g5 as Kc,g6 as Yc,g7 as Xc,g8 as Zc,g9 as e_,ga as t_,gb as s_,gc as a_,gd as o_,ge as n_,gf as r_,gg as i_,gh as l_,gi as c_,gj as __,gk as d_,gl as p_,gm as m_,gn as u_,go as x_,gp as b_,gq as g_,gr as v_,gs as h_,gt as f_,gu as S_,gv as y_,gw as j_,gx as P_,gy as w_,gz as C_,gA as N_,gB as k_,gC as T_,gD as R_,gE as D_,gF as E_,gG as M_,gH as B_,gI as O_,gJ as A_,gK as I_,gL as L_,gM as F_,gN as H_,gO as z_,gP as G_,gQ as $_,gR as q_,gS as V_,gT as U_,gU as W_,gV as J_,gW as Q_,gX as K_,gY as Y_,gZ as X_,g_ as Z_,g$ as ed,h0 as td,h1 as sd,h2 as ad,h3 as od,h4 as nd,h5 as rd,h6 as id,h7 as ld,h8 as cd,h9 as _d,ha as dd,hb as pd,hc as md,hd as ud,he as xd,hf as bd,hg as gd,hh as vd,hi as hd,hj as fd,hk as Sd,hl as yd,hm as jd,hn as Pd,ho as wd,hp as Cd,hq as Nd,hr as kd,hs as Td,ht as Rd,hu as Dd,hv as Ed,hw as Md,hx as Bd,hy as Od,hz as Ad,hA as Id,hB as Ld,hC as Fd,hD as Hd,hE as zd,hF as Gd,hG as $d,hH as qd,hI as Vd,hJ as Ud,hK as Wd,hL as Jd,hM as Qd,hN as Kd,hO as Yd,hP as Xd,hQ as Zd,hR as ep,hS as tp,hT as sp,hU as ap,hV as op,hW as np,hX as rp,hY as ip,hZ as lp,h_ as cp,h$ as _p,i0 as dp,i1 as pp,i2 as mp,i3 as up,i4 as xp,i5 as bp,i6 as gp,i7 as vp,i8 as hp,i9 as fp,ia as Sp,ib as yp,ic as jp,id as Pp,ie as wp,ig as Cp,ih as Np,ii as kp,ij as Tp,ik as Rp,il as Dp,im as Ep,io as Mp,ip as Bp,iq as Op,ir as Ap,is as Ip,it as Lp,iu as Fp,iv as Hp,iw as zp,ix as Gp,iy as $p,iz as qp,iA as Vp,iB as Up,iC as Wp,iD as Jp,iE as Qp,iF as Kp,iG as Yp,iH as Xp,iI as Zp,iJ as em,iK as tm,iL as sm,iM as am,iN as om,iO as nm,iP as rm,iQ as im,iR as lm,iS as cm,iT as _m,iU as dm,iV as pm,iW as mm,iX as um,iY as xm,iZ as bm,i_ as gm,i$ as vm,j0 as hm,j1 as fm,j2 as Sm,j3 as ym,j4 as jm,j5 as Pm,j6 as wm,j7 as Cm,j8 as Nm,j9 as km,ja as Tm,jb as Rm,jc as Dm,jd as Em,je as Mm,jf as Bm,jg as Om,jh as Am,ji as Im,jj as Lm,jk as Fm,jl as Hm,jm as zm,jn as Gm,jo as $m,jp as qm,jq as Vm,jr as Um,js as Wm,jt as Jm,ju as Qm,jv as Km,jw as Ym,jx as Xm,jy as Zm,jz as eu,jA as tu,jB as su,jC as au,jD as ou,jE as nu,jF as ru,jG as iu,jH as lu,jI as cu,jJ as _u,jK as du,jL as pu,jM as mu,jN as uu,jO as xu,jP as bu,jQ as gu,jR as vu,jS as hu,jT as fu,jU as Su,jV as yu,jW as ju,jX as Pu,jY as wu,jZ as Cu,j_ as Nu,j$ as ku,k0 as Tu,k1 as Ru,k2 as Du,k3 as Eu,k4 as Mu,k5 as Bu,k6 as Ou,k7 as Au,k8 as Iu,k9 as Lu,ka as Fu,kb as Hu,kc as zu,kd as Gu,ke as $u,kf as qu,kg as Vu,kh as Uu,ki as Wu,kj as Ju,kk as Qu,kl as Ku,km as Yu,kn as Xu,ko as Zu,kp as ex,kq as tx,kr as sx,ks as ax,kt as ox,ku as nx,kv as rx,kw as ix,kx as lx,ky as cx,kz as _x,kA as dx,kB as px,kC as mx,kD as ux,kE as xx,kF as bx,kG as gx,kH as vx,kI as hx,kJ as fx,kK as Sx,kL as yx,kM as jx,kN as Px,kO as wx,kP as Cx,kQ as Nx,kR as kx,kS as Tx,kT as Rx,kU as Dx,kV as Ex,kW as Mx,kX as Bx,kY as Ox,kZ as Ax,k_ as Ix,k$ as Lx,l0 as Fx,l1 as Hx,l2 as zx,l3 as Gx,l4 as $x,l5 as qx,l6 as Vx,l7 as Ux,l8 as Wx,l9 as Jx,la as Qx,lb as Kx,lc as Yx,ld as Xx,le as Zx,lf as eb,lg as tb,lh as sb,li as ab,lj as ob,lk as nb,ll as rb,lm as ib,ln as lb,lo as cb,lp as _b,lq as db,lr as pb,ls as mb,lt as ub,lu as xb,lv as bb,lw as gb,lx as vb,ly as hb,lz as fb,lA as Sb,lB as yb,lC as jb,lD as Pb,lE as wb,lF as Cb,lG as Nb,lH as kb,lI as Tb,lJ as Rb,lK as Db,lL as Eb,lM as Mb,lN as Bb,lO as Ob,lP as Ab,lQ as Ib,lR as Lb,lS as Fb,lT as Hb,lU as zb,lV as Gb,lW as $b,lX as qb,lY as Vb,lZ as Ub,l_ as Wb,l$ as Jb,m0 as Qb,m1 as Kb,m2 as Yb,m3 as Xb,m4 as Zb,m5 as eg,m6 as tg,m7 as sg,m8 as ag,m9 as og,ma as ng,mb as rg,mc as ig,md as lg,me as cg,mf as _g,mg as dg,mh as pg,mi as mg,mj as ug,mk as xg,ml as bg,mm as gg,mn as vg,mo as hg,mp as fg,mq as Sg,mr as yg,ms as jg,mt as Pg,mu as wg,mv as Cg,mw as Ng,mx as kg,my as Tg,mz as Rg,mA as Dg,mB as Eg,mC as Mg,mD as Bg,mE as Og,mF as Ag,mG as Ig,mH as Lg,mI as Fg,mJ as Hg,mK as zg,mL as Gg,mM as $g,mN as qg,mO as Vg,mP as Ug,mQ as Wg,mR as Jg,mS as Qg,mT as Kg,mU as Yg,mV as Xg,mW as Zg,mX as ev,mY as tv,mZ as sv,m_ as av,m$ as ov,n0 as nv,n1 as rv,n2 as iv,n3 as lv,n4 as cv,n5 as _v,n6 as dv,n7 as pv,n8 as mv,n9 as uv,na as xv,nb as bv,nc as gv,nd as vv,ne as hv,nf as fv,ng as Sv,nh as yv,ni as jv,nj as Pv,nk as wv,nl as Cv,nm as Nv,nn as kv,no as Tv,np as Rv,nq as Dv,nr as Ev,ns as Mv,nt as Bv,nu as Ov,nv as Av,nw as Iv,nx as Lv,ny as Fv,nz as Hv,nA as zv,nB as Gv,nC as $v,nD as qv,nE as Vv,nF as Uv,nG as Wv,nH as Jv,nI as Qv,nJ as Kv,nK as Yv,nL as Xv,nM as Zv,nN as eh,nO as th,nP as sh,nQ as ah,nR as oh,nS as nh,nT as rh,nU as ih,nV as lh,nW as ch,nX as _h,nY as dh,nZ as ph,n_ as mh,n$ as uh,o0 as xh,o1 as bh,o2 as gh,o3 as vh,o4 as hh,o5 as fh,o6 as Sh,o7 as yh,o8 as jh,o9 as Ph,oa as wh,ob as Ch,oc as Nh,od as kh,oe as Th,of as Rh,og as Dh,oh as Eh,oi as Mh,oj as Bh,ok as Oh,ol as Ah,om as Ih,on as Lh,oo as Fh,op as Hh,oq as zh,or as Gh,os as $h,ot as qh,ou as Vh,ov as Uh,ow as Wh,ox as Jh,oy as Qh,oz as Kh,oA as Yh,oB as Xh,oC as Zh,oD as ef,oE as tf,oF as sf,oG as af,oH as of,oI as nf,oJ as rf,oK as lf,oL as cf,oM as _f,oN as df,oO as pf,oP as mf,oQ as uf,oR as xf,oS as bf,oT as gf,oU as vf,oV as hf,oW as ff,oX as Sf,oY as yf,oZ as jf,o_ as Pf,o$ as wf,p0 as Cf,p1 as Nf,p2 as kf,p3 as Tf,p4 as Rf,p5 as Df,p6 as Ef,p7 as Mf,p8 as Bf,p9 as Of,pa as Af,pb as If,pc as Lf,pd as Ff,pe as Hf,pf as zf,pg as Gf,ph as $f,pi as qf,pj as Vf,pk as Uf,pl as Wf,pm as Jf,pn as Qf,po as Kf,pp as Yf,pq as Xf,pr as Zf,ps as e0,pt as t0,pu as s0,pv as a0,pw as o0,px as n0,py as r0,pz as i0,pA as l0,pB as c0,pC as _0,pD as d0,pE as p0,pF as m0,pG as u0,pH as x0,pI as b0,pJ as g0,pK as v0,pL as h0,pM as f0,pN as S0,pO as y0,pP as j0,pQ as P0,pR as w0,pS as C0,pT as N0,pU as k0,pV as T0,pW as R0,pX as D0,pY as E0,pZ as M0,p_ as B0,p$ as O0,q0 as A0,q1 as I0,q2 as L0,q3 as F0,q4 as H0,q5 as z0,q6 as G0,q7 as $0,q8 as q0,q9 as V0,qa as U0,qb as W0,qc as J0,qd as Q0,qe as K0,qf as Y0,qg as X0,qh as Z0,qi as eS,qj as tS,qk as sS,ql as aS,qm as oS,qn as nS,qo as rS,qp as iS,qq as lS,qr as cS,qs as _S,qt as dS,qu as pS,qv as mS,qw as uS,qx as xS,qy as bS,qz as gS,qA as vS,qB as hS,qC as fS,qD as J}from"./EditorShell--V2ExYQ6.js";import{S as xt,M as bt,f as SS,a as gt,u as yS,A as vt,p as ze,e as V,b as ht,c as ft,d as St,g as jS,h as PS,i as wS,T as CS,j as NS,k as kS,l as TS,D as RS,m as DS,n as ES,B as MS,o as BS,q as OS,r as AS,J as IS,s as LS,t as FS,v as HS,w as zS,x as GS,y as $S,z as qS,C as VS,E as US,F as WS,G as JS,H as QS,I as KS,K as YS,L as XS,N as ZS,O as ey,P as ty,Q as sy,R as ay,U as oy,V as ny,W as ry,X as iy,Y as ly,Z as cy,_ as _y,$ as dy,a0 as py,a1 as my,a2 as uy,a3 as xy,a4 as by,a5 as gy,a6 as vy,a7 as hy,a8 as fy,a9 as Sy,aa as yy,ab as jy,ac as Py,ad as wy,ae as Cy,af as Ny,ag as ky,ah as Ty,ai as Ry,aj as Dy,ak as Ey,al as My,am as By,an as Oy,ao as Ay,ap as Iy,aq as Ly,ar as Fy,as as Hy,at as zy,au as Gy,av as $y,aw as qy,ax as Vy,ay as Uy,az as Wy,aA as Jy,aB as Qy,aC as Ky,aD as Yy,aE as Xy,aF as Zy,aG as ej,aH as tj,aI as sj,aJ as aj,aK as oj,aL as nj,aM as rj,aN as ij,aO as lj,aP as cj,aQ as _j,aR as dj,aS as pj,aT as mj,aU as uj,aV as xj,aW as bj,aX as gj,aY as vj,aZ as hj,a_ as fj,a$ as Sj,b0 as yj,b1 as jj,b2 as Pj}from"./ScenarioDataPanel-DjprZq2L.js";import{V as wj,S as Cj,P as Nj,a as kj,B as Tj,b as Rj,c as Dj,d as Ej,e as Mj,_ as Bj,f as Oj,g as Aj,h as Ij}from"./StepsSimulator-CymGgfbu.js";import{M as yt,_ as Lj}from"./Markdown-Chgdf3PW.js";import{S as jt,B as L,M as B,a as q,t as M,I as Fj,D as Hj,b as zj,c as Gj,d as $j,e as qj,f as Vj,g as Uj,h as Wj,i as Jj,j as Qj,k as Kj,C as Yj,l as Xj,_ as Zj,m as eP,n as tP,o as sP,p as aP,q as oP,r as nP,s as rP,u as iP,v as lP,w as cP,x as _P,y as dP,z as pP}from"./ContainerInspector-Cu1tSN-o.js";import{O as mP,a as uP,P as xP,C as bP,b as gP,c as vP,d as hP,e as fP,f as SP,g as yP,R as jP,T as PP,h as wP,i as CP,j as NP,k as kP,l as TP,m as RP,_ as DP,n as EP,o as MP,p as BP}from"./ProjectLauncherScreen-Dmm6Z0mv.js";import{S as OP,_ as AP}from"./ScenarioDataPanelFullPage-BqMxWVKW.js";import"./useEvents-S3Qk1Y_d.js";import"./index-VuyqBbGJ.js";import"./xterm--24IGk-x.js";const IP=Object.freeze(Object.defineProperty({__proto__:null,get ScenarioRenderer(){return os}},Symbol.toStringTag,{value:"Module"}));function Pt({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(hs,{previewOrigin:t,onRecheck:()=>{}})})}const LP=Object.freeze(Object.defineProperty({__proto__:null,PreviewSignInNoticeShowcase:Pt},Symbol.toStringTag,{value:"Module"}));function ne({files:t}){if(t.length===0)return null;const{added:s,modified:a,deleted:o}=fs(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 FP=Object.freeze(Object.defineProperty({__proto__:null,FileChangeSummary:ne},Symbol.toStringTag,{value:"Module"}));function re({entry:t}){return e.jsxs("div",{className:"mt-3 pt-3",style:{borderTop:"1px solid var(--border-default)"},children:[t.userRequest&&e.jsx(C,{label:"Request",children:e.jsx(We,{children:t.userRequest})}),e.jsx(C,{label:"Description",children:e.jsx(yt,{variant:"compact",children:t.description})}),t.scenarioScreenshots.length>0&&e.jsx(C,{label:"Scenarios",children:e.jsx(Je,{screenshots:t.scenarioScreenshots})}),t.modifiedFiles.length>0&&e.jsx(C,{label:"Modified Files",children:e.jsx(Qe,{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 HP=Object.freeze(Object.defineProperty({__proto__:null,JournalEntryDetails:re},Symbol.toStringTag,{value:"Module"}));function ie({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(le,{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:Ss(t.timestamp)}),t.testResults&&e.jsx(Ke,{total:t.testResults.total,passed:t.testResults.passed,failed:t.testResults.failed}),e.jsx(ne,{files:t.modifiedFiles})]})]}),e.jsx("span",{className:"text-xs mt-1",style:{color:"var(--text-dim)"},children:s?"▼":"▶"})]}),s&&e.jsx(re,{entry:t})]})}function le({type:t}){return e.jsx("span",{className:`text-xs font-medium ${ys(t)}`,children:t})}const zP=Object.freeze(Object.defineProperty({__proto__:null,EntryTypeBadge:le,JournalEntryCard:ie},Symbol.toStringTag,{value:"Module"}));function wt({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.jsx("div",{className:"py-12",children:e.jsx(w,{text:`Failed to load journal: ${r}`,className:"text-sm text-[var(--accent-red)]",rowClassName:"justify-center"})});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(ie,{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 GP=Object.freeze(Object.defineProperty({__proto__:null,JournalView:wt},Symbol.toStringTag,{value:"Module"})),ce=[{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 _e(t){const s=new Map(t.map(a=>[a.key,a]));return{concepts:t,byKey:a=>s.get(a)}}function Ct(){return e.jsx(ae.Provider,{value:_e(ce),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(I,{k:"hosting",children:"hosting"})," and point a"," ",e.jsx(I,{k:"domain",children:"domain"})," at it. Your host turns on"," ",e.jsx(I,{k:"ssl-https",children:"HTTPS"})," automatically, and if your app saves anything you'll add a"," ",e.jsx(I,{k:"database",children:"database"})," and an"," ",e.jsx(I,{k:"api-key",children:"API key"})," or two. Tap any underlined word to learn what it means."]})})})}function Nt(){return e.jsx(ae.Provider,{value:_e(ce),children:e.jsx(js,{onBack:()=>{}})})}const $P=[{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 kt(){return e.jsx(ae.Provider,{value:_e(ce),children:e.jsx(Ye,{topics:$P,onBack:()=>{},onOpenHosting:()=>{},onOpenTopic:()=>{},onOpenConcepts:()=>{}})})}const qP=Object.freeze(Object.defineProperty({__proto__:null,ConceptTermShowcase:Ct,ConceptsGlossaryScreenShowcase:Nt,LearnSetupConceptsNudgeShowcase:kt},Symbol.toStringTag,{value:"Module"}));function Tt({apps:t,selected:s,onChange:a}){return t.length===0?null:e.jsxs("div",{className:"flex gap-1",children:[t.map(o=>e.jsx(Q,{href:Ps(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(Q,{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 VP=Object.freeze(Object.defineProperty({__proto__:null,AppSelector:Tt},Symbol.toStringTag,{value:"Module"}));function Rt(){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 UP=Object.freeze(Object.defineProperty({__proto__:null,BuildTabReadyToBuildPlaceholder:Rt},Symbol.toStringTag,{value:"Module"})),WP=Object.freeze(Object.defineProperty({__proto__:null,EditorShellPreviewPane:K},Symbol.toStringTag,{value:"Module"})),JP={http_request:"#3fb950",db_query:"#D7FF63",process_output:"#6e7681",health_check:"#d29922",hook_execution:"#bc8cff",error:"#f85149",scenario_switch:"#d29922"};function QP(t){const s=JP[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 de({event:t}){const{label:s,detail:a,badge:o,color:n}=QP(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 KP=Object.freeze(Object.defineProperty({__proto__:null,EventCard:de},Symbol.toStringTag,{value:"Module"}));function Dt({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(de,{event:s},s.id))})}const YP=Object.freeze(Object.defineProperty({__proto__:null,EventStream:Dt},Symbol.toStringTag,{value:"Module"}));function pe({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 XP=Object.freeze(Object.defineProperty({__proto__:null,StatusBadge:pe},Symbol.toStringTag,{value:"Module"}));function me({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(pe,{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(Xe,{test:l},c))})]})}const ZP=Object.freeze(Object.defineProperty({__proto__:null,FeatureGroupView:me},Symbol.toStringTag,{value:"Module"}));function Et({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 ew=Object.freeze(Object.defineProperty({__proto__:null,FilterBar:Et},Symbol.toStringTag,{value:"Module"}));function ue({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(Ze,{scenario:n,onPreview:s?()=>s(n.slug):void 0},n.slug))})]})}const tw=Object.freeze(Object.defineProperty({__proto__:null,RouteGroupView:ue},Symbol.toStringTag,{value:"Module"}));function Mt({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):Fe(`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():Fe("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(et,{round:t,onDesignConfirmed:r})]})}const sw=Object.freeze(Object.defineProperty({__proto__:null,DesignRoundPreviewPane:Mt},Symbol.toStringTag,{value:"Module"}));function xe({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 aw=Object.freeze(Object.defineProperty({__proto__:null,RouteImportRow:xe},Symbol.toStringTag,{value:"Module"}));function Bt({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(C,{label:"URL",children:e.jsx("span",{className:"font-mono text-xs text-[var(--text-muted)]",children:a})}),o&&e.jsx(C,{label:"Component",children:e.jsx("span",{className:"font-mono text-xs text-[var(--accent-blue)]",children:o})}),n&&e.jsx(C,{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(C,{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(C,{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(C,{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(C,{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(xt,{slug:t,scenarioName:s,initialSection:"mocks",onClose:()=>x(!1)})]})}const ow=Object.freeze(Object.defineProperty({__proto__:null,ScenarioDetailPanel:Bt},Symbol.toStringTag,{value:"Module"}));function be({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(w,{text:a,className:"text-xs text-red-400 font-mono"})]})}const nw=Object.freeze(Object.defineProperty({__proto__:null,MockBodyJsonTextarea:be},Symbol.toStringTag,{value:"Module"}));function ge({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(bt,{headers:i,onChange:v=>{f(!1),b(v)}}),e.jsx(be,{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 rw=Object.freeze(Object.defineProperty({__proto__:null,MockBodyEditor:ge},Symbol.toStringTag,{value:"Module"}));function ve({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(w,{text:x,className:"text-red-400 text-[10px]"})]}),t.source==="passthrough"&&e.jsx("button",{onClick:r,className:b,children:"Undo passthrough"})]})}const iw=Object.freeze(Object.defineProperty({__proto__:null,MockPanelRowActions:ve},Symbol.toStringTag,{value:"Module"})),Ge={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 he({entry:t}){const s=Ge[t.method]??Ge.GET,a=t.status??t.lastObservedStatus,o=t.lastObservedMs?SS(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(gt,{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 lw=Object.freeze(Object.defineProperty({__proto__:null,MockPanelRowHeader:he},Symbol.toStringTag,{value:"Module"}));function fe({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(he,{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(ve,{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(ge,{initialStatus:t.status??200,initialBody:t.body,initialHeaders:t.headers??{},onCancel:()=>c(!1),onSave:async m=>{await a({routeKey:_,...m}),c(!1)}})]})}const cw=Object.freeze(Object.defineProperty({__proto__:null,MockPanelRow:fe},Symbol.toStringTag,{value:"Module"})),H=async()=>{};function Ot({label:t,entries:s,defaultEndpointKeys:a=[],onSave:o=H,onRemove:n=H,onPassthrough:r=H,onCaptureLive:l=H}){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(fe,{entry:_,scenarioHasDefaultFallback:c.has(`${_.method} ${_.pathPattern}`),onSave:o,onRemove:n,onPassthrough:r,onCaptureLive:l},`${_.method} ${_.pathPattern}`))})]})}const _w=Object.freeze(Object.defineProperty({__proto__:null,MockPanelGroup:Ot},Symbol.toStringTag,{value:"Module"}));function At({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 dw=Object.freeze(Object.defineProperty({__proto__:null,MockPanelHeader:At},Symbol.toStringTag,{value:"Module"}));function It({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 pw=Object.freeze(Object.defineProperty({__proto__:null,TestSummary:It},Symbol.toStringTag,{value:"Module"}));function Lt({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 mw=Object.freeze(Object.defineProperty({__proto__:null,PlaceholderPane:Lt},Symbol.toStringTag,{value:"Module"}));function Ft(){return yS(()=>!0,!0),null}const uw=Object.freeze(Object.defineProperty({__proto__:null,ReadyAgentRegistrar:Ft},Symbol.toStringTag,{value:"Module"}));function Ht({paths:t}){return e.jsxs(vt,{children:[e.jsx(Ft,{}),e.jsx(tt,{paths:t,onClose:()=>{}})]})}const xw=Object.freeze(Object.defineProperty({__proto__:null,FileDropConfirmModalAgentReadyShowcase:Ht},Symbol.toStringTag,{value:"Module"}));function zt({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.jsx("div",{className:"py-12",children:e.jsx(w,{text:`Failed to load scenarios: ${a}`,className:"text-sm text-[var(--accent-red)]",rowClassName:"justify-center"})}):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(ue,{group:r,onPreviewScenario:n},r.route))]})}const bw=Object.freeze(Object.defineProperty({__proto__:null,ScenariosView:zt},Symbol.toStringTag,{value:"Module"}));function Gt({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.jsx("div",{className:"py-12",children:e.jsx(w,{text:`Failed to load tests: ${a}`,className:"text-sm text-[var(--accent-red)]",rowClassName:"justify-center"})}):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(st,{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(me,{group:_},_.feature))]})}const gw=Object.freeze(Object.defineProperty({__proto__:null,TestsView:Gt},Symbol.toStringTag,{value:"Module"}));function $t({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 vw=Object.freeze(Object.defineProperty({__proto__:null,EditDataButton:$t},Symbol.toStringTag,{value:"Module"}));function Se(t){return`${t.method} ${t.pathPattern}`}function hw({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 fw(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 Sw({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:Se(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 yw(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 ye(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function jw(t){return Array.isArray(t)&&t.length>0&&t.every(ye)}function Z(t,s,a){if(ye(t)){for(const[o,n]of Object.entries(t)){const r=s?`${s}.${o}`:o;Z(n,r,a)}return}if(jw(t)){t.forEach((o,n)=>Z(o,`${s}[${n}]`,a));return}a.push({path:s,value:t})}function $e(t){if(!ye(t))return[];const s=[];return Z(t,"",s),s}function Pw(t){return t===null?"null":t===void 0?"":typeof t=="object"?JSON.stringify(t):String(t)}function ww({slug:t,initialProps:s,onCellEdited:a}){const[o,n]=d.useState(()=>$e(s)),[r,l]=d.useState(null),[c,_]=d.useState(""),[m,x]=d.useState(""),u=d.useRef(null);d.useEffect(()=>{n($e(s)),l(null)},[s]);function i(h){const v=o.find(R=>R.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:ze(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(()=>{V(),a&&a()}).catch(()=>{})}l(null)}}async function y(h,v){const S=o.map(j=>j.path===h?{...j,value:ze(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})}),V(),a&&a()}catch{}}return{rows:o,editingPath:r,editValue:c,handleEditPath:i,handleEditValueChange:b,handleSave:g,handleCancelEdit:f}}function je({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 Cw=Object.freeze(Object.defineProperty({__proto__:null,ScenarioDataPanelPropsEditor:je},Symbol.toStringTag,{value:"Module"}));function Pe({slug:t,props:s,onCellEdited:a}){const{rows:o,editingPath:n,editValue:r,handleEditPath:l,handleEditValueChange:c,handleSave:_,handleCancelEdit:m}=ww({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:Pw(x.value)})]},x.path))})]})}),n&&e.jsx(je,{path:n,value:r,onValueChange:c,onSave:_,onCancel:m})]})}const Nw=Object.freeze(Object.defineProperty({__proto__:null,ScenarioDataPanelMainProps:Pe},Symbol.toStringTag,{value:"Module"}));function we({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.jsx(w,{text:`Seed error: ${n}`,className:"text-xs text-red-400",rowClassName:"p-3"}),r&&e.jsx(w,{text:`Mocks error: ${r}`,className:"text-xs text-red-400",rowClassName:"p-3"}),l&&e.jsx(w,{text:`Draft error: ${l}`,className:"text-xs text-red-400",rowClassName:"p-3"}),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(Pe,{slug:t,props:c,onCellEdited:u}),s==="seed"&&_&&e.jsx(ht,{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(ft,{entry:x,routeKey:Se(x),scenarioSlug:t,onSave:i}):e.jsx(St,{entry:x})})]})}const kw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverBody:we},Symbol.toStringTag,{value:"Module"}));function Ce({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(w,{text:t.message,className:"text-[10px] text-red-400",rowClassName:"mt-1.5"})]})}const Tw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverDescribeInput:Ce},Symbol.toStringTag,{value:"Module"}));function Ne({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 Rw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverSaveCancelClose:Ne},Symbol.toStringTag,{value:"Module"}));function ke({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 Dw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverSearchInput:ke},Symbol.toStringTag,{value:"Module"}));function Te({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 Ew=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverSectionSelector:Te},Symbol.toStringTag,{value:"Module"}));function Re({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 Mw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverTabStrip:Re},Symbol.toStringTag,{value:"Module"}));function De({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(Te,{sections:t,section:s,activeSection:a,onSelect:n}),e.jsx("span",{className:"text-[var(--text-dim)] text-[10px]",children:"/"}),e.jsx(Re,{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(ke,{value:l,disabled:c,onChange:_}),e.jsx(Ne,{isDirty:m,saving:x,cancelling:u,onSave:i,onCancel:b,onClose:g})]})]})}const Bw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverHeader:De},Symbol.toStringTag,{value:"Module"}));function Ee({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 Ow=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopoverResizeHandleLeft:Ee},Symbol.toStringTag,{value:"Module"}));function qt({slug:t,scenarioName:s,onClose:a}){const o=d.useRef(null),n=jS({slug:t,onPreviewReload:V}),r=yw(o),{data:l,tableTabs:c,props:_,loading:m,error:x}=PS(t),{entries:u,loading:i,error:b,upsertScoped:g}=wS(t),{sections:f,activeSection:y,section:h,activeSeedKey:v,activeMockKey:S,selectSection:j,selectSeedKey:R,selectMockKey:E}=Sw({props:_,seedTabs:c,mockEntries:u}),[N,T]=d.useState(""),U=h==="seed"?c.find(P=>P.dataKey===v)??null:null,ns=h==="mock"?u.find(P=>Se(P)===S)??null:null,W=U&&l?l[U.dataKey]??[]:[],rs=d.useMemo(()=>{if(!N.trim())return W;const P=N.toLowerCase();return W.filter(xs=>Object.values(xs).some(bs=>String(bs??"").toLowerCase().includes(P)))},[W,N]),F=d.useCallback(()=>{n.markDirty(),V()},[n]),is=d.useCallback(async P=>{await g(P),F()},[g,F]),Ie=d.useCallback(()=>{n.confirmIfDirty("Discard unsaved changes to this scenario?")&&a()},[n,a]);fw(o,Ie);const ls=d.useCallback(async()=>{await n.save(),n.error||a()},[n,a]),Le=hw({slug:t,onApplied:F}),cs=h==="seed"?v:h==="mock"?S:null;function _s(P){h==="seed"&&R(P),h==="mock"&&E(P)}function ds(P){P!==null&&(j(P),T(""))}const ps=s??t,ms=f.length>0,us=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 ${ps}`,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(De,{sections:f,section:h,activeSection:y,activeTabId:cs,onSelectSection:ds,onSelectTab:_s,search:N,searchDisabled:h!=="seed",onSearchChange:T,isDirty:n.isDirty,saving:n.saving,cancelling:n.cancelling,onSave:ls,onCancel:()=>void n.cancel(),onClose:Ie}),e.jsx(we,{slug:t,section:h,hasAnything:ms,loading:us,seedError:x,mocksError:b,draftError:n.error,props:_,selectedSeedTab:U,filteredSeedRows:rs,selectedMock:ns,onSeedCellEdit:F,onMockSave:is}),e.jsx(Ce,{status:Le.status,onSubmit:Le.submit}),e.jsx(Ee,{popoverRef:o,paneWidth:r})]})]})}const Aw=Object.freeze(Object.defineProperty({__proto__:null,EditDataPopover:qt},Symbol.toStringTag,{value:"Module"}));function Vt({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 Iw=Object.freeze(Object.defineProperty({__proto__:null,ViewTabs:Vt},Symbol.toStringTag,{value:"Module"}));function Ut({text:t,title:s,testId:a,children:o,className:n="",writer:r}){return e.jsxs("div",{role:"alert","data-testid":a,className:`rounded-md border border-[var(--accent-danger)] bg-[var(--accent-danger)]/10 p-3 ${n}`,children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s?e.jsx("div",{className:"text-xs font-medium text-[var(--text-danger)]",children:s}):e.jsx("span",{}),e.jsx(se,{variant:"subtle",text:t,label:"Copy",writer:r})]}),e.jsx("div",{className:"mt-2",children:o??e.jsx("pre",{className:"whitespace-pre-wrap break-words font-mono text-xs text-[var(--text-secondary)]",children:t})})]})}const Lw=Object.freeze(Object.defineProperty({__proto__:null,CopyableErrorBlock:Ut},Symbol.toStringTag,{value:"Module"}));function Wt({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(oe,{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 Fw=Object.freeze(Object.defineProperty({__proto__:null,DevServerRestartingOverlay:Wt},Symbol.toStringTag,{value:"Module"}));function Jt(){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(oe,{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 Hw=Object.freeze(Object.defineProperty({__proto__:null,DevServerStartingOverlay:Jt},Symbol.toStringTag,{value:"Module"}));function Qt(){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 zw=Object.freeze(Object.defineProperty({__proto__:null,DevServerStoppedOverlay:Qt},Symbol.toStringTag,{value:"Module"}));function Kt({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 Gw=Object.freeze(Object.defineProperty({__proto__:null,RouteEntitySection:Kt},Symbol.toStringTag,{value:"Module"}));function Me(){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 $w=Object.freeze(Object.defineProperty({__proto__:null,RouteImportEmptyState:Me},Symbol.toStringTag,{value:"Module"}));function Yt({directImports:t}){return t.length===0?e.jsx(Me,{}):e.jsx("div",{className:"grid grid-cols-1 gap-1",children:t.map(s=>{const{fileName:a,dirPath:o}=ws(s);return e.jsx(xe,{fileName:a,dirPath:o},s)})})}const qw=Object.freeze(Object.defineProperty({__proto__:null,RouteImportList:Yt},Symbol.toStringTag,{value:"Module"}));function Xt({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 Vw=Object.freeze(Object.defineProperty({__proto__:null,RouteSummaryCard:Xt},Symbol.toStringTag,{value:"Module"}));function Zt({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(Be,{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 Be({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 Uw=Object.freeze(Object.defineProperty({__proto__:null,DataViewerTabBar:Zt,DataViewerTabButton:Be},Symbol.toStringTag,{value:"Module"}));function es({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(at,{featureName:t,onClose:s})})}const Ww=Object.freeze(Object.defineProperty({__proto__:null,SendTranscriptOverlay:es},Symbol.toStringTag,{value:"Module"}));function ee(){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(jt,{title:"Section Header Example"}),e.jsxs("div",{style:{display:"flex",gap:8},children:[e.jsx(L,{color:"#238636",children:"ACTIVE"}),e.jsx(L,{color:"#d29922",children:"WARNING"}),e.jsx(L,{color:"#da3633",children:"ERROR"}),e.jsx(L,{color:"#D7FF63",children:"INFO"})]}),e.jsxs("div",{style:{display:"flex",gap:12},children:[e.jsx(B,{method:"GET"}),e.jsx(B,{method:"POST"}),e.jsx(B,{method:"PUT"}),e.jsx(B,{method:"DELETE"}),e.jsx(B,{method:"PATCH"})]}),e.jsx(q,{color:"#238636",children:"Success status message"}),e.jsx(q,{color:"#d29922",children:"Warning status message"}),e.jsx(q,{color:"#8b949e",children:"Neutral status message"})]})}const Jw=Object.freeze(Object.defineProperty({__proto__:null,InspectorPrimitivesShowcase:ee},Symbol.toStringTag,{value:"Module"})),Qw=[{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 te({events:t}){const s=t??Qw;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:M,children:"Time"}),e.jsx("th",{style:M,children:"Method"}),e.jsx("th",{style:{...M,textAlign:"left"},children:"URL"}),e.jsx("th",{style:M,children:"Status"}),e.jsx("th",{style:M,children:"Duration"}),e.jsx("th",{style:M,children:"Source"})]})}),e.jsx("tbody",{children:s.map(a=>e.jsx(Fj,{event:a},a.id))})]})})}const Kw=Object.freeze(Object.defineProperty({__proto__:null,InspectorTrafficRowShowcase:te},Symbol.toStringTag,{value:"Module"}));function ts(){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 Yw=Object.freeze(Object.defineProperty({__proto__:null,StaleDbStripeOverlay:ts},Symbol.toStringTag,{value:"Module"}));function Oe({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(w,{text:t,copyText:`Seed Error: ${t}`,className:"text-sm text-[var(--accent-red)]",rowClassName:"mt-2 justify-center"}),e.jsx("p",{className:"mt-2 text-xs text-[var(--text-muted)]",children:"The database state shown may not match this scenario."})]})})}const Xw=Object.freeze(Object.defineProperty({__proto__:null,ScenarioSeedErrorView:Oe},Symbol.toStringTag,{value:"Module"}));function Ae({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 Zw=Object.freeze(Object.defineProperty({__proto__:null,ScenarioRendererAppDeadEnd:Ae},Symbol.toStringTag,{value:"Module"})),qe={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"]},eC={supabaseProject:"your-app",connectedOn:"today",describedOn:"today"};function tC(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 sC(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 A({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 aC=Object.freeze(Object.defineProperty({__proto__:null,RealDataZone:A},Symbol.toStringTag,{value:"Module"}));function ss({entity:t,connection:s,onPlan:a}){const[o,n]=d.useState(new Set),[r,l]=d.useState(!1),c=tC(t),_=sC(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(D,{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(A,{tone:"learn",icon:e.jsx(ot,{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(Y,{size:13}),"A developer edits ",t.plural]}),e.jsxs("div",{className:"rd-baln",children:[e.jsx(Y,{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(k,{size:13}),"You edit ",t.plural," yourself"]}),e.jsxs("div",{className:"rd-baln",children:[e.jsx(k,{size:13}),"Saves last forever"]})]})]})]}),e.jsxs(A,{tone:"tell",icon:e.jsx(nt,{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(A,{tone:"build",icon:e.jsx(rt,{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(k,{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(A,{tone:"track",icon:e.jsx(it,{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(k,{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(k,{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 oC=Object.freeze(Object.defineProperty({__proto__:null,RealDataConnected:ss},Symbol.toStringTag,{value:"Module"})),nC=1800;function as({entity:t,onConnect:s}){const[a,o]=d.useState(!1),n=()=>{a||(o(!0),window.setTimeout(s,nC))};return e.jsxs("div",{className:"rd-content",children:[e.jsxs("div",{className:"rd-shead",children:[e.jsx("div",{className:"rd-badge",children:e.jsx(D,{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(D,{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($,{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(X,{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(lt,{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: ${He("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(k,{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(ct,{size:16}),"Opening Supabase…"]}):e.jsxs(e.Fragment,{children:[e.jsx(_t,{size:16}),"Connect Supabase"]})}),e.jsxs("div",{className:"rd-reassure",children:[e.jsxs("span",{children:[e.jsx(k,{size:13}),"Free to start, no card needed"]}),e.jsxs("span",{children:[e.jsx(k,{size:13}),"Takes about 3 minutes"]}),e.jsxs("span",{children:[e.jsx(k,{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(dt,{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($,{size:15})})]}),e.jsxs("div",{className:"rd-lrow",children:[e.jsx("div",{className:"rd-ln",children:e.jsx(X,{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($,{size:15})})]})]}),e.jsx("div",{className:"rd-uplabel",children:"Common questions"}),e.jsx(pt,{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, ${He("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(mt,{assistKey:"real-data",topicName:"Use real data"})]})}const rC=Object.freeze(Object.defineProperty({__proto__:null,RealDataNotConnected:as},Symbol.toStringTag,{value:"Module"})),iC={AppleGlyph:em,ArrowRightIcon:Zp,GoogleGlyph:Xp,GraduationIcon:Yp,MagicLinkIcon:Kp,PaperPlaneIcon:Qp,PersonIcon:Jp,WarningTriangleIcon:Wp,ChatIcon:nt,CheckGlyph:k,ClockIcon:it,CubeIcon:rt,InfoCircleIcon:ot,LinkIcon:_t,ListLinesIcon:dt,ScreenIcon:X,ShieldCheckIcon:lt,SpinnerIcon:ct,XCircleIcon:Y,SetupStepper:Up,SetupStep:Vp,SetupAccountRow:qp,MethodChips:$p,EditableField:Gp,ExampleChips:zp,BuildList:Hp,ControlNote:Fp,SetupPlanFooter:Lp,AccountsConnected:Ip,EmailsConnected:Ap,PaymentsConnected:Op,ModeBar:Bp,RealDataConnected:ss,RealDataNotConnected:as,RealDataZone:A,RealSetupFlow:Mp,SetupNotConnected:Ep,DesignAssetDropLabel:Dp,PendingFileCard:Rp,PendingFileList:Tp,SaveAssetsButton:kp,AssetSaveErrorMessage:Np,AssetSaveSuccessMessage:Cp,ProviderAuthGate:wp,ProviderAuthenticateCta:jy,GatedAgentChat:yy,ProviderAuthModal:Sy,ClaudeOAuthFlow:fy,ApiKeyFlow:hy,AppServiceCredentialModal:Pp,DetectedServiceRow:jp,ServiceRow:yp,ApiKeyField:Sp,ProviderLogo:fp,G:hp,ExternalServicesScreenConnected:vp,ConnectionIdentityLine:gp,PreviewForwardPortNotice:bp,AppCard:xp,AppDetail:up,AppOverview:mp,BuildTab:pp,BuildTabLayout:dp,BuildTabPane:_p,BuildTabPaneLayout:cp,BuildTabRecoveryPanel:lp,BuildTabSessionContent:ip,BuildTabStartupError:rp,BuildTabReadyToBuildPlaceholder:Rt,BuildTabTerminalSession:np,AppSelector:Tt,AppTypeBadge:op,BreadcrumbNav:ap,EntityBreadcrumb:sp,BuildingPreviewOverlay:tp,ConnectionBadge:Xj,DebugModeButton:ep,DebugModal:Zd,DebugModalElementPreview:Xd,DebugModalInfoPanel:Yd,DebugOverlay:Kd,DebugAncestryList:Qd,DebugAncestrySection:Jd,DebugPropsChips:Wd,DebugFreezePill:Ud,OpenInEditorErrorToast:Vd,CyLogo:qd,DeviceIcon:$d,EditorNavBar:Gd,DesktopTitleBar:zd,IdleBanner:Hd,EditorSessionRecoveryActionButton:Fd,EditorSessionRecoveryDialog:Ld,EditorSessionRecoveryHeader:Id,EditorSessionRecovery:Ad,EditorSessionRecoverySummaryRow:Od,EditorSessionRecoverySummary:Bd,EditorShellHomeTabContent:Md,EditorShellBuildLayer:Ed,EditorShellLayout:Dd,EditorShellLeftPane:Rd,EditorShellPlanLayer:Td,EditorShellPreviewPane:K,EditorShellTabLayer:kd,MobilePaneSwitcher:Nd,GearIcon:Cd,EventCard:de,EventStream:Dt,EntryTypeBadge:le,CollapsibleMarkdown:We,FeatureNameButton:wd,FeatureGroupView:me,FileChangeSummary:ne,FileStatusIndicator:Pd,HistoryTab:jd,HistoryEntryCard:yd,HistoryDigest:Sd,HistoryDigestStatRow:fd,HistoryRangeSelector:hd,DigestHeader:vd,CommitOnlyHistoryRow:gd,NotificationSettingsPopover:bd,NotificationSettingsControls:xd,NotificationSetupBanner:ud,DebugNotificationsButton:md,IdleTriggerCheckbox:pd,JournalEntryCard:ie,JournalEntryDetails:re,JournalView:wt,ReviewsTab:dd,ReviewDetailCard:_d,ScenarioComparisonRow:cd,CapturePane:ld,ReviewFindingRow:id,LearnSetupScreen:Ye,LibrariesCatalogScreen:rd,LibraryGroupSection:nd,LibraryRow:od,AddTopicForm:ad,SetupAddTopicRow:sd,SetupTopicRouter:td,ExternalServicesScreen:ed,HostingScreen:Z_,RunLocallyScreen:X_,WiredProviderBanner:Y_,StoreAccountsScreen:K_,ExtensionAssetsScreen:Q_,PermissionsJustificationScreen:J_,PermissionRow:W_,ExtensionPrivacyPolicyScreen:U_,OAuthVerificationScreen:V_,SinglePurposeListingScreen:q_,ManifestVersioningScreen:$_,SubmitReviewScreen:G_,ExtensionDistributionScreen:z_,StagingPreviewScreen:H_,StagingEnvironmentScreen:F_,PreReleaseScreen:L_,RealDataScreen:I_,DeployTargetScreen:A_,DatabaseBackupsScreen:O_,SecretsScreen:B_,ApiAuthScreen:M_,CorsOriginsScreen:E_,BackgroundJobsScreen:D_,LoggingMonitoringScreen:R_,AccountsScreen:T_,EmailsScreen:k_,PaymentsScreen:N_,AnalyticsMonitoringScreen:C_,LegalScreen:w_,DataSafetyScreen:P_,PublishScreen:j_,CustomDomainScreen:y_,FormsScreen:S_,AnalyticsSeoScreen:f_,RedirectsNotFoundScreen:h_,PerformanceImagesScreen:v_,CommentsSearchScreen:g_,PublishRegistryScreen:b_,VersioningChangelogScreen:x_,InstallDocsScreen:u_,ReleaseBuildsScreen:m_,ShellCompletionsScreen:p_,CliUxScreen:d_,SupplyChainScreen:__,ExamplesScreen:c_,ApiDocsScreen:l_,BackendApiDocsScreen:i_,SemverPolicyScreen:r_,ReadmeLicenseScreen:n_,ChangelogCiScreen:o_,DevAccountsScreen:a_,StoreAssetsScreen:s_,StoreListingScreen:t_,TestingDistributionScreen:e_,PushNotificationsScreen:Zc,CrashReportingScreen:Xc,InAppPurchasesScreen:Yc,AppPrivacyScreen:Kc,AppReviewScreen:Qc,LabeledSection:C,FilterBar:Et,LeftPanel:Jc,ModifiedFilesList:Qe,NavLink:Q,Markdown:yt,NewProjectQuestionnaire:Wc,NewProjectQuestionnaireInner:Uc,DesignAddAssetsStep:Vc,QuestionnaireDesignApproachStep:qc,QuestionnaireNotificationsStep:$c,QuestionnaireDesignChatStep:Gc,QuestionnaireDesignChatLaunchPanel:zc,MockupArchivedRoundView:Hc,MockupCard:Fc,MockupCardPreviewSlot:Lc,MockupCardFeedback:Ic,MockupFeedbackCommentBox:Ac,MockupFeedbackRatingSlider:Oc,MockupGridGeneratingOverlay:Bc,MockupGridInfoBanner:Mc,MockupGridIterateButton:Ec,MockupPlaceholderCard:Dc,MockupRoundPager:Rc,DesignExplorationView:et,DesignRoundPreviewPane:Mt,QuestionnaireIntroBanner:Tc,QuestionnaireDeviceSelector:kc,QuestionnaireNavButtons:Nc,QuestionnaireOptionCard:Cc,PanelDivider:wc,PromptDropdownPanel:Pc,PreviewCanvas:jc,PreviewEmptyState:yc,PreviewFrame:Sc,BackendResultsPanelView:fc,PlanPreviewPanelView:hc,PlanPreviewEmptyState:vc,PlanPreviewHeader:gc,ProjectSetupPreviewView:bc,ProjectSetupPreviewPane:xc,StartBuildingConfirmModal:uc,ResetBuildConfirmModal:mc,ProjectSetupHeader:pc,ProjectSetupDescriptionCard:dc,ProjectSetupDesignCard:_c,ProjectSetupChosenMockup:cc,ProjectSetupDesignAssetList:lc,ProjectLauncher:RP,ProjectRow:TP,ProjectRowActions:kP,ProjectScanForm:NP,ProjectCreateForm:CP,ProjectBootstrapBanner:wP,Thumbnail:PP,RunningBadge:jP,CurrentBadge:yP,ProjectLauncherHeader:SP,ProjectLauncherLoading:fP,ProjectLauncherError:hP,ProjectLauncherEmpty:vP,ProjectOpenError:gP,CreateProjectModal:bP,ProjectLauncherScreen:xP,OpenSourceProjectsSection:uP,OpenSourceProjectRow:mP,ProjectSetupProgressList:ic,ProjectSetupProgressRow:rc,LiveIframeHealthPill:nc,PreviewPanel:K,BuildLogsModal:oc,SimulatorLauncherControls:ac,SimulatorPreviewFrame:()=>d.createElement(am,{currentWidth:390,currentHeight:844,isFilled:!1,scale:.6,pollMs:6e4}),SimulatorNotBootedPrompt:()=>d.createElement(sm,{pollMs:6e4}),NoBootedSimulatorPlaceholder:sc,DeviceFrameImage:()=>d.createElement(tm,{src:"/api/screenshots/app-overview-single-app--desktop.png",currentWidth:390,currentHeight:844,isFilled:!1,scale:1}),SimulatorFrameNotice:tc,NativeMirrorNotice:ec,QuestionnaireStepNav:Zl,QuestionnaireStepPanel:Xl,AppDetailContent:Yl,AppDetailContentError:Kl,AppDetailContentLoading:Ql,AppDetailHeader:Jl,AppCapabilitiesPanel:Wl,AppStackPanel:Ul,AppStackPanelSummary:Vl,AppStackPanelBody:ql,AppStackCapabilitiesSlot:$l,CapabilityRow:Gl,AppTestSummary:zl,LayoutChainCard:Hl,LayoutChainSection:Fl,RouteDependencyCard:Ll,RouteDependencyCardHeader:Il,RouteDependencyEmptyState:Al,RouteDependencyList:Ol,RouteDependencyScenarioStrip:Bl,RouteEntityDetail:Ml,RouteEntityDetailContent:El,RouteFunctionCard:Dl,RouteFunctionEmptyState:Rl,RouteFunctionList:Tl,RouteEntityDetailHeader:kl,RouteEntityTabs:Nl,RouteGroupView:ue,RouteImportRow:xe,RouteList:Cl,UnsurfacedPagesSection:wl,UnsurfacedPagesSectionHeader:Pl,UnsurfacedPageGroup:jl,UnsurfacedPageRow:yl,UnsurfacedPageRowSummary:Sl,UnsurfacedPageInvestigateButton:fl,RouteListCardThumbnail:hl,RouteScenarioList:vl,ScenarioCard:Ze,ScenarioRow:gl,ScenarioDetailPanel:Bt,MockBodyEditor:ge,MockBodyHeadersEditor:bt,MockBodyJsonTextarea:be,MockPanelGroup:Ot,MockPanelHeader:At,MockPanelRow:fe,MockPanelRowActions:ve,MockPanelRowHeader:he,MockSourceBadge:gt,ScenarioThumbnailGrid:Je,StatusBadge:pe,StepIndicatorBar:bl,StepIndicatorDropdownItem:xl,TabPane:ul,TestItem:Xe,TestGroupHeader:ml,TestGroupList:pl,TestGroupRow:dl,TestResultsBadge:Ke,TestSummary:It,TestStatusIcon:_l,ThumbnailStrip:cl,CollapseToggleButton:ll,DimensionInput:il,EditorShell:rl,EntityDetail:nl,EntityDetailContent:ol,EntityDetailHeader:al,EntityRefCard:sl,EntityRefList:tl,FillPreviewButton:el,OpenInNewTabButton:Zi,PlaceholderPane:Lt,SettingsTab:Xi,CheckInToggleRow:Yi,WorkflowSettingsSection:Ki,HardeningAutoAction:Qi,SegmentedPicker:Ji,PlanTab:Wi,PlanTabHeader:Ui,PlanNextChangeButton:Vi,PlanAuthoringChat:qi,PlanSubTabs:$i,DescribePane:Gi,PrototypePane:zi,PrototypeAgentChat:Hi,StartPrototypingButton:Fi,FinishAndFormalizeButton:Li,PrototypeBuildingInProgressBanner:Ii,PlanChatLaunchCaption:Ai,PlanExpandedHeader:Oi,PlanRow:Bi,PlanRowClaimBadge:Mi,PlanRowDependencyEntry:Ei,PlanRowEditButton:Di,PlanRowEditChatButton:Ri,PlanRowExpandedBody:Ti,PlanRowExpandedChat:ki,PlanRowExpandedDependencies:Ni,PlanRowExpandedEdit:Ci,PlanRowExpandedView:wi,PlanRunButton:Pi,PlanRunBlockedModal:ji,PlanRunForeignClaimModal:yi,PlanRunDependenciesModal:Si,QueuedChangesSection:fi,InFlightSection:hi,InFlightPlanRow:vi,CommitQueueSection:gi,CommitQueueRow:bi,CommitQueuePriorityChip:xi,CommitQueueReleaseButton:ui,CommitQueueSaveBar:mi,CommitQueueRowIdentity:pi,SortablePlanRow:di,RecentPlansSection:_i,CompletedPlanRow:ci,CompletedPlanExpandedBody:li,TabScrollPanel:ii,BuildLaunchModal:ri,GlobalFileDropOverlay:ni,GlobalFileDropToast:oi,FileDropConfirmModal:tt,FileDropConfirmModalAgentReadyShowcase:Ht,AttachFileButton:vy,PostPushTransition:ai,PostPushTransitionDialog:si,SelectPlanModal:ti,PlanCompleteDialog:ei,PlanCompleteTransition:Zr,ScenarioRenderer:os,ScenariosView:zt,TerminalEmulator:Xr,RawTerminalModal:Yr,RawTerminalEmulator:Kr,SetupTerminalPane:Qr,SetupTerminalHeader:Jr,SetupBrowserPane:Wr,SetupBrowserHeader:Ur,TerminalDropOverlay:Vr,TerminalDropToast:qr,TerminalDisconnectOverlay:gy,MobileTerminalCommandMenu:$r,MobileTerminalCommandMenuPanel:Gr,TerminalConnectingHint:by,TerminalReconnectingBanner:xy,TerminalFailedBanner:uy,TerminalServerStoppedBanner:my,TestsView:Gt,NavigationBar:zr,PagePill:Hr,PagePickerDropdown:Fr,StatesDropdown:Lr,CreateStatePlaceholderModal:Ir,StatesPillButton:Ar,EditDataButton:$t,EditDataPopover:qt,EditDataPopoverBody:we,EditDataPopoverDescribeInput:Ce,EditDataPopoverHeader:De,EditDataPopoverResizeHandleLeft:Ee,EditDataPopoverSaveCancelClose:Ne,EditDataPopoverSearchInput:ke,EditDataPopoverSectionSelector:Te,EditDataPopoverTabStrip:Re,ScenarioDataPanelMainProps:Pe,ScenarioDataPanelPropsEditor:je,ViewportPresetButton:Or,PagePickerTabButton:Br,PagePickerEmptyMessage:Mr,PagePickerScenarioThumbnail:Er,PagePickerRouteSection:Dr,StatesDropdownRow:Rr,ComponentGlyph:Tr,DropdownChevron:kr,PageGlyph:Nr,ViewTabs:Vt,SessionResultsPanel:Cr,SessionResultsPanelHeader:wr,MinimizedSessionResults:Pr,BackendResultsPage:jr,BackendResultsHeader:yr,BuildProgressDetail:Sr,BuildFileRow:fr,FunctionChangeRow:hr,BackendConnectionStatusBadge:vr,BehaviorGallery:gr,ChangeCard:br,WaysToTestList:xr,BehaviorGroup:ur,BehaviorItem:mr,BehaviorEvidenceDrawer:pr,RerunSection:dr,BehaviorExampleTable:_r,BehaviorGalleryEmptyState:cr,RunEvidenceLine:lr,NarrativeTestStatusIcon:ir,CoverageBadge:st,CoverageBar:rr,CoverageWarningsBanner:nr,CoverageSectionHeader:or,OrphanedFileRow:ar,CoverageDetailsModal:sr,CoverageFileDrilldown:tr,CoverageDetailsEntriesSection:er,CoverageDetailsEntryRow:Zn,CoverageDetailsOrphanedSection:Xn,CoverageDetailsDirectoriesSection:Yn,CoverageDetailsDirectoryGroup:Kn,CoverageDetailsDirectoryFileRow:Qn,CoverageLineRow:Jn,AppCardFooter:Wn,RunTestsButton:Un,TestBar:Vn,AppCardHeader:qn,AppCardScenarioStrip:$n,AppOverviewEmptyState:Gn,AppOverviewEmptyStateBuildingPanel:zn,AppOverviewEmptyStateNoAppPanel:Hn,OpenBuildTabButton:Fn,AppOverviewGrid:Ln,AppOverviewHeader:In,HomeBuildStatusSection:An,ExploreRail:On,CopyButton:se,CopyableErrorBlock:Ut,CopyableErrorText:w,CrashLogFooter:Bn,CrashLogFooterMessage:Mn,CrashLogHeader:En,CrashLogViewer:Dn,DevServerCrashLog:Rn,DevServerRestartingOverlay:Wt,DevServerStartingOverlay:Jt,DevServerStoppedOverlay:Qt,PreviewUnhealthyOverlay:Tn,ClientRoutingAdvisory:kn,PreviewErrorOverlay:Nn,PreviewErrorOverlayHeader:Cn,PreviewErrorOverlayFooter:wn,PreviewErrorList:Pn,PreviewErrorRow:jn,PreviewErrorBadge:yn,BuildSpinner:Sn,BuildShaBadge:fn,RestartSpinner:oe,RouteEntitySection:Kt,RouteImportEmptyState:Me,RouteImportList:Yt,RouteListCard:hn,RouteListEmptyState:vn,RouteListSection:gn,RouteListSectionHeader:bn,RouteScenarioEmptyState:xn,RouteSummaryCard:Xt,DoorRows:un,BuildingDoor:mn,SafeScreenshot:pn,ScenarioRowMeta:dn,ScenarioRowOverrideBadge:_n,ScenarioRowThumbnail:cn,SidebarGroupOverrideHeader:py,SidebarInheritedSection:dy,DataViewerCategoryBadge:_y,DataViewerCellEditor:cy,DataViewerTabBar:Zt,DataViewerTable:ly,ScenarioDataPanel:xt,ScenarioDataPanelCloseButton:iy,ScenarioDataPanelEditChatButton:ry,ScenarioDataPanelEmptyState:ny,ScenarioDataPanelFullPage:OP,ScenarioDataPanelHeader:oy,ScenarioDataPanelInspectButton:ay,ScenarioDataPanelMainMock:sy,ScenarioDataPanelMainMockEditable:ft,ScenarioDataPanelMainMockHeader:ty,ScenarioDataPanelMainMockReadOnly:St,ScenarioDataPanelMainTable:ht,ScenarioDataPanelOpenInNewButton:ey,ScenarioDataPanelMockDataBadge:ZS,ScenarioDataPanelMockDataStrip:XS,ScenarioDataPanelSidebar:YS,SaveScopeChoiceRow:KS,SaveScopeModal:QS,SidebarMockEntryRow:JS,MockSharedSlugBadge:WS,ScenarioDraftBar:US,JsonBodyActions:VS,JsonTreeAddKeyInput:qS,JsonTreeArrayNode:$S,JsonTreeEditor:GS,JsonTreeNode:zS,JsonTreeNodeLine:HS,JsonTreeObjectNode:FS,JsonTreePrimitiveEditor:LS,JsonTreePrimitiveNode:IS,ScenarioRenameForm:ln,ScenarioRowActions:rn,MiniAgentChat:AS,MiniAgentLaunchOverlay:OS,EnvelopeIcon:nn,SendTranscriptModal:at,SendTranscriptOverlay:es,ContainerInspector:Yj,InspectorScenarioSection:Kj,InspectorRouteTable:Qj,InspectorTrafficSection:Jj,InspectorExplainerSection:Wj,InspectorExplainerResult:Uj,InspectorPrimitivesShowcase:ee,InspectorTrafficRowShowcase:te,InspectorTrafficDetail:Vj,InspectorTrafficFilterBar:qj,InspectorTrafficTable:$j,InspectorTrafficUrlChips:Gj,InspectorUrlGlossary:zj,InspectorPrimitives:ee,InspectorTrafficRow:te,StepsSimulator:Mj,StepsSimulatorStepList:Ej,StepsSimulatorVariableControl:Dj,StepsSimulatorInstructionsPanel:Rj,SeedErrorBanner:on,SeedLoadingOverlay:an,PreviewLoadingSpinner:sn,StaleDbStripeOverlay:ts,ScenarioSeedErrorView:Oe,InspectModeRibbon:tn,IframeClickThroughErrorCard:en,InspectResultCard:Zo,InspectResultCardBackdrop:Xo,InspectResultCardBody:Yo,InspectResultCardHeader:Ko,InspectResultCardMatchButton:Qo,InspectResultCardMatchList:Jo,SkeletonBar:Wo,PreviewWaitingPlaceholder:Uo,AgentInputProvider:vt,Alts:Vo,AskBox:qo,Badge:L,BellIcon:$o,BoxIcon:Go,CardIcon:zo,ChartIcon:Ho,Check:Fo,ChevronLeftIcon:Lo,ChevronRightIcon:Io,Chips:Ao,CloseIcon:Oo,CloudIcon:Bo,DatabaseIcon:D,DocIcon:Mo,EmbeddedPreviewPlaceholder:Eo,EmptyTabCopy:Do,ExploreIcon:Ro,Faq:To,GlobeIcon:ko,HSHeader:No,HostingConnectStep:Co,HostingDeployStep:wo,HostingRealDeployStep:Po,HostingLiveStep:jo,HostingOverviewConnected:yo,HostingOverviewGuided:So,Journey:fo,LightbulbIcon:ho,LockIcon:$,MailIcon:vo,OpenInNewTabIcon:go,PlansIcon:bo,ProviderMark:xo,QuestionnaireOptionIndicator:uo,Reasons:mo,RefreshCycleIcon:po,RefreshPreviewButton:_o,ReqList:co,RocketIcon:lo,SetupIcon:io,SimulatedSetupOverview:ro,SimulatedSetupScreen:no,StatusBox:q,StoreAlternativesNote:oo,TeachSetupScreen:ao,TerminalCopiedToast:so,TerminalIcon:to,ThumbDownIcon:eo,ThumbUpIcon:Za,VercelMark:Xa,ActiveScenarioOverlay:Ya,Alternatives:Ka,FactFreshness:Qa,ProviderCard:Ja,TopicFaq:pt,FaqSection:Wa,ChangelogSection:Ua,ApplicationGroups:Va,BranchRows:Tj,BrowserStateButton:BS,BrowserStateTab:MS,CheckList:qa,CollapsedImpactedScenarios:$a,ColorPalettePicker:Ga,ColorSwatchEditor:za,ComponentGroups:Ha,CostCallout:Fa,DataViewerCell:ES,DataViewerColumnHeader:DS,DataViewerRow:RS,DataViewerTabButton:Be,DesignAssetDropZone:La,DesignAssetsView:Ia,DesignChatPreviewPane:Aa,DetailSection:Hj,DevServerFailedPanel:Oa,FilesList:Ba,FlowBar:Ma,FontOptionRow:Ea,FontPicker:Da,FunctionsList:Ra,HomeLanding:Ta,MethodBadge:B,MockupCardFooter:ka,MockupCardThemeToggleButton:Na,MockupCustomizeColorsPanel:Ca,MockupCustomizeFontsPanel:wa,MockupCustomizePreviewArea:Pa,MockupCustomizeToolbar:ja,MockupCustomizeView:ya,MockupGrid:Sa,PagerArrowButton:fa,PanelBody:kj,PanelHeader:Nj,PlanClaimSyncBanner:ha,PreviewPortMismatchCard:va,QueuedChangesBody:ga,RecentPlansBody:ba,ReqItem:xa,RunLocallyCommandRow:ua,ScenarioRendererAppDeadEnd:Ae,ScenarioThumbnail:ma,ScenarioThumbnailStrip:pa,Section:da,SectionHeader:jt,ServerStalenessBanner:_a,UpdateAvailableBanner:ca,SetupGoalAssist:la,SetupGoalAssistList:mt,SetupCompleteCta:ia,SetupDetailHeader:ra,SetupFlowBar:na,SetupSubCrumb:oa,SetupTopicPlaceholder:aa,SidebarGroup:TS,SimulatedConnect:sa,SimulatedProvision:ta,SimulatedReady:ea,StatusIndicator:Zs,StatusPill:Xs,StepRow:Cj,StoreCard:Ys,TerminalServerErrorBanner:kS,UserPrompt:Ks,VariableField:wj,ConceptTerm:Ct,ConceptsGlossaryScreen:Nt,LearnSetupConceptsNudge:kt,MockupGridEmptyState:Qs,TerminalEdgeUnreachableBanner:NS,TerminalSessionStaleBanner:CS,WebFallbackNotice:Js,PreviewSignInNotice:Pt,NonWebAppDetail:Ws,ScenarioTypeSection:Us,ScenarioImpactSection:Vs,ReviewCard:qs,SetupExternalLink:$s,SetupJourney:ut,SetupSplit:Gs,SetupStack:zs,SetupOrbit:Hs,SetupBars:Fs,SetupEmblem:Ls,SetupChannels:Is,SetupTopicPage:As,GridColumnsIcon:Os,GridDensityControl:Bs,HomeExploreSection:Ms,LivePageScenariosModal:Es,RouteListTabs:Ds,ComponentSurfaceReasonNote:Rs,ScenarioGalleryModal:Ts,FullScreenIcon:ks,ChooseFolderButton:Ns,PendingFileCountLine:Cs};function lC({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.jsx(w,{testId:"trace-error",text:`Could not load trace: ${m}`,className:"text-[11px] text-red-600"}),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}),e.jsx(se,{variant:"icon",text:i.source?`${i.source}: ${i.message??""}`: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 cC=Object.freeze(Object.defineProperty({__proto__:null,BehaviorTraceSection:lC},Symbol.toStringTag,{value:"Module"}));function _C(t,s=()=>{}){const a={};for(const o of Object.values(t))for(const[n,r]of Object.entries(o))if(!(n==="default"||!dC(n))&&typeof r=="function"){if(Object.prototype.hasOwnProperty.call(a,n)){s(n);continue}a[n]=r}return a}function dC(t){return/^[A-Z]/.test(t)}const pC=Object.assign({"../components/AccountsRealConnect.tsx":fS,"../components/AccountsScreen.tsx":hS,"../components/ActiveScenarioOverlay.tsx":vS,"../components/AddTopicForm.tsx":gS,"../components/AnalyticsMonitoringScreen.tsx":bS,"../components/AnalyticsSeoScreen.tsx":xS,"../components/ApiAuthScreen.tsx":uS,"../components/ApiDocsScreen.tsx":mS,"../components/AppCapabilitiesPanel.tsx":pS,"../components/AppCard.tsx":dS,"../components/AppCardFooter.tsx":_S,"../components/AppCardHeader.tsx":cS,"../components/AppCardScenarioStrip.tsx":lS,"../components/AppDetail.tsx":iS,"../components/AppDetailContent.tsx":rS,"../components/AppDetailContentError.tsx":nS,"../components/AppDetailContentLoading.tsx":oS,"../components/AppDetailHeader.tsx":aS,"../components/AppOverview.tsx":sS,"../components/AppOverviewEmptyState.tsx":tS,"../components/AppOverviewEmptyStateBuildingPanel.tsx":eS,"../components/AppOverviewEmptyStateNoAppPanel.tsx":Z0,"../components/AppOverviewGrid.tsx":X0,"../components/AppOverviewHeader.tsx":Y0,"../components/AppPrivacyScreen.tsx":K0,"../components/AppReviewScreen.tsx":Q0,"../components/AppSelector.tsx":VP,"../components/AppServiceCredentialModal.tsx":J0,"../components/AppStackCapabilitiesSlot.tsx":W0,"../components/AppStackPanel.tsx":U0,"../components/AppStackPanelBody.tsx":V0,"../components/AppStackPanelSummary.tsx":q0,"../components/AppTestSummary.tsx":$0,"../components/AppTypeBadge.tsx":G0,"../components/AssetSaveErrorMessage.tsx":z0,"../components/AssetSaveSuccessMessage.tsx":H0,"../components/AttachFileButton.tsx":Pj,"../components/BackendApiDocsScreen.tsx":F0,"../components/BackendConnectionStatusBadge.tsx":L0,"../components/BackendResultsHeader.tsx":I0,"../components/BackendResultsPage.tsx":A0,"../components/BackendResultsPanelView.tsx":O0,"../components/BackgroundJobsScreen.tsx":B0,"../components/BehaviorEvidenceDrawer.tsx":M0,"../components/BehaviorExampleTable.tsx":E0,"../components/BehaviorGallery.tsx":D0,"../components/BehaviorGalleryEmptyState.tsx":R0,"../components/BehaviorGroup.tsx":T0,"../components/BehaviorItem.tsx":k0,"../components/BehaviorTraceSection.tsx":cC,"../components/BreadcrumbNav.tsx":N0,"../components/BrowserStateTab.tsx":jj,"../components/BuildFileRow.tsx":C0,"../components/BuildLaunchModal.tsx":w0,"../components/BuildLogsModal.tsx":P0,"../components/BuildProgressDetail.tsx":j0,"../components/BuildShaBadge.tsx":y0,"../components/BuildSpinner.tsx":S0,"../components/BuildTab.tsx":f0,"../components/BuildTabLayout.tsx":h0,"../components/BuildTabPane.tsx":v0,"../components/BuildTabPaneLayout.tsx":g0,"../components/BuildTabReadyToBuildPlaceholder.tsx":UP,"../components/BuildTabRecoveryPanel.tsx":b0,"../components/BuildTabSessionContent.tsx":x0,"../components/BuildTabStartupError.tsx":u0,"../components/BuildTabTerminalSession.tsx":m0,"../components/BuildingDoor.tsx":p0,"../components/BuildingPreviewOverlay.tsx":d0,"../components/ChangeCard.tsx":_0,"../components/ChangelogCiScreen.tsx":c0,"../components/CheckInToggleRow.tsx":l0,"../components/ChooseFolderButton.tsx":i0,"../components/CliUxScreen.tsx":r0,"../components/ClientRoutingAdvisory.tsx":n0,"../components/CollapseToggleButton.tsx":o0,"../components/CollapsibleMarkdown.tsx":a0,"../components/ColorPalettePicker.tsx":s0,"../components/ColorSwatchEditor.tsx":t0,"../components/CommentsSearchScreen.tsx":e0,"../components/CommitOnlyHistoryRow.tsx":Zf,"../components/CommitQueuePriorityChip.tsx":Xf,"../components/CommitQueueReleaseButton.tsx":Yf,"../components/CommitQueueRow.tsx":Kf,"../components/CommitQueueRowIdentity.tsx":Qf,"../components/CommitQueueSaveBar.tsx":Jf,"../components/CommitQueueSection.tsx":Wf,"../components/CompletedPlanExpandedBody.tsx":Uf,"../components/CompletedPlanRow.tsx":Vf,"../components/ComponentSurfaceReasonNote.tsx":qf,"../components/ConceptShowcase.tsx":qP,"../components/ConceptTerm.tsx":$f,"../components/ConceptsContext.tsx":Gf,"../components/ConceptsGlossaryScreen.tsx":zf,"../components/ConnectionBadge.tsx":pP,"../components/ConnectionIdentityLine.tsx":Hf,"../components/ContainerInspector.tsx":dP,"../components/CopyButton.tsx":vs,"../components/CopyableErrorBlock.tsx":Lw,"../components/CopyableErrorText.tsx":gs,"../components/CorsOriginsScreen.tsx":Ff,"../components/CoverageBadge.tsx":Lf,"../components/CoverageBar.tsx":If,"../components/CoverageDetailsDirectoriesSection.tsx":Af,"../components/CoverageDetailsDirectoryFileRow.tsx":Of,"../components/CoverageDetailsDirectoryGroup.tsx":Bf,"../components/CoverageDetailsEntriesSection.tsx":Mf,"../components/CoverageDetailsEntryRow.tsx":Ef,"../components/CoverageDetailsModal.tsx":Df,"../components/CoverageDetailsOrphanedSection.tsx":Rf,"../components/CoverageFileDrilldown.tsx":Tf,"../components/CoverageLineRow.tsx":kf,"../components/CoverageSectionHeader.tsx":Nf,"../components/CoverageWarningsBanner.tsx":Cf,"../components/CrashLogFooter.tsx":wf,"../components/CrashLogFooterMessage.tsx":Pf,"../components/CrashLogHeader.tsx":jf,"../components/CrashLogViewer.tsx":yf,"../components/CrashReportingScreen.tsx":Sf,"../components/CreateProjectModal.tsx":BP,"../components/CreateStatePlaceholderModal.tsx":ff,"../components/CustomDomainScreen.tsx":hf,"../components/CyLogo.tsx":vf,"../components/DataSafetyScreen.tsx":gf,"../components/DataViewerCategoryBadge.tsx":yj,"../components/DataViewerCellEditor.tsx":Sj,"../components/DataViewerTabBar.tsx":Uw,"../components/DataViewerTable.tsx":fj,"../components/DatabaseBackupsScreen.tsx":bf,"../components/DebugAncestryList.tsx":xf,"../components/DebugAncestrySection.tsx":uf,"../components/DebugFreezePill.tsx":mf,"../components/DebugModal.tsx":pf,"../components/DebugModalElementPreview.tsx":df,"../components/DebugModalInfoPanel.tsx":_f,"../components/DebugModeButton.tsx":cf,"../components/DebugNotificationsButton.tsx":lf,"../components/DebugOverlay.tsx":rf,"../components/DebugPropsChips.tsx":nf,"../components/DeployTargetScreen.tsx":of,"../components/DescribePane.tsx":af,"../components/DesignAddAssetsStep.tsx":sf,"../components/DesignAssetDropLabel.tsx":tf,"../components/DesignAssetDropZone.tsx":ef,"../components/DesignAssetsView.tsx":Zh,"../components/DesignChatPreviewPane.tsx":Xh,"../components/DesignExplorationView.tsx":Yh,"../components/DesignRoundPreviewPane.tsx":sw,"../components/DesktopTitleBar.tsx":Kh,"../components/DetectedServiceRow.tsx":Qh,"../components/DevAccountsScreen.tsx":Jh,"../components/DevServerCrashLog.tsx":Wh,"../components/DevServerFailedPanel.tsx":Uh,"../components/DevServerRestartingOverlay.tsx":Fw,"../components/DevServerStartingOverlay.tsx":Hw,"../components/DevServerStoppedOverlay.tsx":zw,"../components/DeviceFrameImage.tsx":Vh,"../components/DeviceIcon.tsx":qh,"../components/DimensionInput.tsx":$h,"../components/DoorRows.tsx":Gh,"../components/EditDataButton.tsx":vw,"../components/EditDataPopover.tsx":Aw,"../components/EditDataPopoverBody.tsx":kw,"../components/EditDataPopoverDescribeInput.tsx":Tw,"../components/EditDataPopoverHeader.tsx":Bw,"../components/EditDataPopoverResizeHandleLeft.tsx":Ow,"../components/EditDataPopoverSaveCancelClose.tsx":Rw,"../components/EditDataPopoverSearchInput.tsx":Dw,"../components/EditDataPopoverSectionSelector.tsx":Ew,"../components/EditDataPopoverTabStrip.tsx":Mw,"../components/EditorNavBar.tsx":zh,"../components/EditorSessionRecovery.tsx":Hh,"../components/EditorSessionRecoveryActionButton.tsx":Fh,"../components/EditorSessionRecoveryDialog.tsx":Lh,"../components/EditorSessionRecoveryHeader.tsx":Ih,"../components/EditorSessionRecoverySummary.tsx":Ah,"../components/EditorSessionRecoverySummaryRow.tsx":Oh,"../components/EditorShell.tsx":Bh,"../components/EditorShellBuildLayer.tsx":Mh,"../components/EditorShellHomeTabContent.tsx":Eh,"../components/EditorShellLayout.tsx":Dh,"../components/EditorShellLeftPane.tsx":Rh,"../components/EditorShellPlanLayer.tsx":Th,"../components/EditorShellPreviewPane.tsx":WP,"../components/EditorShellTabLayer.tsx":kh,"../components/EmailsScreen.tsx":Nh,"../components/EntityBreadcrumb.tsx":Ch,"../components/EntityDetail.tsx":wh,"../components/EntityDetailContent.tsx":Ph,"../components/EntityDetailHeader.tsx":jh,"../components/EntityRefCard.tsx":yh,"../components/EntityRefList.tsx":Sh,"../components/EnvelopeIcon.tsx":fh,"../components/EventCard.tsx":KP,"../components/EventStream.tsx":YP,"../components/ExamplesScreen.tsx":hh,"../components/ExploreRail.tsx":vh,"../components/ExtensionAssetsScreen.tsx":gh,"../components/ExtensionDistributionScreen.tsx":bh,"../components/ExtensionPrivacyPolicyScreen.tsx":xh,"../components/ExternalServicesScreen.tsx":uh,"../components/ExternalServicesScreenConnected.tsx":mh,"../components/FactFreshness.tsx":ph,"../components/FeatureGroupView.tsx":ZP,"../components/FeatureNameButton.tsx":dh,"../components/FileChangeSummary.tsx":FP,"../components/FileDropConfirmModal.tsx":_h,"../components/FileDropConfirmModalAgentReadyShowcase.tsx":xw,"../components/FileStatusIndicator.tsx":ch,"../components/FillPreviewButton.tsx":lh,"../components/FilterBar.tsx":ew,"../components/FinishAndFormalizeButton.tsx":ih,"../components/FontPicker.tsx":rh,"../components/FormsScreen.tsx":nh,"../components/FullScreenIcon.tsx":oh,"../components/FunctionChangeRow.tsx":ah,"../components/GatedAgentChat.tsx":hj,"../components/GearIcon.tsx":sh,"../components/GlobalFileDropOverlay.tsx":th,"../components/GlobalFileDropToast.tsx":eh,"../components/GridColumnsIcon.tsx":Zv,"../components/GridDensityControl.tsx":Xv,"../components/HardeningAutoAction.tsx":Yv,"../components/HistoryDigest.tsx":Kv,"../components/HistoryDigestStatRow.tsx":Qv,"../components/HistoryEntryCard.tsx":Jv,"../components/HistoryRangeSelector.tsx":Wv,"../components/HistoryTab.tsx":Uv,"../components/HomeBuildStatusSection.tsx":Vv,"../components/HomeExploreSection.tsx":qv,"../components/HomeLanding.tsx":$v,"../components/HomeScreenIcons.tsx":Gv,"../components/HostingConnectStep.tsx":zv,"../components/HostingDeployStep.tsx":Hv,"../components/HostingLiveStep.tsx":Fv,"../components/HostingOverviewConnected.tsx":Lv,"../components/HostingOverviewGuided.tsx":Iv,"../components/HostingRealDeployStep.tsx":Av,"../components/HostingScreen.tsx":Ov,"../components/HostingScreenChrome.tsx":Bv,"../components/HostingScreenParts.tsx":Mv,"../components/IdleBanner.tsx":Ev,"../components/IdleTriggerCheckbox.tsx":Dv,"../components/IframeClickThroughErrorCard.tsx":Rv,"../components/InAppPurchasesScreen.tsx":Tv,"../components/InFlightPlanRow.tsx":kv,"../components/InFlightSection.tsx":Nv,"../components/InspectModeRibbon.tsx":Cv,"../components/InspectResultCard.tsx":wv,"../components/InspectResultCardBackdrop.tsx":Pv,"../components/InspectResultCardBody.tsx":jv,"../components/InspectResultCardHeader.tsx":yv,"../components/InspectResultCardMatchButton.tsx":Sv,"../components/InspectResultCardMatchList.tsx":fv,"../components/InspectorExplainerResult.tsx":_P,"../components/InspectorExplainerSection.tsx":cP,"../components/InspectorPrimitives.tsx":lP,"../components/InspectorPrimitivesShowcase.tsx":Jw,"../components/InspectorRouteTable.tsx":iP,"../components/InspectorScenarioSection.tsx":rP,"../components/InspectorTrafficDetail.tsx":nP,"../components/InspectorTrafficFilterBar.tsx":oP,"../components/InspectorTrafficRow.tsx":aP,"../components/InspectorTrafficRowShowcase.tsx":Kw,"../components/InspectorTrafficSection.tsx":sP,"../components/InspectorTrafficTable.tsx":tP,"../components/InspectorTrafficUrlChips.tsx":eP,"../components/InspectorUrlGlossary.tsx":Zj,"../components/InstallDocsScreen.tsx":hv,"../components/JournalEntryCard.tsx":zP,"../components/JournalEntryDetails.tsx":HP,"../components/JournalView.tsx":GP,"../components/JsonBodyActions.tsx":vj,"../components/JsonTreeAddKeyInput.tsx":gj,"../components/JsonTreeArrayNode.tsx":bj,"../components/JsonTreeEditor.tsx":xj,"../components/JsonTreeNode.tsx":uj,"../components/JsonTreeNodeLine.tsx":mj,"../components/JsonTreeObjectNode.tsx":pj,"../components/JsonTreePrimitiveEditor.tsx":dj,"../components/JsonTreePrimitiveNode.tsx":_j,"../components/LabeledSection.tsx":vv,"../components/LayoutChainCard.tsx":gv,"../components/LayoutChainSection.tsx":bv,"../components/LearnSetupScreen.tsx":xv,"../components/LeftPanel.tsx":uv,"../components/LegalScreen.tsx":mv,"../components/LibrariesCatalogScreen.tsx":pv,"../components/LibraryGroupSection.tsx":dv,"../components/LibraryRow.tsx":_v,"../components/LiveIframeHealthPill.tsx":cv,"../components/LivePageScenariosModal.tsx":lv,"../components/LoggingMonitoringScreen.tsx":iv,"../components/ManifestVersioningScreen.tsx":rv,"../components/Markdown.tsx":Lj,"../components/MiniAgentChat.tsx":cj,"../components/MiniAgentLaunchOverlay.tsx":lj,"../components/MinimizedSessionResults.tsx":nv,"../components/MobilePaneSwitcher.tsx":ov,"../components/MobileSetupParts.tsx":av,"../components/MobileTerminalCommandMenu.tsx":sv,"../components/MockBodyEditor.tsx":rw,"../components/MockBodyHeadersEditor.tsx":ij,"../components/MockBodyJsonTextarea.tsx":nw,"../components/MockPanelGroup.tsx":_w,"../components/MockPanelHeader.tsx":dw,"../components/MockPanelRow.tsx":cw,"../components/MockPanelRowActions.tsx":iw,"../components/MockPanelRowHeader.tsx":lw,"../components/MockSharedSlugBadge.tsx":rj,"../components/MockSourceBadge.tsx":nj,"../components/MockupArchivedRoundView.tsx":tv,"../components/MockupCard.tsx":ev,"../components/MockupCardFeedback.tsx":Zg,"../components/MockupCardFooter.tsx":Xg,"../components/MockupCardPreviewSlot.tsx":Yg,"../components/MockupCardThemeToggleButton.tsx":Kg,"../components/MockupCustomizeColorsPanel.tsx":Qg,"../components/MockupCustomizeErrorBanner.tsx":Jg,"../components/MockupCustomizeFontsPanel.tsx":Wg,"../components/MockupCustomizePanelSectionHeading.tsx":Ug,"../components/MockupCustomizePreviewArea.tsx":Vg,"../components/MockupCustomizeToolbar.tsx":qg,"../components/MockupCustomizeView.tsx":$g,"../components/MockupFeedbackCommentBox.tsx":Gg,"../components/MockupFeedbackRatingSlider.tsx":zg,"../components/MockupFeedbackThumbIcons.tsx":Hg,"../components/MockupGrid.tsx":Fg,"../components/MockupGridEmptyState.tsx":Lg,"../components/MockupGridGeneratingOverlay.tsx":Ig,"../components/MockupGridInfoBanner.tsx":Ag,"../components/MockupGridIterateButton.tsx":Og,"../components/MockupPlaceholderCard.tsx":Bg,"../components/MockupRoundPager.tsx":Mg,"../components/MockupSkeletonOverlay.tsx":Eg,"../components/ModifiedFilesList.tsx":Dg,"../components/NarrativeTestStatusIcon.tsx":Rg,"../components/NativeMirrorNotice.tsx":Tg,"../components/NavLink.tsx":kg,"../components/NavigationBar.tsx":Ng,"../components/NewProjectQuestionnaire.tsx":Cg,"../components/NoBootedSimulatorPlaceholder.tsx":wg,"../components/NonWebAppDetail.tsx":Pg,"../components/NotificationSettingsControls.tsx":jg,"../components/NotificationSettingsPopover.tsx":yg,"../components/NotificationSetupBanner.tsx":Sg,"../components/OAuthVerificationScreen.tsx":fg,"../components/OpenBuildTabButton.tsx":hg,"../components/OpenInEditorErrorToast.tsx":vg,"../components/OpenInNewTabButton.tsx":gg,"../components/OpenSourceProjectsSection.tsx":MP,"../components/OrphanedFileRow.tsx":bg,"../components/PagePickerDropdown.tsx":xg,"../components/PagePickerEmptyMessage.tsx":ug,"../components/PagePickerRouteSection.tsx":mg,"../components/PagePickerScenarioThumbnail.tsx":pg,"../components/PagePickerTabButton.tsx":dg,"../components/PagePill.tsx":_g,"../components/PagePillIcons.tsx":cg,"../components/PanelDivider.tsx":lg,"../components/PaymentsScreen.tsx":ig,"../components/PendingFileCard.tsx":rg,"../components/PendingFileCountLine.tsx":ng,"../components/PendingFileList.tsx":og,"../components/PerformanceImagesScreen.tsx":ag,"../components/PermissionsJustificationScreen.tsx":sg,"../components/PlaceholderPane.tsx":mw,"../components/PlanAuthoringChat.tsx":tg,"../components/PlanChatLaunchCaption.tsx":eg,"../components/PlanClaimSyncBanner.tsx":Zb,"../components/PlanCompleteDialog.tsx":Xb,"../components/PlanCompleteTransition.tsx":Yb,"../components/PlanExpandedHeader.tsx":Kb,"../components/PlanNextChangeButton.tsx":Qb,"../components/PlanPreviewEmptyState.tsx":Jb,"../components/PlanPreviewHeader.tsx":Wb,"../components/PlanPreviewPanelView.tsx":Ub,"../components/PlanRow.tsx":Vb,"../components/PlanRowClaimBadge.tsx":qb,"../components/PlanRowDependencyEntry.tsx":$b,"../components/PlanRowEditButton.tsx":Gb,"../components/PlanRowEditChatButton.tsx":zb,"../components/PlanRowExpandedBody.tsx":Hb,"../components/PlanRowExpandedChat.tsx":Fb,"../components/PlanRowExpandedDependencies.tsx":Lb,"../components/PlanRowExpandedEdit.tsx":Ib,"../components/PlanRowExpandedView.tsx":Ab,"../components/PlanRunBlockedModal.tsx":Ob,"../components/PlanRunButton.tsx":Bb,"../components/PlanRunDependenciesModal.tsx":Mb,"../components/PlanRunForeignClaimModal.tsx":Eb,"../components/PlanSubTabs.tsx":Db,"../components/PlanTab.tsx":Rb,"../components/PlanTabHeader.tsx":Tb,"../components/PostPushTransition.tsx":kb,"../components/PostPushTransitionDialog.tsx":Nb,"../components/PreReleaseScreen.tsx":Cb,"../components/PreviewCanvas.tsx":wb,"../components/PreviewEmptyState.tsx":Pb,"../components/PreviewErrorBadge.tsx":jb,"../components/PreviewErrorList.tsx":yb,"../components/PreviewErrorOverlay.tsx":Sb,"../components/PreviewErrorOverlayFooter.tsx":fb,"../components/PreviewErrorOverlayHeader.tsx":hb,"../components/PreviewErrorRow.tsx":vb,"../components/PreviewForwardPortNotice.tsx":gb,"../components/PreviewFrame.tsx":bb,"../components/PreviewLoadingSpinner.tsx":xb,"../components/PreviewPanel.tsx":ub,"../components/PreviewPortMismatchCard.tsx":mb,"../components/PreviewSignInNotice.tsx":pb,"../components/PreviewSignInNoticeShowcase.tsx":LP,"../components/PreviewUnhealthyOverlay.tsx":db,"../components/PreviewWaitingPlaceholder.tsx":_b,"../components/ProjectLauncher.tsx":EP,"../components/ProjectLauncherScreen.tsx":DP,"../components/ProjectSetupChosenMockup.tsx":cb,"../components/ProjectSetupDescriptionCard.tsx":lb,"../components/ProjectSetupDesignAssetList.tsx":ib,"../components/ProjectSetupDesignCard.tsx":rb,"../components/ProjectSetupHeader.tsx":nb,"../components/ProjectSetupPreviewPane.tsx":ob,"../components/ProjectSetupPreviewView.tsx":ab,"../components/ProjectSetupProgressList.tsx":sb,"../components/ProjectSetupProgressRow.tsx":tb,"../components/PromptDropdownPanel.tsx":eb,"../components/PrototypeAgentChat.tsx":Zx,"../components/PrototypeBuildingInProgressBanner.tsx":Xx,"../components/PrototypePane.tsx":Yx,"../components/ProviderAuthGate.tsx":Kx,"../components/ProviderAuthModal.tsx":oj,"../components/ProviderAuthenticateCta.tsx":aj,"../components/ProviderLogo.tsx":Qx,"../components/PublishRegistryScreen.tsx":Jx,"../components/PublishScreen.tsx":Wx,"../components/PushNotificationsScreen.tsx":Ux,"../components/QuestionnaireDesignApproachStep.tsx":Vx,"../components/QuestionnaireDesignChatLaunchPanel.tsx":qx,"../components/QuestionnaireDesignChatStep.tsx":$x,"../components/QuestionnaireDeviceSelector.tsx":Gx,"../components/QuestionnaireIntroBanner.tsx":zx,"../components/QuestionnaireNavButtons.tsx":Hx,"../components/QuestionnaireNotificationsStep.tsx":Fx,"../components/QuestionnaireOptionCard.tsx":Lx,"../components/QuestionnaireStepNav.tsx":Ix,"../components/QuestionnaireStepPanel.tsx":Ax,"../components/QueuedChangesSection.tsx":Ox,"../components/RawTerminalEmulator.tsx":Bx,"../components/RawTerminalModal.tsx":Mx,"../components/ReadmeLicenseScreen.tsx":Ex,"../components/ReadyAgentRegistrar.tsx":uw,"../components/RealDataConnected.tsx":oC,"../components/RealDataNotConnected.tsx":rC,"../components/RealDataScreen.tsx":Dx,"../components/RealDataZone.tsx":aC,"../components/RealSetupFlow.tsx":Rx,"../components/RecentPlansSection.tsx":Tx,"../components/RedirectsNotFoundScreen.tsx":kx,"../components/RefreshPreviewButton.tsx":Nx,"../components/ReleaseBuildsScreen.tsx":Cx,"../components/RerunSection.tsx":wx,"../components/ResetBuildConfirmModal.tsx":Px,"../components/RestartSpinner.tsx":jx,"../components/ReviewCard.tsx":yx,"../components/ReviewDetailCard.tsx":Sx,"../components/ReviewFindingRow.tsx":fx,"../components/ReviewsTab.tsx":hx,"../components/RouteDependencyCard.tsx":vx,"../components/RouteDependencyCardHeader.tsx":gx,"../components/RouteDependencyEmptyState.tsx":bx,"../components/RouteDependencyList.tsx":xx,"../components/RouteDependencyScenarioStrip.tsx":ux,"../components/RouteEntityDetail.tsx":mx,"../components/RouteEntityDetailContent.tsx":px,"../components/RouteEntityDetailHeader.tsx":dx,"../components/RouteEntitySection.tsx":Gw,"../components/RouteEntityTabs.tsx":_x,"../components/RouteFunctionCard.tsx":cx,"../components/RouteFunctionEmptyState.tsx":lx,"../components/RouteFunctionList.tsx":ix,"../components/RouteGroupView.tsx":tw,"../components/RouteImportEmptyState.tsx":$w,"../components/RouteImportList.tsx":qw,"../components/RouteImportRow.tsx":aw,"../components/RouteList.tsx":rx,"../components/RouteListCard.tsx":nx,"../components/RouteListCardThumbnail.tsx":ox,"../components/RouteListEmptyState.tsx":ax,"../components/RouteListSection.tsx":sx,"../components/RouteListSectionHeader.tsx":tx,"../components/RouteListTabs.tsx":ex,"../components/RouteScenarioEmptyState.tsx":Zu,"../components/RouteScenarioList.tsx":Xu,"../components/RouteSummaryCard.tsx":Vw,"../components/RunEvidenceLine.tsx":Yu,"../components/RunLocallyCommandRow.tsx":Ku,"../components/RunLocallyScreen.tsx":Qu,"../components/RunTestsButton.tsx":Ju,"../components/SafeScreenshot.tsx":Wu,"../components/SaveAssetsButton.tsx":Uu,"../components/SaveScopeChoiceRow.tsx":sj,"../components/SaveScopeModal.tsx":tj,"../components/ScenarioCard.tsx":Vu,"../components/ScenarioComparisonRow.tsx":qu,"../components/ScenarioDataPanel.tsx":ej,"../components/ScenarioDataPanelCloseButton.tsx":Zy,"../components/ScenarioDataPanelEditChatButton.tsx":Xy,"../components/ScenarioDataPanelEmptyState.tsx":Yy,"../components/ScenarioDataPanelFullPage.tsx":AP,"../components/ScenarioDataPanelHeader.tsx":Ky,"../components/ScenarioDataPanelInspectButton.tsx":Qy,"../components/ScenarioDataPanelMainMock.tsx":Jy,"../components/ScenarioDataPanelMainMockEditable.tsx":Wy,"../components/ScenarioDataPanelMainMockHeader.tsx":Uy,"../components/ScenarioDataPanelMainMockReadOnly.tsx":Vy,"../components/ScenarioDataPanelMainProps.tsx":Nw,"../components/ScenarioDataPanelMainTable.tsx":qy,"../components/ScenarioDataPanelMockDataBadge.tsx":$y,"../components/ScenarioDataPanelMockDataStrip.tsx":Gy,"../components/ScenarioDataPanelOpenInNewButton.tsx":zy,"../components/ScenarioDataPanelPropsEditor.tsx":Cw,"../components/ScenarioDataPanelSidebar.tsx":Hy,"../components/ScenarioDetailPanel.tsx":ow,"../components/ScenarioDraftBar.tsx":Fy,"../components/ScenarioGalleryModal.tsx":$u,"../components/ScenarioImpactSection.tsx":Gu,"../components/ScenarioRenameForm.tsx":zu,"../components/ScenarioRenderer.tsx":IP,"../components/ScenarioRendererAppDeadEnd.tsx":Zw,"../components/ScenarioRow.tsx":Hu,"../components/ScenarioRowActions.tsx":Fu,"../components/ScenarioRowMeta.tsx":Lu,"../components/ScenarioRowOverrideBadge.tsx":Iu,"../components/ScenarioRowThumbnail.tsx":Au,"../components/ScenarioSeedErrorView.tsx":Xw,"../components/ScenarioThumbnailGrid.tsx":Ou,"../components/ScenarioTypeSection.tsx":Bu,"../components/ScenariosView.tsx":bw,"../components/SecretsScreen.tsx":Mu,"../components/SeedErrorBanner.tsx":Eu,"../components/SeedLoadingOverlay.tsx":Du,"../components/SegmentedPicker.tsx":Ru,"../components/SelectPlanModal.tsx":Tu,"../components/SemverPolicyScreen.tsx":ku,"../components/SendTranscriptModal.tsx":Nu,"../components/SendTranscriptOverlay.tsx":Ww,"../components/ServerStalenessBanner.tsx":Cu,"../components/SessionResultsPanel.tsx":wu,"../components/SessionResultsPanelHeader.tsx":Pu,"../components/SettingsTab.tsx":ju,"../components/SetupAddTopicRow.tsx":yu,"../components/SetupBrowserHeader.tsx":Su,"../components/SetupBrowserPane.tsx":fu,"../components/SetupDetailChrome.tsx":hu,"../components/SetupDetailParts.tsx":vu,"../components/SetupGoalAssist.tsx":gu,"../components/SetupGoalAssistList.tsx":bu,"../components/SetupIllustrations.tsx":xu,"../components/SetupJourney.tsx":uu,"../components/SetupNotConnected.tsx":mu,"../components/SetupStepper.tsx":pu,"../components/SetupTerminalHeader.tsx":du,"../components/SetupTerminalPane.tsx":_u,"../components/SetupTopicPage.tsx":cu,"../components/SetupTopicRouter.tsx":lu,"../components/ShellCompletionsScreen.tsx":iu,"../components/SidebarGroupOverrideHeader.tsx":Ly,"../components/SidebarInheritedSection.tsx":Iy,"../components/SidebarMockEntryRow.tsx":Ay,"../components/SimulatedSetupFlow.tsx":ru,"../components/SimulatedSetupOverview.tsx":nu,"../components/SimulatedSetupScreen.tsx":ou,"../components/SimulatorFrameNotice.tsx":au,"../components/SimulatorLauncherControls.tsx":su,"../components/SimulatorNotBootedPrompt.tsx":tu,"../components/SimulatorPreviewFrame.tsx":eu,"../components/SinglePurposeListingScreen.tsx":Zm,"../components/SkeletonBar.tsx":Xm,"../components/SortablePlanRow.tsx":Ym,"../components/StagingEnvironmentScreen.tsx":Km,"../components/StagingPreviewScreen.tsx":Qm,"../components/StaleDbStripeOverlay.tsx":Yw,"../components/StartBuildingConfirmModal.tsx":Jm,"../components/StartPrototypingButton.tsx":Wm,"../components/StatesDropdown.tsx":Um,"../components/StatesDropdownRow.tsx":Vm,"../components/StatesPillButton.tsx":qm,"../components/StatusBadge.tsx":XP,"../components/StepIndicatorBar.tsx":$m,"../components/StepIndicatorDropdownItem.tsx":Gm,"../components/StepsSimulator.tsx":Ij,"../components/StepsSimulatorInstructionsPanel.tsx":Aj,"../components/StepsSimulatorStepList.tsx":Oj,"../components/StepsSimulatorVariableControl.tsx":Bj,"../components/StoreAccountsScreen.tsx":zm,"../components/StoreAssetsScreen.tsx":Hm,"../components/StoreListingScreen.tsx":Fm,"../components/SubmitReviewScreen.tsx":Lm,"../components/SupplyChainScreen.tsx":Im,"../components/TabPane.tsx":Am,"../components/TabScrollPanel.tsx":Om,"../components/TeachSetupScreen.tsx":Bm,"../components/TerminalConnectingHint.tsx":Oy,"../components/TerminalCopiedToast.tsx":Mm,"../components/TerminalDisconnectOverlay.tsx":By,"../components/TerminalDropOverlay.tsx":Em,"../components/TerminalDropToast.tsx":Dm,"../components/TerminalEdgeUnreachableBanner.tsx":My,"../components/TerminalEmulator.tsx":Rm,"../components/TerminalFailedBanner.tsx":Ey,"../components/TerminalReconnectingBanner.tsx":Dy,"../components/TerminalServerErrorBanner.tsx":Ry,"../components/TerminalServerStoppedBanner.tsx":Ty,"../components/TerminalSessionStaleBanner.tsx":ky,"../components/TestBar.tsx":Tm,"../components/TestGroupHeader.tsx":km,"../components/TestGroupList.tsx":Nm,"../components/TestGroupRow.tsx":Cm,"../components/TestItem.tsx":wm,"../components/TestResultsBadge.tsx":Pm,"../components/TestStatusIcon.tsx":jm,"../components/TestSummary.tsx":pw,"../components/TestingDistributionScreen.tsx":ym,"../components/TestsView.tsx":gw,"../components/ThumbnailStrip.tsx":Sm,"../components/UnsurfacedPageGroup.tsx":fm,"../components/UnsurfacedPageInvestigateButton.tsx":hm,"../components/UnsurfacedPageRow.tsx":vm,"../components/UnsurfacedPageRowSummary.tsx":gm,"../components/UnsurfacedPagesSection.tsx":bm,"../components/UnsurfacedPagesSectionHeader.tsx":xm,"../components/UpdateAvailableBanner.tsx":um,"../components/VersioningChangelogScreen.tsx":mm,"../components/ViewTabs.tsx":Iw,"../components/ViewportPresetButton.tsx":pm,"../components/WaysToTestList.tsx":dm,"../components/WebFallbackNotice.tsx":_m,"../components/WiredProviderBanner.tsx":cm,"../components/WorkflowSettingsSection.tsx":lm,"../components/authFlows/ApiKeyFlow.tsx":Ny,"../components/authFlows/ClaudeOAuthFlow.tsx":Cy,"../components/realDataIcons.tsx":im,"../components/setupFlowParts.tsx":rm,"../components/setupIcons.tsx":nm,"../components/setupTopicIllustration.tsx":om,"../context/AgentInputContext.tsx":wy,"../context/FilePickerContext.tsx":Py});let z=null;function mC(){if(z)return z;const t=[];return z=_C(pC,s=>t.push(s)),t.length>0&&console.warn("[scenario] auto-component index found duplicate export names:",Array.from(new Set(t)).sort().join(", ")),z}function uC(t){return mC()[t]??null}function xC(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?bC(a,c):c};return n.displayName=`ScenarioComponent(${t.displayName||t.name||"Anonymous"})`,n}function bC(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=()=>{},G={key:"real-data",Icon:D,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"}},gC={key:"privacy-legal",Icon:D,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."},Ve={monogram:"YA",name:"Your app",detail:"you@your-app.com · acct_1Q8…7fED"},vC={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."}]},hC={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:G,onBack:p,onSetup:p}},SimulatedSetupScreen:{fixtureProps:{config:G,onBack:p,onComplete:p}},SimulatedProvision:{fixtureProps:{config:G,onDone:p}},TeachSetupScreen:{fixtureProps:{config:gC,onBack:p,onComplete:p}},MobileTerminalCommandMenu:{fixtureProps:{defaultOpen:!0}},MobileTerminalCommandMenuPanel:{fixtureProps:{defaultOpen:!0}},RealDataScreen:{fixtureProps:{onBack:p,onComplete:p}},RealSetupFlow:{fixtureProps:{config:G,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:J,startedOn:"June 14",onComplete:p}},EmailsConnected:{fixtureProps:{app:J,verifiedAddress:"hello@your-app.com",account:Ve,onComplete:p}},PaymentsConnected:{fixtureProps:{app:J,account:Ve,onComplete:p}},RealDataConnected:{fixtureProps:{entity:qe,connection:eC,onPlan:p}},RealDataNotConnected:{fixtureProps:{entity:qe,onConnect:p}},SetupNotConnected:{fixtureProps:{config:vC,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(D,{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(ut,{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 fC(t){const s={};for(const[a,o]of Object.entries(t))s[a]=O(o);return s}const SC=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 O(t){if(t==="__noop__")return()=>{};if(t==null||typeof t!="object")return t;if(Array.isArray(t))return t.map(O);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(O));if(t.__type==="ReactNode"){if(typeof t.text=="string")return t.text;if(typeof t.element=="string"){if(!SC.has(t.element))return null;const a=t.children!=null?O(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,O(n));return a}const s={};for(const[a,o]of Object.entries(t))s[a]=O(o);return s}function yC(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 jC(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 PC=new Set(["EditorShell"]),Ue=new Map;function wC(t){if(!t)return null;const s=iC[t]??uC(t);if(!s)return null;const a=hC[t];if(!a)return s;const o=Ue.get(t);if(o)return o;const n=xC(s,a);return Ue.set(t,n),n}function CC(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=wC(n.componentName),l=n.scenarioType==="application"||n.scenarioType==="component"?n.scenarioType:null,c=n.seed??null,_=yC(n.mocks),m=jC(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:fC(n.props??{}),name:n.name??"",loading:!1,error:null,needsRouter:PC.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 NC(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 kC(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 TC(t,s){return s!=null&&s.method?s.method.toUpperCase():t instanceof Request?t.method.toUpperCase():"GET"}function RC(t){const s=window.fetch,a=Object.entries(t).map(([o,n])=>({...NC(o),response:n}));return window.fetch=function(n,r){const l=kC(n),c=TC(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 os({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}=CC(t),[b,g]=d.useState(!1),[f,y]=d.useState(null);if(d.useEffect(()=>{if(n)return;let R=!1;g(!1),y(null);const E=u?RC(u):null;return m==="component"&&_==null&&!x?(g(!0),()=>{R=!0,E&&E()}):(fetch("/api/editor-activate-scenario",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t})}).then(async N=>{const T=await N.json().catch(()=>null);R||(T&&(T.seedError||T.success===!1)&&(_!=null?y(T.seedError||T.error||"scenario activation failed"):console.warn("[scenario] activation returned failure for no-seed scenario; ignoring",T)),g(!0))}).catch(N=>{R||(_!=null?y(N instanceof Error?N.message:String(N)):console.warn("[scenario] activation request failed for no-seed scenario; ignoring",N),g(!0))}),()=>{R=!0,E&&E(),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(Oe,{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(w,{text:r,copyText:`Scenario Error: ${r}`,className:"text-sm text-[var(--accent-red)]",rowClassName:"mt-2 justify-center"})]})});if(!s)return m==="application"?e.jsx(Ae,{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{os as ScenarioRenderer};
|