1import{d as Z,a6 as _,G as aa,aK as ea,ag as ta,j as sa,aL as oa,m as ia,as as na,c as V,a7 as e,e as v,aM as u,u as o,ab as A,a8 as g,at as H,N as O,O as da,P as q,f as la,aE as ra,aN as va,n as $,aO as ca,y as n,C as ua,aD as G,o as D}from"./Dqn5kp9W.js";import{_ as pa}from"./DlAUqK2U.js";const ga=["data-theme"],fa={class:"nav"},ha={class:"wrap nav-inner"},ma={id:"nav-right",class:"nav-right"},wa={class:"user-chip"},ba={class:"avatar"},ka={class:"email"},ya={class:"field"},xa={class:"m-actions"},Ca={class:"panel-body"},Sa={class:"p-group"},Ma={class:"p-hint"},Pa={class:"p-group"},La={class:"p-row"},Ba={class:"p-row"},Ta={class:"p-group"},Va={class:"p-status"},Da={class:"row"},Ea={class:"row"},Ia={id:"s-base",class:"val"},Oa={class:"row"},$a={id:"p-log",class:"p-log",role:"log"},J="paceboard:demo",za=Z({__name:"widget-demo",setup(Wa){_({title:"Paceboard â Momentum analytics for teams that ship",titleTemplate:null,meta:[{name:"description",content:"Paceboard turns your team's work into a clear picture of momentum, so you always know what's on track and what needs a nudge."},{name:"robots",content:"noindex, nofollow"}]});const h=aa().public.widgetDemoRemoteBaseUrl||ea().origin,c=n("auto"),l=n(!1),d=n(""),m=n("[email protected]"),x=n(!1),z=n(),p=n(!1),w=n(),r=n(null),K=ua(()=>r.value?{left:`${r.value.left}px`,top:`${r.value.top}px`,bottom:"auto"}:void 0),C=n([]),b=n("starting");let k,S,W=null,y,f,M;function i(t){C.value.unshift(`${new Date().toLocaleTimeString()} ${t}`),C.value=C.value.slice(0,20)}function P(){try{localStorage.setItem(J,JSON.stringify({theme:c.value,loggedIn:l.value,email:d.value,panelPos:r.value}))}catch{i("Browser storage is unavailable; settings will not persist.")}}async function L(){return k||(W=document.activeElement,k=new Promise(t=>{S=t}),m.value=d.value||"[email protected]",x.value=!0,await G(),z.value?.focus(),k)}function B(t=!1){t&&(d.value=m.value.trim(),l.value=!0,P(),i(`Signed in as ${d.value}`)),x.value=!1,S?.(),S=void 0,k=void 0,W?.focus()}function j(t){t.key==="Escape"&&x.value&&B()}function T(){l.value?p.value=!0:L()}function N(){P(),window.location.reload()}function E(t=!1){if(l.value=!1,d.value="",t)try{for(const a of[localStorage,sessionStorage])for(const s of Object.keys(a))s.startsWith("feedlog:")&&a.removeItem(s)}catch{i("Browser storage could not be cleared.")}N()}function F(t,a){r.value={left:Math.max(8,Math.min(t,document.documentElement.clientWidth-(w.value?.offsetWidth||340)-8)),top:Math.max(8,Math.min(a,window.innerHeight-(w.value?.offsetHeight||400)-8))}}function I(){p.value&&r.value&&F(r.value.left,r.value.top)}ta(p,async t=>{t&&(await G(),I())});function X(t){if(t.target.closest("button")||!w.value)return;const a=w.value.getBoundingClientRect();y={x:t.clientX-a.left,y:t.clientY-a.top},t.currentTarget.setPointerCapture(t.pointerId)}function Y(t){y&&F(t.clientX-y.x,t.clientY-y.y)}function R(){y=void 0,P()}async function U(){if(!l.value)return i("getToken() â null (signed out)"),null;try{const t=await $fetch("/api/widget-demo/token",{method:"POST",body:{email:d.value}});return i("getToken() â JWT signed by the server"),t.token}catch(t){const a=t.statusCode;throw i(a===409?"Enable SSO in Dashboard > Developer > SSO before using mock sign-in.":`getToken() failed (${a??"network error"}).`),t}}async function Q(){const t=window.open("about:blank","_blank");if(t){t.opener=null;try{const a=await U();if(!a){t.close();return}const s=new URL("/api/sso/jwt",h);s.searchParams.set("jwt",a),s.searchParams.set("return_to","/"),t.location.replace(s.href)}catch{t.close(),i("The feedback portal could not be opened.")}}}return sa(async()=>{if(document.getElementById("feedlog-widget")){window.location.reload();return}try{const t=JSON.parse(localStorage.getItem(J)||"{}");["auto","light","dark"].includes(t.theme)&&(c.value=t.theme),d.value=typeof t.email=="string"?t.email:"",l.value=t.loggedIn===!0&&!!d.value,Number.isFinite(t.panelPos?.left)&&Number.isFinite(t.panelPos?.top)&&(r.value=t.panelPos)}catch{i("Saved demo settings could not be read.")}document.addEventListener("keydown",j),window.addEventListener("resize",I);try{const{createWidget:t}=await oa(async()=>{const{createWidget:a}=await import("./D2E5DUxA.js");return{createWidget:a}},[],import.meta.url);f=new MutationObserver(()=>{document.getElementById("feedlog-widget")&&(b.value="live",f?.disconnect(),clearTimeout(
1M))}),f.observe(document.body,{childList:!0}),M=setTimeout(()=>{f?.disconnect(),b.value="not loaded",i("Widget not mounted. Check whether it is enabled for this workspace.")},5e3),t({baseUrl:h,auth:{getToken:U,login:L},theme:c.value}),i(`createWidget({ baseUrl: ${h}, theme: ${c.value} })`)}catch{f?.disconnect(),clearTimeout(M),b.value="error",i("The widget SDK could not be loaded.")}}),ia(()=>{document.removeEventListener("keydown",j),window.removeEventListener("resize",I),f?.disconnect(),clearTimeout(M),S?.()}),na(t=>(window.location.assign(t.fullPath),!1)),(t,a)=>(D(),V("div",{class:"demo-page","data-theme":o(c)},[a[41]||(a[41]=e("div",{class:"demo-banner",role:"note","aria-label":"Demo notice"},[e("div",{class:"demo-banner-inner"},[e("span",{class:"demo-pill"},"Demo"),e("span",{class:"demo-banner-text"},[v("Demo for the "),e("b",null,"FeedLog widget"),v(" â Paceboard is a fictional product used to show the widget in a real page.")])])],-1)),e("header",fa,[e("div",ha,[a[10]||(a[10]=u('<a class="brand" href="#top" data-v-9433ea90><svg class="mark" viewBox="0 0 32 32" fill="none" aria-hidden="true" data-v-9433ea90><rect width="32" height="32" rx="8" fill="var(--brand)" data-v-9433ea90></rect><path d="M8 21V15M13 21V9M18 21V13M23 21V11" stroke="#fff" stroke-width="2.4" stroke-linecap="round" data-v-9433ea90></path></svg> Paceboard </a><nav class="nav-links" data-v-9433ea90><a href="#features" data-v-9433ea90>Product</a><a href="#solutions" data-v-9433ea90>Solutions</a><a href="#pricing" data-v-9433ea90>Pricing</a><a href="#docs" data-v-9433ea90>Docs</a></nav>',2)),e("div",ma,[o(l)?(D(),V(A,{key:0},[e("button",{class:"btn btn-ghost btn-sm",onClick:Q},"Feedback portal"),e("div",wa,[e("span",ba,g(o(d).slice(0,2).toUpperCase()),1),e("span",ka,g(o(d)),1)]),e("button",{class:"btn btn-ghost btn-sm",onClick:a[0]||(a[0]=s=>E())},"Sign out")],64)):(D(),V(A,{key:1},[e("button",{class:"btn btn-ghost btn-sm",onClick:L},"Sign in"),e("button",{class:"btn btn-primary btn-sm",onClick:L},"Start free")],64))])])]),e("main",{id:"top"},[e("section",{class:"hero"},[e("div",{class:"wrap hero-grid"},[e("div",null,[a[12]||(a[12]=e("span",{class:"pill"},[e("span",{class:"dot"}),v(" Now with live sprint forecasting")],-1)),a[13]||(a[13]=e("h1",null,"Momentum analytics for teams that ship.",-1)),a[14]||(a[14]=e("p",{class:"lede"},"Paceboard turns everyday work into a clear picture of momentum â so you always know what's on track, what's slipping, and where a small nudge pays off.",-1)),e("div",{class:"hero-cta"},[e("button",{class:"btn btn-primary",onClick:T},[...a[11]||(a[11]=[v("Start free ",-1),e("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},[e("path",{d:"M3 8h10M9 4l4 4-4 4",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])]),e("button",{class:"btn btn-ghost",onClick:T},"Book a demo")]),a[15]||(a[15]=e("p",{class:"hero-note"},"No credit card required · 14-day trial · Cancel anytime",-1))]),a[16]||(a[16]=u('<div class="mock" aria-hidden="true" data-v-9433ea90><div class="mock-bar" data-v-9433ea90><i data-v-9433ea90></i><i data-v-9433ea90></i><i data-v-9433ea90></i></div><div class="mock-body" data-v-9433ea90><div class="stat-card" data-v-9433ea90><div class="k" data-v-9433ea90>Cycle time</div><div class="v" data-v-9433ea90>3.4d</div><div class="up" data-v-9433ea90>â¼ 18% vs last sprint</div></div><div class="stat-card" data-v-9433ea90><div class="k" data-v-9433ea90>Throughput</div><div class="v" data-v-9433ea90>47</div><div class="up" data-v-9433ea90>â² 9% this week</div></div><div class="mock-chart" data-v-9433ea90><div class="lg" data-v-9433ea90><span data-v-9433ea90>Momentum</span><span data-v-9433ea90>Last 8 weeks</span></div><svg viewBox="0 0 320 90" width="100%" height="90" preserveAspectRatio="none" data-v-9433ea90><defs data-v-9433ea90><linearGradient id="g" x1="0" y1="0" x2="0" y2="1" data-v-9433ea90><stop offset="0" stop-color="var(--brand)" stop-opacity=".28" data-v-9433ea90></stop><stop offset="1" stop-color="var(--brand)" stop-opacity="0" data-v-9433ea90></stop></linearGradient></defs><path d="M0 70 L45 60 L90 64 L135 44 L180 48 L225 28 L270 24 L320 12" fill="none" stroke="var(--brand)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" data-v-9433ea90></path><path d="M0 70 L45 60 L90 64 L135 44 L180 48 L225 28 L270 24 L320 12 L320 90 L0 90 Z" fill="url(#g)" data-v-9433ea90></path></svg></div></div></div>
1',1))])]),a[21]||(a[21]=u('<div class="logos wrap" data-v-9433ea90><p data-v-9433ea90>Trusted by product and delivery teams at</p><div class="logo-row" data-v-9433ea90><svg viewBox="0 0 120 24" data-v-9433ea90><text x="0" y="18" font-family="sans-serif" font-size="18" font-weight="800" fill="currentColor" data-v-9433ea90>Northwind</text></svg><svg viewBox="0 0 96 24" data-v-9433ea90><text x="0" y="18" font-family="sans-serif" font-size="18" font-weight="700" fill="currentColor" letter-spacing="1" data-v-9433ea90>HELIX</text></svg><svg viewBox="0 0 110 24" data-v-9433ea90><text x="0" y="18" font-family="sans-serif" font-size="18" font-weight="800" fill="currentColor" data-v-9433ea90>Everpost</text></svg><svg viewBox="0 0 88 24" data-v-9433ea90><text x="0" y="18" font-family="sans-serif" font-size="18" font-weight="700" fill="currentColor" data-v-9433ea90>Quanta</text></svg><svg viewBox="0 0 120 24" data-v-9433ea90><text x="0" y="18" font-family="sans-serif" font-size="18" font-weight="800" fill="currentColor" data-v-9433ea90>Blueacre</text></svg></div></div><section id="features" class="block" data-v-9433ea90><div class="wrap" data-v-9433ea90><div class="block-head" data-v-9433ea90><span class="eyebrow" data-v-9433ea90>Why Paceboard</span><h2 data-v-9433ea90>Everything your team needs to keep moving</h2><p data-v-9433ea90>Signal over noise. Paceboard connects to the tools you already use and surfaces the few things worth acting on.</p></div><div class="features" data-v-9433ea90><div class="feature" data-v-9433ea90><div class="ic" data-v-9433ea90><svg width="22" height="22" viewBox="0 0 24 24" fill="none" data-v-9433ea90><path d="M4 19V5M4 19h16M8 15l3-4 3 3 4-6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-9433ea90></path></svg></div><h3 data-v-9433ea90>Live momentum</h3><p data-v-9433ea90>See velocity, cycle time, and flow in real time â not in a report you assemble on Friday afternoon.</p></div><div class="feature" data-v-9433ea90><div class="ic" data-v-9433ea90><svg width="22" height="22" viewBox="0 0 24 24" fill="none" data-v-9433ea90><path d="M12 3l7 4v5c0 4-3 7-7 9-4-2-7-5-7-9V7l7-4z" stroke="currentColor" stroke-width="2" stroke-linejoin="round" data-v-9433ea90></path><path d="M9 12l2 2 4-4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-9433ea90></path></svg></div><h3 data-v-9433ea90>Early warnings</h3><p data-v-9433ea90>Paceboard flags work that's about to slip while there's still time to unblock it, and tells you who to ask.</p></div><div class="feature" data-v-9433ea90><div class="ic" data-v-9433ea90><svg width="22" height="22" viewBox="0 0 24 24" fill="none" data-v-9433ea90><path d="M7 8h10M7 12h6M7 16h9" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-9433ea90></path><rect x="3" y="3" width="18" height="18" rx="4" stroke="currentColor" stroke-width="2" data-v-9433ea90></rect></svg></div><h3 data-v-9433ea90>Shared clarity</h3><p data-v-9433ea90>One picture of reality for engineers, PMs, and leadership â no more three dashboards that disagree.</p></div></div></div></section><div id="solutions" class="stats" data-v-9433ea90><div class="wrap stats-grid" data-v-9433ea90><div data-v-9433ea90><div class="n" data-v-9433ea90>2.1Ã</div><div class="l" data-v-9433ea90>faster status updates</div></div><div data-v-9433ea90><div class="n" data-v-9433ea90>34%</div><div class="l" data-v-9433ea90>less cycle-time variance</div></div><div data-v-9433ea90><div class="n" data-v-9433ea90>8,400+</div><div class="l" data-v-9433ea90>teams onboarded</div></div><div data-v-9433ea90><div class="n" data-v-9433ea90>99.98%</div><div class="l" data-v-9433ea90>uptime last 12 months</div></div></div></div>',3)),e("section",{id:"pricing",class:"block"},[e("div",{class:"wrap split"},[e("div",null,[a[17]||(a[17]=u('<span class="eyebrow" data-v-9433ea90>Built for the whole team</span><h2 style="font-size:clamp(26px,3.4vw,36px);margin-top:12px;" data-v-9433ea90>Plans that scale from a squad to the whole org</h2><p style="color:var(--ink-soft);font-size:16px;margin-top:14px;" data-v-9433ea90>Start free, invite your team, and only pay as you grow. Every plan includes the momentum dashboard and early-warning signals.</p><ul data-v-9433ea90><li data-v-9433ea90><svg width="20" height="20" viewBox="0 0 20 20" fill="none" data-v-9433ea90><path d="M4 10l4 4 8-9" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" data-v-9433ea90></path></svg><span data-v-9433ea90><b data-v-9433ea90>Unlimited dashboards</b> â one per team, project, or initiative.</span></li><li data-v-9433ea90><svg width="20" height="20" viewBox="0 0 20 20" fill="none" data-v-9433ea90><path d="M4 10l4 4 8-9" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" data-v-9433ea90></path></svg><span data-v-9433ea90><b data-v-9433ea90>Native integrations</b> with your issue tracker, repo, and CI.</span></li><li data-v-9433ea90><svg width="20" height="20" viewBox="0 0 20 20" fill="none" data-v-9433ea90><path d="M4 10l4 4 8-9" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" data-v-9433ea90></path></svg><span data-v-9433ea90><b data-v-9433ea90>SSO & SCIM</b> on every business plan, no add-on fees.</span></li></ul>',4)),e("div",{style:{"margin-top":"26px"}},[e("button",{class:"btn btn-primary",onClick:T},"Get started free")])]),a[18]||(a[18]=u('<div class="mock" aria-hidden="true" data-v-9433ea90><div class="mock-bar" data-v-9433ea90><i data-v-9433ea90></i><i data-v-9433ea90></i><i data-v-9433ea90></i></div><div class="mock-body" style="grid-template-columns:1fr;" data-v-9433ea90><div class="stat-card" data-v-9433ea90><div class="k" data-v-9433ea90>Team</div><div class="v" style="font-size:19px;" data-v-9433ea90>Platform Squad</div></div><div class="stat-card" data-v-9433ea90><div class="k" data-v-9433ea90>On track</div><div class="v" data-v-9433ea90>12 / 15</div><div class="up" data-v-9433ea90>3 need attention</div></div><div class="stat-card" data-v-9433ea90><div class="k" data-v-9433ea90>Forecast</div><div class="v" style="font-size:19px;" data-v-9433ea90>Ships Thu</div><div class="up" data-v-9433ea90>92% confidence</div></div></div></div>',1))])]),e("section",{id:"docs",class:"cta-band"},[e("div",{class:"wrap"},[e("div",{class:"cta-inner"},[a[19]||(a[19]=e("h2",null,"Give your team its momentum back",-1)),a[20]||(a[20]=e("p",null,"Set up your first dashboard in under five minutes.",-1)),e("button",{class:"btn btn-primary",onClick:T},"Start free")])])])]),a[42]||(a[42]=u('<footer class="ft" data-v-9433ea90><div class="wrap" data-v-9433ea90><div class="ft-grid" data-v-9433ea90><div data-v-9433ea90><a class="brand" href="#top" data-v-9433ea90><svg class="mark" viewBox="0 0 32 32" fill="none" aria-hidden="true" data-v-9433ea90><rect width="32" height="32" rx="8" fill="var(--brand)" data-v-9433ea90></rect><path d="M8 21V15M13 21V9M18 21V13M23 21V11" stroke="#fff" stroke-width="2.4" stroke-linecap="round" data-v-9433ea90></path></svg> Paceboard </a><p class="about" data-v-9433ea90>Momentum analytics for teams that ship. Paceboard is a fictional product used to demo the FeedLog feedback widget.</p></div><div class="ft" data-v-9433ea90><h4 data-v-9433ea90>Product</h4><a href="#features" data-v-9433ea90>Features</a><a href="#pricing" data-v-9433ea90>Pricing</a><a href="#solutions" data-v-9433ea90>Integrations</a><a href="#docs" data-v-9433ea90>Changelog</a></div><div class="ft" data-v-9433ea90><h4 data-v-9433ea90>Company</h4><a href="#" data-v-9433ea90>About</a><a href="#" data-v-9433ea90>Careers</a><a href="#" data-v-9433ea90>Blog</a><a href="#" data-v-9433ea90>Contact</a></div><div class="ft" data-v-9433ea90><h4 data-v-9433ea90>Resources</h4><a href="#docs" data-v-9433ea90>Docs</a><a href="#" data-v-9433ea90>API</a><a href="#" data-v-9433ea90>Status</a><a href="#" data-v-9433ea90>Support</a></div></div><div class="ft-bottom" data-v-9433ea90><span data-v-9433ea90>© 2026 Paceboard, Inc. (fictional). All rights reserved.</span><span class="demo-tag" data-v-9433ea90><span class="badge" data-v-9433ea90>Demo</span> Integration host for <b data-v-9433ea90>@feedlog/widget</b> â the launcher is bottom-right.</span></div></div></footer>',1)),o(x)?(D(),V("div",{key:0,id:"modal",class:"modal-backdrop open",onClick:a[4]||(a[4]=H(s=>B(),["self"]))},[e("form",{class:"modal",role:"dialog","aria-modal":"true","aria-label":"Sign in to Paceboard",onSubmit:a[3]||(a[3]=H(s=>B(!0),["prevent"]))},[a[24]||(a[24]=u('<div class="m-brand" data-v-9433ea90><svg width="22" height="22" viewBox="0 0 32 32" fill="none" data-v-9433ea90><rect width="32" height="32" rx="8" fill="var(--brand)" data-v-9433ea90></rect><path d="M8 21V15M13 21V9M18 21V13M23 21V11" stroke="#fff" stroke-width="2.4" stroke-linecap="round" data-v-9433ea90></path></svg> Paceboard </div><h3 data-v-9433ea90>Sign in</h3><p class="sub" data-v-9433ea90>Welcome back. This is a mock sign-in â any email and password work.</p>',3)),e("div",ya,[a[22]||(a[22]=e("label",{for:"m-email"},"Work email",-1)),O(e("input",{id:"m-email",ref_key:"loginInput",ref:z,"onUpdate:modelValue":a[1]||(a[1]=s=>q(m)?m.value=s:null),type:"email",required:"",autocomplete:"off"},null,512),[[da,o(m)]])]),a[25]||(a[25]=e("div",{class:"field"},[e("label",{for:"m-pass"},"Password"),e("input",{id:"m-pass",type:"password",value:"demo-password",autocomplete:"off"})],-1)),a[26]||(a[26]=e("p",{class:"m-note"},[v("FeedLog never sees these credentials â this login belongs to the host app. That is exactly what the widget's "),e("code",null,"auth.login"),v(" hook is for.")],-1)),e("div",xa,[e("button",{id:"m-cancel",class:"btn btn-ghost",type:"button",onClick:a[2]||(a[2]=s=>B())},"Cancel"),a[23]||(a[23]=e("button",{id:"m-submit",class:"btn btn-primary",type:"submit"},"Sign in",-1))])],32)])):la("",!0),O(e("button",{id:"panel-fab",type:"button","aria-label":"Open demo controls",onClick:a[5]||(a[5]=s=>p.value=!0)},[...a[27]||(a[27]=[e("svg",{class:"gear",width:"17",height:"17",viewBox:"0 0 24 24",fill:"none"},[e("path",{d:"M12 15a3 3 0 100-6 3 3 0 000 6z",stroke:"currentColor","stroke-width":"2"}),e("path",{d:"M19.4 13a1.6 1.6 0 00.3 1.8l.1.1a2 2 0 11-2.8 2.8l-.1-.1a1.6 1.6 0 00-2.7 1.1V21a2 2 0 11-4 0v-.1A1.6 1.6 0 006.6 19a1.6 1.6 0 00-1.8.3l-.1.1a2 2 0 11-2.8-2.8l.1-.1a1.6 1.6 0 00-1.1-2.7H1a2 2 0 110-4h.1A1.6 1.6 0 003 6.6a1.6 1.6 0 00-.3-1.8l-.1-.1a2 2 0 112.8-2.8l.1.1a1.6 1.6 0 001.8.3H7a1.6 1.6 0 001-1.5V1a2 2 0 114 0v.1a1.6 1.6 0 002.7 1.1 1.6 1.6 0 001.8-.3l.1-.1a2 2 0 112.8 2.8l-.1.1a1.6 1.6 0 00-.3 1.8V7a1.6 1.6 0 001.5 1H23a2 2 0 110 4h-.1a1.6 1.6 0 00-1.5 1z",stroke:"currentColor","stroke-width":"1.6"})],-1),v(" Demo controls ",-1)])],512),[[ra,!o(p)]]),e("div",{id:"panel",ref_key:"panel",ref:w,class:$({open:o(p)}),style:ca(o(K))},[e("div",{id:"panel-head",class:"panel-head",onPointerdown:X,onPointermove:Y,onPointerup:R,onPointercancel:R},[a[29]||(a[29]=u('<svg class="grip" width="16" height="16" viewB
1ox="0 0 16 16" fill="currentColor" data-v-9433ea90><circle cx="5" cy="4" r="1.3" data-v-9433ea90></circle><circle cx="11" cy="4" r="1.3" data-v-9433ea90></circle><circle cx="5" cy="8" r="1.3" data-v-9433ea90></circle><circle cx="11" cy="8" r="1.3" data-v-9433ea90></circle><circle cx="5" cy="12" r="1.3" data-v-9433ea90></circle><circle cx="11" cy="12" r="1.3" data-v-9433ea90></circle></svg><div class="t" data-v-9433ea90>Widget demo controls <small data-v-9433ea90>@feedlog/widget</small></div>',2)),e("button",{id:"panel-close",class:"x",type:"button","aria-label":"Close",onClick:a[6]||(a[6]=s=>p.value=!1)},[...a[28]||(a[28]=[e("svg",{width:"15",height:"15",viewBox:"0 0 16 16",fill:"none"},[e("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round"})],-1)])])],32),e("div",Ca,[e("div",Sa,[a[32]||(a[32]=e("span",{class:"lbl"},"Connection",-1)),e("span",Ma,[a[30]||(a[30]=v("Connected to ",-1)),e("code",null,g(o(h)),1),a[31]||(a[31]=v(". The server signs the SSO assertion. Sign in with a test email to choose the identity used by the widget.",-1))])]),e("div",Pa,[a[34]||(a[34]=e("span",{class:"lbl"},"Demo controls",-1)),e("div",La,[O(e("select",{id:"p-theme","onUpdate:modelValue":a[7]||(a[7]=s=>q(c)?c.value=s:null),"aria-label":"Widget theme",onChange:P},[...a[33]||(a[33]=[e("option",{value:"auto"},"theme: auto",-1),e("option",{value:"light"},"theme: light",-1),e("option",{value:"dark"},"theme: dark",-1)])],544),[[va,o(c)]])]),e("div",{class:"p-row"},[e("button",{id:"p-reload",class:"btn btn-ghost btn-sm",type:"button",onClick:N},"Apply & reload widget")]),e("div",Ba,[e("button",{id:"p-signout",class:"btn btn-ghost btn-sm",type:"button",onClick:a[8]||(a[8]=s=>E())},"Sign out"),e("button",{id:"p-clear",class:"btn btn-ghost btn-sm",type:"button",onClick:a[9]||(a[9]=s=>E(!0))},"Clear session")]),a[35]||(a[35]=e("span",{class:"p-hint"},"Apply theme changes to reload the widget. Signing out also reloads the page to clear the previous widget session.",-1))]),e("div",Ta,[a[40]||(a[40]=e("span",{class:"lbl"},"Status",-1)),e("div",Va,[e("div",Da,[a[36]||(a[36]=e("span",{class:"k"},"Host sign-in",-1)),e("span",{id:"s-auth",class:$(["val",o(l)?"ok":"no"])},g(o(l)?"signed in":"signed out"),3)]),e("div",Ea,[a[37]||(a[37]=e("span",{class:"k"},"baseUrl",-1)),e("span",Ia,g(o(h)),1)]),a[39]||(a[39]=e("div",{class:"row"},[e("span",{class:"k"},"Signing"),e("span",{id:"s-signing",class:"val ok"},"server-side")],-1)),e("div",Oa,[a[38]||(a[38]=e("span",{class:"k"},"Widget",-1)),e("span",{id:"s-widget",class:$(["val",o(b)==="live"?"ok":"warn"])},g(o(b)),3)])]),e("div",$a,g(o(C).join(` 2`)),1)])])],6)],8,ga))}}),Fa=pa(za,[["__scopeId","data-v-9433ea90"]]);export{Fa as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.