const{useState,useEffect,useRef,useMemo}=React;function StatusDot({status:e}){return React.createElement("span",{className:`status-dot st-${{ok:"ok",running:"running",warn:"warn",fail:"fail",partial:"warn",idle:"idle"}[e]||"idle"}`,"aria-hidden":"true"})}function StatusChip({status:e,label:n}){return React.createElement("span",{className:`status-chip st-${{ok:"ok",running:"running",warn:"warn",fail:"fail",partial:"warn",idle:"idle"}[e]||"idle"}`},React.createElement(StatusDot,{status:e}),n||e)}function StageDots({stages:e}){return React.createElement("span",{className:"stage-dots"},e.map((n,l)=>React.createElement("span",{key:l,className:`stage-dot st-${n}`})))}function Trend({trend:e,delta:n}){return n?React.createElement("span",{className:`trend ${e==="up"?"tr-up":e==="down"?"tr-down":"tr-flat"}`},n):null}function MIcon({name:e,size:n}){return React.createElement("span",{className:"micon material-symbols-outlined",style:n?{fontSize:n+"px"}:null},e)}function ScopeBadge({item:e,kind:n}){const l=window.__SCOPE_CONTEXT;if(!l||l.solution||!(window.scopeSelectorModel?window.scopeSelectorModel(l.tenant,null):{visible:!1}).visible)return null;const a=window.deriveRowScopeTag(e,n);return React.createElement("span",{className:"status-chip st-idle scope-badge","data-scope":a},React.createElement("span",{className:"mono"},a))}function TableView({kind:e,items:n,onSelect:l,selectedId:o}){const a=e.schema||[];return React.createElement("div",{className:"view view-table"},React.createElement("div",{className:"tbl-head"},a.map(s=>React.createElement("div",{key:s.key,className:`tbl-cell ${s.right?"right":""} ${s.wide?"wide":""}`},s.label))),React.createElement("div",{className:"tbl-body"},n.map(s=>React.createElement("div",{key:s.id,className:`tbl-row ${o===s.id?"selected":""}`,onClick:()=>l(s.id)},a.map(d=>React.createElement(TableCell,{key:d.key,col:d,item:s})),React.createElement(ScopeBadge,{item:s,kind:e})))))}function TableCell({col:e,item:n}){let l;return e.kind==="status"?l=React.createElement(StatusChip,{status:n.status,label:n.statusLabel||n.status}):e.kind==="stages"?l=React.createElement(StageDots,{stages:n.stages||[]}):e.kind==="stage"?l=React.createElement("span",{className:"stage-label"},n.stage):l=n[e.key],React.createElement("div",{className:`tbl-cell ${e.right?"right":""} ${e.wide?"wide":""} ${e.mono?"mono":""}`},l)}function BoardView({kind:e,items:n,onSelect:l,selectedId:o}){const s=(e.boardColumns||["Open","In progress","Done"]).map((d,i)=>({name:d,items:n.filter(c=>(c.stageIdx??-1)===i)}));return React.createElement("div",{className:"view view-board"},s.map(d=>React.createElement("div",{key:d.name,className:"bd-col"},React.createElement("div",{className:"bd-col-head"},React.createElement("span",null,d.name),React.createElement("span",{className:"bd-count"},d.items.length)),React.createElement("div",{className:"bd-col-body"},d.items.map(i=>React.createElement("div",{key:i.id,className:`bd-card ${o===i.id?"selected":""}`,onClick:()=>l(i.id)},React.createElement("div",{className:"bd-card-head"},React.createElement("span",{className:"bd-title"},i.name||i.title),React.createElement(StatusDot,{status:i.status})),i.subtitle&&React.createElement("div",{className:"bd-sub"},i.subtitle),React.createElement("div",{className:"bd-meta"},i.value&&React.createElement("span",{className:"bd-value"},i.value),i.version&&React.createElement("span",{className:"mono"},i.version),i.owner&&React.createElement("span",{className:"mono ink-faint"},i.owner),i.updated&&React.createElement("span",{className:"mono ink-faint"},i.updated),React.createElement(ScopeBadge,{item:i,kind:e}))))))))}function CalendarView({kind:e,items:n,onSelect:l,selectedId:o}){const a=new Date("2026-05-25"),s=[];for(let c=0;c<28;c++){const t=new Date(a);t.setDate(a.getDate()+c);const m=t.toISOString().slice(0,10);s.push({iso:m,label:t.getDate(),dow:t.getDay(),month:t.getMonth()})}const d={};return n.forEach(c=>{(d[c.dateIso]||=[]).push(c)}),React.createElement("div",{className:"view view-calendar"},React.createElement("div",{className:"cal-head"},["Mon","Tue","Wed","Thu","Fri","Sat","Sun"].map(c=>React.createElement("div",{key:c,className:"cal-dow"},c))),React.createElement("div",{className:"cal-grid"},s.map(c=>{const t=d[c.iso]||[];return React.createElement("div",{key:c.iso,className:`cal-cell ${c.dow===0||c.dow===6?"cal-weekend":""}`},React.createElement("div",{className:"cal-num"},c.label),t.map(m=>React.createElement("div",{key:m.id,className:`cal-pill ${o===m.id?"selected":""} status-${m.status}`,onClick:()=>l(m.id)},React.createElement(StatusDot,{status:m.status}),React.createElement("span",{className:"cal-pill-title"},m.title),React.createElement(ScopeBadge,{item:m,kind:e}))))})))}function TimelineView({kind:e,items:n,onSelect:l,selectedId:o}){return React.createElement("div",{className:"view view-timeline"},n.map((a,s)=>React.createElement("div",{key:a.id,className:`tl-row ${o===a.id?"selected":""}`,onClick:()=>l(a.id)},React.createElement("div",{className:"tl-time"},React.createElement("span",{className:"mono"},a.placed||a.updated||a.date||a.triggered),React.createElement("span",{className:"tl-rail"}),React.createElement("span",{className:`tl-node st-${a.status}`})),React.createElement("div",{className:"tl-body"},React.createElement("div",{className:"tl-title"},React.createElement(StatusChip,{status:a.status,label:a.statusLabel}),React.createElement("span",null,a.title||a.name),React.createElement(ScopeBadge,{item:a,kind:e})),a.subtitle&&React.createElement("div",{className:"tl-sub"},a.subtitle),a.agent&&React.createElement("div",{className:"tl-prov"},React.createElement(MIcon,{name:"smart_toy",size:12})," ",a.agent)))))}function StepperView({kind:e,items:n,onSelect:l,selectedId:o}){const a=e.stageNames||[];return React.createElement("div",{className:"view view-stepper"},n.map(s=>React.createElement("div",{key:s.id,className:`sp-row ${o===s.id?"selected":""}`,onClick:()=>l(s.id)},React.createElement("div",{className:"sp-head"},React.createElement("span",{className:"mono sp-id"},s.id),React.createElement("span",{className:"sp-title"},s.title),React.createElement("span",{className:"sp-meta mono ink-faint"},s.triggered," \xB7 ",s.duration),React.createElement(StatusChip,{status:s.status,label:s.statusLabel||s.status}),React.createElement(ScopeBadge,{item:s,kind:e})),React.createElement("div",{className:"sp-stages"},a.flatMap((d,i)=>{const c=s.stages&&s.stages[i]||"idle",t=i===a.length-1,m=[React.createElement("div",{key:`step-${d}`,className:`sp-step st-${c}`},React.createElement("span",{className:"sp-dot"},React.createElement(StatusDot,{status:c})),React.createElement("span",{className:"sp-name"},d))];return t||m.push(React.createElement("span",{key:`line-${d}`,className:`sp-line ${c==="ok"?"on":""}`})),m})),s.error&&React.createElement("div",{className:"sp-err"},React.createElement(MIcon,{name:"error",size:14})," ",s.error))))}function ThreadView({kind:e,items:n,onSelect:l,selectedId:o}){return React.createElement("div",{className:"view view-thread"},n.map(a=>React.createElement("div",{key:a.id,className:`th-row ${o===a.id?"selected":""}`,onClick:()=>l(a.id)},React.createElement("div",{className:"th-avatar"},React.createElement(MIcon,{name:"smart_toy",size:18})),React.createElement("div",{className:"th-body"},React.createElement("div",{className:"th-head"},React.createElement("span",{className:"th-title"},a.title),React.createElement("span",{className:"mono ink-faint"},a.agent),React.createElement("span",{className:"mono ink-faint"},"\xB7 ",a.updated),React.createElement("span",{className:"th-status"},React.createElement(StatusChip,{status:a.status,label:a.statusLabel})),React.createElement(ScopeBadge,{item:a,kind:e})),a.preview&&React.createElement("div",{className:"th-preview"},a.preview),React.createElement("div",{className:"th-sub"},a.subtitle)))))}function DashboardView({kind:e,items:n,onSelect:l,selectedId:o}){return React.createElement("div",{className:"view view-dashboard"},n.map(a=>React.createElement("div",{key:a.id,className:`dash-card status-${a.status}`},React.createElement("div",{className:"dash-head"},React.createElement(StatusDot,{status:a.status}),React.createElement("span",{className:"dash-title"},a.title)),React.createElement("div",{className:"dash-kpi"},a.kpi),React.createElement("div",{className:"dash-sub mono ink-faint"},a.sub),React.createElement("div",{className:"dash-foot mono"},a.subtitle),React.createElement(ScopeBadge,{item:a,kind:e}),React.createElement(Sparkline,{status:a.status}))))}function Sparkline({status:e}){const n=e==="ok"?1:e==="warn"?2:e==="fail"?3:0,l=[];let o=50+n*4;for(let s=0;s<22;s++)o+=Math.sin((s+n*3)*.7)*(5+n*2)+(e==="fail"?-s*.6:0),l.push([s*8,40-Math.max(2,Math.min(38,o-30))]);const a=l.map((s,d)=>(d?"L":"M")+s[0]+" "+s[1]).join(" ");return React.createElement("svg",{className:`dash-spark st-${e}`,viewBox:"0 0 176 40",preserveAspectRatio:"none"},React.createElement("path",{d:a,fill:"none",strokeWidth:"1.5",stroke:"currentColor"}))}function SwimlanesView({kind:e,items:n,onSelect:l,selectedId:o}){return React.createElement("div",{className:"view view-swimlanes"},React.createElement("div",{className:"sl-axis mono"},React.createElement("span",null,"\u221224h"),React.createElement("span",null,"\u221212h"),React.createElement("span",null,"now")),React.createElement("div",{className:"sl-rows"},n.map(s=>{const d=(s.lastRuns||"").padEnd(12,"\xB7").split("").slice(0,12);return React.createElement("div",{key:s.id,className:`sl-row ${o===s.id?"selected":""}`,onClick:()=>l(s.id)},React.createElement("div",{className:"sl-meta"},React.createElement(StatusDot,{status:s.status}),React.createElement("div",null,React.createElement("div",{className:"sl-name"},s.name),React.createElement("div",{className:"sl-stages mono ink-faint"},(s.stages||[]).join(" \u2192 ")))),React.createElement("div",{className:"sl-cells"},d.map((i,c)=>React.createElement("span",{key:c,className:`sl-cell st-${i==="o"?"ok":i==="f"?"fail":i==="w"?"warn":"empty"}`,title:i==="o"?"ok":i==="f"?"failed":"no run"}))),React.createElement("div",{className:"sl-tail mono ink-faint"},React.createElement("span",null,s.runsToday," today"),React.createElement("span",{className:"sl-last"},s.last),React.createElement(ScopeBadge,{item:s,kind:e})))})))}function TileGridView({kind:e,items:n,onSelect:l,selectedId:o}){return React.createElement("div",{className:"view view-tilegrid"},n.map(a=>React.createElement("div",{key:a.id,className:`tg-tile status-${a.status} ${o===a.id?"selected":""}`,onClick:()=>l(a.id)},React.createElement("div",{className:"tg-head"},React.createElement("span",{className:"tg-icon"},React.createElement(MIcon,{name:a.iconName||"apps",size:18})),React.createElement("span",{className:"tg-name"},a.name),React.createElement(StatusDot,{status:a.status})),React.createElement("div",{className:"tg-sub"},a.subtitle||a.domain),React.createElement("div",{className:"tg-rows"},a.rate&&React.createElement("div",{className:"tg-pair"},React.createElement("span",{className:"tg-k mono"},"headroom"),React.createElement("span",{className:"tg-v mono"},a.rate)),a.rotation&&React.createElement("div",{className:"tg-pair"},React.createElement("span",{className:"tg-k mono"},"rotation"),React.createElement("span",{className:"tg-v mono"},a.rotation)),a.last&&React.createElement("div",{className:"tg-pair"},React.createElement("span",{className:"tg-k mono"},"last"),React.createElement("span",{className:"tg-v mono"},a.last)),a.deploy&&React.createElement("div",{className:"tg-pair"},React.createElement("span",{className:"tg-k mono"},"deploy"),React.createElement("span",{className:"tg-v mono"},a.deploy)),a.domain&&!a.subtitle&&React.createElement("div",{className:"tg-pair"},React.createElement("span",{className:"tg-k mono"},"domain"),React.createElement("span",{className:"tg-v mono"},a.domain))),React.createElement(ScopeBadge,{item:a,kind:e}),React.createElement(Sparkline,{status:a.status}),a.linkOpens&&React.createElement("div",{className:"tg-link mono ink-faint"},"\u2192 ",a.linkOpens))))}function MonthCalendarView({kind:e,items:n,onSelect:l,selectedId:o}){const a=new Date("2026-05-25"),s=new Date(a),d=[];for(let t=0;t<42;t++){const m=new Date(s);m.setDate(s.getDate()+t);const p=m.toISOString().slice(0,10);d.push({iso:p,label:m.getDate(),dow:m.getDay(),month:m.getMonth()})}const i={};return n.forEach(t=>{(i[t.dateIso]||=[]).push(t)}),React.createElement("div",{className:"view view-month"},React.createElement("div",{className:"mc-head"},["Mon","Tue","Wed","Thu","Fri","Sat","Sun"].map(t=>React.createElement("div",{key:t,className:"mc-dow mono"},t))),React.createElement("div",{className:"mc-grid"},d.map(t=>{const m=i[t.iso]||[];return React.createElement("div",{key:t.iso,className:`mc-cell ${t.dow===0||t.dow===6?"mc-weekend":""}`},React.createElement("div",{className:"mc-num mono"},t.label),m.map(p=>React.createElement("div",{key:p.id,className:`mc-pill ch-${p.channelTone} ${o===p.id?"selected":""} ${p.conflict?"conflict":""}`,onClick:r=>{r.stopPropagation(),l(p.id)}},React.createElement("span",{className:"mc-pill-channel mono"},p.time),React.createElement("span",{className:"mc-pill-title"},p.title),p.conflict&&React.createElement(MIcon,{name:"warning",size:11}),React.createElement(ScopeBadge,{item:p,kind:e}))))})),React.createElement("div",{className:"mc-legend mono"},React.createElement("span",{className:"ch-sky"},"blog"),React.createElement("span",{className:"ch-lavender"},"postiz"),React.createElement("span",{className:"ch-mint"},"email"),React.createElement("span",{className:"ch-gold"},"podcast")))}function StreamOverviewView({kind:e,items:n,onSelect:l,selectedId:o}){const a=window.STREAMS[e.streamId];return a?React.createElement("div",{className:"view view-stream-overview"},React.createElement("div",{className:"so-head mono"},React.createElement("span",null,a.label," \xB7 sub-pages")),React.createElement("div",{className:"so-grid"},a.subPages.filter(s=>s.id!=="overview").map(s=>{const d=window.KIND_REGISTRY[s.kind]||window.KIND_REGISTRY.__placeholder,i=!!d&&d.id!=="__placeholder";return React.createElement("div",{key:s.id,className:`so-card ${i?"real":"stub"}`,onClick:()=>window.NAV&&window.NAV.go(a.id,s.id)},React.createElement("div",{className:"so-card-head"},React.createElement(MIcon,{name:d.workspaceIcon||"pending",size:16}),React.createElement("span",{className:"so-card-name"},s.label),i?React.createElement("span",{className:"so-card-tag mono"},"live"):React.createElement("span",{className:"so-card-tag mono dim"},"scaffold")),React.createElement("div",{className:"so-card-sub"},i?d.description||d.label:s.note||"wireframe-grade \u2014 shell is here, content next"),React.createElement("div",{className:"so-card-arrow mono ink-faint"},"open \u2192"))}))):null}function PlaceholderView({kind:e,items:n,onSelect:l,selectedId:o,contextStream:a,contextSubPage:s}){const d=s||{};return React.createElement("div",{className:"view view-placeholder"},React.createElement("div",{className:"ph-card"},React.createElement("div",{className:"ph-overline mono"},"scaffold \xB7 L1 shell, content next"),React.createElement("div",{className:"ph-title"},d.label||"Sub-page"),React.createElement("div",{className:"ph-sub"},d.note||"This sub-page is in the routing graph and inherits the four-pane shell. Content fills in from the next ship cycle."),React.createElement("div",{className:"ph-pattern"},React.createElement("div",{className:"ph-row"},React.createElement("span",{className:"ph-bar w-30"}),React.createElement("span",{className:"ph-bar w-50"}),React.createElement("span",{className:"ph-bar w-40"})),React.createElement("div",{className:"ph-row"},React.createElement("span",{className:"ph-bar w-50"}),React.createElement("span",{className:"ph-bar w-30"})),React.createElement("div",{className:"ph-row"},React.createElement("span",{className:"ph-bar w-60"}),React.createElement("span",{className:"ph-bar w-40"})),React.createElement("div",{className:"ph-row"},React.createElement("span",{className:"ph-bar w-30"}),React.createElement("span",{className:"ph-bar w-60"}))),React.createElement("div",{className:"ph-foot mono"},"Shell ready \xB7 STRIP \xB7 HERO \xB7 WORK \xB7 DETAIL \u2014 drop data here.")))}window.VIEWS={table:TableView,board:BoardView,calendar:CalendarView,timeline:TimelineView,stepper:StepperView,thread:ThreadView,dashboard:DashboardView,swimlanes:SwimlanesView,tilegrid:TileGridView,month:MonthCalendarView,streamOverview:StreamOverviewView,placeholder:PlaceholderView},window.VIEW_OPTIONS=[{value:"table",label:"Table",icon:"table_rows"},{value:"board",label:"Board",icon:"view_kanban"},{value:"calendar",label:"Calendar",icon:"calendar_month"},{value:"timeline",label:"Timeline",icon:"timeline"},{value:"stepper",label:"Pipeline",icon:"graphic_eq"},{value:"thread",label:"Thread",icon:"forum"},{value:"dashboard",label:"Dashboard",icon:"monitoring"},{value:"swimlanes",label:"Swimlanes",icon:"account_tree"},{value:"tilegrid",label:"Tile grid",icon:"apps"},{value:"month",label:"Month",icon:"event_note"}],window.StatusDot=StatusDot,window.StatusChip=StatusChip,window.ScopeBadge=ScopeBadge,window.StageDots=StageDots,window.Trend=Trend,window.MIcon=MIcon,window.Sparkline=Sparkline;
