@theoremjs/studio 0.3.4-next.379.gf91c8b4 → 0.3.4-next.385.ga3608be
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +4 -4
- package/page/assets/Banner-DgPjY5Yu.js +2 -0
- package/page/assets/BottomSheet-BQPskY35.js +1 -0
- package/page/assets/{Card-Lp-0P5eL.js → Card-Ghe4ozhC.js} +1 -1
- package/page/assets/CheckboxInput-C9kbVyhK.js +2 -0
- package/page/assets/CodeBlock-Kjgv83A6.js +52 -0
- package/page/assets/CollapsibleGroup-toq0Nedn.js +2 -0
- package/page/assets/ContextMenu-B-dMscLp.js +2 -0
- package/page/assets/DateInput-BJt-UTCy.js +1 -0
- package/page/assets/Dialog-BDUExlk_.js +1 -0
- package/page/assets/HoverCard-C6thuzrf.js +1 -0
- package/page/assets/Icon-ZfFwTt8n.js +3 -0
- package/page/assets/IconButton-CG5klqF1.js +1 -0
- package/page/assets/{PaneState-BvA2tLQg.js → PaneState-C8jetBGI.js} +1 -1
- package/page/assets/PaneState-CnxaP3LD.css +1 -0
- package/page/assets/ScrollableArea-C8AVuqnt.js +1 -0
- package/page/assets/SegmentedControlItem-BLuJOusN.js +1 -0
- package/page/assets/SidePanel-OYp0bLNO.js +1 -0
- package/page/assets/{Text-bum6zWWx.js → Text-BsiAsowd.js} +2 -2
- package/page/assets/{TimestampHoverCard-DQIG0RZF.js → TimestampHoverCard-CCnmnVlQ.js} +1 -1
- package/page/assets/{ToolResultCharts-CTjAk_F6.js → ToolResultCharts-oLH6ynx0.js} +1 -1
- package/page/assets/{Tooltip-BH9xiRMl.js → Tooltip-CTEuMRLe.js} +1 -1
- package/page/assets/TraceInspector-DjRGsfQ6.js +1 -0
- package/page/assets/{TraceOverview-KSiIocJY.js → TraceOverview-CJJg8bUz.js} +1 -1
- package/page/assets/{browser-engine-BtW-S83s.js → browser-engine-BwN7Ib6D.js} +1 -1
- package/page/assets/browser-transport-CidXgImE.js +47 -0
- package/page/assets/chainEventHandlers-C6ttXGfW.js +1 -0
- package/page/assets/{embedding-space-view-judaIj9T.js → embedding-space-view-BU2AjjAx.js} +1 -1
- package/page/assets/{export-agent-Dn9mO9RW.js → export-agent-B0mZ4wL6.js} +1 -1
- package/page/assets/fieldParts-Cs6Amprh.js +1 -0
- package/page/assets/focusReturn-CTppP2k0.js +1 -0
- package/page/assets/{guardrail-tester-CtcMbLbV.js → guardrail-tester-C-iVoY5f.js} +2 -2
- package/page/assets/index-D7CjWX1v.js +101 -0
- package/page/assets/index-IqWID6Mh.css +1 -0
- package/page/assets/{labels-provider-4TIWDvsE.js → labels-provider-BqgbdxdT.js} +2 -2
- package/page/assets/{studio-code-pane-DB2BwVxl.js → studio-code-pane-DDPb5n7P.js} +1 -1
- package/page/assets/{studio-console-BERV2KHE.js → studio-console-D59tIXKj.js} +1 -1
- package/page/assets/{studio-decision-BvMNjLdk.js → studio-decision-CoJDXc1v.js} +1 -1
- package/page/assets/studio-embedding-de6dCLXd.js +2 -0
- package/page/assets/studio-host-console-DTu-WVSS.js +2 -0
- package/page/assets/studio-live-DCvAJAO5.js +5 -0
- package/page/assets/studio-map-DOSqlz_M.js +1 -0
- package/page/assets/{trace-patterns-DnYJa0nI.js → trace-patterns-CS99kExN.js} +1 -1
- package/page/assets/{use-one-call--t5YNYn3.js → use-one-call-BwVhWczQ.js} +1 -1
- package/page/assets/{useAdaptivePresentation-BzmPCddb.js → useAdaptivePresentation-BY_zvjIp.js} +1 -1
- package/page/assets/{useClipboard-BgGRxRMJ.js → useClipboard-B1amtN2V.js} +1 -1
- package/page/assets/useDevWarning-Cna3kqg1.js +1 -0
- package/page/assets/useLayerDismissal-BAnTRYTt.js +1 -0
- package/page/assets/useScrollableArea-vxuztwym.js +1 -0
- package/page/assets/useTooltip-rxACYEAC.js +1 -0
- package/page/index.html +31 -30
- package/ui/built/theme.css +7 -2
- package/ui/built/theme.css.d.ts +2 -2
- package/ui/built/theorem-studio.d.ts +2 -2
- package/ui/built/theorem-studio.js +7 -2
- package/ui/built/theorem-studio.variants.d.ts +2 -2
- package/ui/studio-screen.js +2 -3
- package/page/assets/Banner-BEl_rG5o.js +0 -2
- package/page/assets/BottomSheet-BwfBDtje.js +0 -1
- package/page/assets/CheckboxInput-Cj5pk-KI.js +0 -2
- package/page/assets/CodeBlock-C7XJ4ioE.js +0 -51
- package/page/assets/CollapsibleGroup-N7_SOjbm.js +0 -2
- package/page/assets/ContextMenu-DC-bBIii.js +0 -2
- package/page/assets/DateInput-BGrQ5tPC.js +0 -1
- package/page/assets/Dialog-DELWQo-v.js +0 -1
- package/page/assets/HoverCard-D1Y1ltWQ.js +0 -1
- package/page/assets/Icon-JrysT8aU.js +0 -3
- package/page/assets/IconButton-DlOGzJIX.js +0 -1
- package/page/assets/PaneState-eUzUkNE8.css +0 -1
- package/page/assets/ScrollableArea-Ckugdj1N.js +0 -1
- package/page/assets/SegmentedControlItem-h-aaXzyS.js +0 -1
- package/page/assets/SidePanel-BL32abk8.js +0 -1
- package/page/assets/TraceInspector-2o8gHZVO.js +0 -1
- package/page/assets/browser-transport-MtEE98lA.js +0 -47
- package/page/assets/focusableSelector-DXZeMU85.js +0 -1
- package/page/assets/groupStyles-C7Ter7zC.js +0 -1
- package/page/assets/index-DOaHlqBo.css +0 -1
- package/page/assets/index-DqeZ3mcO.js +0 -101
- package/page/assets/studio-embedding-DuqyIC3Y.js +0 -2
- package/page/assets/studio-host-console-BdoHak-m.js +0 -2
- package/page/assets/studio-live-ByM9fvNu.js +0 -5
- package/page/assets/studio-map-DrYVoZ1m.js +0 -1
- package/page/assets/useDevWarning-Z9SoixOP.js +0 -1
- package/page/assets/useLayerDismissal-B_G7IWpC.js +0 -1
- package/page/assets/useScrollableArea-0NzdiBCq.js +0 -1
- package/page/assets/useTooltip-CJM_xhLB.js +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/embedding-space-view-judaIj9T.js","assets/rolldown-runtime-hePW80VL.js","assets/themeProps-3IqahpCr.js","assets/Text-bum6zWWx.js","assets/mergeProps-ptS-gIMz.js","assets/sharedResizeObserver-4U9Xq5Oq.js","assets/preload-helper-DpV6A1kQ.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,l as n,n as r,u as i}from"./themeProps-3IqahpCr.js";import{n as a,t as o}from"./SegmentedControlItem-h-aaXzyS.js";import{t as s}from"./VStack-CkVMcNiK.js";import{n as c,t as l}from"./StackItem-CQviqAfM.js";import{j as u,m as d,o as f,r as p,s as m,u as h}from"./browser-transport-MtEE98lA.js";import{t as g}from"./mergeProps-ptS-gIMz.js";import{v as _}from"./groupStyles-C7Ter7zC.js";import{t as v}from"./Icon-JrysT8aU.js";import{r as y,t as b}from"./IconButton-DlOGzJIX.js";import{t as x}from"./Text-bum6zWWx.js";import{t as ee}from"./preload-helper-DpV6A1kQ.js";import{n as S,t as te}from"./labels-provider-4TIWDvsE.js";import{t as ne}from"./Tooltip-BH9xiRMl.js";import{t as C}from"./createReactComponent-CZwsv6DD.js";import{n as re}from"./ScrollableArea-Ckugdj1N.js";import{a as ie,o as ae,s as oe,t as w}from"./Banner-BEl_rG5o.js";import{i as se,t as ce}from"./arrive-DvbqpeRS.js";import{t as le}from"./IconFileText-6zOFKKrF.js";import{Ft as ue,Lt as T,Tt as de}from"./reader-B0gVhfoZ.js";import{d as E,f as D}from"./tree-DeO1319a.js";import{n as O}from"./encode-files-Bc3HJyAh.js";import{n as k,t as fe}from"./PaneState-BvA2tLQg.js";import{t as pe}from"./useClipboard-BgGRxRMJ.js";import{a as A,c as j,h as M,i as me,n as he,o as ge,r as _e,s as ve,t as ye}from"./studio-console-BERV2KHE.js";import{i as be,r as xe}from"./trace-patterns-DnYJa0nI.js";import{a as Se,n as Ce,r as we,t as Te}from"./use-one-call--t5YNYn3.js";import{_ as Ee,g as De,p as Oe}from"./index-DqeZ3mcO.js";var ke=C(`outline`,`baseline-density-medium`,`BaselineDensityMedium`,[[`path`,{d:`M4 20h16`,key:`svg-0`}],[`path`,{d:`M4 12h16`,key:`svg-1`}],[`path`,{d:`M4 4h16`,key:`svg-2`}]]),Ae=C(`outline`,`csv`,`Csv`,[[`path`,{d:`M10 15a1 1 0 0 0 1 1h2a1 1 0 0 0 1 -1v-2a1 1 0 0 0 -1 -1h-2a1 1 0 0 1 -1 -1v-2a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1`,key:`svg-0`}],[`path`,{d:`M17 8l2 8l2 -8`,key:`svg-1`}],[`path`,{d:`M7 10a2 2 0 1 0 -4 0v4a2 2 0 1 0 4 0`,key:`svg-2`}]]),je=C(`outline`,`pilcrow`,`Pilcrow`,[[`path`,{d:`M13 4v16`,key:`svg-0`}],[`path`,{d:`M17 4v16`,key:`svg-1`}],[`path`,{d:`M19 4h-9.5a4.5 4.5 0 0 0 0 9h3.5`,key:`svg-2`}]]),Me=C(`outline`,`scissors`,`Scissors`,[[`path`,{d:`M3 7a3 3 0 1 0 6 0a3 3 0 1 0 -6 0`,key:`svg-0`}],[`path`,{d:`M3 17a3 3 0 1 0 6 0a3 3 0 1 0 -6 0`,key:`svg-1`}],[`path`,{d:`M8.6 8.6l10.4 10.4`,key:`svg-2`}],[`path`,{d:`M8.6 15.4l10.4 -10.4`,key:`svg-3`}]]);function Ne(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`text`?typeof t.text==`string`:typeof t.mimeType==`string`?t.type===`media`?typeof t.data==`string`:t.type===`media-ref`&&typeof t.uri==`string`:!1}function Pe(e){if(typeof e==`string`)return!0;if(typeof e!=`object`||!e)return!1;let t=e.parts;return Array.isArray(t)&&t.every(Ne)}function N(e){let t;try{t=JSON.parse(e)}catch{return}return Array.isArray(t)&&t.every(Pe)?t:void 0}function P(e){return typeof e==`string`?[{type:`text`,text:e}]:e.parts}function Fe(e){let t;try{t=JSON.parse(e)}catch{return}return Pe(t)?t:void 0}function Ie(e){let t=P(e),n=t.filter(e=>e.type===`text`);return n.length>1?null:{text:n[0]?.text??``,media:t.filter(e=>e.type!==`text`)}}function Le(e){return e.media.length===0?e.text:{parts:[...e.text?[{type:`text`,text:e.text}]:[],...e.media]}}function Re(e){return e.type===`media`?{mimeType:e.mimeType,sizeBytes:T(e.data)}:{mimeType:e.mimeType}}function F(e,t){let n=[...e];if(n.length===0)return{ok:!1,reason:`no_inputs`};if(t.maxInputs!==void 0&&n.length>t.maxInputs)return{ok:!1,reason:`too_many_inputs`,max:t.maxInputs,inputs:n};let r=[];for(let[e,i]of n.entries()){let a=P(i);if(a.length===0||a.every(e=>e.type===`text`&&!e.text.trim()))return{ok:!1,reason:`empty_input`,index:e,inputs:n};if(!t.text&&a.some(e=>e.type===`text`&&e.text.trim()))return{ok:!1,reason:`text_off`,index:e,inputs:n};let o=[];for(let e of a)if(e.type!==`text`)try{o.push(Re(e))}catch{return{ok:!1,reason:`invalid_json`}}r.push(o)}let i=de(t,r);return i.length>0?{ok:!1,reason:`attachments`,issues:i,inputs:n}:{ok:!0,inputs:n}}function I(e,t){return(t===`whole`?[e]:t===`lines`?e.split(/\r?\n/):t===`paragraphs`?e.split(/\r?\n[^\S\r\n]*\r?\n/):t===`commas`?e.split(`,`):t.separator?e.split(t.separator):[e]).map(e=>e.trim()).filter(e=>e!==``)}function L(e){return e.type.startsWith(`text/`)||e.type===`application/json`||/\.(txt|md|markdown|csv|tsv|json)$/i.test(e.name)}function R(e,t,n=100){let r=[],i=[];for(let a of e){let e=[...i,a];i.length>0&&(e.length>n||!F(e,t).ok)?(r.push(i),i=[a]):i=e}return i.length>0&&r.push(i),r}function ze(e,t){if(!e||!t)return e??t;let n=(e,t)=>e===void 0&&t===void 0?void 0:(e??0)+(t??0),r=n(e.inputTokens,t.inputTokens),i=n(e.costUsd,t.costUsd);return{...r===void 0?{}:{inputTokens:r},...i===void 0?{}:{costUsd:i},...e.estimated||t.estimated?{estimated:!0}:{}}}function Be(e,t){let n=0,r=0,i=0;for(let a=0;a<Math.min(e.length,t.length);a+=1)n+=e[a]*t[a],r+=e[a]*e[a],i+=t[a]*t[a];return r===0||i===0?0:n/Math.sqrt(r*i)}function Ve(e,t){return t.flatMap((t,n)=>t.length===e.length?[{index:n,score:Be(e,t)}]:[]).sort((e,t)=>t.score-e.score)}var He=200,z=[0,0,0],Ue=3,We=1.4826;function B(e,t,n){let r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function V(e,t,n,r){let i=Array.from(r,(e,n)=>e-t[n]);return[0,1,2].map(t=>e[t]&&n[t]>1e-12?B(e[t],i,i.length)/n[t]:0)}function Ge(e,t,n){return[0,1,2].map(r=>{let i=e[r];if(!i||n.length===0)return 0;let a=n.reduce((e,n)=>{let r=B(i,Array.from(n,(e,n)=>e-t[n]),n.length);return e+r*r},0);return Math.sqrt(a/n.length)})}function Ke(e,t,n){let r=Math.hypot(e[0],e[1],e[2]);if(r<1e-9||t<=0||n<=0)return z;let i=r/(r+t)/n/r;return[e[0]*i,e[1]*i,e[2]*i]}function qe(e,t){let n=new Float64Array(e.length*t);return e.forEach((e,r)=>{n.set(e,r*t)}),n}function*Je(e,t,n){let r=new Float64Array(t*t),i=n-n%4;for(let a=0;a<t;a+=1){let o=a*n;for(let s=a;s<t;s+=1){let c=s*n,l=0,u=0,d=0,f=0;for(let t=0;t<i;t+=4)l+=e[o+t]*e[c+t],u+=e[o+t+1]*e[c+t+1],d+=e[o+t+2]*e[c+t+2],f+=e[o+t+3]*e[c+t+3];for(let t=i;t<n;t+=1)l+=e[o+t]*e[c+t];let p=l+u+d+f;r[a*t+s]=p,r[s*t+a]=p}yield}return r}function Ye(e,t){let n=new Float64Array(t),r=0;for(let i=0;i<t;i+=1){for(let r=0;r<t;r+=1)n[i]+=e[i*t+r];n[i]/=t,r+=n[i]}r/=t;let i=new Float64Array(t*t);for(let a=0;a<t;a+=1)for(let o=0;o<t;o+=1)i[a*t+o]=e[a*t+o]-n[a]-n[o]+r;return i}function Xe(e,t,n){let r=new Float64Array(t),i=0;for(let a=0;a<t;a+=1){let o=0;for(let r=0;r<t;r+=1)o+=e[a*t+r]*n[r];r[a]=o,i+=o*o}if(i=Math.sqrt(i),i<1e-12)return{next:n,length:0,moved:0};let a=0;for(let e=0;e<t;e+=1)r[e]/=i,a=Math.max(a,Math.abs(r[e]-n[e]));return{next:r,length:i,moved:a}}function Ze(e){let t=0;for(let n=1;n<e.length;n+=1)Math.abs(e[n])>Math.abs(e[t])&&(t=n);return e[t]<0?e.map(e=>-e):e}function*Qe(e,t,n){let r=Float64Array.from({length:t},(e,t)=>1+(t*7919+n*104729)%97/97),i=0;for(let n=0;n<He;n+=1){let n=Xe(e,t,r);if(n.length===0||(i=n.length,r=n.next,n.moved<1e-12))break;yield}return{vector:Ze(r),value:i}}function*$e(e,t,n){let r=Float64Array.from(e),i=[],a=Math.max(...Array.from({length:t},(e,n)=>Math.abs(r[n*t+n])),0);for(let e=0;e<Math.min(n,t);e+=1){let{vector:n,value:o}=yield*Qe(r,t,e);if(o<=a*1e-9)break;i.push({vector:n,value:o});for(let e=0;e<t;e+=1)for(let i=0;i<t;i+=1)r[e*t+i]-=o*n[e]*n[i]}return i}function et(e,t,n){let r=new Float64Array(n);for(let i=0;i<t;i+=1)for(let t=0;t<n;t+=1)r[t]+=e[i*n+t];for(let e=0;e<n;e+=1)r[e]/=Math.max(t,1);return r}function tt(e,t,n){let r=t.length,i=new Float64Array(r);for(let a=0;a<n.length;a+=1)for(let o=0;o<r;o+=1)i[o]+=n[a]*(e[a*r+o]-t[o]);let a=0;for(let e=0;e<r;e+=1)a+=i[e]*i[e];if(a=Math.sqrt(a),a>0)for(let e=0;e<r;e+=1)i[e]/=a;return i}function nt(e,t){let n=Array.from({length:t},(n,r)=>Math.sqrt(Math.max(e[r*t+r],0))),r=new Float64Array(t*t);for(let i=0;i<t;i+=1)for(let a=0;a<t;a+=1)r[i*t+a]=n[i]===0||n[a]===0?0:e[i*t+a]/(n[i]*n[a]);return r}function H(e){e.sort();let t=e.length>>1;return e.length%2?e[t]:(e[t-1]+e[t])/2}function U(e){let t=Float64Array.from(e);if(t.length===0)return 1/0;let n=H(t.slice()),r=We*H(t.map(e=>Math.abs(e-n)));return r>0?n+Ue*r:1/0}function rt(e,t){let n=new Float64Array(t*(t-1)/2),r=0;for(let i=0;i<t;i+=1)for(let a=i+1;a<t;a+=1)n[r++]=e[i*t+a];return n}function*it(e,t,n){let r=[];for(let i=0;i<t;i+=1){for(let a=i+1;a<t;a+=1)e[i*t+a]>n&&r.push({a:i,b:a,similarity:e[i*t+a]});yield}return r}function at(e,t,n){let r=-1;for(let i=0;i<t;i+=1)i!==n&&(r<0||e[n*t+i]>e[n*t+r])&&(r=i);return r}function*ot(e,t,n){let r=new Set,i=[];for(let a=0;a<t;a+=1){let o=at(e,t,a),[s,c]=a<o?[a,o]:[o,a];o>=0&&e[a*t+o]>n&&!r.has(s*t+c)&&(r.add(s*t+c),i.push({a:s,b:c,similarity:e[a*t+o]})),yield}return i.sort((e,t)=>e.a-t.a||e.b-t.b)}function st(e,t){let n=Array.from({length:e},(e,t)=>t),r=e=>{for(;n[e]!==e;)n[e]=n[n[e]],e=n[e];return e};for(let e of t)n[r(e.a)]=r(e.b);let i=new Map;for(let t=0;t<e;t+=1){let e=r(t),n=i.get(e);n?n.push(t):i.set(e,[t])}return[...i.values()]}function ct(e,t,n){let r=Array(n).fill(0);for(let i of t)for(let t=0;t<n;t+=1)r[t]+=e[i*n+t];return r.map(e=>e/Math.max(t.length,1))}function W(e){return(Math.atan2(e[1],e[0])/(2*Math.PI)+1)%1}function*lt(e){let t=e[0]?.length??0,n=e.flatMap((e,n)=>e.length===t?[n]:[]),r=n.length,i=qe(n.map(t=>e[t]),t),a=et(i,r,t),o=yield*Je(i,r,t),s=(yield*$e(Ye(o,r),r,3)).map(({vector:e})=>tt(i,a,e)),c=n.map(t=>e[t]),l=Ge(s,a,c),u=c.map(e=>V(s,a,l,e)),d=Float64Array.from(u,e=>Math.hypot(e[0],e[1],e[2])),f=r>0?H(d.slice()):0,p=f>1e-9?f:d.reduce((e,t)=>Math.max(e,t),0),m={mean:a,axes:s,spreads:l,scale:p,reach:d.reduce((e,t)=>Math.max(e,p>0?t/(t+p):0),0)},h=nt(o,r),g=U(rt(h,r)),_=st(r,yield*it(h,r,g)),v=yield*ot(h,r,g),y=_.map(e=>({members:e.map(e=>n[e]),tone:W(G(m,ct(i,e,t)))}));for(let[n,r]of e.entries())r.length!==t&&y.push({members:[n],tone:W(z)});let b=new Map(y.flatMap((e,t)=>e.members.map(e=>[e,t])));return{documents:e.map((e,n)=>({index:n,position:e.length===t?G(m,e):z,cluster:b.get(n)??0})),clusters:y,links:v.map(e=>({...e,a:n[e.a],b:n[e.b]})),threshold:g,basis:m,dimensions:t}}var ut=8;async function dt(e,t){let n=lt(e);for(;;){let e=performance.now()+ut;for(;;){let t=n.next();if(t.done)return t.value;if(performance.now()>=e)break}await new Promise(e=>setTimeout(e,0)),t?.throwIfAborted()}}function ft(e,t){return t.length!==e.dimensions||e.dimensions===0?null:G(e.basis,t)}function G(e,t){return Ke(V(e.axes,e.mean,e.spreads,t),e.scale,e.reach)}var K=(e,t)=>({from:e,input:{parts:[{type:`media`,mimeType:`image/png`,data:t}]}}),pt=[...[`Refunds are available within 14 days of a charge, in full and to the original card.`,`After 14 days a refund is made as credit toward the next invoice, not as money back.`,`Refunds take five to ten working days to reach your bank, depending on the card issuer.`].map(e=>({input:e,from:`refund-policy.md`})),K(`empty-trash-dialog.png`,`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`),K(`desktop-stacks.png`,`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`),K(`lisbon-tram-28.png`,`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`)],q=e(i(),1);async function mt(e,t,n,r,i){let a=R(n,r),o=[],s=``,c;i({done:0,total:a.length});for(let[n,r]of a.entries()){let l=await e.embed(r,{task:`document`},t);for(let t of l.traces??[])e.traces?.push(t);o.push(...l.result.embeddings.map(e=>e.values)),s=l.result.model,c=ze(c,l.result.usage),i({done:n+1,total:a.length})}return{result:{inputs:n,vectors:o,model:s,...c?{usage:c}:{},requests:a.length}}}function ht(e){let[t,n]=(0,q.useState)(null),{call:r,...i}=Te(e,`indexing`,mt);return{...i,progress:i.status===`indexing`?t:null,index:(e,t)=>r(e,t,n)}}var gt=(e,t,n,r)=>e.embed(n,r,t);function _t(e){let{iface:t,describeFailure:n}=m(e),{call:r,...i}=Te(e,`embedding`,gt);return{iface:t,describeFailure:n,...i,embed:r}}var J=t(),vt={span:{k7Eaqz:`xeuugli`,k1xSpc:`xrvj5dj`,kZKoxP:`x5yr21d`,$$css:!0}};function Y({columns:e,rows:t,xstyle:i,className:a,style:o,children:s,ref:c,...l}){let u={...e!=null&&{gridColumn:e===`full`?`1 / -1`:`span ${e}`},...t!=null&&{gridRow:`span ${t}`}};return(0,J.jsx)(`div`,{ref:c,...g(r(`grid-span`),n(vt.span,i),a,{...o,...u}),...l,children:s})}Y.displayName=`GridSpan`;var yt=[{value:`whole`,icon:(0,J.jsx)(le,{size:16})},{value:`paragraphs`,icon:(0,J.jsx)(je,{size:16})},{value:`lines`,icon:(0,J.jsx)(ke,{size:16})},{value:`commas`,icon:(0,J.jsx)(Ae,{size:16})},{value:`custom`,icon:(0,J.jsx)(Me,{size:16})}],bt={invalid_json:`@theorem.embedding.empty`,no_inputs:`@theorem.embedding.empty`,empty_input:`@theorem.embedding.empty`,text_off:`@theorem.embedding.text_off`};function xt(e,t,n){return t.ok?null:t.reason===`attachments`?`${n}: ${t.issues.map(e=>ue(e)).join(` `)}`:t.reason===`too_many_inputs`?e(`@theorem.embedding.too_many`,{max:t.max}):e(bt[t.reason],{name:n})}function St(e,t,n=[]){let r=S(),[i,a]=(0,q.useState)(e),[o,s]=(0,q.useState)(`paragraphs`),[c,l]=(0,q.useState)(``),[u,d]=(0,q.useState)(()=>[...n]),[f,p]=(0,q.useState)(`fields`),[m,h]=(0,q.useState)(null),g=o===`custom`?{separator:c}:o,_=(0,q.useMemo)(()=>[...I(i,o===`custom`?{separator:c}:o).map(e=>({input:e})),...u],[i,o,c,u]),v=(0,q.useMemo)(()=>_.map(e=>e.input),[_]),y=(0,q.useMemo)(()=>f===`json`?m??JSON.stringify(v,null,2):``,[f,m,v]),b=m!==null&&N(m)===void 0;return{text:i,setText:a,choice:o,setChoice:s,separator:c,setSeparator:l,documents:_,inputs:v,issue:(0,q.useMemo)(()=>{for(let[e,n]of v.entries()){let i=xt(r,F([n],t),r(`@theorem.embedding.document`,{number:e+1}));if(i)return i}return null},[v,t,r]),requests:(0,q.useMemo)(()=>R(v,t).length,[v,t]),view:f,setView:e=>{h(null),p(e)},json:y,jsonInvalid:b,setJson:e=>{h(e);let t=N(e);t!==void 0&&(a(``),d(t.map(e=>({input:e}))))},addFiles:async e=>{let t=e.filter(L),n=e.filter(e=>!L(e)),r=await Promise.all(t.map(async e=>I(await e.text(),g).map(t=>({input:t,from:e.name})))),i=await O(n);d(e=>[...e,...r.flat(),...i.map(({name:e,mimeType:t,data:n})=>({input:{parts:[{type:`media`,mimeType:t,data:n}]},from:e}))])},remove:e=>{let t=_.length-u.length;d(n=>n.filter((n,r)=>!e.includes(r+t)))},fromText:_.length-u.length}}function X(e){return typeof e==`string`?void 0:e.parts.find(e=>e.type!==`text`)}function Ct(e){return typeof e==`string`?e:e.parts.flatMap(e=>e.type===`text`?[e.text]:[]).join(` `)}function wt(e,t,n,r){let i=X(n.input),a=Ct(n.input);if(!i)return{label:a,detail:null};let o=i.type===`media`?t(T(i.data)):e(`@theorem.embedding.held_file`);return{label:a||(n.from??e(`@theorem.embedding.document`,{number:r})),detail:`${i.mimeType} · ${o}`}}function Tt({label:e,placeholder:t,accept:n,isMultiple:r=!1,onFiles:i}){let a=S(),[o,s]=(0,q.useState)(null);return(0,J.jsx)(De,{label:e,isLabelHidden:!0,mode:`dropzone`,isMultiple:r,accept:n.join(`,`),value:null,placeholder:t,status:o?{type:`error`,message:o}:void 0,onChange:e=>{let t=e===null?[]:Array.isArray(e)?e:[e];t.length!==0&&(s(null),i(t).catch(()=>{s(a(`@theorem.embedding.unreadable`,{name:t.map(e=>e.name).join(`, `)}))}))}})}function Et({form:e}){let t=S();return(0,J.jsxs)(c,{gap:2,vAlign:`center`,wrap:`wrap`,children:[(0,J.jsx)(x,{type:`supporting`,color:`secondary`,children:t(`@theorem.embedding.split`)}),(0,J.jsx)(a,{label:t(`@theorem.embedding.split`),size:`sm`,value:e.choice,onChange:t=>{e.setChoice(t)},children:yt.map(({value:e,icon:n})=>{let r=t(`@theorem.embedding.split_${e}`);return(0,J.jsx)(ne,{content:r,children:(0,J.jsx)(o,{value:e,label:r,icon:n,isLabelHidden:!0})},e)})}),e.choice===`custom`?(0,J.jsx)(l,{size:`fill`,children:(0,J.jsx)(re,{label:t(`@theorem.embedding.separator`),isLabelHidden:!0,placeholder:t(`@theorem.embedding.separator`),size:`sm`,value:e.separator,onChange:e.setSeparator})}):null]})}var Z=3;function Dt(e,t){let n=new Map;for(let[r,i]of e.documents.entries()){if(X(i.input)||r<e.fromText)continue;let a=i.from?t(`@theorem.embedding.from_file`,{name:i.from}):t(`@theorem.embedding.from_json`),o=n.get(a)??{source:a,at:[]};o.at.push(r),n.set(a,o)}return[...n.values()]}function Ot({group:e,form:t}){let n=S();return(0,J.jsxs)(s,{gap:1,children:[(0,J.jsxs)(c,{gap:1,vAlign:`center`,children:[(0,J.jsx)(l,{size:`fill`,children:(0,J.jsx)(x,{type:`supporting`,color:`secondary`,children:n(`@theorem.embedding.group`,{source:e.source,count:e.at.length})})}),(0,J.jsx)(b,{label:n(`@theorem.embedding.remove`,{name:e.source}),size:`sm`,variant:`ghost`,icon:(0,J.jsx)(_,{size:14}),onClick:()=>{t.remove(e.at)}})]}),e.at.slice(0,Z).map(e=>(0,J.jsx)(x,{maxLines:2,children:Ct(t.documents[e]?.input??``)},String(e))),e.at.length>Z?(0,J.jsx)(x,{type:`supporting`,color:`secondary`,children:n(`@theorem.embedding.more`,{count:e.at.length-Z})}):null]})}function kt({part:e,name:t,label:n,onRemove:r}){let i=e.type===`media`&&e.mimeType.startsWith(`image/`);return(0,J.jsxs)(s,{gap:1,hAlign:`center`,style:{width:At,flexShrink:0},children:[(0,J.jsx)(h,{...i&&e.type===`media`?{src:`data:${e.mimeType};base64,${e.data}`}:{},alt:``,label:n,onRemove:r}),(0,J.jsx)(x,{type:`supporting`,color:`secondary`,maxLines:1,style:{width:`100%`,textAlign:`center`},children:t??e.mimeType})]})}var At=72,jt=new WeakMap,Mt=0;function Nt(e){let t=jt.get(e);return t===void 0&&(t=Mt,Mt+=1,jt.set(e,t)),String(t)}function Pt({form:e}){let t=S(),n=j(),r=e.documents.flatMap((e,t)=>{let n=X(e.input);return n?[{document:e,part:n,at:t}]:[]});return r.length===0?null:(0,J.jsx)(c,{gap:2,wrap:`nowrap`,style:{overflowX:`auto`},children:r.map(({document:r,part:i,at:a})=>{let{label:o,detail:s}=wt(t,n,r,a+1);return(0,J.jsx)(kt,{name:r.from,part:i,label:[o,s].filter(Boolean).join(` · `),onRemove:()=>{e.remove([a])}},Nt(r))})})}function Ft({form:e}){let t=Dt(e,S());return t.length===0&&e.documents.length===0?null:(0,J.jsxs)(s,{gap:3,children:[t.map(t=>(0,J.jsx)(Ot,{group:t,form:e},t.source)),(0,J.jsx)(Pt,{form:e})]})}function It({text:e,file:t}){return!e||!t?(0,J.jsx)(J.Fragment,{children:e??t}):(0,J.jsxs)(Oe,{columns:3,gap:3,children:[(0,J.jsx)(Y,{columns:2,children:e}),(0,J.jsx)(Y,{columns:1,children:t})]})}function Lt(e){let t=e.text?[`text/*`,`.md`,`.csv`,`.json`]:[];return[...e.attachments?.accept??[],...t]}function Rt({form:e}){let t=S();return(0,J.jsxs)(s,{gap:3,children:[(0,J.jsx)(Ee,{label:t(`@theorem.embedding.text`),isLabelHidden:!0,value:e.text,placeholder:t(`@theorem.embedding.text_placeholder`),rows:M(e.text,4,12),onChange:e.setText}),(0,J.jsx)(Et,{form:e})]})}function zt({form:e,rules:t}){let n=S(),r=Lt(t),i=r.length>0?(0,J.jsx)(Tt,{label:n(`@theorem.embedding.files`),placeholder:n(`@theorem.embedding.drop_files`),accept:r,isMultiple:!0,onFiles:e.addFiles}):null;return(0,J.jsxs)(s,{gap:3,children:[(0,J.jsx)(It,{text:t.text?(0,J.jsx)(Rt,{form:e}):null,file:i}),(0,J.jsx)(Ft,{form:e})]})}function Bt(e,t){return t.jsonInvalid?e(`@theorem.embedding.invalid_json`):t.inputs.length===0?e(`@theorem.embedding.no_documents`):t.issue??e(`@theorem.embedding.ready`,{count:t.inputs.length,requests:t.requests})}function Vt({form:e,rules:t,isRunning:n,onRun:r,onStop:i}){let a=S(),o=!e.jsonInvalid&&e.inputs.length>0&&e.issue===null;return(0,J.jsxs)(A,{title:a(`@theorem.embedding.documents`),view:e.view,hasFields:!0,onView:e.setView,onRun:r,children:[e.view===`fields`?(0,J.jsx)(zt,{form:e,rules:t}):(0,J.jsx)(me,{label:a(`@theorem.embedding.documents`),text:e.json,isInvalid:e.jsonInvalid,onChange:e.setJson}),(0,J.jsx)(ve,{note:Bt(a,e),isReady:o,isRunning:n,runLabel:a(`@theorem.embedding.index`),runningLabel:a(`@theorem.embedding.indexing`),stopLabel:a(`@theorem.embedding.stop`),onRun:r,onStop:i})]})}function Ht(e,t){let n=S(),[r,i]=(0,q.useState)(()=>JSON.stringify(e)),a=Fe(r),o=a===void 0?null:Ie(a),[s,c]=(0,q.useState)(`fields`);return{json:r,setJson:i,input:a,fields:o,issue:a===void 0?n(`@theorem.embedding.query_invalid_json`):xt(n,F([a],t),n(`@theorem.embedding.query`)),shown:o===null?`json`:s,setView:c,setFields:e=>{i(JSON.stringify(Le(e),null,2))}}}function Ut({fields:e,accept:t,onChange:n}){let r=S(),i=j(),a=e.media[0];if(a){let t=a.type===`media`?i(T(a.data)):r(`@theorem.embedding.held_file`);return(0,J.jsx)(kt,{part:a,label:[a.mimeType,t].join(` · `),onRemove:()=>{n({...e,media:[]})}})}return t?(0,J.jsx)(Tt,{label:r(`@theorem.embedding.query_file`),placeholder:r(`@theorem.embedding.query_file`),accept:t,onFiles:async t=>{let r=await O(t);n({...e,media:r.map(({mimeType:e,data:t})=>({type:`media`,mimeType:e,data:t}))})}}):null}function Wt({fields:e,rules:t,onChange:n}){let r=S(),i=t.attachments?.accept,a=t.text?(0,J.jsx)(Ee,{label:r(`@theorem.embedding.query`),isLabelHidden:!0,value:e.text,placeholder:r(`@theorem.embedding.query_placeholder`),rows:M(e.text,2,6),onChange:t=>{n({...e,text:t})}}):null,o=e.media.length>0||i!==void 0?(0,J.jsx)(Ut,{fields:e,accept:i,onChange:n}):null;return(0,J.jsx)(It,{text:a,file:o})}function Gt(e,t,n,r){return r?t.issue?t.issue:n===`stale`?e(`@theorem.embedding.stale`):n===`model`?e(`@theorem.embedding.remodelled`):null:null}function Kt({form:e,rules:t,index:n,isRunning:r,onRun:i,onStop:a}){let o=S(),{input:s}=e,c=e.issue===null&&n===`fresh`&&s!==void 0,[l,u]=(0,q.useState)(!1),d=()=>{u(!0),c&&i(s)};return(0,J.jsxs)(A,{title:o(`@theorem.embedding.query`),view:e.shown,hasFields:e.fields!==null,onView:e.setView,onRun:d,children:[e.shown===`fields`&&e.fields!==null?(0,J.jsx)(Wt,{fields:e.fields,rules:t,onChange:e.setFields}):(0,J.jsx)(me,{label:o(`@theorem.embedding.query`),text:e.json,isInvalid:s===void 0,onChange:e.setJson}),(0,J.jsx)(ve,{note:Gt(o,e,n,l),isReady:c||!l,isRunning:r,runLabel:o(`@theorem.embedding.search`),runningLabel:o(`@theorem.embedding.searching`),stopLabel:o(`@theorem.embedding.stop`),onRun:d,onStop:a})]})}var qt=(0,q.lazy)(()=>ee(()=>import(`./embedding-space-view-judaIj9T.js`).then(e=>({default:e.EmbeddingSpaceView})),__vite__mapDeps([0,1,2,3,4,5,6]))),Jt=10,Yt=460,Q=4,Xt={listStyle:`none`,margin:0,padding:0,display:`flex`,flexDirection:`column`,gap:12},Zt=`var(--color-background-muted)`;function $({failure:e}){return e?(0,J.jsx)(w,{status:`error`,role:`alert`,title:e.error}):null}function Qt(e,t){let n=S(),r=j();return i=>wt(n,r,t[i]??{input:e[i]},i+1).label}function $t({matches:e,index:t,documents:n,pointing:r}){let i=S(),a=Se(),o=Qt(t.inputs,n),u=e[0];if(!u)return(0,J.jsx)(w,{status:`warning`,title:i(`@theorem.embedding.no_matches`)});let d=e.slice(0,Jt);return(0,J.jsx)(xe,{title:i(`@theorem.embedding.matches`),value:a.decimal.format(u.score),note:e.length>d.length?i(`@theorem.embedding.matches_shown`,{shown:d.length,count:e.length}):i(`@theorem.embedding.best`,{name:o(u.index)}),children:(0,J.jsx)(`ul`,{style:Xt,children:d.map((e,t)=>{let n=o(e.index),i=a.decimal.format(e.score);return(0,J.jsx)(`li`,{"aria-label":`${n}: ${i}`,onPointerEnter:()=>r.onHover(e.index),onPointerLeave:()=>r.onHover(null),style:{borderRadius:`var(--radius-container)`,margin:`-4px -8px`,padding:`4px 8px`,background:r.hovered===e.index?Zt:void 0},children:(0,J.jsxs)(s,{gap:1,children:[(0,J.jsxs)(c,{gap:3,vAlign:`start`,"aria-hidden":!0,children:[(0,J.jsx)(l,{size:`fill`,children:(0,J.jsx)(x,{type:`supporting`,maxLines:2,children:n})}),(0,J.jsx)(x,{type:`supporting`,color:`secondary`,hasTabularNumbers:!0,children:i})]}),(0,J.jsx)(we,{value:Math.max(e.score,0),isLead:t===0})]})},e.index)})})})}function en({text:e,label:t,isIcon:n}){let r=S()(`@theorem.embedding.copied`),{copy:i,isCopied:a}=pe({announce:r}),o=a?r:t;return n?(0,J.jsx)(b,{label:o,tooltip:o,size:`sm`,variant:`ghost`,icon:(0,J.jsx)(v,{icon:a?oe:ae,size:`xsm`,color:`secondary`}),onClick:()=>void i(e)}):(0,J.jsx)(y,{label:o,size:`sm`,variant:`ghost`,onClick:()=>void i(e)})}function tn({vectors:e,name:t,pointing:n}){let r=S(),i=(0,q.useMemo)(()=>JSON.stringify(e),[e]);return(0,J.jsxs)(s,{gap:2,children:[(0,J.jsxs)(c,{gap:2,vAlign:`center`,children:[(0,J.jsx)(l,{size:`fill`,children:(0,J.jsx)(x,{type:`supporting`,color:`secondary`,children:r(`@theorem.embedding.width`,{dimensions:e[0]?.length??0})})}),(0,J.jsx)(en,{text:i,label:r(`@theorem.embedding.copy_vectors`)})]}),(0,J.jsx)(`ul`,{style:{...Xt,gap:0,maxHeight:Yt,overflowY:`auto`},children:se(e,e=>e.slice(0,8).join()).map(({item:e,index:i,key:a})=>(0,J.jsx)(`li`,{onPointerEnter:()=>n.onHover(i),onPointerLeave:()=>n.onHover(null),style:{borderRadius:`var(--radius-container)`,padding:`4px 8px`,background:n.hovered===i?Zt:void 0},children:(0,J.jsxs)(c,{gap:2,vAlign:`center`,children:[(0,J.jsx)(l,{size:`fill`,children:(0,J.jsxs)(s,{gap:0,children:[(0,J.jsx)(x,{type:`supporting`,maxLines:1,children:t(i)}),(0,J.jsx)(x,{type:`supporting`,color:`secondary`,maxLines:1,hasTabularNumbers:!0,children:`[${e.slice(0,Q).map(e=>e.toFixed(4)).join(`, `)}${e.length>Q?`, …`:``}]`})]})}),(0,J.jsx)(en,{text:JSON.stringify(e),label:r(`@theorem.embedding.copy_vector`),isIcon:!0})]})},a))})]})}function nn(e){let[t,n]=(0,q.useState)(null);return(0,q.useEffect)(()=>{let t=new AbortController;return dt(e,t.signal).then(t=>n({of:e,space:t}),()=>{}),()=>t.abort()},[e]),t?.of===e?t.space:null}function rn(e){let t=U(e.map(e=>e.score));return e.slice(0,Jt).filter(e=>e.score>t).map(e=>({index:e.index,closeness:t<1?Math.min((e.score-t)/(1-t),1):1}))}var an={width:`100%`,aspectRatio:`1 / 1`,maxHeight:Yt};function on({space:e,query:t,matches:n,name:r,pointing:i,onUnavailable:a}){let o=S(),s=(0,q.useMemo)(()=>e&&t?ft(e,t):null,[e,t]),c=(0,q.useMemo)(()=>s?rn(n):[],[s,n]);if(!e)return(0,J.jsx)(`div`,{style:an});let l=o(`@theorem.embedding.space_label`,{count:e.documents.length});return(0,J.jsx)(q.Suspense,{fallback:(0,J.jsx)(`div`,{style:an}),children:(0,J.jsx)(qt,{space:e,query:s,matches:c,hovered:i.hovered,onHover:i.onHover,nameOf:r,label:s?`${l} ${o(`@theorem.embedding.space_query`)}`:l,onUnavailable:a})})}function sn({view:e,onChange:t}){let n=S();return(0,J.jsxs)(a,{label:n(`@theorem.embedding.view`),size:`sm`,value:e,onChange:e=>t(e===`list`?`list`:`space`),children:[(0,J.jsx)(o,{value:`space`,label:n(`@theorem.embedding.space`)}),(0,J.jsx)(o,{value:`list`,label:n(`@theorem.embedding.list`)})]})}function cn({vectors:e,name:t,pointing:n,isDrawable:r}){let i=S();return(0,J.jsxs)(s,{gap:2,children:[r?null:(0,J.jsx)(x,{type:`supporting`,color:`secondary`,children:i(`@theorem.embedding.space_off`)}),(0,J.jsx)(tn,{vectors:e,name:t,pointing:n})]})}function ln({run:e,result:t,documents:n,query:r,matches:i,pointing:a}){let o=S(),[c,l]=(0,q.useState)(`space`),[u,d]=(0,q.useState)(!0),f=nn(t.vectors),p=Qt(t.inputs,n);return(0,J.jsxs)(s,{gap:4,children:[(0,J.jsx)($,{failure:e.failure}),(0,J.jsx)(Ce,{model:t.model,usage:t.usage,elapsedMs:e.elapsedMs,tokens:e=>o(`@theorem.embedding.tokens`,{count:e}),children:(0,J.jsx)(be,{title:o(`@theorem.embedding.index`),value:o(`@theorem.embedding.indexed`,{count:t.vectors.length}),aside:u?(0,J.jsx)(sn,{view:c,onChange:l}):null,children:u&&c===`space`?(0,J.jsx)(on,{space:f,query:r,matches:i,name:p,pointing:a,onUnavailable:()=>d(!1)}):(0,J.jsx)(cn,{vectors:t.vectors,name:p,pointing:a,isDrawable:u})})})]})}function un(e){let{result:t,failure:n}=e.run;return t?(0,J.jsx)(ln,{...e,result:t}):(0,J.jsx)($,{failure:n})}function dn({index:e,search:t,documents:n,matches:r,pointing:i}){let a=S(),o=t.result?.embeddings[0]?.values;return(0,J.jsxs)(s,{gap:4,children:[(0,J.jsx)($,{failure:t.failure}),o&&e.result?(0,J.jsx)(Ce,{model:t.result?.model??``,usage:t.result?.usage,elapsedMs:t.elapsedMs,isStale:t.status===`embedding`,tokens:e=>a(`@theorem.embedding.tokens`,{count:e}),children:(0,J.jsx)(ce,{children:(0,J.jsx)($t,{matches:r,index:e.result,documents:n,pointing:i})})}):null]})}function fn(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function pn(e,t,n){return e?t&&t.model!==e.model?`model`:fn(e.inputs,n)?`fresh`:`stale`:`fresh`}function mn(e){return e.status===`indexing`?`indexing`:e.result!==null||e.failure!==null?`indexed`:`idle`}function hn(e,t,n,r){return n===`idle`?null:e?(0,J.jsx)(ge,{label:t,fill:n===`indexing`,children:r}):r}function gn({index:e}){let t=S(),{progress:n}=e;return(0,J.jsx)(k,{label:n?t(`@theorem.embedding.indexing_progress`,{done:Math.min(n.done+1,n.total),total:n.total}):t(`@theorem.embedding.indexing`),since:e.startedAt})}function _n(e,t,n){let r=pn(e.result,t.result,n);return r===`model`?{state:r,searched:!1,queried:null}:{state:r,searched:t.status!==`idle`||t.result!==null,queried:t.result?.embeddings[0]?.values??null}}function vn({iface:e,index:t,search:n,query:r,indexed:i,state:a,searched:o,matches:c,pointing:l}){return(0,J.jsxs)(_e,{children:[(0,J.jsx)(Kt,{form:r,rules:e.inputs,index:a,isRunning:n.status===`embedding`,onRun:e=>{n.embed([e],{task:`query`})},onStop:n.cancel}),o?(0,J.jsx)(s,{padding:4,children:(0,J.jsx)(dn,{index:t,search:n,documents:i,matches:c,pointing:l})}):null]})}function yn({inputs:e,...t}){let{index:n,indexed:r}=t,{state:i,searched:a,queried:o}=_n(n,t.search,e),c=n.result?.vectors,l=(0,q.useMemo)(()=>o&&c?Ve(o,c):[],[o,c]),[u,d]=(0,q.useState)(null),f=(0,q.useMemo)(()=>({hovered:u,onHover:d}),[u]);return(0,J.jsxs)(s,{gap:3,children:[(0,J.jsx)(un,{run:n,documents:r,query:o,matches:l,pointing:f}),n.result?(0,J.jsx)(vn,{...t,state:i,searched:a,matches:l,pointing:f}):null]})}function bn({transport:e,iface:t,search:n,defaultText:r=``,defaultDocuments:i,defaultQuery:a=``,maxWidth:o=`960px`,trace:s,flush:c,columns:l=!1,className:u,style:d}){let f=S(),p=St(r,t.inputs,i),m=Ht(a,t.inputs),h=ht(e),[g,_]=(0,q.useState)([]),v=ie(t,e.traces,s),y=()=>{p.jsonInvalid||p.issue||p.inputs.length===0||(_(p.documents),h.index(p.inputs,t.inputs))},b=mn(h);return(0,J.jsxs)(he,{inspector:v,maxWidth:o,flush:c,columns:l,requestLabel:f(`@theorem.embedding.documents`),className:u,style:d,children:[(0,J.jsx)(Vt,{form:p,rules:t.inputs,isRunning:b===`indexing`,onRun:y,onStop:h.cancel}),hn(l,f(`@theorem.embedding.results`),b,b===`indexing`?(0,J.jsx)(gn,{index:h}):(0,J.jsx)(yn,{iface:t,index:h,search:n,query:m,indexed:g,inputs:p.inputs}))]})}function xn(e){let t=S(),n=_t(e.transport);return n.describeFailure?(0,J.jsx)(fe,{title:n.describeFailure.error}):n.iface?(0,J.jsx)(bn,{...e,iface:n.iface,search:n}):(0,J.jsx)(k,{label:t(`@theorem.chat.loading`)})}function Sn({endpoint:e,http:t,transport:n,theme:r,mode:i,labels:a,...o}){let s=(0,q.useRef)(t);s.current=t;let c=(0,q.useMemo)(()=>n??u({...s.current,endpoint:e}),[n,e]);return(0,J.jsx)(f,{theme:r,mode:i,children:(0,J.jsx)(te,{labels:a,children:(0,J.jsx)(xn,{...o,transport:c})})})}function Cn(e,t){return e.some(e=>e===t||e.endsWith(`/*`)&&t.startsWith(e.slice(0,-1)))}function wn(e){if(e.type!==`embedding`)return{defaultText:D,defaultQuery:E};let{text:t,attachments:n}=e.inputs,r=pt.filter(({input:e})=>typeof e==`string`?t!==!1:Cn(n?.accept??[],`image/png`));return{defaultText:t===!1?``:D,defaultQuery:t===!1?``:E,defaultDocuments:r}}function Tn(e){let t=ye(e,d,p);return(0,J.jsx)(En,{...e,transport:t})}function En({payload:e,transport:t,trace:n,flush:r,columns:i,className:a}){return(0,J.jsx)(Sn,{transport:t,...wn(e.profile),trace:n,flush:r,columns:i,className:a})}export{En as EmbeddingView,Tn as StudioEmbedding};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ToolResultCharts-CTjAk_F6.js","assets/rolldown-runtime-hePW80VL.js","assets/themeProps-3IqahpCr.js","assets/VStack-CkVMcNiK.js","assets/padding.stylex-B76907Zf.js","assets/mergeProps-ptS-gIMz.js","assets/StackItem-CQviqAfM.js","assets/Text-bum6zWWx.js","assets/sharedResizeObserver-4U9Xq5Oq.js","assets/preload-helper-DpV6A1kQ.js","assets/Card-Lp-0P5eL.js","assets/Icon-JrysT8aU.js","assets/tokens.stylex-DkHf0P9C.js","assets/devWarning-DxuplmRl.js","assets/useMediaQuery-BCT0NUeZ.js","assets/container.stylex-BmOi-8DQ.js","assets/arrive-DvbqpeRS.js","assets/createReactComponent-CZwsv6DD.js","assets/shaped-data-BcarWqd5.js","assets/host-patterns-C9RMP16Q.js","assets/TraceOverview-KSiIocJY.js","assets/CodeBlock-C7XJ4ioE.js","assets/focusOutline.stylex-BT0kfa4t.js","assets/IconButton-DlOGzJIX.js","assets/useTooltip-CJM_xhLB.js","assets/useLayerDismissal-B_G7IWpC.js","assets/useClipboard-BgGRxRMJ.js","assets/labels-provider-4TIWDvsE.js","assets/Tooltip-BH9xiRMl.js","assets/trace-record-C3zNksA_.js","assets/index-DqeZ3mcO.js","assets/SegmentedControlItem-h-aaXzyS.js","assets/groupStyles-C7Ter7zC.js","assets/useDevWarning-Z9SoixOP.js","assets/isRtlElement-BG33-k_H.js","assets/focusableSelector-DXZeMU85.js","assets/browser-transport-MtEE98lA.js","assets/SidePanel-BL32abk8.js","assets/ScrollableArea-Ckugdj1N.js","assets/useScrollableArea-0NzdiBCq.js","assets/IconAlertTriangle-BqAEqqdU.js","assets/Banner-BEl_rG5o.js","assets/Center-nHS1JSux.js","assets/IconSearch-BTx66a40.js","assets/schemas-BQ9Jydzb.js","assets/tool-schema-BrqSc6vO.js","assets/reader-B0gVhfoZ.js","assets/live-ingress-lDUGPwth.js","assets/trace-schema-9CdEyG6Q.js","assets/stub-DEZDrr-l.js","assets/tree-DeO1319a.js","assets/types-EVrOoUBG.js","assets/useScrollLock-Dyf6PHJt.js","assets/useContainerReveal-BFy8N_QU.js","assets/Dialog-DELWQo-v.js","assets/HoverCard-D1Y1ltWQ.js","assets/CheckboxInput-Cj5pk-KI.js","assets/IconEye-BB5aY-wQ.js","assets/turn-client-DwVPS3TX.js","assets/encode-files-Bc3HJyAh.js","assets/workspace-Ck0o-_fd.js","assets/lent-keys-C32ems-I.js","assets/editors-BJX_S59A.js","assets/EmptyState-C8W4JKBZ.js","assets/PaneState-BvA2tLQg.js","assets/PaneState-eUzUkNE8.css","assets/CollapsibleGroup-N7_SOjbm.js","assets/useAdaptivePresentation-BzmPCddb.js","assets/Section-DJ97F7QE.js","assets/ContextMenu-DC-bBIii.js","assets/BottomSheet-BwfBDtje.js","assets/index-DOaHlqBo.css","assets/trace-patterns-DnYJa0nI.js","assets/CardWall-CBRLdDZW.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e,r as t}from"./rolldown-runtime-hePW80VL.js";import{c as n,l as r,n as i,u as a}from"./themeProps-3IqahpCr.js";import{n as o,t as s}from"./SegmentedControlItem-h-aaXzyS.js";import{t as c}from"./VStack-CkVMcNiK.js";import{n as l,t as u}from"./StackItem-CQviqAfM.js";import{t as d}from"./DateInput-BGrQ5tPC.js";import{A as f,M as p,c as m,d as h,h as ee,i as te,l as ne,o as re,s as ie}from"./browser-transport-MtEE98lA.js";import{t as ae}from"./mergeProps-ptS-gIMz.js";import{D as oe,g as se}from"./groupStyles-C7Ter7zC.js";import{t as g}from"./Text-bum6zWWx.js";import{t as ce}from"./preload-helper-DpV6A1kQ.js";import{i as le,l as ue,n as _,t as de}from"./labels-provider-4TIWDvsE.js";import{n as v}from"./Card-Lp-0P5eL.js";import{t as fe}from"./Tooltip-BH9xiRMl.js";import{n as pe}from"./ScrollableArea-Ckugdj1N.js";import{a as me,t as he}from"./Banner-BEl_rG5o.js";import{a as ge,i as _e,n as ve,t as y}from"./arrive-DvbqpeRS.js";import{c as ye,d as be,f as xe,l as Se,u as Ce}from"./tool-schema-BrqSc6vO.js";import{_ as we,a as b,b as Te,c as x,d as Ee,g as De,l as S,m as C,n as w,o as Oe,r as ke,t as Ae,v as T,y as E}from"./shaped-data-BcarWqd5.js";import{i as je,u as Me,x as Ne}from"./turn-client-DwVPS3TX.js";import{t as Pe}from"./EmptyState-C8W4JKBZ.js";import{i as Fe,n as D,t as Ie}from"./PaneState-BvA2tLQg.js";import{r as O,s as Le}from"./CollapsibleGroup-N7_SOjbm.js";import{i as Re,r as ze}from"./ContextMenu-DC-bBIii.js";import{a as Be,d as Ve,f as He,i as Ue,l as We,n as Ge,o as Ke,s as qe,t as Je,u as k}from"./studio-console-BERV2KHE.js";import{i as Ye}from"./trace-patterns-DnYJa0nI.js";import{At as Xe,F as Ze,M as Qe,N as $e,O as et,S as tt,X as nt,_ as A,a as rt,b as it,et as at,f as ot,h as st,j as ct,k as lt,nt as ut,p as j,w as dt,wt as ft,x as pt,y as mt}from"./index-DqeZ3mcO.js";var ht=4,gt=3,_t=3,M=8,vt=6,N=3,yt=3,bt=/(^|_)(id|ids|lat|lon|lng|latitude|longitude|offset|interval|index|rank|order)$|Id$|^(generationtime_ms|utc_offset_seconds)$/i,xt=/\.(png|jpe?g|gif|webp|avif|svg)$/i;function St(e){if(/\s/.test(e))return!1;try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&xt.test(t.pathname)}catch{return!1}}function P(e){return!bt.test(e)}function F(e){return/^[A-Z][A-Z0-9]{1,5}$/.test(e)?e:b(e)}function I(e,t){if(!P(e)||t&&e in t&&Ee(t[e])===void 0)return;let{label:n,unit:r}=ke(e,t);return{label:F(e)===e?e:n,unit:r}}function L(e,t){let n=[];for(let[r,i]of C(e)){if(typeof i!=`number`||!Number.isFinite(i))continue;let e=I(r,t);e&&n.push({key:r,value:i,...e})}return n.sort((e,t)=>Number(t.unit!==void 0)-Number(e.unit!==void 0)).slice(0,ht)}function Ct(e){if(!x(e))return[];for(let[t,n]of C(e)){let r=E(n);if(!x(r)||w(r))continue;let i=Object.values(r);if(i.length===0||!i.every(Oe))continue;let a=L(r,T(e,t));if(a.length>0)return a}return L(e,void 0)}function R(e,t){return new Set(e.map(e=>e[t])).size}function z(e,t,n){return[...new Set(e.flatMap(e=>Object.keys(e)))].filter(n=>n!==t&&e.every(e=>typeof e[n]==`number`||e[n]===null)&&R(e,n)>1).flatMap(e=>{let t=I(e,n);return t?[{key:e,...t}]:[]})}function wt(e){let[t]=e;if(t)return Object.keys(t).find(t=>e.every(e=>typeof e[t]==`string`&&Ae.test(e[t])))}function Tt(e){let t=e.map(e=>e.label.split(` `)),[n=[]]=t,r=0;for(;r<n.length&&t.every(e=>e.length>r+1&&e[r]===n[r]);)r++;if(r)return{title:n.slice(0,r).join(` `),series:e.map((e,n)=>{let i=(t[n]??[]).slice(r).join(` `);return{...e,label:i.charAt(0).toUpperCase()+i.slice(1)}})}}function Et(e,t,n,r,i){let a=new Map;for(let e of z(n,r,i)){let t=a.get(e.unit??``)??[];t.push(e),a.set(e.unit??``,t)}return[...a.values()].map(i=>{let a=i.slice(0,_t),o=a.length>1?Tt(a):void 0;return{kind:`time`,key:`${e}:${a.map(e=>e.key).join(`+`)}`,title:a.length===1?a[0]?.label??t:o?.title??(t||a.map(e=>e.label).join(` · `)),x:r,series:o?.series??a,rows:n}})}function Dt(e){let[t]=e,n=t?we(t):void 0;if(!t||!n||!e.every(e=>typeof e[n]==`string`||typeof e[n]==`number`))return;if(R(e,n)===e.length)return n;let r=t=>e.reduce((e,n)=>e+String(n[t]).length,0),[i]=Object.keys(t).filter(t=>e.every(e=>typeof e[t]==`string`)&&R(e,t)===e.length).sort((e,t)=>r(e)-r(t));return i??n}function Ot(e,t,n,r){let i=Dt(n);return i?z(n,i,r).sort((e,t)=>R(n,t.key)-R(n,e.key)).map(r=>({kind:`category`,key:`${e}:${r.key}`,title:t?`${t} · ${r.label}`:r.label,series:r,rows:n.filter(e=>typeof e[r.key]==`number`).map(e=>({label:String(e[i]),value:e[r.key]})).sort((e,t)=>t.value-e.value).slice(0,M)})):[]}function B(e,t,n,r){if(n.length<N)return[];let i=wt(n);return i?Et(e,t,n,i,r):Ot(e,t,n,r)}function V(e,t,n,r,i){if(i>yt)return[];if(Array.isArray(e)){let i=e.map(E);return i.every(x)?B(t,n,i,r):[]}if(!x(e))return[];let a=w(e);if(a)return B(t,n,De(e,a),r);let o=C(e),s=o.filter(([e,t])=>typeof t==`number`&&P(e));if(i>0&&s.length>=N&&s.length===o.length){let e=s.map(([e,t])=>({label:F(e),value:t}));return[{kind:`category`,key:t,title:n,series:{key:`value`,label:n},rows:e.sort((e,t)=>t.value-e.value).slice(0,M)}]}return o.flatMap(([r,a])=>V(E(a),t?`${t}.${r}`:r,i===0?b(r):`${n} › ${b(r)}`,T(e,r),i+1))}function H(e,t,n,r){if(r.size>=vt||n>4)return;let i=E(e);if(typeof i==`string`)St(i)&&!r.has(i)&&r.set(i,{src:i,alt:b(t||`image`)});else if(Array.isArray(i))for(let e of i)H(e,t,n+1,r);else if(x(i))for(let[e,t]of Object.entries(i))H(t,e,n+1,r)}function kt(e){let t=E(e),n=new Map;return H(t,``,0,n),{figures:Ct(t),charts:V(t,``,``,void 0,0).slice(0,gt),images:[...n.values()]}}function At(e){return e.mimeType&&e.data?`data:${e.mimeType};base64,${e.data}`:void 0}function jt(e,t,n){let r=t.flatMap(e=>{let t=At(e);return t?[{type:e.type,src:t,mimeType:e.mimeType}]:[]});return{images:[...r.filter(e=>e.type===`image`).map(({src:e})=>({src:e,alt:n})),...e.images],audio:r.filter(e=>e.type===`audio`).map(({src:e,mimeType:t})=>({src:e,...t?{mimeType:t}:{}}))}}function Mt(e,t){return e.figures.length+e.charts.length+t.images.length+t.audio.length>0}var Nt=864e5,Pt=10;function Ft(e){return e.some(e=>e.includes(`T`))?{tick:Math.abs(Date.parse(e.at(-1)??``)-Date.parse(e[0]??``))<=Nt?{hour:`numeric`}:{month:`short`,day:`numeric`},when:{dateStyle:`medium`,timeStyle:`short`}}:{tick:e.length<=Pt?{weekday:`short`,timeZone:`UTC`}:{month:`short`,day:`numeric`,timeZone:`UTC`},when:{dateStyle:`medium`,timeZone:`UTC`}}}var U=n(),W={base:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kaIpWk:`x16rqkct`,kmuXW:`x2lah0s`,kzqmXN:`x1xc55vz`,kZKoxP:`xdk7pt`,$$css:!0},pulsing:{kKVMdj:`x1mta51n`,k44tkh:`x1c74tu6`,kyAemX:`x4hg4is`,ko0y90:`xa4qsjk`,$$css:!0},reducedMotion:{kjO2d4:`x1aquc0h`,$$css:!0}},It={success:{kWkggS:`xdsz4j9`,kMwMTN:`xri61p4`,$$css:!0},warning:{kWkggS:`x1q8g9m5`,kMwMTN:`xrebv38`,$$css:!0},error:{kWkggS:`x1pjz0fi`,kMwMTN:`x1m024r3`,$$css:!0},accent:{kWkggS:`x1ewilqj`,kMwMTN:`x17wrial`,$$css:!0},neutral:{kWkggS:`x1q5y3ey`,kMwMTN:`xrkvqaz`,$$css:!0}};function G({variant:e,label:t,isPulsing:n=!1,tooltip:a,icon:o,xstyle:s,className:c,style:l,ref:u,...d}){let f=oe(o),p=(0,U.jsx)(`span`,{ref:u,role:`img`,"aria-label":t,...ae(i(`status-dot`,{variant:e}),r(W.base,It[e],n&&W.pulsing,n&&W.reducedMotion,s),c,l),...d,children:f&&(0,U.jsx)(`span`,{"aria-hidden":`true`,className:`x78zum5 x6s0dn4 xl56j7k x14ju556 x1xc55vz xdk7pt`,children:o})});return a?(0,U.jsx)(fe,{content:a,children:p}):p}G.displayName=`StatusDot`;var Lt=new Set([`gate`,`complete`,`error`,`cancel`]);function Rt({call:e,failure:t,isRunning:n}){let r=e?.state?.phase;return r!==void 0&&Lt.has(r)?r:t?`error`:n?`running`:`cancel`}function K({call:e,failure:t}){if(t)return{title:t.error};let n=e?.state;if(n?.phase!==`error`)return null;let{error:r,message:i}=n.failure;return r?r===i?{title:r}:{title:r,description:i}:{title:i}}function zt(e){let t=e.tools.find(t=>t.name===e.picked)??e.tools[0],n=t?e.drafts[t.name]??S(Ce(t.inputSchema)):``,r=e.calls.filter(e=>e.name===t?.name),i=r.find(t=>t.id===e.shownId)??r[0]??null;return{tool:t,text:n,shown:i,earlier:e.calls.filter(e=>e!==i)}}var q=t(a(),1);function Bt(){return typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`call-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function Vt(e,t){let n=[...e.events,t],r=t.type===`tool`&&t.tool.phase===`progress`?t.tool.data:e.progress;return{...e,events:n,call:Ne(n)[0]??null,progress:r}}function Ht(e,t){let n=(0,q.useMemo)(()=>ut(e,t),[e,t]),{iface:r,describeFailure:i}=ie(n),[a,o]=(0,q.useState)([]),s=(0,q.useRef)(new Map),c=(0,q.useRef)([]),l=(0,q.useRef)(a);l.current=a,(0,q.useEffect)(()=>{let e=s.current;return()=>{for(let t of e.values())t.abort()}},[]);let u=(0,q.useCallback)((e,t)=>{o(n=>n.map(n=>n.id===e?t(n):n))},[]),d=(0,q.useCallback)(async(e,t)=>{let n=new AbortController;s.current.set(e,n);let r=performance.now();u(e,e=>({...e,isRunning:!0,failure:null}));try{await t(t=>{t.type!==`unsupported`&&t.type!==`malformed`&&u(e,e=>Vt(e,t))},n.signal),u(e,e=>({...e,isRunning:!1,answering:null,elapsedMs:performance.now()-r}))}catch(t){let i=n.signal.aborted?null:p(t);u(e,e=>({...e,isRunning:!1,answering:null,failure:i,elapsedMs:performance.now()-r}))}finally{s.current.get(e)===n&&s.current.delete(e)}},[u]);return{iface:r,describeFailure:i,calls:a,run:(0,q.useCallback)((e,t)=>{let r=Bt();return o(n=>[{id:r,name:e,input:t,events:[],call:null,progress:void 0,isRunning:!0,failure:null,answering:null,startedAt:Date.now(),elapsedMs:null},...n]),d(r,(r,i)=>n.call({name:e,input:t},r,i)),r},[d,n]),answer:(0,q.useCallback)(async(e,t)=>{let r=l.current.find(t=>t.id===e),i=r?.call?.state;if(!r?.call||i?.phase!==`gate`)return;let a=r.call.callId,o=je(r.call),s=at({toolName:r.name,gate:i.gate,sessionPermissions:c.current,resolution:t});s.decision===`approve`&&(c.current=s.sessionPermissions);let f=Me(r.events);u(e,e=>({...e,answering:t.action})),await d(e,(e,t)=>n.invoke({gateId:a,operationId:o,decision:s.decision,...s.decision===`approve`&&s.secret!==void 0?{secret:s.secret}:{},replay:{name:r.name,input:i.gate.preparedArguments??r.input,gateKind:i.gate.kind,sessionPermissions:c.current,...f?{snapshot:f}:{}}},e,t))},[d,n,u]),cancel:(0,q.useCallback)(e=>{s.current.get(e)?.abort(),s.current.delete(e)},[])}}function Ut(e){return(0,U.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":!0,...e,children:(0,U.jsx)(`path`,{d:`M13.85 0a4.16 4.16 0 0 0-2.95 1.217L1.456 10.66a.835.835 0 0 0 0 1.18.835.835 0 0 0 1.18 0l9.442-9.442a2.49 2.49 0 0 1 3.541 0 2.49 2.49 0 0 1 0 3.541L8.59 12.97l-.1.1a.835.835 0 0 0 0 1.18.835.835 0 0 0 1.18 0l.1-.098 7.03-7.034a2.49 2.49 0 0 1 3.542 0l.049.05a2.49 2.49 0 0 1 0 3.54l-8.54 8.54a1.96 1.96 0 0 0 0 2.755l1.753 1.753a.835.835 0 0 0 1.18 0 .835.835 0 0 0 0-1.18l-1.753-1.753a.266.266 0 0 1 0-.394l8.54-8.54a4.185 4.185 0 0 0 0-5.9l-.05-.05a4.16 4.16 0 0 0-2.95-1.218c-.2 0-.401.02-.6.048a4.17 4.17 0 0 0-1.17-3.552A4.16 4.16 0 0 0 13.85 0m0 3.333a.84.84 0 0 0-.59.245L6.275 10.56a4.186 4.186 0 0 0 0 5.902 4.186 4.186 0 0 0 5.902 0L19.16 9.48a.835.835 0 0 0 0-1.18.835.835 0 0 0-1.18 0l-6.985 6.984a2.49 2.49 0 0 1-3.54 0 2.49 2.49 0 0 1 0-3.54l6.983-6.985a.835.835 0 0 0 0-1.18.84.84 0 0 0-.59-.245`})})}var Wt={search:()=>[],bootstrap:()=>[]},Gt={"--font-family-body":`var(--font-family-code)`},Kt=2;function J({text:e}){return(0,U.jsx)(g,{type:`supporting`,color:`secondary`,maxLines:Kt,children:e})}function qt({field:e,children:t}){return(0,U.jsx)(Ve,{label:e.label,isRequired:e.isRequired,children:t})}function Jt({field:e,value:t,onChange:n}){let r=_(),[i,a]=(0,q.useState)(()=>t===void 0?``:S(t)),[o,s]=(0,q.useState)(!0);return(0,U.jsx)(A,{label:e.label,isRequired:e.isRequired,size:`sm`,rows:3,value:i,hasSpellCheck:!1,status:o?void 0:{type:`error`,message:r(`@theorem.decision.invalid_json`)},controlStyle:Gt,onChange:e=>{if(a(e),e.trim()===``)s(!0),n(void 0);else try{n(JSON.parse(e)),s(!0)}catch{s(!1)}}})}function Yt({field:e,item:t,value:n,onChange:r}){let i=Array.isArray(n)?n:[],a=ge(i);return(0,U.jsx)(k,{label:e.label,isRequired:e.isRequired,description:e.description&&(0,U.jsx)(J,{text:e.description}),children:(0,U.jsxs)(c,{gap:3,children:[a.rows.map(({item:e,index:n,key:o})=>(0,U.jsxs)(l,{gap:2,vAlign:`start`,children:[(0,U.jsx)(u,{size:`fill`,children:(0,U.jsx)(X,{schema:t,value:x(e)?e:{},onChange:e=>r(i.map((t,r)=>r===n?e:t))})}),(0,U.jsx)(He,{index:n,onRemove:()=>{a.drop(n),r(i.filter((e,t)=>t!==n))}})]},o)),(0,U.jsx)(We,{field:e.label,onAdd:()=>r([...i,ye(t)])})]})})}function Y(e){return{label:e.label,isRequired:e.isRequired,size:`sm`}}function Xt({field:e,options:t,isMenu:n,value:r,onChange:i}){return n?(0,U.jsx)(O,{...Y(e),options:t,value:typeof r==`string`?r:void 0,hasSearch:t.length>10,onChange:i}):(0,U.jsx)(qt,{field:e,children:(0,U.jsx)(l,{children:(0,U.jsx)(o,{label:e.label,size:`sm`,value:typeof r==`string`?r:``,onChange:i,children:t.map(e=>(0,U.jsx)(s,{value:e,label:e},e))})})})}function Zt({field:e,isLong:t,type:n,value:r,onChange:i}){let a=typeof r==`string`?r:``;return t?(0,U.jsx)(A,{...Y(e),rows:3,value:a,onChange:i}):(0,U.jsx)(pe,{...Y(e),type:n,value:a,onChange:i})}function Qt({field:e,value:t,onChange:n}){let r=_(),i=Array.isArray(t)?t:[];return(0,U.jsx)(tt,{...Y(e),value:i.map((e,t)=>({id:`${String(t)}:${String(e)}`,label:String(e)})),searchSource:Wt,hasCreate:!0,debounceMs:0,placeholder:r(`@theorem.decision.add_value`),onChange:e=>n(e.map(e=>typeof i[0]==`number`&&Number.isFinite(Number(e.label))?Number(e.label):e.label))})}var $t={choice:({field:e,control:t,value:n,onChange:r})=>(0,U.jsx)(Xt,{field:e,options:t.options,isMenu:t.isMenu,value:n,onChange:r}),range:({field:e,control:t,value:n,onChange:r})=>(0,U.jsx)(ot,{label:e.label,isRequired:e.isRequired,min:t.min,max:t.max,step:1,value:typeof n==`number`?n:t.min,valueDisplay:`text`,onChange:r}),number:({field:e,control:t,value:n,onChange:r})=>(0,U.jsx)(dt,{...Y(e),value:typeof n==`number`?n:void 0,min:t.min,max:t.max,isIntegerOnly:t.isInteger,isWheelEnabled:!1,onChange:e=>r(e??void 0)}),switch:({field:e,value:t,onChange:n})=>(0,U.jsx)(st,{label:e.label,value:t===!0,onChange:n}),date:({field:e,value:t,onChange:n})=>(0,U.jsx)(d,{...Y(e),value:typeof t==`string`?t:void 0,onChange:n}),text:({field:e,control:t,value:n,onChange:r})=>(0,U.jsx)(Zt,{field:e,isLong:t.isLong,type:t.type,value:n,onChange:r}),choices:({field:e,control:t,value:n,onChange:r})=>(0,U.jsx)(Qe,{label:e.label,value:Array.isArray(n)?n.filter(e=>typeof e==`string`):[],onChange:r,children:t.options.map(e=>(0,U.jsx)(ct,{label:e,value:e},e))}),words:({field:e,value:t,onChange:n})=>(0,U.jsx)(Qt,{field:e,value:t,onChange:n}),rows:({field:e,control:t,value:n,onChange:r})=>(0,U.jsx)(Yt,{field:e,item:t.item,value:n,onChange:r}),group:({field:e,control:t,value:n,onChange:r})=>(0,U.jsx)(k,{label:e.label,isRequired:e.isRequired,description:e.description&&(0,U.jsx)(J,{text:e.description}),children:(0,U.jsx)(X,{schema:t.schema,value:x(n)?n:{},onChange:r})}),json:({field:e,value:t,onChange:n})=>(0,U.jsx)(Jt,{field:e,value:t,onChange:n})};function en({field:e,value:t,onChange:n}){let r=$t[e.control.kind],i=r({field:e,control:e.control,value:t,onChange:n}),a=e.control.kind===`rows`||e.control.kind===`group`;return!e.description||a?i:(0,U.jsxs)(c,{gap:1,children:[i,(0,U.jsx)(J,{text:e.description})]})}var tn=200,nn=18;function rn({control:e}){switch(e.kind){case`number`:case`switch`:case`date`:return!0;case`choice`:return e.isMenu||e.options.join(``).length<=nn;case`text`:return!e.isLong;default:return!1}}function X({schema:e,value:t,onChange:n}){return(0,U.jsx)(j,{columns:{minWidth:tn,repeat:`fill`},gap:3,children:be(e).map(e=>(0,U.jsx)(`div`,{style:rn(e)?{minWidth:0,alignSelf:`start`}:{gridColumn:`1 / -1`,minWidth:0},children:(0,U.jsx)(en,{field:e,value:t[e.key],onChange:r=>n(xe(t,e.key,r))})},e.key))})}function an({schema:e,value:t,onChange:n}){return(0,U.jsx)(X,{schema:e,value:t,onChange:n})}var on=(0,q.lazy)(()=>ce(()=>import(`./ToolResultCharts-CTjAk_F6.js`).then(e=>({default:e.ToolResultCharts})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73]))),sn=200,cn=236;function ln({images:e}){let[t,n]=(0,q.useState)(null);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(j,{columns:{minWidth:sn,repeat:`fill`},gap:3,children:e.map((e,t)=>(0,U.jsx)(y,{children:(0,U.jsx)(ne,{label:e.alt||`Open image`,padding:0,onClick:()=>n(t),children:(0,U.jsx)($e,{ratio:4/3,fit:`cover`,children:(0,U.jsx)(`img`,{src:e.src,alt:e.alt,loading:`lazy`})})})},e.src))}),(0,U.jsx)(m,{isOpen:t!==null,onOpenChange:e=>{e||n(null)},media:e.map(e=>({src:e.src,alt:e.alt})),index:t??0,onIndexChange:n})]})}function un({figures:e}){let t=v(),n=(0,q.useMemo)(()=>new Intl.NumberFormat(t,{maximumFractionDigits:2}),[t]);return e.length===0?null:(0,U.jsx)(j,{columns:{minWidth:160,repeat:`fill`},gap:3,children:e.map(e=>(0,U.jsx)(y,{children:(0,U.jsx)(Ye,{title:e.label,value:Te(n.format(e.value),e.unit)})},e.key))})}function dn({charts:e}){return e.length===0?null:(0,U.jsx)(q.Suspense,{fallback:(0,U.jsx)(j,{columns:{minWidth:260,repeat:`fill`},gap:3,children:e.map(e=>(0,U.jsx)(y,{children:(0,U.jsx)(h,{height:cn})},e.key))}),children:(0,U.jsx)(on,{charts:e})})}function fn({layout:e,parts:t=[]}){let n=_(),r=(0,q.useMemo)(()=>jt(e,t,n(`@theorem.host.image`)),[e,t,n]);return Mt(e,r)?(0,U.jsxs)(c,{gap:3,children:[(0,U.jsx)(un,{figures:e.figures}),(0,U.jsx)(dn,{charts:e.charts}),r.images.length>0?(0,U.jsx)(ln,{images:r.images}):null,_e(r.audio,e=>e.src).map(({item:e,key:t})=>(0,U.jsx)(y,{children:(0,U.jsx)(Ze,{src:e.src,mimeType:e.mimeType})},t))]}):null}function pn({output:e,parts:t}){let n=_(),r=(0,q.useMemo)(()=>kt(e),[e]),i=(0,q.useMemo)(()=>r.figures.map(e=>e.key),[r]);return(0,U.jsx)(pt,{value:e,title:n(`@theorem.host.response`),lead:(0,U.jsx)(fn,{layout:r,parts:t}),ledKeys:i})}var mn=8,hn={running:`accent`,gate:`warning`,complete:`success`,error:`error`,cancel:`neutral`};function gn(e,t,n){let r;try{r=JSON.parse(n)}catch{return{ok:!1,note:e(`@theorem.decision.invalid_json`)}}if(!x(r))return{ok:!1,note:e(`@theorem.decision.invalid_json`)};let i=Se(t.inputSchema,r);return i.length>0?{ok:!1,note:e(`@theorem.host.missing`,{fields:i.join(`, `)}),input:r}:{ok:!0,input:r}}var _n={function:Xe,http:ft,mcp:Ut},vn=440,yn=2;function bn(e,t){let n=e(`@theorem.host.kind.${t.kind}`);return t.description?`${n} · ${t.description}`:n}function xn({tool:e}){let t=_();return e.access===`read-only`?null:(0,U.jsx)(l,{gap:1,wrap:`wrap`,children:(0,U.jsx)(se,{label:t(`@theorem.tool.access.${e.access}`),size:`sm`,color:e.access===`destructive`?`red`:`orange`})})}function Sn(e,t,n){return{label:t.call?lt(t.call):t.name,duration:t.isRunning?le(e,n-t.startedAt):t.elapsedMs==null?null:ue(e,t.elapsedMs)}}function Cn({call:e,onAnswer:t}){let n=e.call?.state;return n?.phase===`gate`?n.gate.kind===`auth`?(0,U.jsx)(it,{gate:n.gate,toolName:e.name,submitted:e.answering===`auth`,onAuthenticated:n=>void t(e.id,{action:`auth`,secret:n})}):(0,U.jsx)(mt,{gate:n.gate,toolName:e.name,input:e.input,decided:e.answering===`auth`?null:e.answering,onDecision:n=>void t(e.id,{action:n})}):null}function Z(e){let t=e.call?.state;return!!K(e)||t?.phase===`complete`||!e.isRunning}function wn(e){let t=e.call?.state;return!Z(e)&&t?.phase!==`gate`}function Tn({call:e,activity:t}){let n=e.call?.state,r=K(e);return(0,U.jsx)(ve,{children:(0,U.jsxs)(c,{gap:3,children:[r?(0,U.jsx)(y,{children:(0,U.jsx)(he,{status:`error`,role:`alert`,title:r.title,description:r.description})}):null,n?.phase===`complete`?(0,U.jsx)(pn,{output:n.output,parts:n.parts}):null,e.isRunning?null:(0,U.jsx)(y,{children:t})]})})}function En({call:e,onAnswer:t}){let n=_(),{label:r,duration:i}=Sn(n,e,Fe(e.isRunning));if(wn(e))return(0,U.jsx)(D,{label:r,since:e.startedAt});let a=(0,U.jsx)(g,{size:`sm`,color:`secondary`,children:i?n(`@theorem.host.finished`,{activity:r,duration:i}):r});return(0,U.jsxs)(c,{gap:3,children:[(0,U.jsx)(Cn,{call:e,onAnswer:t}),Z(e)?(0,U.jsx)(Tn,{call:e,activity:a}):null]})}function Dn({calls:e,onPick:t}){let n=_(),r=v(),i=(0,q.useMemo)(()=>new Intl.DateTimeFormat(r,{timeStyle:`medium`}),[r]);return e.length===0?null:(0,U.jsxs)(c,{gap:1,children:[(0,U.jsx)(g,{type:`supporting`,color:`secondary`,as:`h3`,children:n(`@theorem.host.earlier`)}),(0,U.jsx)(Re,{hasDividers:!0,density:`compact`,children:e.slice(0,mn).map(e=>{let r=Rt(e);return(0,U.jsx)(ze,{label:e.name,startContent:(0,U.jsx)(G,{variant:hn[r],label:n(`@theorem.host.status.${r}`),isPulsing:e.isRunning}),endContent:(0,U.jsx)(g,{type:`supporting`,color:`secondary`,hasTabularNumbers:!0,children:i.format(e.startedAt)}),onClick:()=>t(e)},e.id)})})]})}function On({tools:e,tool:t,check:n,text:r,view:i,shown:a,onText:o,onPick:s,onView:l,onRun:u,onStop:d}){let f=_(),p=`input`in n?n.input:void 0,m=i===`fields`&&p!==void 0;return(0,U.jsxs)(Be,{title:f(`@theorem.host.request`),view:m?`fields`:`json`,hasFields:p!==void 0,onView:l,onRun:u,children:[(0,U.jsxs)(c,{gap:2,children:[(0,U.jsx)(O,{label:f(`@theorem.host.tool`),size:`sm`,options:e.map(e=>({value:e.name,label:e.name,icon:_n[e.kind],description:bn(f,e)})),value:t.name,hasSearch:e.length>8,renderOption:e=>(0,U.jsx)(`div`,{style:{width:vn,maxWidth:`100%`,minWidth:0},children:(0,U.jsx)(Le,{icon:e.icon,label:e.label,description:e.description&&(0,U.jsx)(g,{type:`supporting`,color:`secondary`,maxLines:yn,children:e.description})})}),onChange:s}),(0,U.jsx)(xn,{tool:t})]}),m?(0,U.jsx)(an,{schema:t.inputSchema,value:p,onChange:e=>{o(S(e))}},t.name):(0,U.jsx)(Ue,{label:f(`@theorem.host.request`),text:r,isInvalid:p===void 0,onChange:o}),(0,U.jsx)(qe,{note:n.ok?f(`@theorem.host.shortcut`):n.note,isReady:n.ok,isRunning:a?.isRunning===!0,runLabel:f(`@theorem.host.run`),runningLabel:f(`@theorem.host.running`),stopLabel:f(`@theorem.host.stop`),onRun:u,onStop:()=>{a&&d(a.id)}})]})}function kn(e,t,n,r){return!t||!n?.ok||r?.isRunning?null:e.run(t.name,n.input)}function An(e,t){let n=_(),[r,i]=(0,q.useState)(e.tools[0]?.name),[a,o]=(0,q.useState)({}),[s,c]=(0,q.useState)(null),[l,u]=(0,q.useState)(`fields`),{tool:d,text:f,shown:p,earlier:m}=zt({tools:e.tools,picked:r,drafts:a,calls:t.calls,shownId:s}),h=d?gn(n,d,f):null;return{tool:d,text:f,shown:p,earlier:m,check:h,view:l,setView:u,setPicked:i,setText:e=>{d&&o(t=>({...t,[d.name]:e}))},run:()=>{let e=kn(t,d,h,p);e!==null&&c(e)},pick:e=>{i(e.name),o(t=>({...t,[e.name]:S(e.input)})),c(e.id)}}}function jn({shown:e,earlier:t,onAnswer:n,onPick:r}){return(0,U.jsxs)(U.Fragment,{children:[e?(0,U.jsx)(En,{call:e,onAnswer:n}):null,(0,U.jsx)(Dn,{calls:t,onPick:r})]})}function Mn(e,t,n,r,i){if(!e)return i;let a=r.length===0;return!n&&a?null:(0,U.jsx)(Ke,{label:t,fill:n!=null&&wn(n)&&a,children:i})}function Nn({transport:e,iface:t,host:n,maxWidth:r=`960px`,trace:i,flush:a,columns:o=!1,className:s,style:c}){let l=_(),u=me(t,e.traces,i),d=An(t,n),{tool:f,check:p,shown:m,earlier:h}=d;return(0,U.jsxs)(Ge,{inspector:u,maxWidth:r,flush:a,columns:o,requestLabel:l(`@theorem.host.request`),className:s,style:c,children:[f&&p?(0,U.jsx)(On,{tools:t.tools,tool:f,check:p,text:d.text,view:d.view,shown:m,onText:d.setText,onPick:d.setPicked,onView:d.setView,onRun:d.run,onStop:n.cancel}):(0,U.jsx)(Pe,{title:l(`@theorem.host.no_tools`)}),Mn(o,l(`@theorem.host.response`),m,h,(0,U.jsx)(jn,{shown:m,earlier:h,onAnswer:n.answer,onPick:d.pick}))]})}function Pn(e){let t=_(),n=Ht(e.transport,e.pageTools);return n.describeFailure?(0,U.jsx)(Ie,{title:n.describeFailure.error}):n.iface?(0,U.jsx)(Nn,{...e,iface:n.iface,host:n}):(0,U.jsx)(D,{label:t(`@theorem.chat.loading`)})}function Fn({endpoint:e,http:t,transport:n,theme:r,mode:i,labels:a,detectCodeLanguage:o,...s}){let c=(0,q.useRef)(t);c.current=t;let l=(0,q.useMemo)(()=>n??f({...c.current,endpoint:e}),[n,e]);return(0,U.jsx)(re,{theme:r,mode:i,children:(0,U.jsx)(de,{labels:a,children:(0,U.jsx)(et,{detectCodeLanguage:o,children:(0,U.jsx)(Pn,{...s,transport:l})})})})}var In=e({HostView:()=>$,StudioHostConsole:()=>Q});function Q(e){let t=Je(e,ee,te);return(0,U.jsx)($,{...e,transport:t})}function $({payload:e,transport:t,trace:n,flush:r,columns:i,className:a}){let o=(0,q.useMemo)(()=>nt(e),[e]);return(0,U.jsx)(Fn,{detectCodeLanguage:!0,labels:rt,transport:t,pageTools:o,trace:n,flush:r,columns:i,className:a})}export{$ as HostView,Q as StudioHostConsole,Ft as n,In as t};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,l as n,n as r,u as i}from"./themeProps-3IqahpCr.js";import{h as a}from"./tokens.stylex-DkHf0P9C.js";import{i as o,l as s,u as c}from"./SegmentedControlItem-h-aaXzyS.js";import{t as l}from"./VStack-CkVMcNiK.js";import{n as u,t as d}from"./StackItem-CQviqAfM.js";import{M as f,U as p,_ as m,k as h,o as g,t as _}from"./browser-transport-MtEE98lA.js";import{t as v}from"./mergeProps-ptS-gIMz.js";import{h as y}from"./groupStyles-C7Ter7zC.js";import{t as b}from"./Icon-JrysT8aU.js";import{c as x,d as S,r as C,t as w}from"./IconButton-DlOGzJIX.js";import{a as T,d as ee,l as E,p as D,u as O}from"./SidePanel-BL32abk8.js";import{t as k}from"./Text-bum6zWWx.js";import{a as A,n as j,t as M}from"./labels-provider-4TIWDvsE.js";import{t as N}from"./Dialog-DELWQo-v.js";import{t as P}from"./createReactComponent-CZwsv6DD.js";import{a as F,i as I,t as L}from"./Banner-BEl_rG5o.js";import{t as R}from"./Center-nHS1JSux.js";import{jr as z}from"./tool-schema-BrqSc6vO.js";import{c as B}from"./host-patterns-C9RMP16Q.js";import{Mn as V,fn as te,pn as ne}from"./shaped-data-BcarWqd5.js";import{g as re,r as ie,t as ae,x as oe}from"./reader-B0gVhfoZ.js";import{i as H}from"./live-ingress-lDUGPwth.js";import{_ as se,i as ce}from"./turn-client-DwVPS3TX.js";import{r as le,t as ue}from"./live-messages-BYi31jQk.js";import{t as de}from"./EmptyState-C8W4JKBZ.js";import"./PaneState-BvA2tLQg.js";import{t as fe}from"./Section-DJ97F7QE.js";import{L as pe,N as me,P as he,X as ge,Y as _e,a as ve,b as ye,dt as be,et as xe,ft as Se,i as U,kt as Ce,m as we,rt as Te,ut as Ee,v as De,y as Oe}from"./index-DqeZ3mcO.js";var ke=P(`outline`,`camera-rotate`,`CameraRotate`,[[`path`,{d:`M5 7h1a2 2 0 0 0 2 -2a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1a2 2 0 0 0 2 2h1a2 2 0 0 1 2 2v9a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-9a2 2 0 0 1 2 -2`,key:`svg-0`}],[`path`,{d:`M11.245 15.904a3 3 0 0 0 3.755 -2.904m-2.25 -2.905a3 3 0 0 0 -3.75 2.905`,key:`svg-1`}],[`path`,{d:`M14 13h2v2`,key:`svg-2`}],[`path`,{d:`M10 13h-2v-2`,key:`svg-3`}]]),Ae=P(`outline`,`microphone-off`,`MicrophoneOff`,[[`path`,{d:`M3 3l18 18`,key:`svg-0`}],[`path`,{d:`M9 5a3 3 0 0 1 6 0v5a3 3 0 0 1 -.13 .874m-2 2a3 3 0 0 1 -3.87 -2.872v-1`,key:`svg-1`}],[`path`,{d:`M5 10a7 7 0 0 0 10.846 5.85m2 -2a6.967 6.967 0 0 0 1.152 -3.85`,key:`svg-2`}],[`path`,{d:`M8 21l8 0`,key:`svg-3`}],[`path`,{d:`M12 17l0 4`,key:`svg-4`}]]),je=P(`outline`,`phone-off`,`PhoneOff`,[[`path`,{d:`M3 21l18 -18`,key:`svg-0`}],[`path`,{d:`M5.831 14.161a15.946 15.946 0 0 1 -2.831 -8.161a2 2 0 0 1 2 -2h4l2 5l-2.5 1.5c.108 .22 .223 .435 .345 .645m1.751 2.277c.843 .84 1.822 1.544 2.904 2.078l1.5 -2.5l5 2v4a2 2 0 0 1 -2 2a15.963 15.963 0 0 1 -10.344 -4.657`,key:`svg-1`}]]),W=P(`outline`,`phone`,`Phone`,[[`path`,{d:`M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5l1.5 -2.5l5 2v4a2 2 0 0 1 -2 2a16 16 0 0 1 -15 -15a2 2 0 0 1 2 -2`,key:`svg-0`}]]),Me=P(`outline`,`subtitles`,`Subtitles`,[[`path`,{d:`M18 5a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3l12 0`,key:`svg-0`}],[`path`,{d:`M7 15h5`,key:`svg-1`}],[`path`,{d:`M15 15h2`,key:`svg-2`}],[`path`,{d:`M17 12h-3`,key:`svg-3`}],[`path`,{d:`M11 12h-1`,key:`svg-4`}]]),Ne=P(`outline`,`video-off`,`VideoOff`,[[`path`,{d:`M3 3l18 18`,key:`svg-0`}],[`path`,{d:`M15 11v-1l4.553 -2.276a1 1 0 0 1 1.447 .894v6.764a1 1 0 0 1 -.675 .946`,key:`svg-1`}],[`path`,{d:`M10 6h3a2 2 0 0 1 2 2v3m0 4v1a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2v-8a2 2 0 0 1 2 -2h1`,key:`svg-2`}]]),Pe=P(`outline`,`video`,`Video`,[[`path`,{d:`M15 10l4.553 -2.276a1 1 0 0 1 1.447 .894v6.764a1 1 0 0 1 -1.447 .894l-4.553 -2.276v-4`,key:`svg-0`}],[`path`,{d:`M3 8a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2l0 -8`,key:`svg-1`}]]);function Fe(e){return e.status===`reconnecting`?`reconnecting`:e.toolName?`calling_tool`:e.connectPhase===`socket`?`connecting`:e.connectPhase===`microphone`?`requesting_mic`:e.status===`speaking`?`speaking`:e.status===`listening`||e.status===`ready`?e.voiceEnabled===!1?`connected`:e.isMuted?`muted`:`listening`:e.status===`connecting`?`connecting`:e.status===`error`?`error`:`ended`}function Ie(e){return!(e.isMuted||!e.socketOpen||e.modelPlaying&&e.rms<e.bargeInRmsWhileSpeaking)}function Le(e){let{evidence:t,text:n}=e;return!n||t.kind!==`input_transcription`&&t.kind!==`output_transcription`?null:{text:n,isUser:t.kind===`input_transcription`,interim:t.interim===!0}}function Re(e,t){if(e.phase===void 0){t.toolCalls.push({id:e.callId,name:e.name,arguments:e.arguments,...e.operationId?{operationId:e.operationId}:{}});return}if(e.phase===`cancel`){t.cancelledToolIds.add(e.callId);return}if(e.phase!==`error`)return;let n=t.toolCalls.findIndex(t=>t.id===e.callId);n!==-1&&t.toolCalls.splice(n,1)}function ze(e){if(!(e instanceof Error))return!1;let t=`name`in e&&typeof e.name==`string`?e.name:``;return t===`NotAllowedError`||t===`PermissionDeniedError`||/permission|not allowed|denied/i.test(e.message)}var Be=`mic-capture-processor`;function Ve(){return new URL(`data:text/javascript;base64,LyoqCiAqIEF1ZGlvV29ya2xldCBwcm9jZXNzb3IgdGhhdCBmb3J3YXJkcyBtb25vIG1pYyBmcmFtZXMgdG8gdGhlIG1haW4gdGhyZWFkLgogKiBQbGFpbiBKUzogaXQgcnVucyBpbiB0aGUgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgYXMgaXRzIG93biBtb2R1bGUsIGxvYWRlZAogKiBieSBVUkwgKHNlZSBgLi4vbWljLWNhcHR1cmUudHNgKSwgc28gaXQgaW1wb3J0cyBub3RoaW5nIGFuZCBzaGlwcyBhcyBpcy4KICovCnJlZ2lzdGVyUHJvY2Vzc29yKAogICdtaWMtY2FwdHVyZS1wcm9jZXNzb3InLAogIGNsYXNzIE1pY0NhcHR1cmVQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogICAgcHJvY2VzcyhpbnB1dHMpIHsKICAgICAgY29uc3QgY2hhbm5lbCA9IGlucHV0c1swXVswXTsKICAgICAgY29uc3QgY29weSA9IG5ldyBGbG9hdDMyQXJyYXkoY2hhbm5lbCk7CiAgICAgIHRoaXMucG9ydC5wb3N0TWVzc2FnZShjb3B5LCBbY29weS5idWZmZXJdKTsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgfSwKKTsK`,``+import.meta.url)}function He(e,t,n=16e3){if(t===n)return Ue(e);let r=t/n,i=Math.round(e.length/r),a=new Int16Array(i),o=0,s=0;for(;o<a.length;){let t=Math.round((o+1)*r),n=0,i=0;for(let r=s;r<t&&r<e.length;r++)n+=e[r]??0,i++;a[o]=We(i>0?n/i:0),o++,s=t}return a}function Ue(e){let t=new Int16Array(e.length);for(let n=0;n<e.length;n++)t[n]=We(e[n]??0);return t}function We(e){let t=Math.max(-1,Math.min(1,e));return t<0?t*32768:t*32767}function Ge(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=new Float32Array(e.byteLength/2);for(let e=0;e<n.length;e++){let r=t.getInt16(e*2,!0);n[e]=r/(r<0?32768:32767)}return n}function G(e){return JSON.stringify(e)}function Ke(){return{toolCalls:[],mediaChunks:[],cancelledToolIds:new Set}}var qe=.05,Je=[500,1e3,2e3,4e3,8e3];function K(e){return e instanceof Error?e:new B(`internal`,z(e),{cause:e})}function q(e){if(e&&typeof e.disconnect==`function`)try{e.disconnect()}catch{}}function Ye(e){if(e&&typeof e.getTracks==`function`)for(let t of e.getTracks())t.stop()}function Xe(e){let t=Ee(e.inputFloat32),n=e.hasPlaybackNodes||e.status===`speaking`;return Ie({isMuted:e.isMuted,socketOpen:e.wsOpen,modelPlaying:n,rms:t,bargeInRmsWhileSpeaking:qe})}function Ze(e,t){return e===`listening`&&t?`working`:e===`working`&&!t?`listening`:null}var Qe=class{ws=null;audioContext=null;micStream=null;micSource=null;micWorklet=null;micWorkletModuleLoaded=!1;playbackNodes=[];playbackBus=null;playbackAnalyser=null;playbackMeterFrame=0;playbackMeterBuffer=null;nextPlaybackTime=0;status=`disconnected`;serverWorking=!1;micActivating=!1;connectTimeout=null;isMuted=!1;options;inboundChain=Promise.resolve();audioChain=Promise.resolve();toolChain=Promise.resolve();audioEpoch=0;pendingExecuteResults=new Map;context;sentContext;history=[];providerState;sessionOver=!1;droppedAt;lostAt;reconnectTries=0;reconnectTimer=null;constructor(e){this.options=e,this.context=e.context}setStatus(e){this.status=e,(e===`listening`||e===`disconnected`||e===`error`)&&this.clearConnectTimeout(),this.options.onStatusChange?.(e)}get opening(){return this.status===`connecting`||this.status===`reconnecting`}setConnectPhase(e){this.options.onConnectPhase?.(e)}clearConnectTimeout(){this.connectTimeout&&=(clearTimeout(this.connectTimeout),null)}detachWebSocket(){for(let[e,t]of this.pendingExecuteResults)t.reject(new B(`network`,`live session closed before call ${e} settled`));if(this.pendingExecuteResults.clear(),this.ws){this.ws.onopen=null,this.ws.onmessage=null,this.ws.onclose=null,this.ws.onerror=null;try{this.ws.close()}catch{}this.ws=null}}clearReconnect(){this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectTimer=null,this.reconnectTries=0,this.droppedAt=void 0}teardownConnection(){this.clearConnectTimeout(),this.micActivating=!1,this.setConnectPhase(null),this.detachWebSocket(),this.cleanupAudio()}failSession(e){this.status!==`error`&&this.status!==`disconnected`&&(this.clearReconnect(),this.teardownConnection(),this.options.onError?.(e),this.setStatus(`error`))}createSocket(e){return this.options.createSocket?.()??new WebSocket(e)}connect(){let e=this.lostAt;return this.clearReconnect(),this.lostAt=void 0,e===void 0?(this.providerState=void 0,this.history=[]):this.droppedAt=e,this.open(`connecting`)}startOver(){return this.status!==`connecting`||!this.providerState?!1:(this.providerState=void 0,this.droppedAt=void 0,this.open(`connecting`),!0)}openMessage(){let{slots:e,openMessage:t}=this.options;return{type:`open`,...this.history.length?{history:structuredClone(this.history)}:{},...e?{slots:e}:{},...this.context===void 0?{}:{context:this.context},...this.providerState?{resume:{providerState:this.providerState,awayMs:this.droppedAt===void 0?0:Date.now()-this.droppedAt}}:{},...t?{host:t}:{}}}handleDrop(){!this.providerState||this.sessionOver?(this.teardownConnection(),this.setStatus(`disconnected`)):(this.droppedAt??=Date.now(),this.teardownConnection(),this.setStatus(`reconnecting`),this.scheduleReconnect())}scheduleReconnect(){let e=Je[this.reconnectTries];if(e===void 0){let e=this.droppedAt;this.failSession(new B(`network`,`live call dropped and could not reconnect`)),this.lostAt=e}else this.reconnectTries+=1,this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.open(`reconnecting`)},e)}failOpen(e){this.status===`reconnecting`?(this.teardownConnection(),this.scheduleReconnect()):this.startOver()||this.failSession(e)}async open(e){this.teardownConnection(),this.sessionOver=!1,this.setStatus(e),e===`connecting`&&this.setConnectPhase(`socket`);try{let e=globalThis.AudioContext;this.audioContext=new e,this.audioContext.state===`suspended`&&await this.audioContext.resume();let t=globalThis.location.protocol===`https:`?`wss:`:`ws:`,n=this.options.profile?`?profile=${encodeURIComponent(this.options.profile)}`:``,r=`${t}//${globalThis.location.host}/api/live/relay${n}`,i=this.options.relayUrl||r;this.ws=this.createSocket(i),this.ws.binaryType=`arraybuffer`,this.ws.onopen=()=>{let e=this.openMessage();this.sentContext=JSON.stringify(e.context),this.ws?.send(JSON.stringify(e))},this.connectTimeout=setTimeout(()=>{this.opening&&this.failOpen(new B(`timeout`,`live connect timed out`))},2e4),this.ws.onmessage=e=>{this.enqueueServerMessage(e.data)},this.ws.onclose=()=>{this.opening?this.failOpen(new B(`network`,`live socket closed before ready`)):this.handleDrop()},this.ws.onerror=()=>{!this.opening&&this.providerState&&!this.sessionOver?this.handleDrop():this.failOpen(new B(`network`,`live socket error`))}}catch(e){this.failOpen(new B(`internal`,z(e),{cause:e}))}}async ensureAudioContext(){if(!this.audioContext||this.audioContext.state===`closed`){let e=globalThis.AudioContext;this.audioContext=new e,this.audioContext.state===`suspended`&&await this.audioContext.resume()}}async activateMicrophone(){if(!this.micActivating&&this.opening){this.micActivating=!0,this.status===`connecting`&&this.setConnectPhase(`microphone`);try{await this.ensureAudioContext(),this.micStream=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1,echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}}),await this.setupMicrophonePipeline(),this.becomeReady()}catch(e){let t=ze(e);this.failSession(new B(t?`auth`:`internal`,z(e),{cause:e,copy:{key:t?`voice.permission`:`voice.unavailable`}}))}finally{this.micActivating=!1}}}sendMicFrame(e,t){let n=He(e,t,16e3),r=ne(new Uint8Array(n.buffer)),i=this.ws;i?.readyState===WebSocket.OPEN&&i.send(G({type:`audio`,data:r}))}reportMicVolume(e){this.isMuted||this.options.onVolumeLevel?.(be(e),!0)}forwardMicBuffer(e){if(this.reportMicVolume(e),Xe({isMuted:this.isMuted,wsOpen:this.ws?.readyState===WebSocket.OPEN,hasPlaybackNodes:this.playbackNodes.length>0,status:this.status,inputFloat32:e})){let t=this.audioContext?this.audioContext.sampleRate:48e3;this.sendMicFrame(e,t)}}async setupMicrophonePipeline(){if(!this.micStream||!this.audioContext)return;this.micSource=this.audioContext.createMediaStreamSource(this.micStream);let e=this.audioContext.createGain();e.gain.value=0,this.micWorkletModuleLoaded||=(await this.audioContext.audioWorklet.addModule(Ve()),!0),this.micWorklet=new AudioWorkletNode(this.audioContext,Be),this.micWorklet.port.onmessage=e=>{let t=new Float32Array(e.data);this.forwardMicBuffer(t)},this.micSource.connect(this.micWorklet),this.micWorklet.connect(e),e.connect(this.audioContext.destination)}ensurePlaybackBus(){this.audioContext&&!this.playbackBus&&(this.playbackBus=this.audioContext.createGain(),this.playbackAnalyser=this.audioContext.createAnalyser(),this.playbackAnalyser.fftSize=512,this.playbackAnalyser.smoothingTimeConstant=.35,this.playbackBus.connect(this.playbackAnalyser),this.playbackAnalyser.connect(this.audioContext.destination),this.playbackMeterBuffer=new Uint8Array(this.playbackAnalyser.fftSize))}stopPlaybackMeter(){this.playbackMeterFrame&&=(cancelAnimationFrame(this.playbackMeterFrame),0),this.options.onVolumeLevel?.(0,!1)}startPlaybackMeter(){if(this.playbackMeterFrame)return;let e=()=>{this.playbackNodes.length===0||!this.playbackAnalyser||!this.playbackMeterBuffer?this.stopPlaybackMeter():(this.playbackAnalyser.getByteTimeDomainData(this.playbackMeterBuffer),this.options.onVolumeLevel?.(Se(this.playbackMeterBuffer),!1),this.playbackMeterFrame=requestAnimationFrame(e))};this.playbackMeterFrame=requestAnimationFrame(e)}async processServerEnvelope(e){if(await this.tryHandleControlEnvelope(e)||e.type!==`events`)return;let t=this.collectInboundTurn(e.events),n=t.toolCalls.filter(e=>!t.cancelledToolIds.has(e.id));for(let e of n)this.toolChain=this.toolChain.then(()=>this.options.onToolCall(e.name,e.arguments,{callId:e.id,operationId:ce(e)})).catch(e=>{this.options.onError?.(K(e))});this.scheduleMediaChunks(t.mediaChunks)}enqueueServerMessage(e){this.inboundChain=this.inboundChain.then(async()=>{if(typeof e!=`string`)return;let t=le(e);t.type===`unsupported`||t.type===`malformed`?this.options.onTurnEvent?.(t):await this.processServerEnvelope(t)}).catch(e=>{this.options.onError?.(K(e))})}async handleReadyEnvelope(e){this.options.onSessionReady?.({sessionId:e.sessionId,profile:e.profile}),this.options.voiceIngress===!1?this.becomeReady():await this.activateMicrophone()}becomeReady(){this.clearReconnect(),this.setConnectPhase(null),this.setStatus(`listening`),this.flushContext()}handleExecuteToolResultEnvelope(e){let t=this.pendingExecuteResults.get(e.operationId);t&&t.callId===e.callId&&(this.pendingExecuteResults.delete(e.operationId),e.status===`refused`?t.reject(oe(e.body,`request`)):e.status===`dispatched`?t.resolve({status:`dispatched`,grantId:e.grantId,arguments:e.arguments}):e.status===`gated`?t.resolve({status:`gated`,gate:e.gate}):t.resolve({status:`settled`}))}async tryHandleControlEnvelope(e){return e.type===`ready`?(await this.handleReadyEnvelope(e),!0):e.type===`executeToolResult`?(this.handleExecuteToolResultEnvelope(e),!0):e.type===`trace`?(this.options.onTrace?.(e.record),!0):e.type===`error`&&(this.startOver()||(this.sessionOver=!0,this.options.onError?.(oe(e,`unavailable`)),this.setStatus(`error`)),!0)}collectInboundTurn(e){let t=Ke();for(let n of e)this.processTurnEvent(n,t);return t}processTurnEvent(e,t){switch(e.type===`provider_checkpoint`&&e.history&&(this.history=structuredClone(e.history)),(e.type===`provider_checkpoint`||e.type===`done`)&&e.providerState&&(this.providerState=e.providerState),e.type===`provider_warning`&&(this.providerState=void 0),this.options.onTurnEvent?.(e),e.type){case`evidence`:this.handleEvidenceTurnEvent(e);break;case`session`:this.handleSessionTurnEvent(e);break;case`media`:this.collectMediaTurnEvent(e,t);break;case`tool`:Re(e.tool,t);break;case`done`:this.handleDoneTurnEvent(e)}}handleEvidenceTurnEvent(e){let t=Le(e);t&&this.options.onTranscript?.(t.text,t.isUser,{interim:t.interim})}handleSessionTurnEvent(e){if(this.notifySessionLifecycle(e.session))return;this.serverWorking=e.session.kind===`working`;let t=Ze(this.status,this.serverWorking);t&&this.setStatus(t)}notifySessionLifecycle(e){return e.kind===`closing_soon`?(this.options.onSessionClosing?.(e.timeLeftMs),!0):e.kind===`ended`?this.providerState?(this.handleDrop(),!0):(this.sessionOver=!0,this.options.onSessionEnded?.(e),!0):!1}restingStatus(){return this.serverWorking?`working`:`listening`}collectMediaTurnEvent(e,t){e.media.data&&(this.setStatus(`speaking`),t.mediaChunks.push({data:e.media.data,mimeType:e.media.mimeType}))}handleDoneTurnEvent(e){e.interrupted&&this.cancelPlayback(),e.stop.kind!==`generation_complete`&&(this.serverWorking=!1,this.setStatus(`listening`))}scheduleMediaChunks(e){if(e.length===0)return;let t=this.audioEpoch;for(let n of e)this.audioChain=this.audioChain.then(async()=>{t===this.audioEpoch&&await this.enqueueAudioChunk(n.data,n.mimeType)}).catch(e=>{this.options.onError?.(K(e))})}executeToolOnRelay(e){let t=this.ws;if(!t||t.readyState!==WebSocket.OPEN)throw new B(`request`,`live session is not connected`);let n=ue.safeParse({...e,type:`executeTool`});if(!n.success||n.data.type!==`executeTool`)throw new B(`request`,V(`error.request`));let r=n.data;if(this.pendingExecuteResults.has(r.operationId))throw new B(`request`,V(`session.gate_expired`));return new Promise((e,n)=>{this.pendingExecuteResults.set(r.operationId,{callId:r.callId,resolve:e,reject:n});try{t.send(G(r))}catch(e){this.pendingExecuteResults.delete(r.operationId),n(K(e))}})}async enqueueAudioChunk(e,t){if(this.audioContext)try{if(this.ensurePlaybackBus(),!this.playbackBus)return;let n=te(e),r;if(t?.includes(`wav`)){let e=n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength);r=await this.audioContext.decodeAudioData(e)}else{let e=Ge(n);r=this.audioContext.createBuffer(1,e.length,24e3),r.getChannelData(0).set(e)}let i=this.audioContext.createBufferSource();i.buffer=r,i.connect(this.playbackBus);let a=this.audioContext.currentTime,o=Math.max(a,this.nextPlaybackTime);i.start(o),this.nextPlaybackTime=o+r.duration,this.playbackNodes.push(i),this.startPlaybackMeter(),i.onended=()=>{let e=this.playbackNodes.indexOf(i);e!==-1&&this.playbackNodes.splice(e,1),this.playbackNodes.length===0&&(this.stopPlaybackMeter(),this.status===`speaking`&&this.setStatus(this.restingStatus()))}}catch(e){this.options.onError?.(K(e))}}cancelPlayback(){this.audioEpoch+=1,this.audioChain=Promise.resolve();for(let e of this.playbackNodes)try{e.stop(),e.disconnect()}catch{}this.playbackNodes=[],this.stopPlaybackMeter(),this.audioContext&&(this.nextPlaybackTime=this.audioContext.currentTime)}toggleMute(){return this.isMuted=!this.isMuted,this.isMuted}sendText(e){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.send(G({type:`text`,text:e}))}setSlots(e){JSON.stringify(e)!==JSON.stringify(this.options.slots)&&(this.options={...this.options,slots:e},this.providerState&&!this.opening&&this.ws?.readyState===WebSocket.OPEN&&this.handleDrop())}setContext(e){this.context=e,this.flushContext()}flushContext(){if(this.opening||this.ws?.readyState!==WebSocket.OPEN)return;let e=JSON.stringify(this.context);e!==this.sentContext&&(this.sentContext=e,this.ws.send(G({type:`context`,context:this.context})))}sendVideo(e,t=`image/jpeg`){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.send(G({type:`video`,data:e,mimeType:t}))}disconnect(){this.clearReconnect(),this.lostAt=void 0,this.providerState=void 0,this.teardownConnection(),this.setStatus(`disconnected`)}cleanupAudio(){if(this.cancelPlayback(),this.stopPlaybackMeter(),q(this.playbackBus),this.playbackBus=null,this.playbackAnalyser=null,this.playbackMeterBuffer=null,this.micWorklet&&=(this.micWorklet.port.onmessage=null,q(this.micWorklet),null),q(this.micSource),this.micSource=null,Ye(this.micStream),this.micStream=null,this.audioContext&&this.audioContext.state!==`closed`){try{this.audioContext.close()}catch{}this.audioContext=null,this.micWorkletModuleLoaded=!1}}},J=e(i(),1);function $e(){return{turns:[],interimUser:``,interimAgent:``,working:!1}}function et(e,t){return t.length===0?e:[...e,[...t]]}function tt(e,t){return e?t?t.startsWith(e)||e.startsWith(t)?t.length>=e.length?t:e:nt(e,t):e:t}function nt(e,t){return e?t?!e.endsWith(` `)&&!t.startsWith(` `)&&!/^\s/.test(t)&&!/^[\s.,!?;:]/.test(t)?`${e} ${t}`:`${e}${t}`:e:t}function rt(e){return`${String(Date.now())}-${String(e.turns.length)}`}function it(e,t,n,r,i){if(!t)return e;if(r)return n?{...e,interimUser:t}:{...e,interimAgent:t};let a=n?`user`:`agent`,o=[...e.turns],s=o.at(-1),c=n?e.interimUser:e.interimAgent;if(!i?.forceNew&&s?.role===a)o[o.length-1]={...s,text:nt(s.text,t)};else{let n=i?.forceNew?t:tt(c,t);o.push({id:rt(e),role:a,text:n})}return{...e,turns:o,interimUser:n?``:e.interimUser,interimAgent:n?e.interimAgent:``}}function at(e){return e.type===`thought`||e.type===`tool`||e.type===`citation`}function ot(e,t){return e.findIndex(e=>e.role===`work`&&e.events.some(e=>e.type===`tool`&&e.tool.callId===t))}function st(e,t){if(t.type===`tool`&&t.tool.phase!==void 0)return t.tool.phase===`gate`?-1:ot(e,t.tool.callId);let n=e.at(-1)?.role===`work`;return t.type===`thought`&&!(n?t.text:t.text.trim())?-1:n?e.length-1:e.length}function ct(e,t){if(t.type===`done`)return e.working?{...e,working:!1}:e;if(!at(t))return e;let n=st(e.turns,t);if(n===-1)return e;let r=[...e.turns],i=r[n];return r[n]=i?.role===`work`?{...i,events:[...i.events,t]}:{id:rt(e),role:`work`,events:[t]},{...e,turns:r,working:!0}}function lt(e){return e.role===`work`?se(e.events,{idPrefix:e.id}):[{id:e.id,kind:e.role===`user`?`user-text`:`text`,text:e.text}]}var ut=24;function dt(e,t){let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];)n+=1;return n}function ft(e,t){let n=e.trim();return dt(n,t.trim())>=Math.min(n.length,ut)}function pt(e){return e.filter((t,n)=>{if(t.role!==`agent`)return!0;let r=e.slice(n+1),i=r.findIndex(e=>e.role===`user`);return!(i===-1?r:r.slice(0,i)).some(e=>e.role===`agent`&&ft(t.text,e.text))})}function mt(e,{turns:t,interimUser:n,interimAgent:r}){let i=[...t];n&&i.push({id:`interim-user`,role:`user`,text:n}),r&&i.push({id:`interim-agent`,role:`agent`,text:r});let a=[...e.map((e,t)=>e.map(e=>({...e,id:`${String(t)}:${e.id}`}))),i].map(e=>pt(e).flatMap(lt)).filter(e=>e.length>0);return{blocks:a.flat(),callStarts:a.slice(1).map(e=>e[0].id)}}function ht({working:e,interimAgent:t}){return t!==``||e}function gt(e){return!e.interimUser&&!e.interimAgent?e:{...e,interimUser:``,interimAgent:``}}function _t(e,t){let n=Object.keys(t??{}).sort().join(`
|
|
2
|
-
`),r=e?.join(`
|
|
3
|
-
`);(0,J.useEffect)(()=>{r!==void 0&&Te(r?r.split(`
|
|
4
|
-
`):[],n?n.split(`
|
|
5
|
-
`):[])},[r,n])}var vt=.62,yt=400;function bt(e){return navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:e},width:{ideal:640},height:{ideal:480}},audio:!1})}function xt(e,t){let n=t?.facingMode??`user`;return bt(n).then(t=>{let r=document.createElement(`video`);r.srcObject=t,r.muted=!0,r.playsInline=!0,r.setAttribute(`playsinline`,``);let i=document.createElement(`canvas`),a=i.getContext(`2d`);if(!a){for(let e of t.getTracks())e.stop();throw new B(`unsupported`,`no 2d canvas for live video`)}let o=null,s=!1,c={stream:t,facing:n},l=()=>{if(s||r.videoWidth===0)return;i.width=r.videoWidth,i.height=r.videoHeight,a.drawImage(r,0,0);let t=i.toDataURL(`image/jpeg`,vt).split(`,`)[1];t&&e(t)};return r.play().then(()=>{o||s||(o=setInterval(l,yt))}),{video:r,facingMode:()=>c.facing,flip:async()=>{if(s)return c.facing;let e=c.facing===`user`?`environment`:`user`,t=await bt(e);for(let e of c.stream.getTracks())e.stop();return c={stream:t,facing:e},r.srcObject=t,await r.play(),e},stop:()=>{s=!0,o&&clearInterval(o),o=null,r.srcObject=null;for(let e of c.stream.getTracks())e.stop()}}})}function St(e){let t=(0,J.useCallback)(()=>{e.cancelGateDecision(),e.clearClient(),e.stopVideo(),e.setIsMuted(!1),e.isMutedRef.current=!1,e.setSessionActive(!1),e.setSessionPermissions([]),e.sessionPermissionsRef.current=[],e.statusRef.current=`disconnected`,e.setStatus(`disconnected`),e.setConnectPhase(null),e.setInputLevel(0),e.setOutputLevel(0)},[e]),n=(0,J.useCallback)(async()=>{e.clearFailure(),e.resetCaptions();try{let t=e.ensureClient(await e.connectionRef.current());(e.statusRef.current===`disconnected`||e.statusRef.current===`error`)&&await t.connect()}catch(t){e.reportFailure(t)}},[e]);return{teardownSession:t,startSession:n,handleSendText:(0,J.useCallback)(t=>{let n=(typeof t==`string`?t:e.textDraft).trim();n&&e.clientRef.current&&e.sessionActive&&e.textAvailable&&(e.clientRef.current.sendText(n),e.setTextDraft(``),e.setCaptions(e=>it(e,n,!0,!1,{forceNew:!0})))},[e]),handleToggleVideo:(0,J.useCallback)(async()=>{if(e.clientRef.current&&e.sessionActive&&e.videoAvailable){if(e.isVideoOn)e.stopVideo();else try{let t=await xt(t=>{e.clientRef.current?.sendVideo(t)});e.videoCaptureRef.current=t,e.setVideoPreview(t.video),e.setVideoFacingMode(t.facingMode()),e.setIsVideoOn(!0)}catch(t){e.reportFailure(t),e.stopVideo()}}},[e]),handleFlipCamera:(0,J.useCallback)(async()=>{let t=e.videoCaptureRef.current;if(t&&e.sessionActive&&e.isVideoOn)try{let n=await t.flip();e.setVideoFacingMode(n),e.setVideoPreview(t.video)}catch(t){e.reportFailure(t)}},[e]),handleToggleMic:(0,J.useCallback)(()=>{if(!e.clientRef.current||!e.sessionActive||!e.voiceAvailable)return;let t=e.clientRef.current.toggleMute();e.isMutedRef.current=t,e.setIsMuted(t)},[e]),handleRestart:(0,J.useCallback)(async()=>{t(),await n()},[n,t])}}function Ct(e){return new re(e.kind,e.error,e.message)}function Y(e){e.gateCallId===void 0&&e.clearActiveTool()}function wt(e,t){e.phase===`cancel`&&e.callId===t.gateCallId?(t.withdrawGate(),t.clearActiveTool()):e.phase===`cancel`||e.phase===`complete`?Y(t):e.phase===`error`?(t.reportFailure(Ct(e.failure)),Y(t)):t.setActiveTool(e.name)}function Tt(e,t){e.type===`done`?(t.clearInterim(),Y(t)):e.type===`tool`&&wt(e.tool,t)}function Et(e){let[t,n]=(0,J.useState)(`disconnected`),[r,i]=(0,J.useState)(null),a=(0,J.useRef)({input:0,output:0}),o=(0,J.useCallback)(e=>{let t=a.current;t.input=typeof e==`function`?e(t.input):e},[]),s=(0,J.useCallback)(e=>{let t=a.current;t.output=typeof e==`function`?e(t.output):e},[]),[c,l]=(0,J.useState)(!1),[u,d]=(0,J.useState)(!1),[p,m]=(0,J.useState)(null),[h,g]=(0,J.useState)($e),[_,v]=(0,J.useState)(null),[y,b]=(0,J.useState)(null),[x,S]=(0,J.useState)(``),[C,w]=(0,J.useState)(!1),[T,ee]=(0,J.useState)([]),[E,D]=(0,J.useState)(!1),[O,k]=(0,J.useState)(null),[A,j]=(0,J.useState)(`user`),M=(0,J.useRef)(null),N=(0,J.useRef)(h),P=(0,J.useRef)(c),F=(0,J.useRef)(T),I=(0,J.useRef)(t);return N.current=h,P.current=c,F.current=T,I.current=t,(0,J.useEffect)(()=>{C&&D(!0)},[C]),{status:t,setStatus:n,connectPhase:r,setConnectPhase:i,levelsRef:a,setInputLevel:o,setOutputLevel:s,isMuted:c,setIsMuted:l,isVideoOn:u,setIsVideoOn:d,activeTool:p,setActiveTool:m,captions:h,setCaptions:g,failure:_,reportFailure:(0,J.useCallback)(t=>{v(f(t,e))},[e]),clearFailure:(0,J.useCallback)(()=>{v(null)},[]),sessionEnded:y,reportSessionEnded:(0,J.useCallback)(e=>{b(e.message)},[]),clearSessionEnded:(0,J.useCallback)(()=>{b(null)},[]),textDraft:x,setTextDraft:S,sessionActive:C,setSessionActive:w,sessionPermissions:T,setSessionPermissions:ee,everConnected:E,videoPreview:O,setVideoPreview:k,videoFacingMode:A,setVideoFacingMode:j,videoCaptureRef:M,captionsRef:N,isMutedRef:P,sessionPermissionsRef:F,statusRef:I,resetCaptions:(0,J.useCallback)(()=>{g($e())},[]),stopVideo:(0,J.useCallback)(()=>{M.current&&=(M.current.stop(),null),k(null),j(`user`),d(!1)},[])}}function Dt(e){let[t,n]=(0,J.useState)(null),r=(0,J.useRef)(t);r.current=t;let i=(0,J.useRef)(null),a=(0,J.useRef)(null),o=(0,J.useCallback)(e=>{i.current?.(e),i.current=null,a.current=null,n(null)},[]);return{gatePrompt:t,gatePromptRef:r,handleLiveTurnEvent:(0,J.useCallback)(t=>{e.setCaptions(e=>ct(e,t)),Tt(t,{gateCallId:r.current?.callId,withdrawGate:()=>{o(`withdrawn`)},clearInterim:()=>{e.setCaptions(e=>gt(e))},clearActiveTool:()=>{e.setActiveTool(null)},reportFailure:e.reportFailure,setActiveTool:e.setActiveTool})},[e,o]),waitForGateDecision:(0,J.useCallback)(e=>new Promise((t,r)=>{n(e),i.current=t,a.current=r}),[]),resolveGateDecision:(0,J.useCallback)(e=>{o(e)},[o]),cancelGateDecision:(0,J.useCallback)(()=>{a.current?.(new B(`cancelled`,`live session ended with a gate open`)),i.current=null,a.current=null,n(null)},[])}}async function Ot(e){let{executeToolOnRelay:t,name:n,toolArgs:r,callId:i,operationId:a}=e,o=e.sessionPermissions,s=e.pageTools&&Object.hasOwn(e.pageTools,n)?e.pageTools[n]:void 0,c=await t({callId:i,operationId:a}),l=new Set;for(;c.status!==`settled`;){if(c.status===`dispatched`){if(l.has(c.grantId))return;l.add(c.grantId);let e=c.grantId,n=c.arguments,r=s?await Promise.resolve().then(()=>s(n,{callId:i,operationId:a})).catch(()=>void 0):void 0;c=await t({callId:i,operationId:a,grantId:e,...r?{output:r.output}:{unanswered:!0}});continue}let{gate:u}=c;if(u.kind===`page`){await t({callId:i,operationId:a,decision:`deny`});return}let d=await e.waitForGateDecision({callId:i,toolName:n,input:u.preparedArguments??r,gate:u});if(d===`withdrawn`)return;let f=xe({toolName:n,gate:u,sessionPermissions:o,resolution:d});if(f.decision===`deny`){await t({callId:i,operationId:a,decision:`deny`});return}o=f.sessionPermissions,e.setSessionPermissions(f.sessionPermissions),c=await t({callId:i,decision:`approve`,operationId:a,...f.secret===void 0?{}:{secret:f.secret}})}}function kt(e,t){t.setStatus(e),e===`listening`||e===`ready`?(t.setSessionActive(!0),t.clearFailure(),t.clearSessionEnded()):(e===`disconnected`||e===`error`)&&(t.setSessionActive(!1),t.videoCaptureRef.current&&(t.videoCaptureRef.current.stop(),t.videoCaptureRef.current=null),t.setVideoPreview(null),t.setVideoFacingMode(`user`),t.setIsVideoOn(!1))}function At(e,t,n,r){r.setCaptions(r=>it(r,e,t,n?.interim))}async function jt(e,t,n,r,i){r.setActiveTool(e),r.clearFailure();let a=i.current;if(!a)r.reportFailure(new B(`request`,`live tool call with no session client`));else try{await Ot({pageTools:r.pageTools,executeToolOnRelay:e=>a.executeToolOnRelay(e),name:e,toolArgs:t,callId:n.callId,operationId:n.operationId,sessionPermissions:r.sessionPermissionsRef.current,setSessionPermissions:e=>{r.sessionPermissionsRef.current=e,r.setSessionPermissions(e)},waitForGateDecision:r.waitForGateDecision})}catch(e){r.reportFailure(e)}finally{r.gatePromptRef.current||r.setActiveTool(null)}}function Mt(e){let t=(0,J.useRef)(null),n=(0,J.useRef)(e);return n.current=e,{clientRef:t,ensureClient:(0,J.useCallback)(e=>{if(t.current)return t.current;let r=n.current,i=new Qe({...e,slots:r.slots,context:r.context,voiceIngress:r.voiceAvailable,onConnectPhase:e=>{r.setConnectPhase(e)},onStatusChange:e=>{kt(e,n.current)},onTranscript:(e,t,r)=>{At(e,t,r,n.current)},onTurnEvent:e=>{e.type!==`unsupported`&&(e.type===`malformed`?n.current.reportFailure(e.error):n.current.handleLiveTurnEvent(e))},onTrace:e=>{n.current.traces.push(e)},onVolumeLevel:(e,t)=>{let r=n.current;t?r.setInputLevel(r.isMutedRef.current?0:e):r.setOutputLevel(e)},onError:e=>{n.current.reportFailure(e)},onSessionEnded:e=>{n.current.reportSessionEnded(e)},onToolCall:(e,r,i)=>jt(e,r,i,n.current,t)});return t.current=i,i},[]),clearClient:(0,J.useCallback)(()=>{t.current&&=(t.current.disconnect(),null)},[])}}function Nt(e,t,n,r){let[i,a]=(0,J.useState)(!1),[o,s]=(0,J.useState)(!1),c=(0,J.useRef)(!1),l=(0,J.useCallback)(t=>{c.current=t.video&&r,a(!0),s(!1),e.startSession()},[e,r]);(0,J.useEffect)(()=>{n&&c.current&&(c.current=!1,e.handleToggleVideo())},[e,n]);let u=(0,J.useCallback)(()=>{c.current=!1,e.teardownSession(),s(!0)},[e]),[d,f]=(0,J.useState)([]),p=(0,J.useCallback)(async()=>{let n=t.current.turns;f(e=>et(e,n)),s(!1),await e.handleRestart()},[e,t]),m=(0,J.useRef)(e.teardownSession);return m.current=e.teardownSession,(0,J.useEffect)(()=>()=>{m.current()},[]),{callStarted:i,ended:o,pastCalls:d,startCall:l,handleEnd:u,handleRestart:p}}function Pt(e,t,n={}){let r=Et(e.labels),i=Dt({setCaptions:r.setCaptions,setActiveTool:r.setActiveTool,reportFailure:r.reportFailure}),a=(0,J.useRef)(t);a.current=t;let o=H(e.live.ingress,`audio`),s=H(e.live.ingress,`video`),c=H(e.live.ingress,`text`),l=(0,J.useMemo)(()=>Fe({status:r.status,connectPhase:r.connectPhase,toolName:r.activeTool,isMuted:r.isMuted,voiceEnabled:o}),[r.activeTool,r.connectPhase,r.isMuted,r.status,o]),u=(0,J.useMemo)(h,[]),{clientRef:d,ensureClient:f,clearClient:p}=Mt({slots:n.slots,context:n.context,pageTools:n.pageTools,voiceAvailable:o,traces:u,handleLiveTurnEvent:i.handleLiveTurnEvent,waitForGateDecision:i.waitForGateDecision,gatePromptRef:i.gatePromptRef,isMutedRef:r.isMutedRef,sessionPermissionsRef:r.sessionPermissionsRef,videoCaptureRef:r.videoCaptureRef,setConnectPhase:r.setConnectPhase,setStatus:r.setStatus,setSessionActive:r.setSessionActive,reportFailure:r.reportFailure,clearFailure:r.clearFailure,reportSessionEnded:r.reportSessionEnded,clearSessionEnded:r.clearSessionEnded,setCaptions:r.setCaptions,setInputLevel:r.setInputLevel,setOutputLevel:r.setOutputLevel,setActiveTool:r.setActiveTool,setSessionPermissions:r.setSessionPermissions,setVideoPreview:r.setVideoPreview,setVideoFacingMode:r.setVideoFacingMode,setIsVideoOn:r.setIsVideoOn}),m=St({clientRef:d,videoCaptureRef:r.videoCaptureRef,connectionRef:a,statusRef:r.statusRef,isMutedRef:r.isMutedRef,sessionPermissionsRef:r.sessionPermissionsRef,ensureClient:f,clearClient:p,cancelGateDecision:i.cancelGateDecision,stopVideo:r.stopVideo,resetCaptions:r.resetCaptions,sessionActive:r.sessionActive,textAvailable:c,videoAvailable:s,voiceAvailable:o,isVideoOn:r.isVideoOn,textDraft:r.textDraft,setTextDraft:r.setTextDraft,setCaptions:r.setCaptions,reportFailure:r.reportFailure,clearFailure:r.clearFailure,setIsMuted:r.setIsMuted,setSessionActive:r.setSessionActive,setSessionPermissions:r.setSessionPermissions,setStatus:r.setStatus,setConnectPhase:r.setConnectPhase,setInputLevel:r.setInputLevel,setOutputLevel:r.setOutputLevel,setVideoPreview:r.setVideoPreview,setVideoFacingMode:r.setVideoFacingMode,setIsVideoOn:r.setIsVideoOn}),{callStarted:g,ended:_,pastCalls:v,startCall:y,handleEnd:b,handleRestart:x}=Nt(m,r.captionsRef,r.sessionActive,s),S=JSON.stringify(n.context);(0,J.useEffect)(()=>{d.current?.setContext(S===void 0?void 0:JSON.parse(S))},[d,S]);let C=JSON.stringify(n.slots);return(0,J.useEffect)(()=>{d.current?.setSlots(C===void 0?void 0:JSON.parse(C))},[d,C]),_t(e.tools.page,n.pageTools),{handle:e.identity.handle,traces:u,callStarted:g,pastCalls:v,captions:r.captions,failure:r.failure,sessionEnded:r.sessionEnded,levelsRef:r.levelsRef,isMuted:r.isMuted,isVideoOn:r.isVideoOn,sessionActive:r.sessionActive,liveState:l,activeTool:r.activeTool,status:r.status,textAvailable:c,textDraft:r.textDraft,toolActive:r.activeTool!==null||i.gatePrompt!==null,videoAvailable:s,videoFacingMode:r.videoFacingMode,videoPreview:r.videoPreview,voiceAvailable:o,canRestart:!r.sessionActive&&r.status!==`connecting`&&(r.everConnected||_||r.failure!==null),gatePrompt:i.gatePrompt,setTextDraft:r.setTextDraft,handleEnd:b,startCall:y,handleRestart:x,handleSendText:m.handleSendText,handleToggleMic:m.handleToggleMic,handleFlipCamera:m.handleFlipCamera,handleToggleVideo:m.handleToggleVideo,resolveGateDecision:i.resolveGateDecision}}var X=t(),Ft={0:`--spacing-0`,.5:`--spacing-0-5`,1:`--spacing-1`,1.5:`--spacing-1-5`,2:`--spacing-2`,3:`--spacing-3`,4:`--spacing-4`,5:`--spacing-5`,6:`--spacing-6`,8:`--spacing-8`,10:`--spacing-10`},Z={baseFlex:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kjj79g:`x1qughib`,$$css:!0},baseGrid:{k1xSpc:`xrvj5dj`,kumcoG:`x134kloy`,kGNEyG:`x6s0dn4`,$$css:!0},vertical:{kXwgrk:`xdt5ytf`,kGNEyG:`x1qjc9v5`,$$css:!0},startSlot:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,$$css:!0},centerSlot:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,k7Eaqz:`xeuugli`,$$css:!0},endSlot:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kjj79g:`x13a6bvl`,$$css:!0},startOnly:{kUk6DE:`x845mor`,$$css:!0},endOnly:{keTefX:`xvc5jky`,$$css:!0}},It={base:{kAzted:`x1gdqauq`,$$css:!0}},Q={gap:e=>[{kOIVth:e==null?e:`x1pidvrl`,$$css:!0},{"--x-gap":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}],tabIndicatorBottom:e=>[{"--_tab-indicator-bottom":e==null?e:`xbrl7fg`,$$css:!0},{"--x---_tab-indicator-bottom":e??void 0}]},Lt={sm:2,md:2,lg:2},Rt={sm:a[`--spacing-2`],md:a[`--spacing-2`],lg:a[`--spacing-2`]},$={sm:`calc(var(--container-padding-inline-start, ${a[`--spacing-4`]}) - ${a[`--spacing-2`]})`,md:`calc(var(--container-padding-inline-start, ${a[`--spacing-4`]}) - ${a[`--spacing-2`]})`,lg:`calc(var(--container-padding-inline-start, ${a[`--spacing-4`]}) - ${a[`--spacing-2`]})`};function zt({startContent:e,centerContent:t,endContent:i,label:s,size:c=`md`,gap:l=1,orientation:u=`horizontal`,variant:d=`transparent`,dividers:f,xstyle:p,className:m,style:h,ref:g,onKeyDown:_,onFocus:b,onBlur:C,role:w,"aria-label":T,"aria-orientation":ee,...E}){let D=t!=null,O=e!=null,k=i!=null,A=f?.includes(`bottom`)??!1,j=a[Ft[l]],{listRef:M,handleKeyDown:N,handleFocus:P}=y({itemSelector:`button, input, [tabindex]`,orientation:u,hasRovingTabIndex:!0,hasCaretGuard:!0}),{hintElement:F,onKeyDown:I,onFocus:L,onBlur:R}=o({orientation:u}),z=(0,J.useCallback)(e=>{_?.(e),!e.defaultPrevented&&(I(e),N(e))},[_,I,N]),B=(0,J.useCallback)(e=>{b?.(e),!e.defaultPrevented&&(L(e),P(e))},[b,L,P]),V=(0,J.useCallback)(e=>{C?.(e),!e.defaultPrevented&&R(e)},[C,R]);return(0,X.jsx)(x,{value:c,children:(0,X.jsx)(fe,{ref:g,variant:d,paddingBlock:Lt[c],dividers:f,xstyle:p,className:m,style:h,children:(0,X.jsxs)(`div`,{ref:M,role:`toolbar`,"aria-label":s,"aria-orientation":u,onKeyDown:z,onFocus:B,onBlur:V,...v(r(`toolbar`,{size:c}),n(D?Z.baseGrid:Z.baseFlex,u===`vertical`&&Z.vertical,It.base,Q.gap(j),A&&Q.tabIndicatorBottom(`calc(-1 * (${Rt[c]} + 1px))`))),...E,children:[D?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{...n(Z.startSlot,S.inset($[c]),Q.gap(j)),children:e}),(0,X.jsx)(`div`,{...n(Z.centerSlot,Q.gap(j)),children:t}),(0,X.jsx)(`div`,{...n(Z.endSlot,S.inset($[c]),Q.gap(j)),children:i})]}):(0,X.jsxs)(X.Fragment,{children:[O&&(0,X.jsx)(`div`,{...n(Z.startSlot,!k&&Z.startOnly,S.inset($[c]),Q.gap(j)),children:e}),k&&(0,X.jsx)(`div`,{...n(Z.endSlot,!O&&Z.endOnly,S.inset($[c]),Q.gap(j)),children:i})]}),F]})})})}zt.displayName=`Toolbar`;function Bt(e){return(0,X.jsx)(M,{children:(0,X.jsx)(Vt,{...e})})}function Vt({handle:e,captions:t,pastCalls:n,draftText:r,onDraftTextChange:i,onSubmit:a,isDisabled:o,showComposer:s=!0,leading:c}){let u=j(),f=u(`@theorem.agent.handle`,{handle:e}),{blocks:p,callStarts:m}=mt(n,t),h=u(`@theorem.live.new_session`),g=Object.fromEntries(m.map(e=>[e,h])),_=s?(0,X.jsx)(he,{handle:e,draftText:r,onDraftTextChange:i,onSubmit:a,isDisabled:o}):null;return(0,X.jsxs)(l,{height:`100%`,children:[c,(0,X.jsx)(d,{size:`fill`,children:p.length>0?(0,X.jsx)(T,{label:u(`@theorem.panel.captions.name`),children:(0,X.jsx)(De,{blocks:p,dividers:g,handle:f,streaming:ht(t)})}):(0,X.jsx)(l,{height:`100%`,vAlign:`center`,padding:4,children:(0,X.jsx)(de,{icon:(0,X.jsx)(b,{icon:Me,size:`lg`,color:`secondary`}),title:u(`@theorem.panel.captions.empty.title`),description:u(`@theorem.panel.captions.empty.description`),isCompact:!0})})}),_]})}var Ht=class{readyState=0;binaryType=`arraybuffer`;onopen=null;onmessage=null;onclose=null;onerror=null;outbound=new EventTarget;closeSession;queued=[];listening=!1;constructor(e,t,n){queueMicrotask(()=>{this.open(e,t,n)})}send(e){if(this.readyState!==1)throw new B(`network`,`Live connection is closed`);this.listening?this.outbound.dispatchEvent(new MessageEvent(`message`,{data:e})):this.queued.push(e)}close(){this.readyState!==3&&(this.readyState=3,this.queued=[],this.outbound.dispatchEvent(new Event(`close`)),this.closeSession?.(),this.emit(`onclose`,new CloseEvent(`close`)))}emit(e,t){let n=this[e];n?.(t)}async open(e,t,n){if(this.readyState===3)return;this.readyState=1,this.emit(`onopen`,new Event(`open`));let r;try{let i=await _(),a=n?.(i);r=i.studioTraces.route(e=>this.receive({type:`trace`,record:e}));let{scope:o,profile:s}=await i.studioScope(e.profile,e.customTools,e.structured,t);if(!t.providers?.vault)throw new B(`auth`,`Fill the vault slot this model names.`);let[c]=this.queued.splice(0,1);if(typeof c!=`string`)throw new B(`request`,`A live call must open with its open message`);let l=await o.runSession({...await(a?(await a.boundary).prepareLiveOpen(i.parseLiveOpenMessage(c)):Promise.resolve(i.liveSessionOpen(i.parseLiveOpenMessage(c)))),profile:s.id,metadata:r.metadata,signal:t.signal},{execution:t.execution??a?.execution,pageExecution:t.pageExecution??a?.pageExecution,vault:t.providers.vault,fetch:t.providers.fetch,wait:t.providers.wait,openWebSocket:t.providers.openWebSocket});if(this.closeSession=()=>l.close(`client disconnected`),this.readyState!==1){await this.closeSession(),r.close();return}await this.attach(i.attachStudioLiveSession,l,s.id,r,s.labels,a?{pageResult:a.pageResult,beforeEvent:async e=>{(e.type===`done`||e.type===`provider_checkpoint`)&&e.providerState&&await(await a.boundary).recordCheckpoint(e.providerState)}}:{})}catch(t){r?.close(),this.receive({type:`error`,...ie(t,e.profile.labels,ae)}),this.close()}}async attach(e,t,n,r,i,a={}){let o=e({send:e=>{typeof e==`string`&&this.receive(JSON.parse(e))},close:()=>this.close(),addEventListener:this.outbound.addEventListener.bind(this.outbound)},t,n,crypto.randomUUID(),r,i,{...a,clientEvents:ae});this.closeSession=void 0,this.listening=!0;for(let e of this.queued.splice(0))this.outbound.dispatchEvent(new MessageEvent(`message`,{data:e}));await o}receive(e){this.readyState===1&&this.emit(`onmessage`,new MessageEvent(`message`,{data:JSON.stringify(e)}))}};function Ut(e,t){let n,r=t.execution?void 0:e=>n??=e.browserExecution();return{createSocket:()=>new Ht(e,t,r)}}var Wt=720,Gt=320;function Kt({theme:e,mode:t,labels:n,...r}){return(0,X.jsx)(g,{theme:e,mode:t,children:(0,X.jsx)(M,{labels:n,children:(0,X.jsx)(qt,{...r})})})}function qt({iface:e,connection:t,trace:n,slots:r,context:i,pageTools:a}){let o=j(),u=Pt(e,t,{slots:r,context:i,pageTools:a}),d=(0,J.useRef)(null),f=F(e,u.traces,n),p=D(d,!0),m={name:o(`@theorem.panel.captions.name`),show:o(`@theorem.panel.captions.show`),hide:o(`@theorem.panel.captions.hide`),resize:o(`@theorem.panel.captions.resize`)},h=(0,X.jsx)(ee,{labels:m,icon:(0,X.jsx)(b,{icon:Ce}),panelId:p.id,open:p.open,onToggle:p.toggle});return u.callStarted?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(I,{inspector:f,children:(0,X.jsx)(c,{ref:d,height:`fill`,header:(0,X.jsx)(O,{children:f.toggle}),content:(0,X.jsx)(s,{padding:0,children:(0,X.jsx)(c,{height:`fill`,end:(0,X.jsx)(E,{id:p.id,labels:m,resizable:p.resizable,open:p.open,children:(0,X.jsx)(Qt,{model:u})}),content:(0,X.jsx)(s,{padding:0,children:(0,X.jsx)(l,{height:`100%`,paddingInline:3,paddingBlockEnd:4,children:(0,X.jsx)(Yt,{model:u,captionsToggle:h})})})})})})}),(0,X.jsx)(rn,{prompt:u.gatePrompt,agent:o(`@theorem.agent.handle`,{handle:u.handle}),onResolve:u.resolveGateDecision})]}):(0,X.jsx)(I,{inspector:f,children:(0,X.jsx)(c,{ref:d,height:`fill`,header:(0,X.jsx)(O,{children:f.toggle}),content:(0,X.jsx)(s,{padding:0,children:(0,X.jsx)(Jt,{model:u})})})})}function Jt({model:e}){let t=j();return(0,X.jsx)(l,{minHeight:`100%`,vAlign:`center`,gap:8,paddingInline:3,children:(0,X.jsx)(R,{axis:`horizontal`,width:`100%`,children:(0,X.jsxs)(l,{width:`100%`,maxWidth:we,gap:8,children:[(0,X.jsxs)(l,{gap:1,children:[(0,X.jsx)(k,{type:`large`,as:`h2`,children:t(`@theorem.agent.handle`,{handle:e.handle})}),(0,X.jsx)(k,{type:`display-2`,as:`h1`,children:t(`@theorem.live.greeting`)})]}),(0,X.jsxs)(u,{gap:2,wrap:`wrap`,children:[(0,X.jsx)(C,{label:t(e.voiceAvailable?`@theorem.live.start_voice_call`:`@theorem.live.start_call`),variant:`primary`,icon:(0,X.jsx)(b,{icon:W}),onClick:()=>e.startCall({video:!1})}),e.videoAvailable?(0,X.jsx)(C,{label:t(`@theorem.live.start_video_call`),variant:`secondary`,icon:(0,X.jsx)(b,{icon:Pe}),onClick:()=>e.startCall({video:!0})}):null]})]})})})}function Yt({model:e,captionsToggle:t}){let n=j(),r=Xt();return(0,X.jsx)(l,{ref:r,height:`100%`,hAlign:`center`,children:(0,X.jsxs)(l,{width:`100%`,maxWidth:Wt,height:`100%`,gap:3,children:[(0,X.jsxs)(l,{gap:.5,children:[(0,X.jsx)(k,{type:`label`,color:`secondary`,children:n(`@theorem.agent.handle`,{handle:e.handle})}),(0,X.jsx)(k,{size:`sm`,color:`secondary`,children:A(n,e.liveState,e.activeTool)})]}),e.failure?(0,X.jsx)(L,{status:`error`,role:`alert`,title:e.failure.error}):null,e.sessionEnded?(0,X.jsx)(L,{status:`info`,role:`status`,title:e.sessionEnded}):null,(0,X.jsx)(d,{size:`fill`,children:(0,X.jsx)(l,{height:`100%`,vAlign:`end`,children:(0,X.jsx)(l,{width:`100%`,height:Gt,style:{color:`var(--color-icon-primary)`},"aria-hidden":`true`,children:(0,X.jsx)(pe,{status:e.status,levelsRef:e.levelsRef,toolActive:e.toolActive,variant:`hero`})})})}),(0,X.jsx)(Zt,{model:e,captionsToggle:t})]})})}function Xt(){let e=(0,J.useRef)(null);return(0,J.useLayoutEffect)(()=>{let t=e.current;if(!t||globalThis.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches)return;let n=getComputedStyle(t),r=Number.parseFloat(n.getPropertyValue(`--duration-medium`))||410;t.animate([{opacity:0,transform:`translateY(8px)`},{opacity:1,transform:`none`}],{duration:r,easing:n.getPropertyValue(`--ease-standard`).trim()||`ease-out`})},[]),e}function Zt({model:e,captionsToggle:t}){let n=j(),r=!e.sessionActive,i=[];return e.voiceAvailable&&i.push((0,X.jsx)(U,{label:n(`@theorem.live.microphone`),tooltip:n(e.isMuted?`@theorem.live.unmute`:`@theorem.live.mute`),isIconOnly:!0,isPressed:!e.isMuted,isDisabled:r,icon:(0,X.jsx)(b,{icon:p}),pressedIcon:(0,X.jsx)(b,{icon:Ae}),onPressedChange:e.handleToggleMic},`mic`)),e.videoAvailable&&(i.push((0,X.jsx)(U,{label:n(`@theorem.live.camera`),tooltip:n(e.isVideoOn?`@theorem.live.camera_off`:`@theorem.live.camera_on`),isIconOnly:!0,isPressed:e.isVideoOn,isDisabled:r,icon:(0,X.jsx)(b,{icon:Pe}),pressedIcon:(0,X.jsx)(b,{icon:Ne}),onPressedChange:()=>{e.handleToggleVideo()}},`video`)),e.isVideoOn&&i.push((0,X.jsx)(w,{label:n(`@theorem.live.flip_camera`),tooltip:n(`@theorem.live.flip_camera`),variant:`ghost`,isDisabled:r,icon:(0,X.jsx)(b,{icon:ke}),onClick:()=>{e.handleFlipCamera()}},`flip`))),i.push((0,X.jsx)(J.Fragment,{children:t},`captions`),e.canRestart?(0,X.jsx)(w,{label:n(`@theorem.live.start_call`),tooltip:n(`@theorem.live.start_call`),variant:`primary`,icon:(0,X.jsx)(b,{icon:W}),onClick:()=>{e.handleRestart()}},`call`):(0,X.jsx)(w,{label:n(`@theorem.live.end_call`),tooltip:n(`@theorem.live.end_call`),variant:`destructive`,isDisabled:r,icon:(0,X.jsx)(b,{icon:je}),onClick:e.handleEnd},`call`)),(0,X.jsx)(zt,{label:n(`@theorem.live.controls`),dividers:[`top`],centerContent:(0,X.jsx)(u,{gap:2,vAlign:`center`,children:i})})}function Qt({model:e}){return(0,X.jsx)(Bt,{handle:e.handle,captions:e.captions,pastCalls:e.pastCalls,draftText:e.textDraft,onDraftTextChange:e.setTextDraft,onSubmit:e.handleSendText,isDisabled:!e.sessionActive,showComposer:e.textAvailable,leading:e.videoPreview?(0,X.jsx)($t,{video:e.videoPreview,facingMode:e.videoFacingMode}):null})}function $t({video:e,facingMode:t}){let n=j(),r=(0,J.useRef)(null);return(0,J.useEffect)(()=>{let t=r.current;if(t)return Object.assign(e.style,{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}),t.replaceChildren(e),()=>{e.parentElement===t&&t.removeChild(e)}},[e]),(0,J.useEffect)(()=>{e.style.transform=t===`user`?`scaleX(-1)`:``},[e,t]),(0,X.jsx)(me,{ratio:4/3,fit:`cover`,children:(0,X.jsx)(`div`,{ref:r,"aria-label":n(`@theorem.live.camera_preview`),role:`img`})})}var en=4,tn=432,nn={background:`transparent`,boxShadow:`none`};function rn({prompt:e,agent:t,onResolve:n}){return(0,X.jsx)(N,{isOpen:e!==null,purpose:`required`,width:tn,padding:en,style:nn,onOpenChange:e=>{e||n({action:`deny`})},children:e?e.gate.kind===`auth`?(0,X.jsx)(ye,{gate:e.gate,toolName:e.gate.tool,onAuthenticated:e=>{n({action:`auth`,secret:e})}}):(0,X.jsx)(Oe,{gate:e.gate,toolName:e.gate.tool,agent:t,input:e.input,onDecision:e=>{n({action:e})}}):null})}function an({runtime:e,...t}){let{payload:n}=t;return(0,X.jsx)(sn,{...t,connect:()=>e?Ut(n,e):_e(n)})}function on({endpoint:e,...t}){return(0,X.jsx)(sn,{...t,connect:()=>({createSocket:()=>new WebSocket(e.replace(/^http/,`ws`))})})}function sn({payload:e,note:t,connect:n,trace:r,slots:i,context:a}){let o=(0,J.useMemo)(()=>m(e),[e]),s=(0,J.useMemo)(()=>ge(e),[e]);return o.type===`live`?(0,X.jsx)(Kt,{labels:ve,iface:o,connection:()=>(t(),n()),trace:r,slots:i,context:a,pageTools:s}):null}export{on as ProjectLive,an as StudioLive};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,u as n}from"./themeProps-3IqahpCr.js";import{v as r}from"./groupStyles-C7Ter7zC.js";import{t as i}from"./Icon-JrysT8aU.js";import{r as a,t as o}from"./IconButton-DlOGzJIX.js";import{t as s}from"./Text-bum6zWWx.js";import{t as c}from"./createReactComponent-CZwsv6DD.js";import{n as l,t as u}from"./ScrollableArea-Ckugdj1N.js";import{n as d,t as f}from"./Center-nHS1JSux.js";import{t as p}from"./IconEye-BB5aY-wQ.js";import{t as m}from"./IconSearch-BTx66a40.js";import{r as h,s as g,t as _}from"./tree-DeO1319a.js";import{P as v,i as y}from"./workspace-Ck0o-_fd.js";import{t as b}from"./EmptyState-C8W4JKBZ.js";import{t as x}from"./ContextMenu-DC-bBIii.js";import{B as S,Ct as C,Ft as w,J as T,Pt as E,R as D,St as O,V as k,_t as A,bt as j,d as M,n as N,u as P,vt as F,xt as I,yt as L,z as R}from"./index-DqeZ3mcO.js";var z=c(`outline`,`arrows-maximize`,`ArrowsMaximize`,[[`path`,{d:`M16 4l4 0l0 4`,key:`svg-0`}],[`path`,{d:`M14 10l6 -6`,key:`svg-1`}],[`path`,{d:`M8 20l-4 0l0 -4`,key:`svg-2`}],[`path`,{d:`M4 20l6 -6`,key:`svg-3`}],[`path`,{d:`M16 20l4 0l0 -4`,key:`svg-4`}],[`path`,{d:`M14 14l6 6`,key:`svg-5`}],[`path`,{d:`M8 4l-4 0l0 4`,key:`svg-6`}],[`path`,{d:`M4 4l6 6`,key:`svg-7`}]]),B=c(`outline`,`arrows-minimize`,`ArrowsMinimize`,[[`path`,{d:`M5 9l4 0l0 -4`,key:`svg-0`}],[`path`,{d:`M3 3l6 6`,key:`svg-1`}],[`path`,{d:`M5 15l4 0l0 4`,key:`svg-2`}],[`path`,{d:`M3 21l6 -6`,key:`svg-3`}],[`path`,{d:`M19 9l-4 0l0 -4`,key:`svg-4`}],[`path`,{d:`M15 9l6 -6`,key:`svg-5`}],[`path`,{d:`M19 15l-4 0l0 4`,key:`svg-6`}],[`path`,{d:`M15 15l6 6`,key:`svg-7`}]]),V=c(`outline`,`focus-2`,`Focus2`,[[`path`,{d:`M11.5 12a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0`,fill:`currentColor`,key:`svg-0`}],[`path`,{d:`M5 12a7 7 0 1 0 14 0a7 7 0 1 0 -14 0`,key:`svg-1`}],[`path`,{d:`M12 3l0 2`,key:`svg-2`}],[`path`,{d:`M3 12l2 0`,key:`svg-3`}],[`path`,{d:`M12 19l0 2`,key:`svg-4`}],[`path`,{d:`M19 12l2 0`,key:`svg-5`}]]),H=c(`outline`,`layout-grid`,`LayoutGrid`,[[`path`,{d:`M4 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4`,key:`svg-0`}],[`path`,{d:`M14 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4`,key:`svg-1`}],[`path`,{d:`M4 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4`,key:`svg-2`}],[`path`,{d:`M14 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4`,key:`svg-3`}]]);function U(e,t,n){let r=e=>{let r=t.flatMap(({from:t,to:n})=>t===e.id?[n]:n===e.id?[t]:[]).flatMap(e=>n.get(e)??[]);return r.length===0?1/0:r.reduce((e,t)=>e+t,0)/r.length},i=new Map(e.map(e=>[e.id,r(e)])),a=e=>i.get(e.id)??1/0;return[...e].sort((e,t)=>a(e)===a(t)?0:a(e)-a(t))}function W(e,t,n){return t===`models`?e.modelBindings.map(e=>e.modelId||`New model`).join(`, `):t===`tools`?String(e.tools.allow.filter(e=>n.has(e)).length):t===`outputs`?e.outputs.mode:``}function G(e,t=[]){let n=[],r=new Map(e.agents.map(e=>[e.key,y(e.key)])),i=new Map(e.toolSpecs.map(e=>[e.key,g(e.key)])),a=v(e),o=e.agents.map((e,t)=>{let{agentId:n,profileType:r,handle:o}=e.identity,s=r||`text`;return{id:y(e.key),kind:`agent`,label:n||`New agent`,note:o?`${s} · ${o}`:s,opens:y(e.key),type:s,rows:(a.agents[t]?.children??[]).map(t=>({id:t.id,label:t.label,note:W(e,t.ref.facet,i),opens:t.id,type:t.ref.facet}))}}),s=new Set(o.flatMap(e=>e.rows??[]).map(e=>e.id)),c=(e,t)=>{let n=y(e,t);return s.has(n)?n:y(e)},l=new Map,u=new Map(e.providers.map(e=>[e.id,e.definition])),d=new Map;for(let t of e.agents){let e=c(t.key,`models`);for(let i of t.modelBindings){let a=`model:${i.provider}:${i.apiId}:${i.modelId}`,o=h(i.provider);l.has(o)||l.set(o,{id:o,kind:`provider`,label:i.provider,note:``,opens:u.has(i.provider)?o:y(t.key,_(i.key))});let s=y(t.key,_(i.key)),c=d.get(a);c?c.holds?.push(s):(d.set(a,{id:a,kind:`model`,label:i.modelId||`New model`,note:i.apiId,type:u.get(i.provider),opens:s,holds:[s]}),n.push({from:o,to:a,kind:`serves`})),n.some(t=>t.from===a&&t.to===e)||n.push({from:a,to:e,kind:`runs`});let f=i.compactWith?r.get(i.compactWith):void 0,p=n.some(t=>t.kind===`summarised`&&t.from===e);f&&f!==y(t.key)&&!p&&n.push({from:e,to:f,kind:`summarised`})}for(let e of t.tools.allow){let r=i.get(e);r&&n.push({from:c(t.key,`tools`),to:r,kind:`allows`})}}let f=e.toolSpecs.map(e=>{let t=g(e.key),i=e.toolType===`agent`?r.get(e.agentKey??``):void 0;return i&&n.push({from:t,to:i,kind:`asks`}),{id:t,kind:`tool`,label:e.toolName||`New tool`,note:e.description,opens:t,type:e.toolType}}),p=t.map(t=>{let{setting:i,facet:a}=t,o=`shared:${i.file}:${i.name}`,s=t.agents.filter(e=>r.has(e)),l=i.tools.flatMap(t=>{let n=e.toolSpecs.find(e=>e.toolName===t);return n?[g(n.key)]:[]});for(let e of s)n.push({from:o,to:a?c(e,a):y(e),kind:`sets`});for(let e of l)n.push({from:o,to:e,kind:`sets`});return{id:o,kind:`shared`,label:i.label,note:`${i.name} · ${i.file}:${String(i.line)}`,opens:T(t)??l[0],type:a}}),m=new Map(o.flatMap((e,t)=>[e.id,...(e.rows??[]).map(e=>e.id)].map(e=>[e,t])));for(let e of d.values())[...d.values()].some(t=>t!==e&&t.label===e.label)&&e.note&&(e.long=`${e.label} · ${e.note}`);let b=U([...d.values()],n,m),x=new Map(b.map((e,t)=>[e.id,t])),S=(...e)=>e.filter(e=>e.nodes.length>0);return{columns:[S({label:`Providers`,nodes:U([...l.values()],n,x)}),S({label:`Shared settings`,nodes:U(p,n,m)},{label:`Models`,nodes:b}),S({label:`Profiles`,nodes:o}),S({label:`Tools`,nodes:U(f,n,m)})].filter(e=>e.length>0),links:n}}function K(e){let t=e.columns.flat().flatMap(e=>e.nodes);return new Map(t.flatMap(e=>[e.id,...(e.rows??[]).map(e=>e.id)].map(t=>[t,e])))}function q(e){let t=K(e);return e.links.flatMap(e=>{let n=t.get(e.from)?.id,r=t.get(e.to)?.id;return n!==void 0&&r!==void 0?[{link:e,from:n,to:r}]:[]})}function ee(e,t){let n=t.trim().toLowerCase();return n===``?[]:e.columns.flat().flatMap(e=>e.nodes).filter(e=>[e.label,e.long??``,e.note].some(e=>e.toLowerCase().includes(n))).map(e=>e.id)}function te(e,t){let n=typeof t==`string`?[t]:t,r=q(e),i=(e,t)=>{let i=new Set(n),a=[...n];for(let n=a.pop();n!==void 0;n=a.pop())for(let o of r)o[e]!==n||i.has(o[t])||(i.add(o[t]),a.push(o[t]));return i},a=new Set([...i(`to`,`from`),...i(`from`,`to`)]),o=e.columns.map(e=>e.map(e=>({...e,nodes:e.nodes.filter(e=>a.has(e.id))})).filter(e=>e.nodes.length>0)).filter(e=>e.length>0),s=new Set(r.filter(({from:e,to:t})=>a.has(e)&&a.has(t)).map(({link:e})=>e));return{columns:o,links:e.links.filter(e=>s.has(e))}}var ne={serves:[`Serves`,`Served by`],sets:[`Sets`,`Set by`],runs:[`Runs`,`Runs on`],allows:[`Allows`,`Allowed by`],asks:[`Asks`,`Asked by`],summarised:[`Summarised by`,`Summarises for`]};function re(e,t){let n=K(e),r=new Map;for(let{link:i,from:a,to:o}of q(e)){if(a!==t&&o!==t)continue;let e=ne[i.kind][a===t?0:1],s=n.get(a===t?o:a)?.label;s!==void 0&&r.set(e,[...r.get(e)??[],s])}return[...r].map(([e,t])=>`${e} ${t.join(`, `)}.`).join(` `)}function ie(e){return e.kind===`tool`||e.kind===`shared`?2:1}var ae=24,J=8,Y=16;function oe(e,t,n){let r=new Map,i=(e,t)=>`${e}:${String(t)}`;return q(e).flatMap(({link:e})=>{let[a,o]=[t(e.from),t(e.to)];if(a===void 0||o===void 0||Math.abs(a-o)<n)return[];let s=a<o?1:-1;for(let t of[i(e.from,s),i(e.to,-s)])r.set(t,(r.get(t)??0)+1);return[{link:e,way:s}]}).map(({link:e,way:t})=>{let[n,a]=[i(e.from,t),i(e.to,-t)],o=(r.get(n)??0)>=(r.get(a)??0);return{link:e,way:t,leaves:o,hub:o?n:a}})}function se(e,t,n={}){let{node:r,card:i,columnGap:a,rowGap:o,heading:s,groupGap:c,padding:l,lineGap:u}=t,{moved:d={},widths:f={},detail:p=!1}=n,m=new Map;e.columns.forEach((e,t)=>{for(let n of e)for(let e of n.nodes)if(!Object.hasOwn(d,e.id))for(let n of[e.id,...(e.rows??[]).map(e=>e.id)])m.set(n,t)});let h=t=>{let n={},a=[],u=[],m=new Map,h=0,g=0;return e.columns.forEach((e,_)=>{let v=t[_]??l,y=l;e.forEach((e,t)=>{t>0&&(y+=c),a.push({label:e.label,x:v,y}),u.push({id:`heading:${_}:${t}`,x:v,y,width:r.width,height:s}),y+=s;for(let t of e.nodes){let e=p?t.rows??[]:[],a=e.length>0||t.note!==``,s=p&&(e.length>0||ie(t)===1)?i.head:r.height,c=p&&!a?i.row:s,l=e.length>0?i.head+e.length*i.row+i.foot:c,_=Math.min(f[t.id]??r.width,r.width),b=Object.hasOwn(d,t.id)?d[t.id]:void 0,x=b?{x:Math.max(b.x,0),y:Math.max(b.y,0)}:{x:v,y};n[t.id]={...x,height:l},u.push({id:t.id,...x,width:_,height:l});let S={left:x.x,right:x.x+_,y:x.y+(p?i.row:c)/2};m.set(t.id,S);for(let[e,n]of(t.rows??[]).entries())m.set(n.id,p?{...S,y:x.y+i.head+e*i.row+i.row/2}:S);h=Math.max(h,x.x+r.width),g=Math.max(g,x.y+l),y+=l+o}y-=o})}),{nodes:n,headings:a,boxes:u,ports:m,right:h,bottom:g}},g=(e,t,n)=>{let{way:i,leaves:a}=e,o={x:i>0?t.right+u:t.left-u,y:t.y},s={x:i>0?n.left-u:n.right+u,y:n.y},c=i>0?Math.max(t.left+r.width,t.right)+u:o.x,l=i>0?s.x:Math.max(n.left+r.width,n.right)+u,d=a?l:c,f=a?-i:i;return{start:o,end:s,side:d,into:f,room:Math.abs(l-c),strip:`${String(d)}:${String(f)}`}},_=t=>{let n=new Map(oe(e,e=>t.get(e)?.left,r.width).map(e=>[e.link,e])),i=new Map;for(let e of n.values()){let n=t.get(e.link.from),r=t.get(e.link.to);if(!n||!r||n.y===r.y)continue;let{strip:a}=g(e,n,r),o=i.get(a)??new Map,s=e.leaves?e.link.to:e.link.from,c=o.get(e.hub)??{y:e.leaves?n.y:r.y,joins:[],beside:s};c.joins.push(e.leaves?r.y:n.y),i.set(a,o.set(e.hub,c))}let a=new Map,o=new Map;for(let[e,t]of i){let n=e=>e.reduce((e,t)=>e+t,0)/e.length,r=[...t.values()],i=n(r.flatMap(e=>e.joins))>=n(r.map(e=>e.y)),s=[];for(let[n,r]of[...t].sort(([,e],[,t])=>i?e.y-t.y:t.y-e.y)){let t=Math.min(r.y,...r.joins)-J,i=Math.max(r.y,...r.joins)+J,o=s.findIndex(e=>e.every(e=>i<e.low||t>e.high)),c=o<0?s.length:o;s[c]=[...s[c]??[],{low:t,high:i}],a.set(`${e}:${n}`,c)}let[c]=r;c&&o.set(e,{count:s.length,beside:c.beside,into:Number(e.split(`:`)[1])})}return{spans:n,rails:a,held:o}},v=e.columns.map((e,t)=>l+t*(r.width+a)),y=e.columns.map(()=>0);for(let{count:e,beside:t,into:n}of _(h(v).ports).held.values()){let r=m.get(t);if(r===void 0)continue;let i=n>0?r:r-1;i>=0&&i<y.length&&(y[i]=(y[i]??0)+e+1)}let b=[l];for(let[e,t]of y.entries())b.push((b[e]??l)+r.width+Math.max(a,t*Y));let x=h(b),{nodes:S,headings:w,boxes:T,ports:E}=x,{right:D,bottom:k}=x,{spans:A,rails:j}=_(E),M=a/2,N=Math.max(o/2,u),P=[],F=new Map,I=Math.max(a,...y.map(e=>e*Y)),L=q(e).flatMap(({link:e,from:t,to:n})=>{let i=E.get(e.from),o=E.get(e.to);if(!i||!o)return[];let s=T.filter(e=>e.id!==t&&e.id!==n);if(Math.abs(i.left-o.left)<r.width){let r=i.right+u,a=o.right+u,c=s.filter(e=>e.y<Math.max(i.y,o.y)&&e.y+e.height>Math.min(i.y,o.y)&&e.x<Math.max(r,a)+M&&e.x+e.width>Math.min(i.left,o.left)),l=Math.max(r,a,...c.map(e=>e.x+e.width))+M;return D=Math.max(D,l),[{link:e,from:t,to:n,d:O({x:r,y:i.y},{x:a,y:o.y},l).d}]}let c=A.get(e);if(!c)return[];let{way:l,leaves:d,hub:f}=c,{start:p,end:m,side:h,into:_,room:v,strip:y}=g(c,i,o),b=h+_*Math.min((1+(j.get(`${y}:${f}`)??0))*Y,Math.max(v-Y,0)),x=v<32?O(p,m):C(p,m,b,J),S=(e,t)=>t>e.y-N&&t<e.y+e.height+N,w=Math.abs(m.x-p.x)<I+a?[]:s.filter(e=>Array.from({length:23},(e,t)=>x.at((t+1)/ae)).some(t=>t.x>e.x&&t.x<e.x+e.width&&S(e,t.y)));if(w.length===0)return[{link:e,from:t,to:n,d:x.d}];let[L,R]=[Math.min(p.x,m.x),Math.max(p.x,m.x)],z=e=>{let t=[...w];for(;;){let n=e<0?Math.min(...t.map(e=>e.y))-N:Math.max(...t.map(e=>e.y+e.height))+N,r=[...s,...P].filter(e=>!t.includes(e)&&e.x<R&&e.x+e.width>L&&S(e,n));if(r.length===0)return n;t.push(...r)}},B=e=>Math.abs(i.y-e)+Math.abs(o.y-e),V=`${f}:${y}`,H=F.get(V)??(()=>{let[e,t]=[z(-1),z(1)],n=e>=0&&B(e)<=B(t)?e:t;return P.push({id:``,x:L,y:n-J+N,width:R-L,height:2*(J-N)}),F.set(V,n),n})();k=Math.max(k,H);let U=d?p.x+l*Y:b,W=d?b:m.x-l*Y,G={x:(U+W)/2,y:H};return[{link:e,from:t,to:n,d:C(p,G,U,J).d+C(G,m,W,J).d.replace(/^M \S+ \S+/,``)}]});return{width:Math.max((b[Math.max(e.columns.length-1,0)]??l)+r.width,D)+l,height:Math.max(k,l)+l,nodes:S,headings:w,lines:L}}var X=e(n(),1),ce={tokens:{},detail:{},expanded:!1},Z=e=>e===void 0?`${D}.map`:`${D}.map.project:${e}`;function le(e){if(!R(e))return{};let t={};for(let[n,r]of Object.entries(e))R(r)&&typeof r.x==`number`&&typeof r.y==`number`&&(t[n]={x:r.x,y:r.y});return t}function ue(e){try{let t=JSON.parse(S()?.getItem(Z(e))??`null`);return R(t)?{tokens:le(t.tokens),detail:le(t.detail),expanded:t.expanded===!0,...typeof t.family==`string`?{family:t.family}:{}}:ce}catch{return ce}}function de(e,t){let{tokens:n,detail:r,expanded:i,family:a}=t,o=Object.keys(n).length===0&&Object.keys(r).length===0&&!i&&a===void 0;try{o?S()?.removeItem(Z(e)):S()?.setItem(Z(e),JSON.stringify(t))}catch{}}function fe(e){for(let t=e.parentElement;t;t=t.parentElement){let{overflowX:e,overflowY:n}=getComputedStyle(t);if(/auto|scroll/.test(`${e} ${n}`))return t}}function pe(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect();return{left:n.left-r.left+t.scrollLeft,top:n.top-r.top+t.scrollTop}}function me(e,t){let n=0,r=120,i=()=>{--r;let a=fe(e);if(a&&a.scrollWidth>a.clientWidth){let{left:e,top:n}=t(a);if(a.scrollTo({left:e,top:n,behavior:`instant`}),Math.abs(a.scrollLeft-e)<1&&Math.abs(a.scrollTop-n)<1)return}r>0&&(n=requestAnimationFrame(i))};return i(),()=>{cancelAnimationFrame(n)}}var he=e=>e.button===0&&e.pointerType!==`touch`;function ge(e,t,n){let{pointerId:r,clientX:i,clientY:a}=e,o=e=>{e.pointerId===r&&t(e.clientX-i,e.clientY-a)},s=e=>{e.pointerId===r&&(globalThis.removeEventListener(`pointermove`,o),globalThis.removeEventListener(`pointerup`,s),globalThis.removeEventListener(`pointercancel`,s),n(e.type===`pointerup`))};globalThis.addEventListener(`pointermove`,o),globalThis.addEventListener(`pointerup`,s),globalThis.addEventListener(`pointercancel`,s)}function _e(e){let[t,n]=(0,X.useState)(!1);return{panning:t,pan:t=>{if(!he(t)||t.target.closest(e))return;let r=fe(t.currentTarget);if(!r)return;let{scrollLeft:i,scrollTop:a}=r;n(!0),ge(t,(e,t)=>{r.scrollTo({left:i-e,top:a-t,behavior:`instant`})},()=>{n(!1)})}}}var Q=t(),ve={node:{width:240,height:24},card:{head:60,row:28,foot:4},columnGap:96,rowGap:6,heading:24,groupGap:16,padding:24,lineGap:8},ye={...ve,node:{width:240,height:84}},be=28;function xe(e){return e.length>be?`${e.slice(0,27)}…`:e}function Se({kind:e,type:t,note:n}){return(e===`agent`?j(t):void 0)||(e===`tool`?I(t??``):e===`model`&&t===`typesafe`?P:e===`model`?M(n)??N.modelBinding:e===`provider`?w:e===`shared`&&t&&Object.hasOwn(N,t)?N[t]:e===`agent`?L.text:E)}function Ce(e){return Object.hasOwn(N,e)?N[e]:E}function $(e,t){return e.kind===`agent`?t===e.id||t.startsWith(`${e.id}/`):e.kind===`model`?e.holds?.includes(t)??!1:e.kind===`tool`&&t===e.id}var we=4,Te=24,Ee={ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0},ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1}};function De(e){let t=k()?.name,[n,r]=(0,X.useState)(()=>ue(t)),i=e=>{r(e),de(t,e)},{expanded:a}=n,o=e.columns.flat().some(e=>e.nodes.some(e=>e.id===n.family))?n.family:void 0,s=(0,X.useMemo)(()=>o===void 0?e:te(e,o),[e,o]),[c,l]=(0,X.useState)({}),u=a?`detail`:`tokens`;return{expanded:a,family:o,map:s,moved:o===void 0?n[u]:c,put(e,t){o===void 0?t?i({...n,[u]:e}):r({...n,[u]:e}):l(e)},showFamily(e){l({});let{tokens:t,detail:r}=n;i({tokens:t,detail:r,expanded:a,...e===void 0?{}:{family:e}})},expand(){i({...n,expanded:!a})}}}function Oe(e,t,n){let r=(0,X.useRef)(!1),[i,a]=(0,X.useState)();return{dragging:i,draggable:i=>({onPointerDown:o=>{r.current=!1;let s=e.nodes[i];if(!s||!he(o))return;let c;ge(o,(e,r)=>{!c&&Math.hypot(e,r)<we||(c||a(i),c={...t,[i]:{x:Math.max(s.x+e,0),y:Math.max(s.y+r,0)}},n(c,!1))},e=>{c&&(r.current=e,globalThis.setTimeout(()=>{r.current=!1},0),a(void 0),n(c,!0))})},onClickCapture:e=>{r.current&&(r.current=!1,e.stopPropagation(),e.preventDefault())},onKeyDown:r=>{let a=r.altKey?Ee[r.key]:void 0,o=e.nodes[i];if(!a||!o)return;r.preventDefault();let s=Math.max(o.x+a.x*Te,0),c=Math.max(o.y+a.y*Te,0);n({...t,[i]:{x:s,y:c}},!0)}})}}function ke(e){let[t,n]=(0,X.useState)(),[r,i]=(0,X.useMemo)(()=>{let n=new Set,r=new Set;if(t===void 0)return[n,r];n.add(t);for(let{link:i,from:a,to:o}of e.lines)if([i.from,i.to,a,o].includes(t)){r.add(i);for(let e of[i.from,i.to,a,o])n.add(e)}return[n,r]},[e,t]);return{lit:t,on:r,onLines:i,lights:e=>({onPointerEnter:()=>{n(e)},onPointerLeave:()=>{n(void 0)},onFocus:()=>{n(e)},onBlur:()=>{n(void 0)}})}}function Ae(e,t,n){let r=(0,X.useRef)(n.place);r.current=n.place;let{sizes:i}=n;(0,X.useEffect)(()=>{let n=e.current;if(!n)return;let a=r.current,o=t===void 0?a:void 0;return me(n,e=>{let t=o!==void 0&&(o.x+i.node.width>e.clientWidth||o.y+o.height>e.clientHeight),{left:r,top:a}=pe(n,e);return{left:r+(t?o.x-i.padding:0),top:a+(t?o.y-i.padding-i.heading:0)}})},[e,t,i])}function je(e,t,n){let{family:r,expanded:i,isMoved:a,showFamily:o,expand:s,tidy:c}=n,l=[];e&&e.id!==r&&l.push({label:`Show only its family`,icon:V,onClick:()=>{o(e.id)}});let u=e?.opens;u!==void 0&&l.push({label:`Open`,icon:d,onClick:()=>{t(u)}}),e&&l.push({type:`divider`});let f={label:`Show everything`,icon:p,onClick:()=>{o(void 0)}};return[...l,...r===void 0?[]:[f],{label:i?`Collapse`:`Expand`,icon:i?B:z,onClick:s},{label:`Tidy`,icon:H,isDisabled:!a,onClick:c}]}function Me({actions:e,query:t,onQuery:n,onClose:s}){let{family:c,expanded:u,isMoved:d,showFamily:f,expand:h,tidy:g}=e;return(0,Q.jsxs)(`div`,{className:`studio-map-tools`,children:[(0,Q.jsx)(l,{label:`Search the map`,isLabelHidden:!0,size:`sm`,width:200,placeholder:`Search`,startIcon:m,hasClear:!0,value:t,onChange:n}),c!==void 0&&(0,Q.jsx)(a,{label:`Show everything`,variant:`ghost`,size:`sm`,icon:(0,Q.jsx)(i,{icon:p,size:`sm`}),onClick:()=>{f(void 0)}}),d&&(0,Q.jsx)(a,{label:`Tidy`,variant:`ghost`,size:`sm`,icon:(0,Q.jsx)(i,{icon:H,size:`sm`}),onClick:g}),(0,Q.jsx)(o,{label:u?`Collapse`:`Expand`,variant:`ghost`,size:`sm`,icon:(0,Q.jsx)(i,{icon:u?B:z,size:`sm`}),tooltip:u?`Show each node as a token`:`Show sections and descriptions`,onClick:h}),(0,Q.jsx)(o,{label:`Close map`,variant:`ghost`,size:`sm`,icon:(0,Q.jsx)(i,{icon:r,size:`sm`}),tooltip:`Close the map`,onClick:s})]})}function Ne({node:e,on:t,isFound:n,isDragging:r}){let i=t.has(e.id)||(e.rows??[]).some(e=>t.has(e.id));return{"data-map-node":e.id,"data-on":i?``:void 0,"data-found":n?``:void 0,"data-dragging":r?``:void 0}}function Pe(e){let{node:t,place:n,joins:r,selected:i,onOpen:a,lights:o,drag:s}=e,{opens:c}=t,l=$(t,i);return(0,Q.jsx)(A,{id:t.id,label:xe(t.long??t.label),icon:Se(t),x:n.x,y:n.y+n.height/2,color:l?`blue`:void 0,description:[t.note,r].filter(Boolean).join(`. `)||void 0,onOpen:c===void 0?void 0:()=>{a(c)},title:(t.long??t.label).length>be?t.long??t.label:void 0,"aria-current":l?`true`:void 0,...Ne(e),...o(t.id),...s})}function Fe(e){let{node:t,place:n,joins:r,selected:a,on:o,onOpen:c,lights:l,drag:u}=e,{opens:d}=t,f=t.rows??[],p={left:n.x,top:n.y,height:n.height},m=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`span`,{className:`studio-map-name`,children:[(0,Q.jsx)(i,{icon:Se(t),size:`sm`}),(0,Q.jsx)(s,{type:`supporting`,color:`inherit`,weight:`medium`,maxLines:1,hasTruncateTooltip:!1,children:t.label})]}),t.note&&(0,Q.jsx)(s,{type:`supporting`,maxLines:f.length>0?1:ie(t),hasTruncateTooltip:!1,className:`studio-map-note`,children:t.note})]}),h={type:`button`,title:t.note||void 0,"aria-description":r||void 0,disabled:d===void 0,onClick:()=>{d!==void 0&&c(d)},...l(t.id)};return f.length===0?(0,Q.jsx)(`button`,{...h,...u,...Ne(e),className:`studio-map-node`,"data-map-token":t.id,style:p,"aria-current":$(t,a)?`true`:void 0,children:m}):(0,Q.jsxs)(`div`,{className:`studio-map-card`,"data-map-token":t.id,style:p,"data-open":$(t,a)?``:void 0,...Ne(e),...u,children:[(0,Q.jsx)(`button`,{...h,className:`studio-map-head`,"aria-current":a===t.id?`true`:void 0,children:m}),f.map(e=>(0,Q.jsxs)(`button`,{type:`button`,className:`studio-map-row`,"aria-current":a===e.id?`true`:void 0,"data-on":o.has(e.id)?``:void 0,onClick:()=>{c(e.opens)},...l(e.id),children:[(0,Q.jsx)(i,{icon:Ce(e.type),size:`sm`}),(0,Q.jsx)(s,{type:`supporting`,color:`inherit`,weight:`medium`,maxLines:1,hasTruncateTooltip:!1,children:e.label}),e.note&&(0,Q.jsx)(s,{type:`supporting`,maxLines:1,justify:`end`,hasTruncateTooltip:!1,className:`studio-map-row-note`,children:e.note})]},e.id))]})}function Ie({workspace:e,shared:t,selected:n,onOpen:r,onClose:a}){let{expanded:o,family:c,map:l,moved:d,put:p,showFamily:h,expand:g}=De((0,X.useMemo)(()=>G(e,t),[e,t])),[_,v]=(0,X.useState)(``),y=(0,X.useMemo)(()=>ee(l,_),[l,_]),S=(0,X.useMemo)(()=>_.trim()===``?l:te(l,y),[l,_,y]),C=_.trim()!==``&&y.length===0,w=(0,X.useRef)(null),T=o?ye:ve,E=(0,X.useMemo)(()=>({map:S,expanded:o}),[S,o]),D=F(w,E),O=(0,X.useMemo)(()=>se(S,T,{moved:d,widths:D,detail:o}),[S,T,o,d,D]),k=S.columns.flat().flatMap(e=>e.nodes),A=k.find(e=>$(e,n))?.id;Ae(w,c,{place:A===void 0?void 0:O.nodes[A],sizes:T});let{dragging:j,draggable:M}=Oe(O,d,p),{panning:N,pan:P}=_e(`[data-map-node]`),{lit:I,on:L,onLines:R,lights:z}=ke(O),B={family:c,expanded:o,isMoved:k.some(e=>Object.hasOwn(d,e.id)),showFamily:h,expand:g,tidy:()=>{p({},!0)}},[V,H]=(0,X.useState)(),U=je(k.find(e=>e.id===V),r,B),W=o?Fe:Pe,K=k.find(e=>$(e,n))?.id,q=e=>R.has(e.link)?2:+(e.from===K||e.to===K),ne=[...O.lines].sort((e,t)=>q(e)-q(t));return(0,Q.jsxs)(`div`,{className:`studio-map-frame`,role:`none`,onKeyDown:e=>{e.key===`Escape`&&c!==void 0&&(e.target.closest(`[role="menu"]`)||(e.stopPropagation(),h(void 0)))},children:[(0,Q.jsx)(u,{className:`studio-map-scroll`,axis:`both`,role:`region`,label:`Map`,height:`100%`,overscroll:`allow`,children:(0,Q.jsx)(x,{items:U,label:`Map actions`,"data-map-field":``,children:(0,Q.jsxs)(`div`,{ref:w,className:`studio-map`,"data-lit":I===void 0||j!==void 0?void 0:``,"data-panning":N?``:void 0,onPointerDown:P,onContextMenuCapture:e=>{H(e.target.closest(`[data-map-node]`)?.dataset.mapNode)},style:{"--map-width":`${String(O.width)}px`,"--map-height":`${String(O.height)}px`,"--map-slot":`${String(T.node.width)}px`,"--map-line":`${String(T.card.row)}px`},children:[(0,Q.jsx)(`svg`,{className:`studio-map-lines`,width:O.width,height:O.height,"aria-hidden":`true`,children:ne.map(({link:e,from:t,to:n,d:r})=>(0,Q.jsx)(`path`,{className:`map-line`,d:r,"data-kind":e.kind,"data-on":R.has(e)?``:void 0,"data-open":t===K||n===K?``:void 0},`${e.kind}:${e.from}:${e.to}`))}),O.headings.map(({label:e,x:t,y:n})=>(0,Q.jsx)(`div`,{className:`studio-map-heading`,style:{left:t,top:n},children:(0,Q.jsx)(s,{type:`supporting`,color:`secondary`,weight:`semibold`,children:e})},e)),k.map(e=>{let t=O.nodes[e.id];return t&&(0,Q.jsx)(W,{node:e,place:t,joins:re(S,e.id),selected:n,on:L,isFound:y.includes(e.id),isDragging:j===e.id,onOpen:r,lights:z,drag:M(e.id)},e.id)})]})})}),C&&(0,Q.jsx)(f,{className:`studio-map-nothing`,children:(0,Q.jsx)(b,{headingLevel:2,icon:(0,Q.jsx)(i,{icon:m,size:`lg`}),title:`Nothing matches`})}),(0,Q.jsx)(Me,{actions:B,query:_,onQuery:v,onClose:a})]})}export{Ie as StudioMap};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{u as t}from"./themeProps-3IqahpCr.js";import"./devWarning-DxuplmRl.js";var n=e(t(),1);function r(e,t,r=!0){let i=(0,n.useRef)(!1);(0,n.useEffect)(()=>{r&&!i.current&&(i.current=!0)},[e,t,r])}export{r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,u as n}from"./themeProps-3IqahpCr.js";var r=e(n(),1),i=t(),a=229;function o(e){return e.isComposing===!0||e.keyCode===a}var s={reset:{kMv6JI:`x9ynric`,kGuDYH:`xjm74w1`,k63SB2:`xxovm9e`,kLWn49:`xw6l6zx`,kKX8nH:`x1j61x8r`,k9WMMc:`x1yc453h`,kJI5tL:`x7ssn7h`,kTHuQy:`xzugeeo`,kP9fke:`x6mezaz`,kb6lSQ:`x1i21sxh`,k4JVr9:`xp3md9m`,kKMj4B:`x19pm5ym`,khDVqt:`xeaf4i8`,kTgw9:`x1lldw8n`,kHjlTd:`x1h4wwuj`,kE4Cay:`xxydokm`,$$css:!0}},c={reset:{"--step-connector-gap":`x1qkaldv`,$$css:!0}},l=typeof window<`u`?r.useLayoutEffect:r.useEffect,u=(0,r.createContext)(0);u.displayName=`LayerDepthContext`;function d(){return(0,r.use)(u)}function f({children:e}){let t=(0,r.use)(u);return(0,i.jsx)(u,{value:t+1,children:e})}f.displayName=`LayerDepthProvider`;var p=[],m=new WeakMap,h=0,g=!1;function _(e){let t=m.get(e);if(t!==void 0)return t;let n=h++;return m.set(e,n),n}function v(e,t){if(e.depth!==t.depth)return e.depth-t.depth;let n=e.getContainer?.()??null,r=t.getContainer?.()??null;if(n!=null&&r!=null&&n!==r){if(r.contains(n))return 1;if(n.contains(r))return-1}return e.seq-t.seq}function y(e){return e.isPresent?.()??!0}var b=!1;function x(){return b}function S(){b=!0}function C(){b=!1}function w(){let e=null;for(let t of p)y(t)&&(e==null||v(t,e)>0)&&(e=t);return e}function T(e){return w()?.token===e}function E(){let e=w();return e!=null&&(e.behavior===`block`||e.dismiss(),!0)}function D(e){e.key===`Escape`&&(o(e)?w()!=null&&e.preventDefault():e.defaultPrevented||E()&&e.preventDefault())}function O(){g||typeof document>`u`||(document.addEventListener(`keydown`,D),document.addEventListener(`compositionstart`,S,!0),document.addEventListener(`compositionend`,C,!0),document.addEventListener(`blur`,C,!0),g=!0)}function k(){g&&typeof document<`u`&&(document.removeEventListener(`keydown`,D),document.removeEventListener(`compositionstart`,S,!0),document.removeEventListener(`compositionend`,C,!0),document.removeEventListener(`blur`,C,!0),b=!1,g=!1)}function A(e){let t={...e,seq:_(e.token)};return p.push(t),O(),()=>{let e=p.indexOf(t);e!==-1&&p.splice(e,1),p.length===0&&k()}}function j(e){let{isActive:t,onDismiss:n,escapeBehavior:i=`close`,getContainer:a,isPresent:o,isEnabled:s=!0}=e,c=d(),l=(0,r.useRef)({}),u=(0,r.useRef)(!1),f=(0,r.useRef)(n),p=(0,r.useRef)(a),m=(0,r.useRef)(o);(0,r.useEffect)(()=>{f.current=n,p.current=a,m.current=o});let h=t&&s;return(0,r.useEffect)(()=>{if(!h)u.current=!1;else return u.current||=(l.current={},!0),A({token:l.current,depth:c,behavior:i,getContainer:()=>p.current?.()??null,isPresent:()=>m.current?.()??!0,dismiss:()=>f.current()})},[h,c,i]),{shouldDismissOnCloseRequest:(0,r.useCallback)(()=>h&&!x()&&T(l.current),[h])}}export{s as a,c as i,f as n,o,l as r,j as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{l as t,u as n}from"./themeProps-3IqahpCr.js";import{t as r}from"./mergeProps-ptS-gIMz.js";import{n as i,t as a}from"./sharedResizeObserver-4U9Xq5Oq.js";import{r as o}from"./useLayerDismissal-B_G7IWpC.js";import{t as s}from"./focusableSelector-DXZeMU85.js";var c=e(n(),1),l=new WeakMap;function u(e,t){l.set(e,t)}function d(e){l.delete(e)}function f(e){return l.get(e)}var p=new Set([`article`,`banner`,`complementary`,`contentinfo`,`definition`,`directory`,`document`,`figure`,`form`,`generic`,`group`,`heading`,`list`,`listitem`,`main`,`navigation`,`none`,`note`,`paragraph`,`presentation`,`region`,`section`,`status`,`table`,`term`]);function m(e){if(e.tabIndex<0||e.matches(`:disabled`)||e.closest(`[inert], [hidden]`)!=null||e.getClientRects().length===0)return!1;let t=getComputedStyle(e).visibility;return t!==`hidden`&&t!==`collapse`}function h(e,t){let n=t.querySelectorAll(s),r=t.matches(`button:not([disabled]), a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled]), [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls], iframe, details > summary:first-child`)&&m(t)?t:null;for(let e of n)if(!(r!=null&&e.tabIndex<=0)&&m(e)){if(e.tabIndex>0)return null;r??=e}if(r==null||r.tabIndex!==0||!r.matches(`a[href], button`)||r.closest(`[aria-hidden="true"]`)!=null||r.matches(`[aria-disabled="true"], [aria-haspopup]:not([aria-haspopup="false"])`))return null;let i=r;for(;i!=null&&i!==e;){let e=i.getAttribute(`role`)?.trim().toLowerCase(),t=i===r&&(e===`button`&&r.localName===`button`||e===`link`&&r.localName===`a`);if(e!=null&&e!==``&&!t&&!p.has(e)||i===r&&e!=null&&e!==``&&!t||i.hasAttribute(`aria-activedescendant`)||i.isContentEditable||i.matches(`[contenteditable]:not([contenteditable="false"])`)||f(i)!=null)return null;let n=getComputedStyle(i);if(/^(auto|scroll|overlay)$/.test(n.overflowX)&&i.scrollWidth>i.clientWidth+1||/^(auto|scroll|overlay)$/.test(n.overflowY)&&i.scrollHeight>i.clientHeight+1)return null;i=i.parentElement}return i===e?r:null}function g(e,t){let n=e.ownerDocument,r=n.defaultView;if(r==null)return()=>{};let i=null,a=null,o=null,s,c,l=()=>{i=null,a=null,r.clearTimeout(s),c?.(),c=void 0},u=t=>{if(l(),!(t.key!==`Tab`||t.ctrlKey||t.metaKey)){if(i=t,a=t.target,t.shiftKey&&o!=null&&n.activeElement===o&&e.contains(o)){let t=e.getAttribute(`tabindex`);e.tabIndex=-1,c=()=>{e.getAttribute(`tabindex`)===`-1`&&(t==null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t))}}s=r.setTimeout(l,0)}},d=r=>{let s=i,c=a;if(l(),r.target!==e){e.contains(r.target)||(o=null);return}if(o=null,s==null||s.shiftKey||s.defaultPrevented||s.eventPhase!==0||r.relatedTarget!=null&&r.relatedTarget!==c)return;let u=h(e,t);u!=null&&(o=u,u.focus(),n.activeElement!==u&&(o=null))};return n.addEventListener(`keydown`,u,!0),n.addEventListener(`keyup`,l,!0),n.addEventListener(`pointerdown`,l,!0),n.addEventListener(`focusin`,d,!0),r.addEventListener(`blur`,l),()=>{l(),n.removeEventListener(`keydown`,u,!0),n.removeEventListener(`keyup`,l,!0),n.removeEventListener(`pointerdown`,l,!0),n.removeEventListener(`focusin`,d,!0),r.removeEventListener(`blur`,l)}}var _={isScrollable:!1,atStart:!0,atEnd:!0};function v(e,t){let n=e.toLowerCase(),r=n.startsWith(`vertical`)||n.startsWith(`sideways`),i=t===`rtl`;return r?{inline:`y`,block:`x`,inlineReversed:n===`sideways-lr`?!i:i,blockReversed:n.endsWith(`-rl`)}:{inline:`x`,block:`y`,inlineReversed:i,blockReversed:!1}}function y(e){return e===`auto`||e===`scroll`||e===`overlay`}function b(e,t){let n=getComputedStyle(e);return t===`x`?{clientExtent:e.clientWidth,contentExtent:e.scrollWidth,offset:e.scrollLeft,overflow:n.overflowX}:{clientExtent:e.clientHeight,contentExtent:e.scrollHeight,offset:e.scrollTop,overflow:n.overflowY}}function x(e,t){return e.isConnected&&t.display!==`none`&&e.clientWidth>0&&e.clientHeight>0}function S(e,t,n){if(!x(e,getComputedStyle(e)))return null;let r=n[t],i=r===`x`?e.clientWidth:e.clientHeight;return(r===`x`?e.scrollWidth:e.scrollHeight)-i>1}function C(e,t,n){if(!x(e,getComputedStyle(e)))return null;let r=n[t],i=b(e,r),a=i.contentExtent-i.clientExtent;if(!y(i.overflow)||a<=1)return _;let o=n[`${t}Reversed`],s=Math.min(a,Math.max(0,o?Math.abs(i.offset):i.offset));return{isScrollable:!0,atStart:s<=1,atEnd:s>=a-1}}var w={isScrollable:!1,atStart:!0,atEnd:!0},T={inline:w,block:w},E={inline:!1,block:!1},D={inline:`x`,block:`y`,inlineReversed:!1,blockReversed:!1},O={overflow:(e,t)=>[{kXHlph:e==null?e:`xyto64x`,kORKVm:t==null?t:`x4ncuvb`,$$css:!0},{"--x-overflowX":e??void 0,"--x-overflowY":t??void 0}]};function k(e,t){return e===t||e===`both`}function A(e,t){return e.inline.isScrollable===t.inline.isScrollable&&e.inline.atStart===t.inline.atStart&&e.inline.atEnd===t.inline.atEnd&&e.block.isScrollable===t.block.isScrollable&&e.block.atStart===t.block.atStart&&e.block.atEnd===t.block.atEnd}function j(e,t){return e.inline===t.inline&&e.block===t.block}function M(e,t){return e.inline===t.inline&&e.block===t.block&&e.inlineReversed===t.inlineReversed&&e.blockReversed===t.blockReversed}function N(e){if(e==null)return;let t={...e};return delete t.overflow,delete t.overflowX,delete t.overflowY,delete t.overflowInline,delete t.overflowBlock,t}function P(e){let t=(0,c.useRef)(void 0),n=(0,c.useRef)(null);return(0,c.useCallback)(r=>{if(n.current!=null&&Object.is(t.current,r))return n.current;let a=i(r,e);return t.current=r,n.current=a,a},[e])}function F({axis:e,keyboardAccess:n,overscroll:i=`allow`,stickyContainment:s=`whenScrollable`}){let[l,f]=(0,c.useState)(null),[p,m]=(0,c.useState)(null),[h,_]=(0,c.useState)(T),[y,b]=(0,c.useState)(E),[x,F]=(0,c.useState)(D),I=(0,c.useRef)(T),L=(0,c.useCallback)(e=>{f(t=>t===e?t:e)},[]),R=(0,c.useCallback)(e=>{m(t=>t===e?t:e)},[]),z=P(L),B=P(R);o(()=>{if(l==null||p==null)return;let t=null,n=!0,r=()=>{t=null;let n=getComputedStyle(l),r=v(n.writingMode,n.direction),i=k(e,`inline`)?S(l,`inline`,r):!1,a=k(e,`block`)?S(l,`block`,r):!1,o=k(e,`inline`)?C(l,`inline`,r):w,s=k(e,`block`)?C(l,`block`,r):w;if(i==null||a==null||o==null||s==null)return;let c={inline:i,block:a},d={inline:o,block:s};I.current=d,u(l,d),b(e=>j(e,c)?e:c),_(e=>A(e,d)?e:d),F(e=>M(e,r)?e:r)},i=()=>{n&&t==null&&(t=window.requestAnimationFrame(r))};u(l,I.current),r();let o=a(l,i),s=a(p,i);l.addEventListener(`scroll`,i,{passive:!0}),window.addEventListener(`resize`,i),window.visualViewport?.addEventListener(`resize`,i),p.addEventListener(`load`,i,!0),l.addEventListener(`transitionend`,i),l.addEventListener(`animationend`,i),p.addEventListener(`transitionend`,i),p.addEventListener(`animationend`,i);let c=typeof MutationObserver>`u`?null:new MutationObserver(i);c?.observe(l,{attributes:!0,attributeFilter:[`class`,`dir`,`hidden`,`style`]}),c?.observe(p,{attributes:!0,attributeFilter:[`class`,`dir`,`hidden`,`style`],characterData:!0,childList:!0,subtree:!0});let f=l.parentElement;for(;f!=null;)c?.observe(f,{attributes:!0,attributeFilter:[`class`,`dir`,`hidden`,`style`]}),f=f.parentElement;let m=document.fonts;return m?.addEventListener?.(`loadingdone`,i),m?.ready.then(i),()=>{n=!1,d(l),o(),s(),c?.disconnect(),l.removeEventListener(`scroll`,i),window.removeEventListener(`resize`,i),window.visualViewport?.removeEventListener(`resize`,i),p.removeEventListener(`load`,i,!0),l.removeEventListener(`transitionend`,i),l.removeEventListener(`animationend`,i),p.removeEventListener(`transitionend`,i),p.removeEventListener(`animationend`,i),m?.removeEventListener?.(`loadingdone`,i),t!=null&&window.cancelAnimationFrame(t)}},[e,p,l]);let V=(0,c.useMemo)(()=>({inline:k(e,`inline`)?h.inline:w,block:k(e,`block`)?h.block:w}),[e,h]),H=V.inline.isScrollable||V.block.isScrollable;return o(()=>{if(n.owner===`contentOrViewport`&&H&&l!=null&&p!=null)return g(l,p)},[p,H,n.owner,l]),{getViewportProps:(0,c.useCallback)((a={})=>{let o=V.inline.isScrollable||V.block.isScrollable,c=k(e,`inline`)&&x.inline===`x`||k(e,`block`)&&x.block===`x`,u=k(e,`inline`)&&x.inline===`y`||k(e,`block`)&&x.block===`y`,d=y.inline&&x.inline===`x`||y.block&&x.block===`x`,f=y.inline&&x.inline===`y`||y.block&&x.block===`y`,p=d||f||s===`always`,m=s===`always`?c:d,h=s===`always`?u:f,{xstyle:g,..._}=a,v={..._,style:N(_.style)},b=r(v,t(g,O.overflow(p?m?`auto`:`hidden`:`clip`,p?h?`auto`:`hidden`:`clip`))),S=n.owner!==`content`,C=(!S||!o)&&l!=null&&typeof document<`u`&&document.activeElement===l,w={...b.style},T=i===`contain`&&V.inline.isScrollable,E=i===`contain`&&V.block.isScrollable,D=x.inline,A=x.block;k(e,`inline`)&&(w[D===`x`?`overscrollBehaviorX`:`overscrollBehaviorY`]=T?`contain`:`auto`),k(e,`block`)&&(w[A===`x`?`overscrollBehaviorX`:`overscrollBehaviorY`]=E?`contain`:`auto`);let j=n.owner===`content`?{}:{role:n.role??`group`,"aria-label":n.label,tabIndex:S&&o?0:C?-1:void 0};return{...b,...j,ref:z(b.ref),style:w,"data-scroll-axis":e,"data-scrollable-inline":V.inline.isScrollable?`true`:void 0,"data-scrollable-block":V.block.isScrollable?`true`:void 0,"data-scroll-inline-start":V.inline.atStart?`true`:void 0,"data-scroll-inline-end":V.inline.atEnd?`true`:void 0,"data-scroll-block-start":V.block.atStart?`true`:void 0,"data-scroll-block-end":V.block.atEnd?`true`:void 0}},[e,z,n,x,y,i,V,s,l]),getContentProps:(0,c.useCallback)((e={})=>({...e,ref:B(e.ref),"data-scroll-content":``}),[B]),state:V}}export{F as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,t}from"./rolldown-runtime-hePW80VL.js";import{c as n,l as r,n as i,u as a}from"./themeProps-3IqahpCr.js";import{a as o,h as s,s as c}from"./tokens.stylex-DkHf0P9C.js";import{c as l,v as u}from"./padding.stylex-B76907Zf.js";import{a as d,i as f,r as p,t as m}from"./useLayerDismissal-B_G7IWpC.js";var h=t((e=>{var t=a();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},o=Symbol.for(`react.portal`),s=Symbol.for(`react.recoverable`),c=Symbol.for(`react.optimistic_key`);function l(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:r===c?c:``+r,children:e,containerInfo:t,implementation:n}}var u=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.browser=function(e){return{$$typeof:s,_reason:e}},e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return l(e,t,null,r)},e.flushSync=function(e){var t=u.T,n=i.p;try{if(u.T=null,i.p=2,e)return e()}finally{u.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=d(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??i.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=d(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return u.H.useFormState(e,t,n)},e.useFormStatus=function(){return u.H.useHostTransitionStatus()},e.version=`19.3.0`})),g=t(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=e(a(),1),v=g();function y(e){return(e.style.anchorName??``).split(`,`).map(e=>e.trim()).filter(Boolean)}function b(e,t){e.style.anchorName=t.join(`, `)}function x(e,t){let n=y(e);n.includes(t)||(n.push(t),b(e,n))}function ee(e,t){b(e,y(e).filter(e=>e!==t))}var S=0,C=null,w=!1;function T(){S+=1}function E(){C=S}function D(){w||typeof document>`u`||(w=!0,document.addEventListener(`pointerdown`,T,!0),document.addEventListener(`keydown`,T,!0),document.addEventListener(`click`,E,!0))}function O(){return D(),S}function k(){return D(),C===S}var A=new Set(`p.h1.h2.h3.h4.h5.h6.dt.pre.legend.data.dfn.meter.output.progress.option.optgroup.table.thead.tbody.tfoot.tr.colgroup.ul.ol.menu.dl.select.datalist.picture.hgroup.ruby.rt.rp.a.button.label.summary.span.em.strong.b.i.u.s.small.mark.code.kbd.samp.var.sub.sup.abbr.cite.q.time.bdi.bdo.ins.del`.split(`.`));function j(e){if(!e)return null;let t=null,n=e;for(;n;){let e=n.tagName.toLowerCase();if(e===`dialog`)break;A.has(e)&&(t=n),n=n.parentElement}return t?.parentElement??null}var M={gutterBlockStart:`calc(max(var(--spacing-4), env(safe-area-inset-top, 0px)) + var(--astryx-layer-inset-block-start, 0px))`,gutterBlockEnd:`calc(max(var(--spacing-4), env(safe-area-inset-bottom, 0px)) + var(--astryx-layer-inset-block-end, 0px))`,gutterInline:`calc(max(var(--spacing-4), env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px)) + max(var(--astryx-layer-inset-inline-start, 0px), var(--astryx-layer-inset-inline-end, 0px)))`,gutterBlock:`calc(max(var(--spacing-4), env(safe-area-inset-top, 0px), env(safe-area-inset-bottom, 0px)) + max(var(--astryx-layer-inset-block-start, 0px), var(--astryx-layer-inset-block-end, 0px)))`,gutterBlockFallback:`calc(var(--spacing-4) + max(var(--astryx-layer-inset-block-start, 0px), var(--astryx-layer-inset-block-end, 0px)))`,gutterBlockStartFallback:`calc(var(--spacing-4) + var(--astryx-layer-inset-block-start, 0px))`,gutterBlockEndFallback:`calc(var(--spacing-4) + var(--astryx-layer-inset-block-end, 0px))`,gutterInlineFallback:`calc(var(--spacing-4) + max(var(--astryx-layer-inset-inline-start, 0px), var(--astryx-layer-inset-inline-end, 0px)))`,maxInlineSize:`calc(100vi - calc(max(var(--spacing-4), env(safe-area-inset-left, 0px)) + var(--astryx-layer-inset-inline-start, 0px)) - calc(max(var(--spacing-4), env(safe-area-inset-right, 0px)) + var(--astryx-layer-inset-inline-end, 0px)))`,maxInlineSizeFallback:`calc(100vw - var(--spacing-4) - var(--spacing-4) - var(--astryx-layer-inset-inline-start, 0px) - var(--astryx-layer-inset-inline-end, 0px))`,maxBlockSize:`calc(100dvb - calc(max(var(--spacing-4), env(safe-area-inset-top, 0px)) + var(--astryx-layer-inset-block-start, 0px)) - calc(max(var(--spacing-4), env(safe-area-inset-bottom, 0px)) + var(--astryx-layer-inset-block-end, 0px)))`,maxBlockSizeFallback:`calc(100vh - var(--spacing-4) - var(--spacing-4) - var(--astryx-layer-inset-block-start, 0px) - var(--astryx-layer-inset-block-end, 0px))`},N=[[`blockStart`,`--astryx-layer-inset-block-start`],[`blockEnd`,`--astryx-layer-inset-block-end`],[`inlineStart`,`--astryx-layer-inset-inline-start`],[`inlineEnd`,`--astryx-layer-inset-inline-end`]];function P(e){return typeof e==`number`?`${e}px`:e}function F(e){let t={};if(e)for(let[n,r]of N){let i=e[n];i!=null&&i!==``&&(t[r]=P(i))}return t}var te=`--_astryx-layer-clearance`;function I(e,t,n){return`--astryx-layer-slide-${e}-${t}-${n}`}var L=`var(${te}, 0px)`;function R(e,t,n){return`${e}:${t};${e}:${n};`}function z(e){return R(e,M.gutterBlockFallback,M.gutterBlock)}function B(e){return R(e,M.gutterInlineFallback,M.gutterInline)}var V={above:`below`,below:`above`,start:`end`,end:`start`};function H(e){switch(e){case`above`:return`self-block-start span-all`;case`below`:return`self-block-end span-all`;case`start`:return`self-inline-start span-all`;case`end`:return`self-inline-end span-all`}}function U(e){switch(e){case`above`:return`margin-block-end:${L};${z(`margin-block-start`)}`;case`below`:return`margin-block-start:${L};${z(`margin-block-end`)}`;case`start`:return`margin-inline-end:${L};${B(`margin-inline-start`)}`;case`end`:return`margin-inline-start:${L};${B(`margin-inline-end`)}`}}function W(e){return e===`above`||e===`below`?`${B(`margin-inline-start`)}${B(`margin-inline-end`)}inset-inline-start:0;inset-inline-end:0;`:`${z(`margin-block-start`)}${z(`margin-block-end`)}inset-block-start:0;inset-block-end:0;`}function G(e,t,n){let r=n===`same`?e:V[e];return`@position-try ${I(e,t,n)}{position-area:${H(r)};${U(r)}${W(r)}}`}var ne=[`above`,`below`,`start`,`end`],re=[`start`,`center`,`end`];function ie(){return ne.flatMap(e=>re.flatMap(t=>[G(e,t,`same`),G(e,t,`opposite`)])).join(``)}var K=`astryx-layer-slide-rules`;function ae(e){if(e.getElementById(`astryx-layer-slide-rules`))return;let t=e.createElement(`style`);t.id=K,t.textContent=ie(),e.head.appendChild(t)}var q=(0,_.createContext)(null);q.displayName=`LayerContext`;function oe(){return(0,_.use)(q)}var J=n(),Y={keoZOQ:`x1vhfslr`,k1K539:`x119uzjn`,$$css:!0},X={keoZOQ:`x1lhixnp`,k1K539:`xlm3tn6`,$$css:!0},Z={k71WvV:`xa3ewmy`,$$css:!0},se={keTefX:`x1cytvie`,$$css:!0},Q={base:{keoZOQ:`xdj266r`,k1K539:`xat24cr`,keTefX:`x1lziwak`,k71WvV:`x14z9mp`,kLKAdn:`xexx8yu`,kGO01o:`x18d9i69`,kZCmMZ:`x1c1uobl`,kwRFfy:`xyri2b`,kMzoRj:`xc342km`,ksu8eU:`xng3xce`,kVQacm:`x1rea2x4`,kWkggS:`xjbqb8w`,$$css:!0},fixed:{kVAEAm:`xixxii4`,$$css:!0},placementBelow:e=>[Y,{"--x-marginBlockStart":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}],placementAbove:e=>[X,{"--x-marginBlockEnd":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}],placementEnd:e=>[Z,{keTefX:e==null?e:`x4lel18`,$$css:!0},{"--x-marginInlineStart":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}],placementStart:e=>[se,{k71WvV:e==null?e:`x1c9tiao`,$$css:!0},{"--x-marginInlineEnd":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}],farBelow:{k1K539:`x119uzjn`,$$css:!0},farAbove:{keoZOQ:`x1lhixnp`,$$css:!0},farEnd:{k71WvV:`xa3ewmy`,$$css:!0},farStart:{keTefX:`x1cytvie`,$$css:!0},viewportFit:{kB7OPa:`x9f619`,ks0D6T:`x1p5vr2b`,kskxy:`xv8yize`,$$css:!0},gutterInlineEnd:{k71WvV:`x1m9hk3x`,$$css:!0},gutterInlineStart:{keTefX:`x1ey4id`,$$css:!0},gutterBlockEnd:{k1K539:`x1chv945`,$$css:!0},gutterBlockStart:{keoZOQ:`x3390rn`,$$css:!0}};function ce(e){return typeof e==`number`?`${e}px`:e}var $=new WeakMap;function le(e,t){$.set(e,($.get(e)??0)+1);try{t()}finally{$.set(e,($.get(e)??1)-1)}}function ue(e){return($.get(e)??0)>0}function de(e,t){let n=e.ownerDocument.defaultView;if(!n)return{};let r=n.getComputedStyle(e),i=n.getComputedStyle(t);return{...r.direction!==i.direction&&{direction:r.direction},...r.writingMode!==i.writingMode&&{writingMode:r.writingMode}}}function fe(e=`above`,t=`center`){if(e===`above`||e===`below`){let n=e===`above`?`self-block-start`:`self-block-end`;return t===`start`?`${n} span-self-inline-end`:t===`end`?`${n} span-self-inline-start`:n}let n=e===`start`?`self-inline-start`:`self-inline-end`;return t===`start`?`${n} span-self-block-end`:t===`end`?`${n} span-self-block-start`:n}function pe(e=`above`,t=`center`){let n=`flip-block, flip-inline, flip-block flip-inline`,r=`${I(e,t,`same`)}, ${I(e,t,`opposite`)}`;if(t!==`center`)return`${n}, ${r}`;if(e===`above`||e===`below`){let[t,i]=e===`above`?[`top`,`bottom`]:[`bottom`,`top`];return`${n}, ${t} span-left, ${t} span-right, ${i} span-left, ${i} span-right, ${r}`}let[i,a]=e===`start`?[`left`,`right`]:[`right`,`left`];return`${n}, ${i} span-top, ${i} span-bottom, ${a} span-top, ${a} span-bottom, ${r}`}function me(e,t,n){if(n||t===`center`)return{};let r=t===`start`?`unsafe self-start`:`unsafe self-end`;return e===`above`||e===`below`?{justifySelf:r}:{alignSelf:r}}function he(e,t){return e===`above`||e===`below`?t===`start`?[Q.gutterInlineEnd]:t===`end`?[Q.gutterInlineStart]:[Q.gutterInlineStart,Q.gutterInlineEnd]:t===`start`?[Q.gutterBlockEnd]:t===`end`?[Q.gutterBlockStart]:[Q.gutterBlockStart,Q.gutterBlockEnd]}function ge(e,t){let n=(0,_.useRef)(t);return n.current=t,(0,_.useMemo)(()=>({onPointerDown:t=>{if(!n.current)return;let r=t.currentTarget,i=r.ownerDocument;r.setAttribute(`popovertarget`,e);let a=()=>{i.removeEventListener(`pointerup`,a),i.removeEventListener(`pointercancel`,a),i.defaultView?.setTimeout(()=>{r.removeAttribute(`popovertarget`)},0)};i.addEventListener(`pointerup`,a),i.addEventListener(`pointercancel`,a)},onClickCapture:e=>{let t=e.currentTarget;t.hasAttribute(`popovertarget`)&&(e.preventDefault(),t.removeAttribute(`popovertarget`))}}),[e])}function _e(e){let{mode:t,onShow:n,onHide:i,lightDismiss:a=!1}=e,o=t===`context`?e.lazyMount??!1:!1,s=(0,_.useId)(),c=`--astryx-layer-${s.replace(/:/g,``)}`,[m,h]=(0,_.useState)(!1),[g,y]=(0,_.useState)(!0),b=(0,_.useRef)(!0),S=(0,_.useCallback)(e=>{b.current!==e&&(b.current=e,y(e))},[]),C=oe()?.inset,w=(0,_.useRef)(null),T=(0,_.useRef)(null),E=(0,_.useRef)(null),D=(0,_.useRef)(null),A=(0,_.useRef)(null),[M,N]=(0,_.useState)(null),P=(0,_.useRef)(!1),I=(0,_.useRef)(!1),L=(0,_.useRef)(null),R=(0,_.useRef)(null),z=(0,_.useCallback)(()=>{let e=O();return L.current===e},[]),B=(0,_.useCallback)(e=>{typeof e.showPopover==`function`?le(e.ownerDocument,()=>{e.showPopover({source:E.current??void 0})}):e.style.display=`block`,T.current=e},[]),V=(0,_.useCallback)(e=>{if(t!==`context`)return!0;let n=A.current;if(n===null)return!1;let r=n.portalTarget??D.current?.parentElement??null;return e.parentElement===r},[t]),H=(0,_.useCallback)(()=>{if(t!==`context`)return;let e=D.current,n=e?.parentElement??null;if(!e||!n)return;let r=j(n),i={portalTarget:r,portalStyle:r?de(e,r):{}};A.current=i,N(i)},[t]),U=(0,_.useCallback)(()=>{t===`context`&&o&&(A.current=null,N(null))},[t,o]),W=(0,_.useCallback)(()=>{if(z())return;let e=w.current,t=e&&V(e)?e:null;if(!t)P.current=!0,H();else if(!I.current){if(ue(t.ownerDocument)){P.current=!0,queueMicrotask(()=>{P.current&&(P.current=!1,ne.current())});return}B(t),I.current=!0,h(!0),n?.()}},[n,H,B,V,z]),G=(0,_.useCallback)(()=>{if(P.current=!1,I.current){let e=w.current;T.current=null,I.current=!1,e&&(typeof e.hidePopover==`function`?le(e.ownerDocument,()=>{e.hidePopover()}):e.style.display=`none`),h(!1),i?.()}U()},[i,U]),ne=(0,_.useRef)(W);ne.current=W;let re=(0,_.useCallback)(e=>{E.current&&E.current!==e&&ee(E.current,c),e&&x(e,c),E.current=e},[c]),ie=(0,_.useCallback)(e=>{if(R.current?.(),k())return;L.current=O();let t=e.defaultView,n=null,r=()=>{L.current=null,e.removeEventListener(`click`,i,!0),n!==null&&(t?.clearTimeout(n),n=null),R.current===r&&(R.current=null)},i=()=>{e.removeEventListener(`click`,i,!0),t?n=t.setTimeout(()=>{n=null,R.current===r&&r()},0):r()};e.addEventListener(`click`,i,!0),R.current=r},[]);(0,_.useEffect)(()=>(O(),()=>R.current?.()),[]);let K=(0,_.useCallback)(e=>{e.newState===`closed`&&I.current&&(T.current=null,I.current=!1,ie(e.currentTarget?.ownerDocument??document),h(!1),i?.(),U())},[i,U,ie]),q=(0,_.useRef)(null),Y=(0,_.useRef)(null),X=(0,_.useCallback)((e,t)=>{q.current&&Y.current&&(q.current!==e||Y.current!==t)&&(q.current.removeEventListener(`toggle`,Y.current),q.current=null,Y.current=null),e&&q.current!==e&&(e.addEventListener(`toggle`,t),q.current=e,Y.current=t)},[]),Z=(0,_.useCallback)(e=>{w.current=e,X(e,K),e&&P.current?(P.current=!1,W()):e&&I.current&&T.current!==e&&V(e)&&B(e)},[K,X,W,B,V]),se=(0,_.useCallback)(e=>{D.current=e,e&&(!o||P.current||I.current)&&H()},[o,H]);(0,_.useEffect)(()=>(w.current&&X(w.current,K),()=>{q.current&&Y.current&&(q.current.removeEventListener(`toggle`,Y.current),q.current=null,Y.current=null)}),[K,X]),p(()=>{if(t!==`context`)return;let e=w.current?.ownerDocument??D.current?.ownerDocument;e&&ae(e)},[t,M]),p(()=>{if(!m||t!==`context`)return;let e=E.current;if(!e)return;let n=e.ownerDocument.defaultView;if(n){let t=e.getBoundingClientRect(),r=t.bottom>=0&&t.right>=0&&t.top<=n.innerHeight&&t.left<=n.innerWidth;S(r)}if(typeof IntersectionObserver>`u`)return;let r=new IntersectionObserver(e=>{let t=e[e.length-1];t&&S(t.isIntersecting)});return r.observe(e),()=>r.disconnect()},[m,t,S]);let $=(0,_.useCallback)((e,t)=>{let n=(0,J.jsx)(`template`,{ref:se});if(M===null)return(0,J.jsx)(J.Fragment,{children:n});let{placement:i=`above`,alignment:o=`center`,positioning:p=`anchor`,offset:m,role:h,"aria-label":_,xstyle:y,className:b,style:x,as:ee=`div`,onMouseEnter:S,onMouseLeave:w}=t||{},T=p===`custom`?{positionAnchor:c}:{positionAnchor:c,positionArea:fe(i,o),positionTryFallbacks:pe(i,o),...me(i,o,g)},E=m?ce(m):null,D=p===`anchor`&&E!=null?{[te]:E}:{},O=p===`anchor`?E==null?i===`above`?Q.farAbove:i===`below`?Q.farBelow:i===`start`?Q.farStart:Q.farEnd:i===`above`?Q.placementAbove(E):i===`below`?Q.placementBelow(E):i===`start`?Q.placementStart(E):Q.placementEnd(E):null,k=p===`anchor`?[Q.viewportFit,...he(i,o)]:null,A=r(d.reset,f.reset,Q.base,l.reset,k,O,y),j=b?`${b} ${A.className??``}`:A.className,N=(0,J.jsx)(ee,{ref:Z,id:s,role:h,"aria-label":_,popover:a?`auto`:`manual`,className:j,style:{...A.style,...T,...D,...F(C),...M.portalStyle,...x},onMouseEnter:S,onMouseLeave:w,children:(0,J.jsx)(u,{children:e})});return(0,J.jsxs)(J.Fragment,{children:[n,M.portalTarget?(0,v.createPortal)(N,M.portalTarget):N]})},[c,M,C,s,g,a,Z,se]),ge=(0,_.useCallback)((e,t)=>{let{x:n,y:i,xstyle:o,className:c,style:p}=t,m={top:i,left:n},h=r(d.reset,f.reset,Q.base,l.reset,Q.fixed,o),g=c?`${c} ${h.className??``}`:h.className;return(0,J.jsx)(`div`,{ref:Z,id:s,popover:a?`auto`:`manual`,className:g,style:{...h.style,...m,...p},children:(0,J.jsx)(u,{children:e})})},[Z,s,a]),_e=(0,_.useMemo)(()=>({ref:re,anchorId:c,show:W,hide:G,isOpen:m,wasJustDismissed:z,id:s,render:$}),[re,c,W,G,m,z,s,$]),ve=(0,_.useMemo)(()=>({ref:void 0,show:W,hide:G,isOpen:m,wasJustDismissed:z,id:s,render:ge}),[W,G,m,z,s,ge]);return t===`context`?_e:ve}function ve(e){let t=_e(e);return(0,_.useMemo)(()=>{let{wasJustDismissed:e,...n}=t;return n},[t])}var ye=Symbol.for(`@astryxdesign/core/interaction-modality/v1`);function be(e){let t=e,n=t[ye];if(n!=null)return n;let r={modality:`keyboard`,isListening:!1,onPointerDown:()=>{r.modality=`pointer`},onKeyDown:e=>{e.metaKey||e.altKey||e.ctrlKey||(r.modality=`keyboard`)}};return Object.defineProperty(t,ye,{value:r}),r}function xe(){if(typeof document>`u`)return()=>{};let e=document,t=be(e);return t.isListening||(t.isListening=!0,e.addEventListener(`pointerdown`,t.onPointerDown,{capture:!0,passive:!0}),e.addEventListener(`keydown`,t.onKeyDown,{capture:!0,passive:!0})),()=>{}}function Se(){(0,_.useEffect)(()=>xe(),[])}function Ce(){return typeof document>`u`?`keyboard`:be(document).modality}var we=new Set([`touch`,`pen`]),Te=new Set([`button`,`checkbox`,`combobox`,`link`,`menuitem`,`menuitemcheckbox`,`menuitemradio`,`option`,`radio`,`searchbox`,`slider`,`spinbutton`,`switch`,`tab`,`textbox`]);function Ee(e){let t=e.getAttribute(`role`);if(t!=null&&t!==``)return Te.has(t);switch(e.tagName){case`BUTTON`:case`INPUT`:case`LABEL`:case`SELECT`:case`SUMMARY`:case`TEXTAREA`:return!0;case`A`:case`AREA`:return e.hasAttribute(`href`);default:return De(e)}}function De(e){if(e.isContentEditable===!0)return!0;let t=e.getAttribute(`contenteditable`);return t!=null&&t!==`false`}function Oe(e){let{touchTrigger:t,isEnabled:n,isControlled:r,isOpen:i,layerId:a,triggerRef:o,show:s,hide:c}=e,l=(0,_.useRef)(!1),u=(0,_.useRef)(i);u.current=i;let d=(0,_.useRef)(c);d.current=c;let f=(0,_.useRef)(a);f.current=a;let p=(0,_.useRef)(!1),m=(0,_.useRef)(null);Se();let h=(0,_.useCallback)(()=>{p.current=!1;let e=m.current;e!=null&&(m.current=null,document.removeEventListener(`pointerdown`,e,!0))},[]),g=(0,_.useCallback)(()=>{if(p.current=!0,m.current!=null)return;let e=e=>{let t=e.target;(t==null||o.current?.contains(t)!==!0&&document.getElementById(f.current)?.contains(t)!==!0)&&(h(),d.current())};m.current=e,document.addEventListener(`pointerdown`,e,!0)},[o,h]);(0,_.useEffect)(()=>h,[h]);let v=(0,_.useCallback)(()=>l.current&&Ce()===`pointer`,[]),y=(0,_.useCallback)(e=>{l.current=e.pointerType===`touch`},[]),b=(0,_.useCallback)(e=>{let i=we.has(e.pointerType);if(l.current=i,!i||r)return!1;let a=o.current;return(t===`auto`?a!=null&&Ee(a)?`none`:`tap`:t)===`none`||!n||u.current||p.current?(h(),c(),!0):(g(),s(),!0)},[t,n,r,o,s,c,g,h]),x=(0,_.useRef)(i);return(0,_.useEffect)(()=>{x.current&&!i&&h(),x.current=i},[i,h]),{isTouchPointerRef:l,isTouchInteraction:v,handlePointerEnter:y,handlePointerDown:b,clearTapOpen:h}}o[`--duration-fast-max`],c[`--ease-standard`];var ke={below:{kKVMdj:`xl1vlw0 x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},above:{kKVMdj:`x3psbcj x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},end:{kKVMdj:`x1i331go x1vxsm5i x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},start:{kKVMdj:`xck01x9 x18lne9g x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0}},Ae=100,je={container:{kWkggS:`x19aspcf`,kMwMTN:`xrkvqaz`,kaIpWk:`x1hviunn`,kMv6JI:`x9ynric`,kGuDYH:`xjm74w1`,kLWn49:`xw6l6zx`,$$css:!0}};function Me(e){return e.hasAttribute(`tabindex`)?e.tabIndex>=0:[`A`,`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`].includes(e.tagName)?!e.disabled:!!e.isContentEditable}function Ne(e={}){let{placement:t=`above`,alignment:n=`center`,delay:r=200,hideDelay:a=0,focusTrigger:o=`auto`,touchTrigger:c=`auto`,isEnabled:l=!0,isOpen:u,isDefaultOpen:d=!1,onShow:f,onHide:p}=e,{ref:h,anchorId:g,show:v,hide:y,isOpen:b,id:x,render:ee}=ve({mode:`context`,onShow:f,onHide:p}),S=je.container,C=(0,_.useRef)(null),w=(0,_.useRef)(null),T=(0,_.useRef)(null),E=(0,_.useCallback)(()=>{C.current&&=(clearTimeout(C.current),null),w.current&&=(clearTimeout(w.current),null)},[]),D=(0,_.useCallback)(()=>{E(),v()},[E,v]),O=(0,_.useCallback)(()=>{E(),y()},[E,y]),{isTouchPointerRef:k,isTouchInteraction:A,handlePointerEnter:j,handlePointerDown:M,clearTapOpen:N}=Oe({touchTrigger:c,isEnabled:l,isControlled:u!==void 0,isOpen:b,layerId:x,triggerRef:T,show:D,hide:O}),P=(0,_.useCallback)(()=>{l&&u!==!1&&(E(),C.current=setTimeout(()=>{v()},r))},[l,u,E,v,r]),F=(0,_.useCallback)(()=>{u!==!0&&(E(),w.current=setTimeout(()=>{y()},a>0?a:Ae))},[u,E,y,a]),te=(0,_.useCallback)(()=>{w.current&&=(clearTimeout(w.current),null)},[]),I=(0,_.useCallback)(()=>{k.current||P()},[k,P]),L=(0,_.useCallback)(()=>{k.current||F()},[k,F]),R=(0,_.useCallback)(e=>{l&&(A()||e.target.matches(`:focus-visible`)&&(E(),v()))},[l,A,E,v]),z=(0,_.useCallback)(()=>{F()},[F]),B=(0,_.useCallback)(e=>{M(e)||u===void 0&&(E(),y())},[M,u,E,y]),V=(0,_.useCallback)(e=>{T.current&&(T.current.removeEventListener(`mouseenter`,I),T.current.removeEventListener(`mouseleave`,L),T.current.removeEventListener(`focusin`,R),T.current.removeEventListener(`focusout`,z),T.current.removeEventListener(`pointerenter`,j),T.current.removeEventListener(`pointerdown`,B)),e&&(e.addEventListener(`pointerenter`,j),e.addEventListener(`mouseenter`,I),e.addEventListener(`mouseleave`,L),e.addEventListener(`pointerdown`,B),(o===`always`||o===`auto`&&Me(e))&&(e.addEventListener(`focusin`,R),e.addEventListener(`focusout`,z))),T.current=e},[o,I,L,R,z,j,B]),H=(0,_.useCallback)(e=>{h(e),V(e)},[h,V]);return(0,_.useEffect)(()=>()=>{E()},[E]),(0,_.useEffect)(()=>{d&&v()},[]),(0,_.useEffect)(()=>{u!==void 0&&(u?(E(),v()):(E(),y()))},[u,E,v,y]),m({isActive:!0,isPresent:()=>{let e=typeof document>`u`?null:document.getElementById(x);if(e==null)return!1;try{return e.matches(`:popover-open`)}catch{return b}},onDismiss:()=>{E(),N(),u===void 0?y():p?.()}}),{ref:H,positionRef:h,interactionRef:V,anchorId:g,describedBy:x,renderTooltip:(0,_.useCallback)((e,r)=>{let a=r?.placement??t,o={placement:a,alignment:r?.alignment??n,offset:s[`--spacing-1`],role:`tooltip`,xstyle:[S,ke[a]],className:i(`tooltip`).className,onMouseEnter:te,onMouseLeave:F};return ee((0,J.jsx)(`div`,{className:`xfsso4q xy143xn x12gdq22 x1djylfy xw5ewwj x13faqbe`,children:e}),o)},[ee,t,n,S,te,F])}}export{Se as a,q as c,M as d,O as f,Ce as i,oe as l,ke as n,ge as o,g as p,Oe as r,ve as s,Ne as t,F as u};
|