@bendyline/gezel-service 1.0.4 → 1.0.5
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/dist/bin/gezeld.js +295 -167
- package/dist/handboek-content/whats-new/1.26226.md +1 -1
- package/dist/index.d.ts +19 -9
- package/dist/index.js +295 -167
- package/dist/ui/assets/{TerminalCodeEditor-BuMcfTS4.js → TerminalCodeEditor-C_Mvaxqz.js} +2 -2
- package/dist/ui/assets/{_.contribution-CZO2XAKt.js → _.contribution-fOcpgyNy.js} +1 -1
- package/dist/ui/assets/{cpp.contribution-BJzhk0Zj.js → cpp.contribution-Cx5HvoW7.js} +1 -1
- package/dist/ui/assets/{csharp.contribution-BR9K2qKj.js → csharp.contribution-DMuCSvzf.js} +1 -1
- package/dist/ui/assets/{css.contribution-CfkVmdah.js → css.contribution-BPXcRoVK.js} +1 -1
- package/dist/ui/assets/{cssMode-MMeGUmV2.js → cssMode-BHAnHChA.js} +1 -1
- package/dist/ui/assets/{dist-CFOmf7nD.js → dist-DRDFuw7G.js} +1 -1
- package/dist/ui/assets/dist-DYn91eSO.js +2 -0
- package/dist/ui/assets/{dockerfile.contribution-IZMl57B5.js → dockerfile.contribution-DQAHazBI.js} +1 -1
- package/dist/ui/assets/{go.contribution-BxCBwhZs.js → go.contribution-Jq5pYI7r.js} +1 -1
- package/dist/ui/assets/{handlebars-CreIkams.js → handlebars-BWC7ZXbe.js} +1 -1
- package/dist/ui/assets/{handlebars.contribution-BGlyL-dm.js → handlebars.contribution-BSmxDPeT.js} +2 -2
- package/dist/ui/assets/{html-BSrz1IKi.js → html-BzC9B_Os.js} +1 -1
- package/dist/ui/assets/{html.contribution-CucOMFQ_.js → html.contribution-CEvtdKHG.js} +2 -2
- package/dist/ui/assets/{htmlMode-DRG7XY5Z.js → htmlMode-1qtmM5J4.js} +1 -1
- package/dist/ui/assets/{index-Bqu-32S3.js → index-JGn32C5f.js} +7 -7
- package/dist/ui/assets/{ini.contribution-CGX5OdXM.js → ini.contribution-BQpzdQzE.js} +1 -1
- package/dist/ui/assets/{java.contribution-CVhfJ_us.js → java.contribution-r3T-8LYE.js} +1 -1
- package/dist/ui/assets/{javascript-QelFp9t5.js → javascript-DlipM3VT.js} +1 -1
- package/dist/ui/assets/{javascript.contribution--no0ijCu.js → javascript.contribution-D4MU3K0o.js} +2 -2
- package/dist/ui/assets/{jsonMode-T4Ss3lDu.js → jsonMode-DSXTaEG9.js} +1 -1
- package/dist/ui/assets/{kotlin.contribution-DxFbGDYA.js → kotlin.contribution-NI_YvQPr.js} +1 -1
- package/dist/ui/assets/{less.contribution-g9R8XRZf.js → less.contribution-BDz7g6GS.js} +1 -1
- package/dist/ui/assets/{lua.contribution-YqDsEy8Z.js → lua.contribution-Cr_f17YF.js} +1 -1
- package/dist/ui/assets/{markdown.contribution-DboXnPnx.js → markdown.contribution-CeJFrLN_.js} +1 -1
- package/dist/ui/assets/{monaco-BdFw56DI.js → monaco-Bv9TxWl_.js} +3 -3
- package/dist/ui/assets/{monaco-base-DrP3D13F.js → monaco-base-DD1Wr24S.js} +1 -1
- package/dist/ui/assets/{monaco-setup-QyF22y9h.js → monaco-setup-CSa3_fbr.js} +1 -1
- package/dist/ui/assets/{monaco.contribution-CMzPFHtO.js → monaco.contribution-DKCJArGP.js} +2 -2
- package/dist/ui/assets/{monaco.contribution-XEpc63ty.js → monaco.contribution-QFH9z5g8.js} +2 -2
- package/dist/ui/assets/{monaco.contribution-BkqIxESv.js → monaco.contribution-ZD-wInG3.js} +2 -2
- package/dist/ui/assets/{monaco.contribution-FA_ESP-W.js → monaco.contribution-tTvEzZ5l.js} +2 -2
- package/dist/ui/assets/{php.contribution-rnpik0Kk.js → php.contribution-B310cs3S.js} +1 -1
- package/dist/ui/assets/{python-CF7X5t9Q.js → python-CcCNDnkj.js} +1 -1
- package/dist/ui/assets/{python.contribution-CyJGCfSq.js → python.contribution-ZHL594qQ.js} +2 -2
- package/dist/ui/assets/{ruby.contribution-4ZyPGu2E.js → ruby.contribution-CRsX2xPw.js} +1 -1
- package/dist/ui/assets/{rust.contribution-Cl_B3X2G.js → rust.contribution-CfwWiQxD.js} +1 -1
- package/dist/ui/assets/{scss.contribution-BO02gVLZ.js → scss.contribution-CJaLNKeq.js} +1 -1
- package/dist/ui/assets/{shell.contribution-Dn9Y0uHs.js → shell.contribution-DLPinQHD.js} +1 -1
- package/dist/ui/assets/{sql.contribution-Bog_5Rc8.js → sql.contribution-DsZSLfVg.js} +1 -1
- package/dist/ui/assets/{swift.contribution-CfiAr7AX.js → swift.contribution-DFBOOFKs.js} +1 -1
- package/dist/ui/assets/{terminal-monaco-setup-B-EnkGiy.js → terminal-monaco-setup-B8Xv2NV9.js} +1 -1
- package/dist/ui/assets/{tsMode-B2WuLuPL.js → tsMode-DqT2Dz4k.js} +1 -1
- package/dist/ui/assets/{typescript-Bv_J1tKT.js → typescript-_R5MS0Lp.js} +1 -1
- package/dist/ui/assets/{typescript.contribution-CM0XQCYi.js → typescript.contribution-CHnXQvfG.js} +2 -2
- package/dist/ui/assets/{xml-DMV-f4tm.js → xml-CQVIKNxb.js} +1 -1
- package/dist/ui/assets/{xml.contribution-QqmOB9gT.js → xml.contribution-HY4GvlWC.js} +2 -2
- package/dist/ui/assets/{yaml-Bb6mZXY5.js → yaml-Nt3uLkWC.js} +1 -1
- package/dist/ui/assets/{yaml.contribution-DCDnWhHR.js → yaml.contribution-C7dllTyY.js} +2 -2
- package/dist/ui/index.html +3 -3
- package/package.json +10 -9
- package/dist/ui/assets/dist-8uH4DcHx.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid.core-Bc_7PgRx.js","assets/preload-helper-Czpn1I53.js","assets/chunk-Y2CYZVJY-DsF7k-Jl.js","assets/src-UMNXGZaF.js","assets/rolldown-runtime-aKtaBQYM.js","assets/chunk-I66GZJ75-LdZkBIbB.js","assets/chunk-NSK5VX7P-52z7Dk2L.js","assets/dist-qx0Iv9vM.js","assets/chunk-3NCLNEKW-lEIanHax.js","assets/chunk-4I5QYGJK-CM-bp6pS.js","assets/chunk-WRU74C26-DepDkkds.js","assets/chunk-7BUUIJ7U-Bb538aSH.js","assets/chunk-UBXNYLIW-BndvwrJT.js","assets/chunk-W5SLKNZC-DYPZQgVw.js","assets/chunk-QR6OTTB3-BCXb4Qaf.js","assets/rough.esm-CSKSodPl.js","assets/chunk-7Z6QIM7H-BQaDNVzL.js","assets/line-CFHPqps4.js","assets/path-BWPyau1x.js","assets/array-BifhSqXX.js","assets/chunk-J7OUQ5F2-DVUb6I1e.js","assets/chunk-ZIRB5QZD-C6fEPe3t.js","assets/monaco-setup-
|
|
2
|
-
import{i as e,n as t,t as n}from"./rolldown-runtime-aKtaBQYM.js";import{$ as r,A as i,At as a,B as o,Bt as s,C as c,Ct as l,D as u,Dt as d,E as f,Et as p,F as m,G as h,H as g,Ht as _,I as v,It as y,J as b,K as x,L as S,Lt as C,M as w,Mt as T,N as E,Nt as D,O,Ot as k,P as A,Pt as j,Q as M,R as N,Rt as P,S as F,St as I,T as L,Tt as R,U as z,Ut as B,V,Vt as H,W as U,X as ee,Y as te,Z as W,_ as G,_t as ne,at as K,b as q,bt as re,c as ie,ct as J,d as ae,dt as oe,et as se,f as Y,ft as ce,g as le,gt as ue,ht as de,i as fe,it as pe,j as me,jt as he,k as ge,kt as _e,l as ve,lt as ye,mt as be,n as xe,nt as Se,o as Ce,ot as we,p as Te,pt as Ee,q as De,r as Oe,rt as ke,s as Ae,st as je,t as Me,tt as Ne,u as Pe,ut as Fe,v as Ie,vt as Le,w as Re,wt as ze,x as Be,xt as Ve,y as He,yt as Ue,z as We,zt as Ge}from"./dist-CFOmf7nD.js";import{a as Ke,c as qe,i as Je,l as Ye,n as Xe,o as Ze,s as Qe,t as $e}from"./dist-8uH4DcHx.js";import{$ as et,A as tt,At as nt,B as rt,C as it,Ct as at,D as ot,Dt as st,E as ct,Et as lt,F as ut,G as dt,H as ft,I as pt,J as mt,K as ht,L as gt,M as _t,Mt as vt,N as yt,Ot as bt,P as xt,Q as St,R as Ct,S as wt,St as Tt,T as Et,Tt as Dt,U as Ot,V as kt,W as At,X as jt,Y as Mt,Z as Nt,_ as Pt,_t as Ft,a as It,at as Lt,b as Rt,bt as zt,c as Bt,ct as Vt,d as Ht,dt as Ut,et as Wt,f as Gt,ft as Kt,g as qt,gt as Jt,h as Yt,ht as Xt,i as Zt,it as Qt,j as $t,jt as en,kt as tn,l as nn,lt as rn,m as an,mt as on,n as sn,nt as cn,o as ln,ot as un,p as dn,pt as fn,q as pn,r as mn,rt as hn,s as gn,st as _n,tt as vn,u as yn,ut as bn,v as xn,vt as Sn,w as Cn,wt as wn,x as Tn,xt as En,y as Dn,yt as On,z as kn}from"./doc-B7NXSLxH.js";import{a as An,c as jn,d as Mn,f as Nn,i as Pn,l as Fn,o as In,s as Ln,t as Rn,u as zn}from"./chunk-O7JILDEF-CqcO1qaI.js";import{a as Bn,d as Vn,n as Hn}from"./chunk-BAOV476U-yPHu-ECL.js";import{a as Un,o as Wn,s as Gn}from"./chunk-4VOD55SX-BFSSw0c8.js";import{D as Kn,O as qn,a as Jn,b as Yn,c as Xn,d as Zn,i as Qn,j as $n,k as er,l as tr,n as nr,o as rr,r as ir,s as ar,u as or,v as sr,x as cr}from"./chunk-GAZKTT4R-BUf32614.js";import{C as lr,F as ur,L as dr,M as fr,N as pr,O as mr,P as hr,R as gr,_ as _r,b as vr,g as yr,i as br,j as xr,k as Sr,n as Cr,r as wr,v as Tr,x as Er,y as Dr}from"./chunk-6MVWWZHL-BtFOxGE8.js";import{a as Or,c as kr,d as Ar,i as jr,l as Mr,n as Nr,o as Pr,r as Fr,s as Ir,u as Lr}from"./markdown-ekej7NJt.js";import{a as Rr,i as zr,n as Br,o as Vr,r as Hr,t as Ur}from"./schemas-Drh23Boe.js";import{t as Wr}from"./preload-helper-Czpn1I53.js";import{n as Gr}from"./pptx-DZdEoDP9.js";import{i as Kr,n as qr,r as Jr}from"./transform-MBfVXq54.js";import{i as Yr,n as Xr,r as Zr}from"./storage-DUIC1aL6.js";import"./chunk-USU6HTKB-B-ElCUQS.js";import{i as Qr,r as $r,t as ei}from"./chunk-7AWFHP5U-MiVVPFTx.js";import{t as ti}from"./container-CKiqsJHV.js";import{n as ni}from"./docx-BEJpkI6I.js";import{a as ri,i as ii,n as ai,r as oi}from"./html-Cgejr9YM.js";import{n as si}from"./pdf-66KslaXf.js";import{t as ci}from"./chunk-KXOZMWBS-BwD4KMLI.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var li=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.8`})),ui=n(((e,t)=>{t.exports=li()})),di=n((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),fi=n(((e,t)=>{t.exports=di()})),pi=n((e=>{var t=ui();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},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(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.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 o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.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=c(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=c(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})}}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=c(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=c(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})}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 s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.8`})),mi=n(((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=pi()})),hi=n((e=>{var t=fi(),n=ui(),r=mi();function i(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 a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function u(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function d(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=d(e),t!==null)return t;e=e.sibling}return null}var f=Object.assign,p=Symbol.for(`react.element`),m=Symbol.for(`react.transitional.element`),h=Symbol.for(`react.portal`),g=Symbol.for(`react.fragment`),_=Symbol.for(`react.strict_mode`),v=Symbol.for(`react.profiler`),y=Symbol.for(`react.consumer`),b=Symbol.for(`react.context`),x=Symbol.for(`react.forward_ref`),S=Symbol.for(`react.suspense`),C=Symbol.for(`react.suspense_list`),w=Symbol.for(`react.memo`),T=Symbol.for(`react.lazy`),E=Symbol.for(`react.activity`),D=Symbol.for(`react.memo_cache_sentinel`),O=Symbol.iterator;function k(e){return typeof e!=`object`||!e?null:(e=O&&e[O]||e[`@@iterator`],typeof e==`function`?e:null)}var A=Symbol.for(`react.client.reference`);function j(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===A?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case g:return`Fragment`;case v:return`Profiler`;case _:return`StrictMode`;case S:return`Suspense`;case C:return`SuspenseList`;case E:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case h:return`Portal`;case b:return e.displayName||`Context`;case y:return(e._context.displayName||`Context`)+`.Consumer`;case x:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case w:return t=e.displayName||null,t===null?j(e.type)||`Memo`:t;case T:t=e._payload,e=e._init;try{return j(e(t))}catch{}}return null}var M=Array.isArray,N=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,P=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,F={pending:!1,data:null,method:null,action:null},I=[],L=-1;function R(e){return{current:e}}function z(e){0>L||(e.current=I[L],I[L]=null,L--)}function B(e,t){L++,I[L]=e.current,e.current=t}var V=R(null),H=R(null),U=R(null),ee=R(null);function te(e,t){switch(B(U,t),B(H,e),B(V,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Wd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Wd(t),e=Gd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}z(V),B(V,e)}function W(){z(V),z(H),z(U)}function G(e){e.memoizedState!==null&&B(ee,e);var t=V.current,n=Gd(t,e.type);t!==n&&(B(H,e),B(V,n))}function ne(e){H.current===e&&(z(V),z(H)),ee.current===e&&(z(ee),ep._currentValue=F)}var K,q;function re(e){if(K===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);K=t&&t[1]||``,q=-1<e.stack.indexOf(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid.core-Bc_7PgRx.js","assets/preload-helper-Czpn1I53.js","assets/chunk-Y2CYZVJY-DsF7k-Jl.js","assets/src-UMNXGZaF.js","assets/rolldown-runtime-aKtaBQYM.js","assets/chunk-I66GZJ75-LdZkBIbB.js","assets/chunk-NSK5VX7P-52z7Dk2L.js","assets/dist-qx0Iv9vM.js","assets/chunk-3NCLNEKW-lEIanHax.js","assets/chunk-4I5QYGJK-CM-bp6pS.js","assets/chunk-WRU74C26-DepDkkds.js","assets/chunk-7BUUIJ7U-Bb538aSH.js","assets/chunk-UBXNYLIW-BndvwrJT.js","assets/chunk-W5SLKNZC-DYPZQgVw.js","assets/chunk-QR6OTTB3-BCXb4Qaf.js","assets/rough.esm-CSKSodPl.js","assets/chunk-7Z6QIM7H-BQaDNVzL.js","assets/line-CFHPqps4.js","assets/path-BWPyau1x.js","assets/array-BifhSqXX.js","assets/chunk-J7OUQ5F2-DVUb6I1e.js","assets/chunk-ZIRB5QZD-C6fEPe3t.js","assets/monaco-setup-CSa3_fbr.js","assets/dist-DRDFuw7G.js","assets/monaco-Bv9TxWl_.js","assets/iconLabel-uMn49Ame.js","assets/iconLabel-Bdh_-Hrb.css","assets/codiconStyles-104B1IQ5.js","assets/codiconStyles-Bp1tMeMk.css","assets/monaco-BBUd89IN.css","assets/monaco-base-DD1Wr24S.js","assets/infer-D6e75m-s.js","assets/chunk-7AWFHP5U-MiVVPFTx.js","assets/jszip.min-DhiFe-R7.js","assets/chunk-S5PCVMKU-i2wfHmvU.js","assets/chunk-KXOZMWBS-BwD4KMLI.js","assets/chunk-WATAOG4Y-BbL-tDgQ.js","assets/chunk-2JJ5RFDZ-Ckbzd10a.js","assets/chunk-GAZKTT4R-BUf32614.js","assets/chunk-BAOV476U-yPHu-ECL.js","assets/chunk-4VOD55SX-BFSSw0c8.js","assets/schemas-Drh23Boe.js","assets/docx-BEJpkI6I.js","assets/doc-B7NXSLxH.js","assets/chunk-O7JILDEF-CqcO1qaI.js","assets/chunk-6MVWWZHL-BtFOxGE8.js","assets/chunk-XRW6P7IF-BeQQgMVK.js","assets/markdown-ekej7NJt.js","assets/chunk-USU6HTKB-B-ElCUQS.js","assets/chunk-JU2RHXUB-CMFDhTux.js","assets/chunk-DWNNYO5H-C9-5Gy65.js","assets/chunk-ILCJ3WFD-CUnKgI_I.js","assets/chunk-IIQYS2YH-CPXng8SW.js","assets/storage-DUIC1aL6.js","assets/chunk-AONELFLA-Cv2nS9ga.js","assets/html-Cgejr9YM.js","assets/chunk-6RQOV3B3-CwvKotJw.js","assets/dist-DYn91eSO.js","assets/images-ESPQKVTW-D7SgdVJ_.js","assets/pdf-66KslaXf.js","assets/pptx-DZdEoDP9.js","assets/chunk-6N2J7C2B-BNHR_rFP.js","assets/xlsx-DDBRN-IU.js","assets/csv-RAgECoUg.js","assets/epub-00L2M424.js","assets/container-CKiqsJHV.js","assets/transform-MBfVXq54.js","assets/TerminalCodeEditor-C_Mvaxqz.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e,n as t,t as n}from"./rolldown-runtime-aKtaBQYM.js";import{$ as r,A as i,At as a,B as o,Bt as s,C as c,Ct as l,D as u,Dt as d,E as f,Et as p,F as m,G as h,H as g,Ht as _,I as v,It as y,J as b,K as x,L as S,Lt as C,M as w,Mt as T,N as E,Nt as D,O,Ot as k,P as A,Pt as j,Q as M,R as N,Rt as P,S as F,St as I,T as L,Tt as R,U as z,Ut as B,V,Vt as H,W as U,X as ee,Y as te,Z as W,_ as G,_t as ne,at as K,b as q,bt as re,c as ie,ct as J,d as ae,dt as oe,et as se,f as Y,ft as ce,g as le,gt as ue,ht as de,i as fe,it as pe,j as me,jt as he,k as ge,kt as _e,l as ve,lt as ye,mt as be,n as xe,nt as Se,o as Ce,ot as we,p as Te,pt as Ee,q as De,r as Oe,rt as ke,s as Ae,st as je,t as Me,tt as Ne,u as Pe,ut as Fe,v as Ie,vt as Le,w as Re,wt as ze,x as Be,xt as Ve,y as He,yt as Ue,z as We,zt as Ge}from"./dist-DRDFuw7G.js";import{a as Ke,c as qe,i as Je,l as Ye,n as Xe,o as Ze,s as Qe,t as $e}from"./dist-DYn91eSO.js";import{$ as et,A as tt,At as nt,B as rt,C as it,Ct as at,D as ot,Dt as st,E as ct,Et as lt,F as ut,G as dt,H as ft,I as pt,J as mt,K as ht,L as gt,M as _t,Mt as vt,N as yt,Ot as bt,P as xt,Q as St,R as Ct,S as wt,St as Tt,T as Et,Tt as Dt,U as Ot,V as kt,W as At,X as jt,Y as Mt,Z as Nt,_ as Pt,_t as Ft,a as It,at as Lt,b as Rt,bt as zt,c as Bt,ct as Vt,d as Ht,dt as Ut,et as Wt,f as Gt,ft as Kt,g as qt,gt as Jt,h as Yt,ht as Xt,i as Zt,it as Qt,j as $t,jt as en,kt as tn,l as nn,lt as rn,m as an,mt as on,n as sn,nt as cn,o as ln,ot as un,p as dn,pt as fn,q as pn,r as mn,rt as hn,s as gn,st as _n,tt as vn,u as yn,ut as bn,v as xn,vt as Sn,w as Cn,wt as wn,x as Tn,xt as En,y as Dn,yt as On,z as kn}from"./doc-B7NXSLxH.js";import{a as An,c as jn,d as Mn,f as Nn,i as Pn,l as Fn,o as In,s as Ln,t as Rn,u as zn}from"./chunk-O7JILDEF-CqcO1qaI.js";import{a as Bn,d as Vn,n as Hn}from"./chunk-BAOV476U-yPHu-ECL.js";import{a as Un,o as Wn,s as Gn}from"./chunk-4VOD55SX-BFSSw0c8.js";import{D as Kn,O as qn,a as Jn,b as Yn,c as Xn,d as Zn,i as Qn,j as $n,k as er,l as tr,n as nr,o as rr,r as ir,s as ar,u as or,v as sr,x as cr}from"./chunk-GAZKTT4R-BUf32614.js";import{C as lr,F as ur,L as dr,M as fr,N as pr,O as mr,P as hr,R as gr,_ as _r,b as vr,g as yr,i as br,j as xr,k as Sr,n as Cr,r as wr,v as Tr,x as Er,y as Dr}from"./chunk-6MVWWZHL-BtFOxGE8.js";import{a as Or,c as kr,d as Ar,i as jr,l as Mr,n as Nr,o as Pr,r as Fr,s as Ir,u as Lr}from"./markdown-ekej7NJt.js";import{a as Rr,i as zr,n as Br,o as Vr,r as Hr,t as Ur}from"./schemas-Drh23Boe.js";import{t as Wr}from"./preload-helper-Czpn1I53.js";import{n as Gr}from"./pptx-DZdEoDP9.js";import{i as Kr,n as qr,r as Jr}from"./transform-MBfVXq54.js";import{i as Yr,n as Xr,r as Zr}from"./storage-DUIC1aL6.js";import"./chunk-USU6HTKB-B-ElCUQS.js";import{i as Qr,r as $r,t as ei}from"./chunk-7AWFHP5U-MiVVPFTx.js";import{t as ti}from"./container-CKiqsJHV.js";import{n as ni}from"./docx-BEJpkI6I.js";import{a as ri,i as ii,n as ai,r as oi}from"./html-Cgejr9YM.js";import{n as si}from"./pdf-66KslaXf.js";import{t as ci}from"./chunk-KXOZMWBS-BwD4KMLI.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var li=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.8`})),ui=n(((e,t)=>{t.exports=li()})),di=n((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),fi=n(((e,t)=>{t.exports=di()})),pi=n((e=>{var t=ui();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},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(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.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 o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.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=c(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=c(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})}}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=c(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=c(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})}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 s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.8`})),mi=n(((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=pi()})),hi=n((e=>{var t=fi(),n=ui(),r=mi();function i(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 a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function u(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function d(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=d(e),t!==null)return t;e=e.sibling}return null}var f=Object.assign,p=Symbol.for(`react.element`),m=Symbol.for(`react.transitional.element`),h=Symbol.for(`react.portal`),g=Symbol.for(`react.fragment`),_=Symbol.for(`react.strict_mode`),v=Symbol.for(`react.profiler`),y=Symbol.for(`react.consumer`),b=Symbol.for(`react.context`),x=Symbol.for(`react.forward_ref`),S=Symbol.for(`react.suspense`),C=Symbol.for(`react.suspense_list`),w=Symbol.for(`react.memo`),T=Symbol.for(`react.lazy`),E=Symbol.for(`react.activity`),D=Symbol.for(`react.memo_cache_sentinel`),O=Symbol.iterator;function k(e){return typeof e!=`object`||!e?null:(e=O&&e[O]||e[`@@iterator`],typeof e==`function`?e:null)}var A=Symbol.for(`react.client.reference`);function j(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===A?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case g:return`Fragment`;case v:return`Profiler`;case _:return`StrictMode`;case S:return`Suspense`;case C:return`SuspenseList`;case E:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case h:return`Portal`;case b:return e.displayName||`Context`;case y:return(e._context.displayName||`Context`)+`.Consumer`;case x:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case w:return t=e.displayName||null,t===null?j(e.type)||`Memo`:t;case T:t=e._payload,e=e._init;try{return j(e(t))}catch{}}return null}var M=Array.isArray,N=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,P=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,F={pending:!1,data:null,method:null,action:null},I=[],L=-1;function R(e){return{current:e}}function z(e){0>L||(e.current=I[L],I[L]=null,L--)}function B(e,t){L++,I[L]=e.current,e.current=t}var V=R(null),H=R(null),U=R(null),ee=R(null);function te(e,t){switch(B(U,t),B(H,e),B(V,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Wd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Wd(t),e=Gd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}z(V),B(V,e)}function W(){z(V),z(H),z(U)}function G(e){e.memoizedState!==null&&B(ee,e);var t=V.current,n=Gd(t,e.type);t!==n&&(B(H,e),B(V,n))}function ne(e){H.current===e&&(z(V),z(H)),ee.current===e&&(z(ee),ep._currentValue=F)}var K,q;function re(e){if(K===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);K=t&&t[1]||``,q=-1<e.stack.indexOf(`
|
|
3
3
|
at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
|
|
4
4
|
`+K+e+q}var ie=!1;function J(e,t){if(!e||ie)return``;ie=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
|
|
5
5
|
`),l=s.split(`
|
|
@@ -147,7 +147,7 @@ Error generating stack: `+e.message+`
|
|
|
147
147
|
`)},[i,c,r]),m=o===`artifact`?`Artifact`:o===`project-document`?`Project doc`:`Document`;return(0,Z.jsxs)(`div`,{className:`pending-question-document${r?` pending-question-document-panel`:``}`,children:[(0,Z.jsxs)(`div`,{className:`pending-question-context-row`,children:[(0,Z.jsx)(`span`,{className:`muted`,children:m}),(0,Z.jsx)(`span`,{className:`pending-question-context-title`,children:t.split(`/`).pop()}),(0,Z.jsxs)(`button`,{type:`button`,className:`pending-question-context-link`,onClick:()=>eC({kind:`document`,path:f}),children:[`Open `,m.toLowerCase()]})]}),u&&(0,Z.jsxs)(`p`,{className:`muted small`,children:[`Couldn't load preview: `,u]}),r&&i===null&&!u&&(0,Z.jsx)(`p`,{className:`muted small`,children:`Loading document…`}),i!==null&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`pending-question-document-preview`,children:(0,Z.jsx)(JS,{markdown:p})}),!r&&i.split(`
|
|
148
148
|
`).length>10&&(0,Z.jsx)(`button`,{type:`button`,className:`pending-question-document-expand subtle`,onClick:()=>l(e=>!e),children:c?`Collapse`:`Show full document`})]})]})}function lC(e,t=200){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function uC({onOpenInChat:e,projectId:t,onEmpty:n}){let[r,i]=(0,X.useState)([]),[a,o]=(0,X.useState)(new Map),[s,c]=(0,X.useState)(new Map),l=(0,X.useRef)(null),u=(0,X.useCallback)(()=>{if(l.current)return l.current;let e=(async()=>{try{let e=await Q.listGezels(),t=new Map;for(let n of e.gezels)t.set(n.id,n);o(t)}catch{}finally{l.current=null}})();return l.current=e,e},[]),d=(0,X.useCallback)(async()=>{try{let e=await Q.listQuestions({pending:!0});i(e.questions)}catch{}},[]);(0,X.useEffect)(()=>{d(),u(),Q.listProjects().then(e=>{let t=new Map;for(let n of e.projects)t.set(n.id,n);c(t)}).catch(()=>{})},[d,u]),(0,X.useEffect)(()=>{r.some(e=>!a.has(e.gezelId))&&u()},[r,a,u]),(0,X.useEffect)(()=>{let e=new AbortController;return(async()=>{try{for await(let t of Ef({url:Q.allEventsUrl(),headers:Q.authHeader(),signal:e.signal,fetch:Q.getFetch()})){let e=t.event;(e.type===`question_asked`||e.type===`question_answered`)&&d()}}catch{}})(),()=>e.abort()},[d]);let f=t?r.filter(e=>e.projectId===t):r,[p,m]=(0,X.useState)(0);(0,X.useEffect)(()=>{p>f.length-1&&m(Math.max(0,f.length-1))},[f.length,p]);let h=(0,X.useRef)(!1);if((0,X.useEffect)(()=>{f.length>0&&(h.current=!0)},[f.length]),(0,X.useEffect)(()=>{t&&h.current&&f.length===0&&n?.()},[t,f.length,n]),f.length===0)return(0,Z.jsx)(`div`,{className:`needs-input-empty muted`,children:`No pending questions right now.`});let g=f[Math.min(p,f.length-1)];if(!g)return null;let _=a.get(g.gezelId),v=s.get(g.projectId);return(0,Z.jsxs)(`section`,{className:`home-needs-input`,children:[(0,Z.jsxs)(`header`,{children:[(0,Z.jsx)(`h3`,{children:`Needs your input`}),(0,Z.jsxs)(`p`,{className:`muted`,children:[`Question `,p+1,` of `,f.length,_?(0,Z.jsxs)(Z.Fragment,{children:[` `,`from `,(0,Z.jsx)(`strong`,{children:_.name})]}):null,v?(0,Z.jsxs)(Z.Fragment,{children:[` `,`· `,(0,Z.jsx)(`span`,{children:v.name})]}):null]})]}),f.length>1&&(0,Z.jsxs)(`div`,{className:`home-needs-input-tabs`,role:`tablist`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`home-needs-input-nav-btn`,onClick:()=>m(e=>Math.max(0,e-1)),disabled:p===0,"aria-label":`Previous question`,title:`Previous question`,children:`←`}),f.map((e,t)=>{let n=a.get(e.gezelId);return(0,Z.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t===p,className:`home-needs-input-tab${t===p?` home-needs-input-tab-active`:``}`,onClick:()=>m(t),title:n?.name??`Gezel`,children:[(0,Z.jsx)(Up,{svg:n?.icon??null,poppetje:n?.poppetje,iconOverride:n?.iconOverride,name:n?.name??`Gezel`,size:16}),(0,Z.jsx)(`span`,{children:t+1})]},e.id)}),(0,Z.jsx)(`button`,{type:`button`,className:`home-needs-input-nav-btn`,onClick:()=>m(e=>Math.min(f.length-1,e+1)),disabled:p>=f.length-1,"aria-label":`Next question`,title:`Next question`,children:`→`})]}),(0,Z.jsxs)(`div`,{className:`home-needs-input-item`,children:[(0,Z.jsxs)(`div`,{className:`home-needs-input-meta`,children:[(0,Z.jsx)(Up,{svg:_?.icon??null,poppetje:_?.poppetje,iconOverride:_?.iconOverride,name:_?.name??`Gezel`,size:20}),(0,Z.jsxs)(`span`,{className:`home-needs-input-author`,children:[(0,Z.jsx)(`strong`,{children:_?.name??`A gezel`}),v&&(0,Z.jsxs)(Z.Fragment,{children:[` · `,(0,Z.jsx)(`span`,{className:`muted`,children:v.name})]})]})]}),(0,Z.jsx)(aC,{question:g,onAnswered:()=>{f.length>1&&m(e=>Math.min(e,f.length-2)),d()},onOpenInChat:e},g.id)]})]})}var dC=`M12 3a9 9 0 1 0 9 9c0-.46-.04-.92-.1-1.36a5.39 5.39 0 0 1-8.54-6.5A8.97 8.97 0 0 0 12 3z`;function Fue({className:e}){return(0,Z.jsx)(`svg`,{className:e,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:(0,Z.jsx)(`path`,{d:dC})})}function fC(){let[e,t]=(0,X.useState)(!1);return(0,X.useEffect)(()=>{let e=!1;Q.getConfig().then(n=>{e||t(n.roleBasedNameOnlyMode??!1)}).catch(()=>{});let n=e=>{let n=e.detail;n&&typeof n.roleBasedNameOnlyMode==`boolean`&&t(n.roleBasedNameOnlyMode)};return window.addEventListener(`gezel:config-updated`,n),()=>{e=!0,window.removeEventListener(`gezel:config-updated`,n)}},[]),e}var pC=Object.keys({copilot:null,openai:null,anthropic:null,"anthropic-cli":null,"codex-cli":null,ollama:null,"llama-cpp":null,mlx:null,ds4:null});function mC(e){return my(e,window.__GEZEL__?.platform)}function Iue(e){return my(e,window.__GEZEL__?.platform,{compact:!0})}function Lue(e){return e.running+e.queuedInteractive+e.queuedBackground>0}function Rue(e){return e.queuedInteractive+e.queuedBackground}var hC={count:0,byGezel:{}};function gC(e){return e?{dispatchable:e.dispatchable??{count:e.pendingCount,byGezel:e.pendingByGezel},scheduled:e.scheduled??hC}:{dispatchable:hC,scheduled:hC}}function zue(e){if(e.holdReason===`engagement-off`)return`AI engagement is off — turn it back on in Settings to start these.`;if(e.holdReason===`engagement-paused`)return`Activity is set to reactive — gezels answer you, but nothing starts on its own.`;if(e.holdReason===`provider-busy`)return`Waiting for a free slot.`}function Bue(e){let t=new Date(e);if(!Number.isNaN(t.getTime()))return t.toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}function Vue(e){if(!e)return`Held for the next Night Shift.`;if(!e.opensAt)return`Night Shift is off — turn it on to run these.`;if(e.active)return`Held for the next window.`;let t=Bue(e.opensAt);return t?`Starts ${t}. Nothing to do.`:`Starts tonight. Nothing to do.`}function _C(e){return e.gezel||e.label!==`System`?{}:{fallbackBackground:`var(--accent)`,fallbackForeground:`var(--accent-selection-ink)`}}function vC(e,t,n){if(e){let t=/^dev:([^:]+):/.exec(e);if(t)return{label:`Remote · ${t[1].slice(0,8)}`};let r=n.get(e);return r?{gezel:r,label:r.name}:{label:e}}return{label:t?.trim()||`System`}}function yC(e,t){let n=e.active[0]??e.pending[0];return{actor:vC(n?.gezelId,n?.actorLabel,t),...n?.projectId?{projectId:n.projectId}:{}}}function bC(e){return e.gezel?.role?.trim()||e.gezel?.roleBasedName?.trim()||void 0}function xC(e,t){if(!e)return;let n=/^dev:[^:]+:(.+)$/.exec(e)?.[1]??e;return t.get(n)?.name??n}function SC(e,t,n,r){let i=[e.label],a=bC(e),o=xC(t,n);return a&&i.push(`Role: ${a}`),o&&i.push(`Project: ${o}`),r&&i.push(`Provider: ${mC(r)}`),i.join(`
|
|
149
149
|
`)}function Hue(e,t,n){let r=e?.trim();if(r){for(let e of[t,n])if(e){if(r===e)return;if(r.startsWith(`${e} · `))return r.slice(e.length+3)}return r}}function CC(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return r===0?`${n}m`:`${n}m ${r}s`}async function Uue(e,t){try{let n=await Q.getChatSession(e),r={gezelId:n.gezelId,sessionId:n.id,projectId:n.projectId};QS(r),t(),window.dispatchEvent(new CustomEvent(`gezel:open-tab`,{detail:{kind:`gezel`,id:n.gezelId}})),window.dispatchEvent(new CustomEvent(`gezel:open-session`,{detail:r}))}catch{}}function wC({sessionId:e,actor:t,onClose:n}){return!e||e.startsWith(`dev:`)?null:(0,Z.jsx)(`button`,{type:`button`,className:`queue-meter-panel-item-open`,"aria-label":`Open chat with ${t}`,title:`Open this chat`,onClick:()=>void Uue(e,n)})}function TC({provider:e,actor:t,projectId:n,projects:r,boringMode:i}){if(!i){let{gezel:i}=t,a=SC(t,n,r,e);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`queue-meter-chip-avatar`,"aria-hidden":`true`,children:(0,Z.jsx)(Up,{svg:i?.icon,poppetje:i?.poppetje,iconOverride:i?.iconOverride,name:t.label,size:20,variant:`icon`,title:a,..._C(t)})}),(0,Z.jsx)(`span`,{className:`queue-meter-chip-gezel-name${i?``:` queue-meter-chip-gezel-name-service`}`,title:a,children:t.label})]})}return(0,Z.jsxs)(`span`,{className:`queue-meter-chip-label`,children:[(0,Z.jsx)(`span`,{className:`queue-meter-chip-label-full`,title:mC(e),children:mC(e)}),(0,Z.jsx)(`span`,{className:`queue-meter-chip-label-short`,title:mC(e),children:Iue(e)})]})}function EC({gezelId:e,actorLabel:t,gezels:n,boringMode:r,kind:i}){let a=vC(e,t,n);if(!r){let{gezel:e}=a;return(0,Z.jsx)(`span`,{className:`queue-meter-panel-item-marker`,"aria-hidden":`true`,children:(0,Z.jsx)(Up,{svg:e?.icon,poppetje:e?.poppetje,iconOverride:e?.iconOverride,name:a.label,size:24,variant:`icon`,pulsing:i===`active`||i===`preparing`,title:a.label,..._C(a)})})}if(i===`active`)return(0,Z.jsx)(`span`,{className:`queue-meter-panel-status-dot`,"aria-hidden":`true`});let o=i===`interactive`||i===`preparing`;return(0,Z.jsx)(`span`,{className:`queue-meter-panel-lane`,title:i===`preparing`?`preparing`:i===`task`?`task handoff`:`${i} lane`,children:o?`•`:`·`})}function DC({gezelId:e,actorLabel:t,projectId:n,gezels:r,projects:a,boringMode:o,job:s,phase:c,extra:l}){let u=vC(e,t,r),d=bC(u),f=xC(n,a),p=[d,f,Hue(s,n,f),c,l].filter(e=>!!e);return(0,Z.jsxs)(`span`,{className:`queue-meter-panel-gezel`,title:SC(u,n,a),children:[(0,Z.jsx)(`span`,{className:`queue-meter-panel-gezel-name`,children:u.gezel?i(u.gezel,o):u.label}),p.length>0&&(0,Z.jsx)(`span`,{className:`queue-meter-panel-context muted`,children:p.join(` · `)})]})}function Wue(){let[e,t]=(0,X.useState)(null),[n,r]=(0,X.useState)(!1),[i,a]=(0,X.useState)(new Map),[o,s]=(0,X.useState)(new Map),[c,l]=(0,X.useState)(null),u=(0,X.useRef)(null),d=yy(u,n,8),f=(0,X.useRef)(0),p=fC(),m=(0,X.useCallback)(()=>{Q.getQueueStatus().then(t).catch(()=>{})},[]);(0,X.useEffect)(()=>{m();let e=setInterval(m,3e3);return()=>clearInterval(e)},[m]);let h=(0,X.useCallback)(()=>{let e=++f.current;Q.listGezels().then(t=>{e===f.current&&a(new Map(t.gezels.map(e=>[e.id,e])))}).catch(()=>{})},[]);(0,X.useEffect)(()=>{h();let e=()=>h();return window.addEventListener(`gezel:gezel-updated`,e),window.addEventListener(`gezel:gezel-deleted`,e),()=>{window.removeEventListener(`gezel:gezel-updated`,e),window.removeEventListener(`gezel:gezel-deleted`,e)}},[h]),(0,X.useEffect)(()=>{Q.listProjects().then(e=>s(new Map(e.projects.map(e=>[e.id,e])))).catch(()=>{})},[]),(0,X.useEffect)(()=>{let e=()=>{Q.getConfig().then(e=>l(e.provider??null)).catch(()=>{})};e();let t=setInterval(e,1e4);return()=>clearInterval(t)},[]),(0,X.useEffect)(()=>{if(!n)return;let e=e=>{let t=u.current;t&&(e.target instanceof Node&&t.contains(e.target)||r(!1))};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[n]),(0,X.useEffect)(()=>{let e=()=>r(!1);return window.addEventListener(`gezel:close-header-popovers`,e),()=>window.removeEventListener(`gezel:close-header-popovers`,e)},[]);let g=(0,X.useMemo)(()=>e?pC.filter(t=>{let n=e.providers[t];return n&&Lue(n)}).map(t=>({name:t,state:e.providers[t]})):[],[e]),_=c===`llama-cpp`?`llama-cpp`:c===`mlx`?`mlx`:c===`ds4`?`ds4`:null,v=gy(_!==null),y=gC(e?.taskRunner).dispatchable.count,b=_?e?.providers[_]:void 0,x=_&&!b?Array.from(v.entries()):[];if(g.length===0&&y===0&&x.length===0)return null;let S=`AI chat queue — click for details`;if(!p){let e=g[0];if(e){let t=yC(e.state,i);S=`${SC(t.actor,t.projectId,o,e.name)}\nClick for queue details`}else{let e=x[0]?.[1];e&&_&&(S=`${SC(vC(e.gezelId,void 0,i),e.projectId,o,_)}\nClick for queue details`)}}return(0,Z.jsxs)(`div`,{className:`queue-meter`,ref:u,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`queue-meter-button${n?` queue-meter-button-open`:``}`,onClick:()=>r(e=>!e),"aria-label":`AI chat queue — click for details`,title:S,children:[g.map(({name:e,state:t})=>{let n=Rue(t),r=yC(t,i);return(0,Z.jsxs)(`span`,{className:`queue-meter-chip`,title:p?mC(e):SC(r.actor,r.projectId,o,e),children:[(0,Z.jsx)(TC,{provider:e,actor:r.actor,projectId:r.projectId,projects:o,boringMode:p}),(0,Z.jsxs)(`span`,{className:`queue-meter-chip-counts`,children:[t.running,n>0?`+${n}`:``]})]},e)}),x.length>0&&_&&(0,Z.jsxs)(`span`,{className:`queue-meter-chip queue-meter-chip-preparing`,title:p?mC(_):SC(vC(x[0]?.[1].gezelId,void 0,i),x[0]?.[1].projectId,o,_),children:[(0,Z.jsx)(TC,{provider:_,actor:vC(x[0]?.[1].gezelId,void 0,i),projectId:x[0]?.[1].projectId,projects:o,boringMode:p}),(0,Z.jsx)(`span`,{className:`queue-meter-chip-counts`,children:x.length})]}),y>0&&(0,Z.jsxs)(`span`,{className:`queue-meter-chip queue-meter-chip-tasks`,children:[(0,Z.jsx)(`span`,{className:`queue-meter-chip-label`,children:`Tasks`}),(0,Z.jsx)(`span`,{className:`queue-meter-chip-counts`,children:y})]})]}),n&&e&&(0,Z.jsx)(Gue,{style:d,status:e,gezels:i,projects:o,liveTurns:v,preparingTurns:x,onDeviceProvider:_,boringMode:p,onClose:()=>r(!1),onItemChanged:m})]})}function Gue({style:e,status:t,gezels:n,projects:r,liveTurns:i,preparingTurns:a,onDeviceProvider:o,boringMode:s,onClose:c,onItemChanged:l}){let[u,d]=(0,X.useState)(()=>new Set),f=pC.map(e=>({name:e,state:t.providers[e]})).filter(e=>e.state),p=o!==null&&a.length>0,m=gC(t.taskRunner),h=zue(t.taskRunner),g=(0,X.useCallback)(async e=>{d(t=>new Set(t).add(e));try{(await Q.cancelChatSessionTurn(e)).cancelled||d(t=>{let n=new Set(t);return n.delete(e),n}),l()}catch{d(t=>{let n=new Set(t);return n.delete(e),n})}},[l]);return(0,Z.jsxs)(`div`,{className:`queue-meter-panel`,style:e,"aria-label":`AI chat queue`,children:[(0,Z.jsxs)(`div`,{className:`queue-meter-panel-header`,children:[(0,Z.jsx)(`strong`,{children:`AI chat queue`}),(0,Z.jsx)(`button`,{type:`button`,className:`queue-meter-panel-close`,onClick:c,"aria-label":`Close`,children:`×`})]}),f.length===0&&!p&&(0,Z.jsx)(`p`,{className:`muted small`,children:`No providers initialized yet.`}),p&&o&&(0,Z.jsxs)(`section`,{className:`queue-meter-panel-section`,children:[(0,Z.jsxs)(`header`,{className:`queue-meter-panel-provider`,children:[(0,Z.jsx)(`span`,{className:`queue-meter-panel-provider-name`,children:mC(o)}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[`starting engine · `,a.length,` waiting`]})]}),(0,Z.jsx)(`ul`,{className:`queue-meter-panel-list`,children:a.map(([e,t])=>(0,Z.jsxs)(`li`,{className:`queue-meter-panel-item queue-meter-panel-item-pending queue-meter-panel-item-interactive`,children:[(0,Z.jsx)(wC,{sessionId:e,actor:kC(t.gezelId,void 0,n,s),onClose:c}),(0,Z.jsx)(EC,{gezelId:t.gezelId,actorLabel:void 0,gezels:n,boringMode:s,kind:`preparing`}),(0,Z.jsx)(DC,{gezelId:t.gezelId,actorLabel:void 0,projectId:t.projectId,gezels:n,projects:r,boringMode:s,phase:t.label}),(0,Z.jsx)(`span`,{className:`queue-meter-panel-time muted`,children:CC(Math.max(0,Date.now()-t.startedAt))}),(0,Z.jsx)(`span`,{className:`queue-meter-panel-actions`,children:(0,Z.jsx)(`button`,{type:`button`,className:`queue-meter-panel-action queue-meter-panel-action-cancel`,"aria-label":`Cancel queued turn`,title:`Cancel this queued turn`,onClick:()=>{Q.cancelChatSessionTurn(e).then(l).catch(()=>{})},children:`×`})})]},`preparing-${e}`))})]}),f.map(({name:e,state:a})=>{if(!a)return null;let o=a.running,d=a.queuedInteractive+a.queuedBackground,f=Math.min(d,a.ambientHeld??0),p=d-f;return(0,Z.jsxs)(`section`,{className:`queue-meter-panel-section`,children:[(0,Z.jsxs)(`header`,{className:`queue-meter-panel-provider`,children:[(0,Z.jsx)(`span`,{className:`queue-meter-panel-provider-name`,children:mC(e)}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[o,` / `,a.concurrency,` in flight`,p>0?` · ${p} queued`:``,f>0?` · ${f} deferred until idle`:``]})]}),a.active.length===0&&d===0?(0,Z.jsx)(`p`,{className:`muted small queue-meter-panel-empty`,children:`Idle.`}):(0,Z.jsxs)(`ul`,{className:`queue-meter-panel-list`,children:[a.active.map((a,o)=>{let l=e===`llama-cpp`&&a.sessionId?i.get(a.sessionId):void 0,d=a.sessionId&&t?.cache?t.cache.find(t=>t.providerName===e)?.sessions.find(e=>e.sessionId===a.sessionId):void 0,f=kC(a.gezelId,a.actorLabel,n,s),p=a.sessionId&&!a.sessionId.startsWith(`dev:`)?a.sessionId:void 0,m=p?u.has(p):!1;return(0,Z.jsxs)(`li`,{className:`queue-meter-panel-item queue-meter-panel-item-active`,children:[(0,Z.jsx)(wC,{sessionId:a.sessionId,actor:f,onClose:c}),(0,Z.jsx)(EC,{gezelId:a.gezelId,actorLabel:a.actorLabel,gezels:n,boringMode:s,kind:`active`}),(0,Z.jsx)(DC,{gezelId:a.gezelId,actorLabel:a.actorLabel,projectId:a.projectId,gezels:n,projects:r,boringMode:s,job:a.job,phase:l?.label,extra:d?`cached`:void 0}),(0,Z.jsx)(`span`,{className:`queue-meter-panel-time muted`,children:CC(a.runningForMs)}),p&&(0,Z.jsx)(`span`,{className:`queue-meter-panel-actions queue-meter-panel-actions-active`,children:(0,Z.jsx)(`button`,{type:`button`,className:`queue-meter-panel-action queue-meter-panel-action-stop`,"aria-label":`Stop active chat with ${f}`,title:`Stop this active chat`,disabled:m,onClick:()=>void g(p),children:m?`Stopping…`:`■ Stop`})})]},`active-${a.sessionId??o}`)}),a.pending.map(t=>{let i=a.pending.filter(e=>e.lane===t.lane),o=i.indexOf(t),u=o===0,d=o===i.length-1;return(0,Z.jsxs)(`li`,{className:`queue-meter-panel-item queue-meter-panel-item-pending queue-meter-panel-item-${t.lane}`,children:[(0,Z.jsx)(wC,{sessionId:t.sessionId,actor:kC(t.gezelId,t.actorLabel,n,s),onClose:c}),(0,Z.jsx)(EC,{gezelId:t.gezelId,actorLabel:t.actorLabel,gezels:n,boringMode:s,kind:t.lane}),(0,Z.jsx)(DC,{gezelId:t.gezelId,actorLabel:t.actorLabel,projectId:t.projectId,gezels:n,projects:r,boringMode:s,job:t.job,extra:t.ambient&&f>0?`deferred until idle`:void 0}),(0,Z.jsx)(`span`,{className:`queue-meter-panel-time muted`,children:CC(t.waitedMs)}),(0,Z.jsxs)(`span`,{className:`queue-meter-panel-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`queue-meter-panel-action`,"aria-label":`Move up`,title:`Move higher in queue`,disabled:u,onClick:()=>{Q.moveProviderQueueItem(e,t.id,`up`).then(l).catch(()=>{})},children:`▲`}),(0,Z.jsx)(`button`,{type:`button`,className:`queue-meter-panel-action`,"aria-label":`Move down`,title:`Move lower in queue`,disabled:d,onClick:()=>{Q.moveProviderQueueItem(e,t.id,`down`).then(l).catch(()=>{})},children:`▼`}),(0,Z.jsx)(`button`,{type:`button`,className:`queue-meter-panel-action queue-meter-panel-action-cancel`,"aria-label":`Cancel queued turn`,title:`Cancel this queued turn`,onClick:()=>{Q.cancelProviderQueueItem(e,t.id).then(l).catch(()=>{})},children:`×`})]})]},`pending-${t.id}`)})]})]},e)}),m.dispatchable.count>0&&(0,Z.jsxs)(`section`,{className:`queue-meter-panel-section`,children:[(0,Z.jsxs)(`header`,{className:`queue-meter-panel-provider`,children:[(0,Z.jsx)(`span`,{className:`queue-meter-panel-provider-name`,children:`Task handoffs`}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[m.dispatchable.count,` pending dispatch`]})]}),h&&(0,Z.jsx)(`p`,{className:`queue-meter-panel-note muted small`,children:h}),(0,Z.jsx)(OC,{byGezel:m.dispatchable.byGezel,gezels:n,boringMode:s})]}),m.scheduled.count>0&&(0,Z.jsxs)(`section`,{className:`queue-meter-panel-section queue-meter-panel-section-scheduled`,children:[(0,Z.jsxs)(`header`,{className:`queue-meter-panel-provider`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`queue-meter-panel-provider-name queue-meter-panel-jump`,onClick:()=>{c(),window.dispatchEvent(new CustomEvent(`gezel:open-night-shift`))},title:`Open the Night Shift menu`,children:[(0,Z.jsx)(Fue,{className:`queue-meter-panel-moon`}),`Night Shift`]}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[m.scheduled.count,` scheduled`]})]}),(0,Z.jsx)(`p`,{className:`queue-meter-panel-note muted small`,children:Vue(t.taskRunner.nightShift)}),(0,Z.jsx)(OC,{byGezel:m.scheduled.byGezel,gezels:n,boringMode:s})]})]})}function OC({byGezel:e,gezels:t,boringMode:n}){return(0,Z.jsx)(`ul`,{className:`queue-meter-panel-list`,children:Object.entries(e).map(([e,r])=>(0,Z.jsxs)(`li`,{className:`queue-meter-panel-item queue-meter-panel-item-pending`,children:[(0,Z.jsx)(EC,{gezelId:e,actorLabel:void 0,gezels:t,boringMode:n,kind:`task`}),(0,Z.jsx)(`span`,{className:`queue-meter-panel-gezel`,children:kC(e,void 0,t,n)}),(0,Z.jsxs)(`span`,{className:`queue-meter-panel-time muted`,children:[`×`,r]})]},e))})}function kC(e,t,n,r){let a=vC(e,t,n);return a.gezel?i(a.gezel,r):a.label}var AC=new Map;async function jC(e){let t=AC.get(e);t&&await t.controller.flush()}var Kue=class{resourceKey;desired;acknowledged;save;debounceMs;phase=`idle`;error=null;timer=null;drainPromise=null;activeValue=null;needsWrite=!1;listeners=new Set;constructor(e){this.resourceKey=e.resourceKey,this.desired=e.initialValue,this.acknowledged=e.initialValue,this.save=e.save,this.debounceMs=e.debounceMs??1e3}configure(e){this.save=e}getSnapshot(){return{phase:this.phase,dirty:this.desired!==this.acknowledged||this.activeValue!==null||this.needsWrite,error:this.error}}getDesiredValue(){return this.desired}getAcknowledgedValue(){return this.acknowledged}subscribe(e){return this.listeners.add(e),e(this.getSnapshot()),()=>this.listeners.delete(e)}update(e){this.desired=e,this.error=null,this.phase=this.activeValue===null?e===this.acknowledged&&!this.needsWrite?this.phase===`idle`?`idle`:`saved`:`dirty`:`saving`,this.emit(),this.clearTimer(),(e!==this.acknowledged||this.needsWrite)&&(this.timer=setTimeout(()=>{this.timer=null,this.flush().catch(()=>{})},this.debounceMs))}adopt(e){if(this.activeValue!==null||this.drainPromise||this.getSnapshot().dirty)throw Error(`Cannot adopt ${this.resourceKey} while its autosave lane is dirty`);this.clearTimer(),this.desired=e,this.acknowledged=e,this.needsWrite=!1,this.error=null,this.phase=`saved`,this.emit()}hydrate(e){return this.activeValue!==null||this.drainPromise||this.getSnapshot().dirty?this.desired:(this.clearTimer(),this.desired=e,this.acknowledged=e,this.needsWrite=!1,this.error=null,this.phase=`idle`,this.emit(),e)}async saveNow(e){return this.update(e),this.clearTimer(),this.flush()}retry(){return this.clearTimer(),this.flush()}flush(){if(this.clearTimer(),this.drainPromise)return this.drainPromise;if(this.desired===this.acknowledged&&!this.needsWrite)return Promise.resolve(void 0);let e=this.drain();return this.drainPromise=e,e.then(()=>{this.drainPromise===e&&(this.drainPromise=null)},()=>{this.drainPromise===e&&(this.drainPromise=null)}),e}async drain(){let e;for(;this.desired!==this.acknowledged||this.needsWrite;){let t=this.desired;this.activeValue=t,this.phase=`saving`,this.error=null,this.emit();try{e=await this.save(t)}catch(e){throw this.activeValue=null,this.needsWrite=!0,this.phase=`error`,this.error=e instanceof Error?e:Error(String(e)),this.emit(),this.error}this.acknowledged=t,this.activeValue=null,this.needsWrite=!1,this.desired===t?(this.phase=`saved`,this.error=null,this.emit({type:`saved`,result:e,value:t})):(this.phase=`saving`,this.emit())}return e}clearTimer(){this.timer&&=(clearTimeout(this.timer),null)}emit(e){let t=this.getSnapshot();for(let n of this.listeners)n(t,e)}};function MC(e){let t=(0,X.useMemo)(()=>{let t=AC.get(e.resourceKey);if(t)return t;let n={controller:new Kue({resourceKey:e.resourceKey,initialValue:e.initialValue,save:e.save,debounceMs:e.debounceMs}),users:0};return AC.set(e.resourceKey,n),n},[e.resourceKey]),n=t.controller;n.configure(e.save);let r=(0,X.useRef)(e.onLatestSaved);r.current=e.onLatestSaved;let[i,a]=(0,X.useState)(()=>n.getSnapshot());(0,X.useLayoutEffect)(()=>{t.users+=1,a(n.getSnapshot());let e=n.subscribe((e,t)=>{a(e),t?.type===`saved`&&r.current?.(t.result,t.value)});return()=>{e(),--t.users,n.getSnapshot().phase!==`error`&&n.flush().then(()=>{t.users===0&&!n.getSnapshot().dirty&&AC.get(n.resourceKey)===t&&AC.delete(n.resourceKey)},()=>{})}},[n,t]);let o=(0,X.useCallback)(e=>n.update(e),[n]),s=(0,X.useCallback)(e=>n.adopt(e),[n]),c=(0,X.useCallback)(e=>n.hydrate(e),[n]),l=(0,X.useCallback)(()=>n.flush(),[n]),u=(0,X.useCallback)(()=>n.retry(),[n]),d=(0,X.useCallback)(e=>n.saveNow(e),[n]),f=(0,X.useCallback)(()=>n.getDesiredValue(),[n]),p=(0,X.useCallback)(()=>n.getAcknowledgedValue(),[n]);return(0,X.useMemo)(()=>({...i,update:o,adopt:s,hydrate:c,flush:l,retry:u,saveNow:d,desiredValue:f,acknowledgedValue:p}),[i,o,s,c,l,u,d,f,p])}var NC=`gezel:sidebar-side`,PC=`gezel:sidebar-side-change`;function FC(){try{if(localStorage.getItem(NC)===`left`)return`left`}catch{}return`right`}function que(e){try{e===`right`?localStorage.removeItem(NC):localStorage.setItem(NC,e)}catch{}IC(e),window.dispatchEvent(new CustomEvent(PC)),Q.updateConfig({sidebarSide:e}).catch(()=>{})}function IC(e){let t=document.documentElement;e===`left`?t.removeAttribute(`data-sidebar-side`):t.setAttribute(`data-sidebar-side`,`right`)}async function Jue(){let e;try{let t=await Q.getConfig();(t.sidebarSide===`left`||t.sidebarSide===`right`)&&(e=t.sidebarSide)}catch{return}if(e&&e!==FC()){try{e===`right`?localStorage.removeItem(NC):localStorage.setItem(NC,e)}catch{}IC(e),window.dispatchEvent(new CustomEvent(PC))}}var Yue={darwin:`Run the Gezel PKG again and approve Installer’s administrator prompt.`,win32:`Run the Gezel installer again and approve the Windows administrator prompt.`,linux:`Reinstall the Gezel .deb or .rpm package.`};function LC(e){return(e&&Yue[e])??`Run the Gezel installer again.`}function RC(e){let{reason:t,code:n,platform:r}=e;return t?n===`machine-service-not-installed`?{id:`machine-service-not-installed`,railLabel:`Model sharing is off`,title:`Gezel is using this account’s model engine.`,body:`Everything works and all of your gezellen, projects, chats, files, scheduled tasks, and night shift stay in this account. Local model downloads, memory use, and GPU work are not being shared with other Gezel users on this machine. The shared engine is installed for the whole machine, so Gezel cannot repair it from inside the app. ${LC(r)}`,technical:t,reportable:!0}:n===`machine-engine-unavailable`?{id:`machine-engine-unavailable`,railLabel:`Model sharing is off`,title:`The shared model engine is unavailable.`,body:`Gezel is keeping your projects, chats, tools, scheduled work, and credentials in this account as usual. Local model work is running here instead, so downloads, memory use, and GPU queues are not shared with other Gezel users on this machine. Gezel will retry the shared engine automatically; if it remains unavailable, ${LC(r).replace(/^./,e=>e.toLowerCase())}`,technical:t,reportable:!0}:n===`legacy-machine-data`?{id:`legacy-machine-data`,railLabel:`Data migration needed`,title:`Gezel preserved your machine-wide projects.`,body:`This installation contains projects made by an older machine-wide Gezel service. They remain available in compatibility mode, so nothing is moved or hidden during the upgrade. User-owned folders outside that service home still have the older access limitation. Keep this installation and its machine data in place until Gezel offers an explicit per-user migration.`,technical:t,reportable:!1}:n===`machine-service-home-fresh`?{id:`machine-service-home-fresh`,railLabel:`Using your per-user data`,title:`Gezel is using your per-user data.`,body:`The machine-wide background service is running, but it has never held any data — while this account already has gezellen, projects, and chats. Gezel connected to your existing data and will keep doing so. Everything works normally; the machine-wide service simply sits idle. This choice is saved, and you can revisit it under Settings.`,technical:t,reportable:!1}:n===`system-service-version-mismatch`?{id:`service-version-mismatch`,railLabel:`Service version differs`,title:`Gezel updated, but its background service did not.`,body:`Everything still works and none of your gezellen, projects, or chats are affected — but the app and the service are on different versions, so newer features may misbehave until they match. The service is installed for the whole machine, so only the installer can replace it. ${LC(r)}`,technical:t,reportable:!0}:{id:`service-unavailable`,railLabel:`Background work is off`,title:`Background work is off.`,body:`Gezel itself works normally and all of your gezellen, projects, chats, and files are here. Autostart, scheduled work, and night shift stay off until the background service runs again, and it will not start again by itself. Reopening Gezel retries it once; if it stays off, reinstall Gezel. ${LC(r)}`,technical:t,reportable:!0}:null}function zC(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`],n=e/1024,r=t[0];for(let e=1;e<t.length&&n>=1024;e+=1)n/=1024,r=t[e];return`${n>=10?n.toFixed(0):n.toFixed(1)} ${r}`}function Xue(e){let t=[];return e.transferred!==void 0&&e.total!==void 0&&t.push(`${zC(e.transferred)} of ${zC(e.total)}`),e.bytesPerSecond!==void 0&&t.push(`${zC(e.bytesPerSecond)}/s`),t.length>0?` (${t.join(` · `)})`:``}function BC(e,t){if(!e)return null;if(e.kind===`checking`)return{id:`update-checking`,railLabel:`Checking for updates…`,title:`Gezel is checking for updates.`,body:`This usually takes only a moment.`,tone:`progress`};if(e.kind===`up-to-date`)return{id:`update-up-to-date`,railLabel:`Gezel is up to date`,title:`Gezel ${e.version} is up to date.`,body:`No newer public desktop release is available.`,tone:`success`};if(e.kind===`downloading`)return{id:`update-downloading`,railLabel:`Downloading update${e.percent===void 0?``:` · ${e.percent}%`}`,title:`Downloading Gezel ${e.version}.`,body:`You can keep working while the update downloads${Xue(e)}.`,tone:`progress`};if(e.kind===`ready`){let n=t!==`darwin`;return{id:`update-ready`,railLabel:n?`Update ready — quit to install`:`Update ready to install`,title:`Gezel ${e.version} is ready to install.`,body:n?`It will install automatically after you quit Gezel completely. Closing the window may leave Gezel running in the system tray.`:`Choose Open installer in Settings or on Home to launch the verified macOS installer.`,tone:`success`}}return e.stage===`download`?{id:`update-download-failed`,railLabel:`Update download needs attention`,title:`Gezel could not download the update.`,body:`You can keep working. Gezel will try again next time it starts, or you can download the installer yourself.`,technical:e.message,link:{href:Ve(e.version),label:`Get the latest release`},tone:`warning`}:e.stage===`install`?{id:`update-install-failed`,railLabel:`Update needs attention`,title:`Gezel could not install the update.`,body:`You can keep working. Download the latest version and run the installer to update manually.`,technical:e.message,reportable:!0,link:{href:Ve(e.version),label:`Get the latest release`},tone:`warning`}:{id:`update-check-failed`,railLabel:null,title:`Gezel could not check for updates.`,body:`Nothing is wrong with this install. Gezel could not reach the release listing — normal when you are offline or behind a restrictive network, and also what it looks like when no public release has been published yet. Gezel will try again the next time it starts.`,technical:e.message,link:{href:G,label:`Check releases yourself`},tone:`warning`}}var Zue={cuda:`NVIDIA GPU (CUDA)`,vulkan:`GPU (Vulkan)`,metal:`GPU (Metal)`,cpu:`CPU`};function VC(e){return(e&&Zue[e])??e??`another backend`}function Que(e){let t=e.quarantined?.[0];return t?{id:`engine-backend-quarantined`,railLabel:`Running on ${VC(e.running)}`,title:`Gezel switched off ${VC(t)} on this machine.`,body:[`The ${VC(t)} engine crashed every time it started here, so Gezel is using`,`${VC(e.running)} instead. Everything still works — local models are just`,`slower than this machine is capable of. Gezel retries automatically once a Gezel update`,`ships a new engine build, and updating your GPU driver is worth trying in the meantime.`].join(` `),technical:`quarantined backends: ${e.quarantined?.join(`, `)}`,reportable:!0}:null}function $ue(e){return e.denied?{id:`child-process-denied`,railLabel:`Service cannot run programs`,title:`Gezel’s background service is not allowed to start programs.`,body:`Your gezellen, projects, chats, and files are all safe and nothing has been lost. But the background service cannot start the programs it needs, so local models will not answer, your GPU is not detected, and gezel tools, scripts, and installs will fail. This comes from how the service was registered on this PC, which Gezel cannot change from inside. ${LC(e.platform)}`,technical:`Child-process creation is denied (spawn EPERM). The GezelService token is write-restricted; from an elevated prompt: sc.exe sidtype GezelService unrestricted, then restart the service.`,reportable:!0}:null}function ede(e){return[$ue({...e.childProcessDenied?{denied:e.childProcessDenied}:{},...e.platform?{platform:e.platform}:{}}),RC(e),Que({...e.quarantinedBackends?{quarantined:e.quarantinedBackends}:{},...e.runningBackend?{running:e.runningBackend}:{}}),BC(e.update,e.platform)].filter(e=>e!==null&&e.railLabel!==null)}var HC=null,UC=!1,WC=new Set;function GC(){for(let e of WC)e()}function tde(){if(UC)return;UC=!0;let e=window.__GEZEL__?.update;e&&(e.state().then(e=>{e&&!HC&&(HC=e,GC())}).catch(()=>{}),e.onStateChanged(e=>{HC=e,GC()}))}function nde(e){return tde(),WC.add(e),()=>{WC.delete(e)}}function rde(){return HC}function KC(){return(0,X.useSyncExternalStore)(nde,rde)}function qC({area:e,size:t=14,className:n}){return(0,Z.jsx)(`svg`,{width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.8,strokeLinecap:`round`,strokeLinejoin:`round`,className:n,"aria-hidden":`true`,focusable:`false`,children:ide[e]})}var ide={projects:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`rect`,{x:`3`,y:`7`,width:`18`,height:`13`,rx:`2`}),(0,Z.jsx)(`path`,{d:`M9 7V5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2`}),(0,Z.jsx)(`path`,{d:`M3 13h18`})]}),gezels:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`circle`,{cx:`9`,cy:`9`,r:`3.2`}),(0,Z.jsx)(`path`,{d:`M3 19c0-3 2.7-5.5 6-5.5s6 2.5 6 5.5`}),(0,Z.jsx)(`path`,{d:`M16 4.5a3 3 0 0 1 0 6`}),(0,Z.jsx)(`path`,{d:`M21 19c0-2.4-1.7-4.5-4-5.2`})]}),documents:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z`}),(0,Z.jsx)(`path`,{d:`M14 3v6h6`}),(0,Z.jsx)(`path`,{d:`M8 13h8`}),(0,Z.jsx)(`path`,{d:`M8 17h6`})]}),tasks:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`rect`,{x:`6`,y:`4`,width:`12`,height:`17`,rx:`2`}),(0,Z.jsx)(`path`,{d:`M9 4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z`}),(0,Z.jsx)(`path`,{d:`M9 12l2 2 4-4`}),(0,Z.jsx)(`path`,{d:`M9 17h6`})]}),craftbooks:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M12 5c-1.5-1.2-3.5-1.8-5.5-1.8C5 3.2 4 3.5 3 4v14c1-.5 2-.8 3.5-.8 2 0 4 .6 5.5 1.8`}),(0,Z.jsx)(`path`,{d:`M12 5c1.5-1.2 3.5-1.8 5.5-1.8 1.5 0 2.5.3 3.5.8v14c-1-.5-2-.8-3.5-.8-2 0-4 .6-5.5 1.8z`}),(0,Z.jsx)(`path`,{d:`M12 5v14`})]}),scripts:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`polyline`,{points:`16 18 22 12 16 6`}),(0,Z.jsx)(`polyline`,{points:`8 6 2 12 8 18`}),(0,Z.jsx)(`path`,{d:`M14 4l-4 16`})]}),history:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M3 12a9 9 0 1 0 3-6.7L3 8`}),(0,Z.jsx)(`polyline`,{points:`3 3 3 8 8 8`}),(0,Z.jsx)(`polyline`,{points:`12 7 12 12 15 14`})]}),settings:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`}),(0,Z.jsx)(`path`,{d:`M12 2v3M12 19v3M4.2 4.2l2.1 2.1M17.7 17.7l2.1 2.1M2 12h3M19 12h3M4.2 19.8l2.1-2.1M17.7 6.3l2.1-2.1`})]}),benchmarks:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`line`,{x1:`3`,y1:`20`,x2:`21`,y2:`20`}),(0,Z.jsx)(`rect`,{x:`5`,y:`11`,width:`3`,height:`8`}),(0,Z.jsx)(`rect`,{x:`10.5`,y:`7`,width:`3`,height:`12`}),(0,Z.jsx)(`rect`,{x:`16`,y:`14`,width:`3`,height:`5`})]}),handboek:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M4 19.5A2.5 2.5 0 0 1 6.5 17H20`}),(0,Z.jsx)(`path`,{d:`M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z`}),(0,Z.jsx)(`path`,{d:`M10 2v7l2.5-1.8L15 9V2`})]})};function ade(e){let t=[],n=new Map;for(let t of e)n.set(t.path,{name:t.name,path:t.path,isDirectory:t.isDirectory,children:[]});for(let r of e){let e=n.get(r.path);if(!e)continue;let i=r.path.includes(`/`)?r.path.slice(0,r.path.lastIndexOf(`/`)):``,a=i?n.get(i):void 0;a?a.children.push(e):t.push(e)}return t}function ode(e){return e.isDirectory?(0,Z.jsx)(`i`,{className:`tree-icon tree-icon-folder fa-regular fa-folder fa-fw`,"aria-hidden":`true`}):/\.(png|jpe?g|gif|svg|webp|bmp)$/i.test(e.name)?(0,Z.jsx)(`i`,{className:`tree-icon fa-regular fa-file-image fa-fw`,"aria-hidden":`true`}):(0,Z.jsx)(`i`,{className:`tree-icon fa-regular fa-file-lines fa-fw`,"aria-hidden":`true`})}function sde(e){return e.name}function JC({entries:e,selectedPath:t,onSelect:n,onRename:r,onDelete:i,actionsForEntry:a,trailingForEntry:o,defaultExpandedDepth:s=2,iconFor:c=ode,labelFor:l=sde,selectableFolders:u=!1}){return(0,Z.jsx)(Z.Fragment,{children:ade(e).map(e=>(0,Z.jsx)(YC,{node:e,depth:0,selectedPath:t,onSelect:n,onRename:r,onDelete:i,actionsForEntry:a,trailingForEntry:o,defaultExpandedDepth:s,iconFor:c,labelFor:l,selectableFolders:u},e.path))})}function YC({node:e,depth:t,selectedPath:n,onSelect:r,onRename:i,onDelete:a,actionsForEntry:o,trailingForEntry:s,defaultExpandedDepth:c,iconFor:l,labelFor:u,selectableFolders:d}){let[f,p]=(0,X.useState)(t<c),m={name:e.name,path:e.path,isDirectory:e.isDirectory},h=u(m),g=o?.(m)??[],_=s?.(m),v=!!(i||a||g.length>0),y=e.isDirectory&&e.children.length>0,b=(0,Z.jsxs)(`div`,{className:`tree-row${n===e.path?` tree-row-selected`:``}`,style:{paddingLeft:`${t*16+4}px`},children:[y?(0,Z.jsx)(`button`,{type:`button`,className:`tree-toggle`,onClick:()=>p(!f),"aria-expanded":f,"aria-label":f?`Collapse ${h}`:`Expand ${h}`,children:(0,Z.jsx)(`span`,{className:`tree-toggle-caret${f?` expanded`:``}`,"aria-hidden":`true`,children:(0,Z.jsx)(`svg`,{width:14,height:14,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2.2,strokeLinecap:`round`,strokeLinejoin:`round`,focusable:`false`,"aria-hidden":`true`,children:(0,Z.jsx)(`polyline`,{points:`9 6 15 12 9 18`})})})}):(0,Z.jsx)(`span`,{className:`tree-toggle-spacer`}),(0,Z.jsxs)(`button`,{type:`button`,className:`tree-label`,onClick:()=>{!e.isDirectory||d?r(m):p(!f)},children:[l(m),` `,h]}),_&&(0,Z.jsx)(`span`,{className:`tree-row-trailing`,children:_}),v&&(0,Z.jsxs)(O_,{children:[(0,Z.jsx)(k_,{asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,className:`tree-actions-trigger`,"aria-label":`Actions for ${h}`,title:`Actions for ${h}`,children:(0,Z.jsx)(`span`,{"aria-hidden":`true`,children:`⋯`})})}),(0,Z.jsx)(A_,{children:(0,Z.jsxs)(j_,{className:`app-nav-menu tree-actions-menu`,sideOffset:4,align:`end`,children:[i&&(0,Z.jsx)(M_,{className:`app-nav-menu-item`,onSelect:()=>i(m),children:`Rename…`}),a&&(0,Z.jsx)(M_,{className:`app-nav-menu-item danger`,onSelect:()=>a(m),children:`Delete…`}),g.length>0&&(i||a)&&(0,Z.jsx)(Lne,{className:`app-nav-menu-separator`}),g.map(e=>(0,Z.jsx)(M_,{className:`app-nav-menu-item`,disabled:e.disabled,onSelect:()=>void e.onSelect(m),children:e.label},e.label))]})})]})]});return(0,Z.jsxs)(`div`,{children:[v?(0,Z.jsxs)(C_,{children:[(0,Z.jsx)(w_,{asChild:!0,children:b}),(0,Z.jsx)(T_,{children:(0,Z.jsxs)(E_,{className:`app-nav-menu tree-actions-menu`,children:[i&&(0,Z.jsx)(D_,{className:`app-nav-menu-item`,onSelect:()=>i(m),children:`Rename…`}),a&&(0,Z.jsx)(D_,{className:`app-nav-menu-item danger`,onSelect:()=>a(m),children:`Delete…`}),g.length>0&&(i||a)&&(0,Z.jsx)(Ine,{className:`app-nav-menu-separator`}),g.map(e=>(0,Z.jsx)(D_,{className:`app-nav-menu-item`,disabled:e.disabled,onSelect:()=>void e.onSelect(m),children:e.label},e.label))]})})]}):b,y&&f&&(0,Z.jsx)(`div`,{children:e.children.map(e=>(0,Z.jsx)(YC,{node:e,depth:t+1,selectedPath:n,onSelect:r,onRename:i,onDelete:a,actionsForEntry:o,trailingForEntry:s,defaultExpandedDepth:c,iconFor:l,labelFor:u,selectableFolders:d},e.path))})]})}var XC=[`Retire gezel`,`Let gezel win the lottery`,`Send gezel to recess`];function cde(){return XC[Math.floor(Math.random()*XC.length)]??XC[0]}function lde(e,t){switch(e){case`Retire gezel`:return`Retire ${t}`;case`Let gezel win the lottery`:return`Let ${t} win the lottery`;case`Send gezel to recess`:return`Send ${t} to recess`}}function ZC({gezel:e,onDeleted:t,compact:n=!1}){let[r]=(0,X.useState)(cde),[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)(null);if(e.storageScope===`machine-shared`)return null;let c=()=>{s(null),a(!0)},l=async()=>{s(null);try{await Q.deleteGezel(e.id),a(!1),window.dispatchEvent(new CustomEvent(`gezel:gezel-deleted`,{detail:{gezelId:e.id,name:e.name}})),t?.(e.id)}catch(e){throw s(e instanceof Error?e.message:String(e)),e}},u=lde(r,e.name);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(O_,{children:[(0,Z.jsx)(k_,{asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,className:`gezel-actions-trigger${n?` gezel-actions-trigger--row`:``}`,"aria-label":`Actions for ${e.name}`,title:`Gezel actions`,children:(0,Z.jsxs)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:[(0,Z.jsx)(`circle`,{cx:`12`,cy:`5`,r:`1.6`}),(0,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.6`}),(0,Z.jsx)(`circle`,{cx:`12`,cy:`19`,r:`1.6`})]})})}),(0,Z.jsx)(A_,{children:(0,Z.jsx)(j_,{className:`app-nav-menu gezel-actions-menu`,sideOffset:4,align:`end`,children:(0,Z.jsxs)(M_,{className:`app-nav-menu-item danger`,onSelect:c,children:[r,`…`]})})})]}),(0,Z.jsx)(ty,{open:i,title:`${u}?`,message:(0,Z.jsxs)(Z.Fragment,{children:[`This will permanently remove `,e.name,`, including their chats, memories, and settings, from your system. You won't be able to get this gezel back.`,o&&(0,Z.jsx)(`span`,{className:`gezel-delete-error`,children:o})]}),confirmLabel:u,danger:!0,onConfirm:l,onCancel:()=>a(!1)})]})}function QC(e,t){return!t||!e.toLowerCase().endsWith(t.toLowerCase())?e:e.slice(0,-t.length)}function $C({open:e,title:t,placeholder:n,submitLabel:r,onSubmit:i,onCancel:a,initialValue:o=``,suffix:s,fieldLabel:c=`Path`,error:l}){let[u,d]=(0,X.useState)(()=>QC(o,s));return(0,X.useEffect)(()=>{e&&d(QC(o,s))},[e,o,s]),(0,Z.jsx)(dm,{open:e,onOpenChange:e=>{e||a()},children:(0,Z.jsxs)(fm,{children:[(0,Z.jsx)(gm,{}),(0,Z.jsx)(_m,{children:(0,Z.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),u.trim()&&i(`${QC(u.trim(),s)}${s??``}`)},style:{display:`contents`},children:[(0,Z.jsx)(mm,{asChild:!0,children:(0,Z.jsx)(`h3`,{children:t})}),(0,Z.jsxs)(`label`,{children:[c,(0,Z.jsxs)(`span`,{className:s?`new-path-input-row`:void 0,children:[(0,Z.jsx)(`input`,{value:u,onChange:e=>d(QC(e.target.value,s)),placeholder:n}),s&&(0,Z.jsx)(`span`,{className:`new-path-input-suffix`,"aria-hidden":`true`,children:s})]})]}),l&&(0,Z.jsx)(`p`,{className:`gz-dialog-error`,role:`alert`,children:l}),(0,Z.jsxs)(vm,{children:[(0,Z.jsx)(`button`,{type:`button`,onClick:a,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,disabled:!u.trim(),children:r})]})]})})]})})}function ew({project:e,onDeleted:t,onChanged:n}){let[r,i]=(0,X.useState)(!1),[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(!1),d=e.id==="default",f=e.storageScope===`machine-shared`,p=!e.workingDir&&!e.github?.checkoutDir;return{changingArchive:l,clearErrors:async()=>{try{await Q.clearProjectErrors(e.id),window.dispatchEvent(new CustomEvent(`gezel:session-error-cleared`,{detail:{projectId:e.id}}))}catch{}},confirming:r,error:s,hasInternalWorkspace:p,isDefault:d,isArchived:e.archived===!0,isShared:f,openConfirm:()=>{o(!1),c(null),i(!0)},removeWorkspace:a,reveal:async t=>{try{await Q.revealProject(e.id,t)}catch{}},runDelete:async()=>{c(null);try{await Q.deleteProject(e.id,{removeWorkspace:p&&a}),i(!1),window.dispatchEvent(new CustomEvent(`gezel:project-deleted`,{detail:{projectId:e.id}})),t?.(e.id)}catch(e){throw c(e instanceof Error?e.message:String(e)),e}},setConfirming:i,setRemoveWorkspace:o,toggleArchived:async()=>{if(!(d||l)){u(!0);try{let t=await Q.updateProject(e.id,{archived:!e.archived});window.dispatchEvent(new CustomEvent(`gezel:project-updated`,{detail:{projectId:e.id,project:t}})),n?.(t)}catch{}finally{u(!1)}}}}}function tw({actions:e,hasError:t,kind:n}){let r=n===`context`?D_:M_;return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(r,{className:`app-nav-menu-item`,onSelect:()=>{e.reveal(`workspace`)},children:`Open workspace folder`}),(0,Z.jsx)(r,{className:`app-nav-menu-item`,onSelect:()=>{e.reveal(`artifacts`)},children:`Open artifacts folder`}),t&&(0,Z.jsx)(r,{className:`app-nav-menu-item`,onSelect:()=>{e.clearErrors()},children:`Clear error indicator`}),(0,Z.jsx)(r,{className:`app-nav-menu-item`,disabled:e.isDefault||e.changingArchive,onSelect:()=>{e.isDefault||e.changingArchive||e.toggleArchived()},children:e.isArchived?`Restore project`:`Archive project`}),(0,Z.jsx)(r,{className:`app-nav-menu-item danger`,disabled:e.isDefault||e.isShared,onSelect:()=>{e.isDefault||e.isShared||e.openConfirm()},children:e.isShared?`Shared project removal is unavailable`:`Delete project…`})]})}function nw({actions:e,project:t}){let{confirming:n,error:r,hasInternalWorkspace:i,removeWorkspace:a,runDelete:o,setConfirming:s,setRemoveWorkspace:c}=e;return(0,Z.jsx)(ty,{open:n,title:`Delete "${t.name}"?`,message:(0,Z.jsxs)(Z.Fragment,{children:[`The project and its chats will be removed.`,` `,i?(0,Z.jsx)(Z.Fragment,{children:`Its workspace files and artifacts are kept on disk unless you choose to remove them.`}):(0,Z.jsxs)(Z.Fragment,{children:[`Its workspace folder (`,(0,Z.jsx)(`code`,{children:t.workingDir??`the linked repository`}),`) is left untouched — only the project record is removed.`]}),i&&(0,Z.jsxs)(`label`,{className:`project-delete-optout`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:a,onChange:e=>c(e.target.checked)}),(0,Z.jsx)(`span`,{children:`Also permanently delete the workspace files and artifacts`})]}),r&&(0,Z.jsx)(`span`,{className:`project-delete-error`,children:r})]}),confirmLabel:i&&a?`Delete project + files`:`Delete project`,danger:!0,onConfirm:o,onCancel:()=>s(!1)})}function rw({project:e,hasError:t=!1,onDeleted:n,onChanged:r,align:i=`end`}){let a=ew({project:e,onDeleted:n,onChanged:r});return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(O_,{children:[(0,Z.jsx)(k_,{asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,className:`project-actions-trigger`,"aria-label":`Actions for ${e.name}`,title:`Project actions`,onClick:e=>e.stopPropagation(),children:(0,Z.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:[(0,Z.jsx)(`circle`,{cx:`12`,cy:`5`,r:`1.6`}),(0,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.6`}),(0,Z.jsx)(`circle`,{cx:`12`,cy:`19`,r:`1.6`})]})})}),(0,Z.jsx)(A_,{children:(0,Z.jsx)(j_,{className:`app-nav-menu`,sideOffset:4,align:i,children:(0,Z.jsx)(tw,{actions:a,hasError:t,kind:`dropdown`})})})]}),(0,Z.jsx)(nw,{actions:a,project:e})]})}function ude({children:e,project:t,hasError:n=!1,onDeleted:r,onChanged:i}){let a=ew({project:t,onDeleted:r,onChanged:i});return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(C_,{children:[(0,Z.jsx)(w_,{asChild:!0,children:e}),(0,Z.jsx)(T_,{children:(0,Z.jsx)(E_,{className:`app-nav-menu`,children:(0,Z.jsx)(tw,{actions:a,hasError:n,kind:`context`})})})]}),(0,Z.jsx)(nw,{actions:a,project:t})]})}function dde({projectId:e,onClose:t}){return(0,Z.jsx)(dm,{open:!0,onOpenChange:e=>!e&&t(),children:(0,Z.jsxs)(fm,{children:[(0,Z.jsx)(gm,{}),(0,Z.jsxs)(_m,{className:`project-questions-dialog`,"aria-label":`Resolve pending questions`,"aria-describedby":void 0,children:[(0,Z.jsx)(mm,{className:`sr-only`,children:`Needs your input`}),(0,Z.jsx)(uC,{projectId:e,onEmpty:t,onOpenInChat:e=>{rC(e),t()}})]})]})})}var fde=/\.(md|markdown)$/i;function iw(e){let t=e.replace(fde,``);return t.length>0?t:e}var aw=null,ow=!1;function pde(e){aw=e,ow=!1}function sw(e){return aw===e?(ow||(ow=!0,queueMicrotask(()=>{aw=null,ow=!1})),!0):!1}var mde=1e4,cw=null;function hde(e){cw={...e,at:Date.now()}}function lw(e){if(!cw||cw.projectId!==e)return null;let{at:t,...n}=cw;return cw=null,Date.now()-t>mde?null:n}function uw(e){switch(e.kind){case`project`:case`gezel`:return`${e.kind}:${e.id}`;case`document`:return`document:${e.path}`;case`task`:return`task:${e.ref}`;case`script`:return`script:${`scope`in e&&e.scope?`${e.scope}:`:``}${e.projectId}/${e.name}`;case`craftbook`:return`craftbook:${e.id}`;case`craftbook-script`:return`craftbook-script:${e.craftbookId}/${e.name}`;case`area`:return`area:${e.area}`}}function dw(e){let t=Date.now();switch(e.kind){case`project`:return{kind:`project`,id:e.id,at:t,order:0};case`gezel`:return{kind:`gezel`,id:e.id,at:t,order:0};case`document`:return{kind:`document`,path:e.path,at:t,order:0};case`task`:return{kind:`task`,ref:e.ref,at:t,order:0};case`script`:return{kind:`script`,projectId:e.projectId,name:e.name,...e.scope?{scope:e.scope}:{},at:t,order:0};case`craftbook`:return{kind:`craftbook`,id:e.id,...e.source?{source:e.source}:{},at:t,order:0};case`craftbook-script`:return{kind:`craftbook-script`,craftbookId:e.craftbookId,name:e.name,at:t,order:0};case`area`:return{kind:`area`,area:e.area,at:t,order:0}}}async function gde(){try{let e=await Q.getConfig(),t=e.provider;if(t===`copilot`){let t=await Q.getCopilotStatus().catch(()=>null);return t?!t.available:!e.hasGithubToken}if(t===`openai`)return!e.hasOpenaiApiKey;if(t===`mlx`){let{models:e}=await Q.listMlxModels().catch(()=>({models:[]}));return e.length===0}if(t===`llama-cpp`||t==null){let{models:e}=await Q.listLlamaCppModels().catch(()=>({models:[]}));return e.length===0}return!1}catch{return!1}}function _de(){let[e,t]=(0,X.useState)(!1);return(0,X.useEffect)(()=>{let e=!1,n=()=>{gde().then(n=>{e||t(n)})};n();let r=e=>{let n=e.detail;n&&typeof n.firstRun==`boolean`&&t(n.firstRun)};return window.addEventListener(`gezel:first-run`,r),window.addEventListener(`gezel:config-updated`,n),()=>{e=!0,window.removeEventListener(`gezel:first-run`,r),window.removeEventListener(`gezel:config-updated`,n)}},[]),e}function vde(){let[e,t]=(0,X.useState)(!1);return(0,X.useEffect)(()=>{let e=!1;Q.getConfig().then(n=>{e||t(n.showAdvancedFeatures??!1)}).catch(()=>{});let n=e=>{let n=e.detail;n&&typeof n.showAdvancedFeatures==`boolean`&&t(n.showAdvancedFeatures)};return window.addEventListener(`gezel:config-updated`,n),()=>{e=!0,window.removeEventListener(`gezel:config-updated`,n)}},[]),e}var yde={klerk:`Writing and editing`,meester:`Primary concierge`,voorman:`Manages projects`,boekwachter:`Indexes/catalogs content`},fw={active:`Active — automatic project work can run, including scheduled tasks and handoffs.`,stable:`Stable — work is at rest because its tasks are finished or canceled; new or resumed tasks reactivate it.`,readonly:`Read-only — automatic project work is paused for review; chat still works.`,inactive:`Inactive — automatic project work is paused; chat still works. Archived projects are hidden from this list.`};function bde(e,t){for(let n of[e,t]){let e=n?.trim().toLowerCase();if(e){for(let[t,n]of Object.entries(yde))if(e===t||e.includes(t))return n}}return``}async function pw(e){if(!/\.(?:html?|docx|pdf|pptx|xlsx)$/i.test(e))return null;let{resolveOutsideInLayout:t}=await Wr(async()=>{let{resolveOutsideInLayout:e}=await Promise.resolve().then(()=>TIe);return{resolveOutsideInLayout:e}},void 0);return t(e)}function xde(e){let t=e.filter(e=>!e.isDirectory).map(e=>e.path);return e.filter(e=>!e.isDirectory||t.some(t=>t.startsWith(`${e.path}/`)))}var mw=`gezel:nav:sidebar-width`,hw=`gezel:nav:sidebar-collapsed`,gw=`gezel:nav:groups`,_w=180,vw=420,yw=240,bw=40,xw=20,Sw={projects:!0,documents:!1,gezels:!1},Sde=[`tasks`,`craftbooks`,`scripts`,`history`,`handboek`,`settings`],Cde=new Set([`default`]),Cw={projects:`Projects`,gezels:`Gezellen`,documents:`Documents`,tasks:`Tasks`,craftbooks:`Craftbooks`,scripts:`Scripts`,history:`History`,handboek:`Handboek`,benchmarks:`Benchmarks`,settings:`Settings`};function wde(){try{let e=window.localStorage.getItem(mw);if(!e)return yw;let t=Number.parseInt(e,10);return Number.isNaN(t)?yw:Math.max(_w,Math.min(vw,t))}catch{return yw}}function Tde(){try{return window.localStorage.getItem(hw)===`1`}catch{return!1}}function Ede(){try{let e=window.localStorage.getItem(gw);if(!e)return{...Sw};let t=JSON.parse(e);return{projects:t.projects??Sw.projects,documents:t.documents??Sw.documents,gezels:t.gezels??Sw.gezels}}catch{return{...Sw}}}function Dde(e){return(e.trim()[0]??`?`).toUpperCase()}function Ode(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)>>>0;return t%360}function kde({selection:e,onSelect:t,onOpenArea:n,activeProjectIds:r,pendingByProject:a,poisonedProjects:o}){let[s,c]=(0,X.useState)([]),[l,u]=(0,X.useState)(null),d=e?.kind===`project`?e.id:null,f=(0,X.useMemo)(()=>s.filter(e=>e.id===d||!Cde.has(e.id)&&!e.archived),[s,d]),[p,m]=(0,X.useState)([]),[h,g]=(0,X.useState)(void 0),[_,v]=(0,X.useState)([]),[y,x]=(0,X.useState)(!1),[S,C]=(0,X.useState)(null),[w,T]=(0,X.useState)(null),[E,D]=(0,X.useState)(null),[O,k]=(0,X.useState)(null),[A,j]=(0,X.useState)(()=>Ede()),[M,N]=(0,X.useState)(()=>wde()),[P,F]=(0,X.useState)(()=>Tde()),I=fC(),L=vde(),R=_de(),z=p.find(e=>e.id===h),B=z?i(z,I):``,V=R?`Get started`:B?`Home · ${B}`:`Home`,H=R?`Get started`:B?`Home — your meester, ${B}`:`Home`,U=(0,X.useMemo)(()=>Sde.filter(e=>e!==`scripts`||L),[L]),ee=KC(),[te,W]=(0,X.useState)(!0);(0,X.useEffect)(()=>{if(W(!0),ee?.kind!==`up-to-date`)return;let e=window.setTimeout(()=>W(!1),8e3);return()=>window.clearTimeout(e)},[ee]);let G=ee?.kind===`up-to-date`&&!te?null:ee,[ne,K]=(0,X.useState)(null);(0,X.useEffect)(()=>{Q.health().then(K).catch(()=>{})},[]);let q=ede({reason:window.__GEZEL__?.fallbackReason??null,code:window.__GEZEL__?.fallbackCode??null,...window.__GEZEL__?.platform?{platform:window.__GEZEL__.platform}:{},update:G,...ne?.llamaCppQuarantinedBackends?{quarantinedBackends:ne.llamaCppQuarantinedBackends}:{},...ne?.llamaCppBackend?{runningBackend:ne.llamaCppBackend}:{},...ne?.childProcessSpawn===`denied`?{childProcessDenied:!0}:{}}),re=(0,X.useCallback)(()=>{Q.listProjects().then(e=>c(e.projects)).catch(()=>{})},[]),ie=(0,X.useCallback)(()=>{Q.listGezels().then(e=>m(e.gezels)).catch(()=>{})},[]),J=(0,X.useCallback)(()=>{Q.getConfig().then(e=>g(e.meesterGezelId)).catch(()=>{})},[]),ae=(0,X.useCallback)(()=>{Q.listDocuments(``,!0).then(e=>{let t=e.files.filter(e=>!b(e.path));v(xde(t))}).catch(()=>{})},[]);(0,X.useEffect)(()=>{re(),ie(),J(),ae()},[re,ie,J,ae]),(0,X.useEffect)(()=>{let e=()=>ie(),t=()=>{ie(),J()},n=()=>re(),r=()=>ae(),i=e=>{let t=e.detail;t&&Object.hasOwn(t,`meesterGezelId`)&&g(t.meesterGezelId)},a=()=>{document.visibilityState===`visible`&&(re(),ie(),J(),ae())};return window.addEventListener(`gezel:gezel-updated`,e),window.addEventListener(`gezel:gezel-deleted`,t),window.addEventListener(`gezel:config-updated`,i),window.addEventListener(`gezel:project-opened`,n),window.addEventListener(`gezel:project-created`,n),window.addEventListener(`gezel:project-updated`,n),window.addEventListener(`gezel:project-deleted`,n),window.addEventListener(`gezel:document-created`,r),window.addEventListener(`gezel:document-renamed`,r),window.addEventListener(`gezel:document-deleted`,r),document.addEventListener(`visibilitychange`,a),()=>{window.removeEventListener(`gezel:gezel-updated`,e),window.removeEventListener(`gezel:gezel-deleted`,t),window.removeEventListener(`gezel:config-updated`,i),window.removeEventListener(`gezel:project-opened`,n),window.removeEventListener(`gezel:project-created`,n),window.removeEventListener(`gezel:project-updated`,n),window.removeEventListener(`gezel:project-deleted`,n),window.removeEventListener(`gezel:document-created`,r),window.removeEventListener(`gezel:document-renamed`,r),window.removeEventListener(`gezel:document-deleted`,r),document.removeEventListener(`visibilitychange`,a)}},[re,ie,J,ae]);let oe=(0,X.useCallback)(e=>{let t=Math.max(_w,Math.min(vw,Math.round(e)));N(t);try{window.localStorage.setItem(mw,String(t))}catch{}},[]),se=(0,X.useCallback)(e=>{F(e);try{window.localStorage.setItem(hw,e?`1`:`0`)}catch{}},[]),Y=(0,X.useCallback)(e=>{j(e);try{window.localStorage.setItem(gw,JSON.stringify(e))}catch{}},[]),ce=(0,X.useCallback)(e=>{if(P){se(!1),Y({...A,[e]:!0});return}Y({...A,[e]:!A[e]})},[P,A,se,Y]),le=(0,X.useRef)(null),ue=(0,X.useCallback)(e=>{e.preventDefault(),le.current={startX:e.clientX,startWidth:P?bw:M},document.body.classList.add(`app-resizing`),document.body.style.cursor=`col-resize`;let t=FC()===`left`?1:-1,n=e=>{if(!le.current)return;let{startX:n,startWidth:r}=le.current,i=r+(e.clientX-n)*t;i<_w-xw?se(!0):(se(!1),oe(i))},r=()=>{le.current=null,document.body.style.cursor=``,document.body.classList.remove(`app-resizing`),window.removeEventListener(`mousemove`,n),window.removeEventListener(`mouseup`,r)};window.addEventListener(`mousemove`,n),window.addEventListener(`mouseup`,r)},[P,M,oe,se]),de=(0,X.useCallback)(e=>{let t=e.shiftKey?24:8;if(e.key===`ArrowLeft`||e.key===`ArrowRight`){e.preventDefault();let n=(e.key===`ArrowLeft`?-1:1)*(FC()===`left`?1:-1)*t;if(P&&n<0)return;let r=(P?_w:M)+n;if(r<_w-xw){se(!0);return}se(!1),oe(r)}else e.key===`Home`?(e.preventDefault(),se(!1),oe(vw)):e.key===`End`&&(e.preventDefault(),se(!1),oe(_w))},[P,M,oe,se]),fe=(0,X.useCallback)((e,t,r)=>i=>{i.stopPropagation(),pde(t),n(e),window.dispatchEvent(new CustomEvent(r))},[n]),pe=(0,X.useCallback)(e=>{e.stopPropagation(),x(!0)},[]),me=(0,X.useCallback)(async e=>{let n=e.trim();if(n)try{await Q.writeDocument(n,``),x(!1),window.dispatchEvent(new CustomEvent(`gezel:document-created`,{detail:{path:n}})),t(dw({kind:`document`,path:n}))}catch{}},[t]),he=(0,X.useCallback)(e=>{T(null),C(e)},[]),ge=(0,X.useCallback)(async t=>{let n=S;if(!n)return;let r=t.trim();if(!r||/[\\/]/.test(r)){T(`Enter a name without slashes.`);return}let i=n.path.lastIndexOf(`/`),a=`${i>=0?n.path.slice(0,i+1):``}${r}`;if(a===n.path){C(null),T(null);return}try{let t=n.isDirectory?null:await pw(n.path),r=n.isDirectory?null:await pw(a);if(t&&r?.format!==t.format){T(`Keep the .${t.format} extension when renaming this document.`);return}let i=t?await Q.listDocuments(``,!0):null;if(t&&r&&i?.files.some(e=>e.path===a||e.path===r.companionDirectory||e.path.startsWith(`${r.companionDirectory}/`))){T(`A document or companion folder with that name already exists.`);return}let o=e?.kind===`document`?e.path:null;o&&(o===n.path||o.startsWith(`${n.path}/`))&&(await jC(`document:${o}`),t&&await jC(`outside-in:documents:${t.markdownPath}`)),await Q.renameDocument(n.path,a),t&&r&&i?.files.some(e=>e.path===t.companionDirectory||e.path.startsWith(`${t.companionDirectory}/`))&&await Q.renameDocument(t.companionDirectory,r.companionDirectory),window.dispatchEvent(new CustomEvent(`gezel:document-renamed`,{detail:{fromPath:n.path,toPath:a,isDirectory:n.isDirectory}})),C(null),T(null)}catch(e){T(e.message||`Rename failed.`)}},[S,e]),_e=(0,X.useCallback)(e=>{k(null),D(e)},[]),ve=(0,X.useCallback)(async()=>{let t=E;if(t)try{let n=e?.kind===`document`?e.path:null,r=t.isDirectory?null:await pw(t.path);n&&(n===t.path||n.startsWith(`${t.path}/`))&&(await jC(`document:${n}`),r&&await jC(`outside-in:documents:${r.markdownPath}`)),await Q.deleteDocument(t.path),r&&await Q.deleteDocument(r.companionDirectory),window.dispatchEvent(new CustomEvent(`gezel:document-deleted`,{detail:{path:t.path}})),D(null),k(null)}catch(e){k(e.message||`Delete failed.`)}},[E,e]),ye=e?uw(e):null,be=e?.kind===`area`?e.area:null;return(0,Z.jsxs)(`aside`,{className:`app-sidebar${P?` collapsed`:``}`,style:{width:P?bw:M},"data-testid":`app-sidebar`,children:[(0,Z.jsxs)(`nav`,{className:`app-sidebar-scroll`,"aria-label":`Primary navigation`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`app-sidebar-item app-sidebar-item-root app-sidebar-home${e===null?` active`:``}`,onClick:()=>t(null),title:H,"data-testid":`sidebar-meester`,children:[(0,Z.jsx)(`span`,{className:`app-sidebar-item-icon`,children:(0,Z.jsx)(Ade,{})}),(0,Z.jsx)(`span`,{className:`app-sidebar-item-label`,children:R||!B?V:(0,Z.jsxs)(Z.Fragment,{children:[`Home `,(0,Z.jsxs)(`span`,{className:`app-sidebar-home-meester`,children:[`· `,B]})]})})]}),(0,Z.jsx)(ww,{id:`projects`,label:`Projects`,area:`projects`,expanded:A.projects,collapsed:P,active:be===`projects`,onToggle:()=>ce(`projects`),onOpen:()=>n(`projects`),onAdd:fe(`projects`,`project`,`gezel:new-project`),addTitle:`New project`,children:f.length===0?(0,Z.jsx)(`li`,{className:`app-sidebar-empty`,children:`No projects yet.`}):f.map(e=>{let n=uw({kind:`project`,id:e.id}),i=r?.has(e.id)??!1,s=a?.get(e.id)??0,c=o?.get(e.id),l=e.status??`active`,d=()=>t(dw({kind:`project`,id:e.id}));return(0,Z.jsxs)(`li`,{className:`app-sidebar-proj-row${ye===n?` active`:``}`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`app-sidebar-item app-sidebar-subitem${ye===n?` active`:``}`,onClick:d,title:e.name,"aria-current":ye===n?`page`:void 0,children:[(0,Z.jsx)(`span`,{className:`app-sidebar-item-icon app-sidebar-proj-badge`,style:{background:`hsl(${Ode(e.id)}, 50%, 42%)`},"aria-hidden":`true`,children:Dde(e.name)}),(0,Z.jsxs)(`span`,{className:`app-sidebar-item-label`,children:[e.name,e.storageScope===`machine-shared`&&(0,Z.jsx)(`span`,{className:`machine-shared-badge`,title:`Shared with accounts on this machine`,children:`Shared`})]})]}),(0,Z.jsx)(rw,{project:e,hasError:!!c,onDeleted:()=>void re(),onChanged:()=>void re()}),(0,Z.jsx)(`span`,{className:`app-sidebar-proj-signal`,children:s>0?(0,Z.jsx)(`button`,{type:`button`,className:`project-row-intervene`,onClick:t=>{t.stopPropagation(),u(e.id)},title:`${s} pending question${s===1?``:`s`} — resolve now`,"aria-label":`Resolve ${s} pending question${s===1?``:`s`} in ${e.name}`,children:(0,Z.jsx)(`span`,{className:`project-row-intervene-glyph`,"aria-hidden":`true`,children:`?`})}):c?(0,Z.jsx)(`button`,{type:`button`,className:`project-row-poisoned`,onClick:t=>{t.stopPropagation(),hde({projectId:e.id,sessionId:c.sessionId}),d(),window.dispatchEvent(new CustomEvent(`gezel:open-project`,{detail:{projectId:e.id}})),window.dispatchEvent(new CustomEvent(`gezel:focus-session-error`,{detail:{projectId:e.id,sessionId:c.sessionId}}))},title:`Last turn failed: ${c.error} — go to it in the chat`,"aria-label":`${e.name}: last turn failed — go to it in the chat`,children:(0,Z.jsx)(`span`,{className:`project-row-poisoned-glyph`,"aria-hidden":`true`,children:`!`})}):i?(0,Z.jsxs)(`button`,{type:`button`,className:`project-row-thinking`,onClick:e=>{e.stopPropagation(),d()},title:`A gezel is working — open`,"aria-label":`${e.name}: a gezel is working. Open project.`,children:[(0,Z.jsx)(`span`,{className:`project-row-thinking-dot`,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`project-row-thinking-dot`,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`project-row-thinking-dot`,"aria-hidden":`true`})]}):(0,Z.jsx)(ey,{text:fw[l],side:`left`,delay:150,children:(0,Z.jsx)(`button`,{type:`button`,className:`project-row-status project-row-status-${l}`,onClick:d,"aria-label":`${e.name}: ${fw[l]}`})})})]},e.id)})}),(0,Z.jsx)(ww,{id:`documents`,label:`Documents`,area:`documents`,expanded:A.documents,collapsed:P,active:be===`documents`,onToggle:()=>ce(`documents`),onOpen:()=>n(`documents`),onAdd:pe,addTitle:`New document`,children:_.length===0?(0,Z.jsx)(`li`,{className:`app-sidebar-empty`,children:`No documents yet.`}):(0,Z.jsx)(`li`,{className:`app-sidebar-tree`,children:(0,Z.jsx)(JC,{entries:_,labelFor:e=>iw(e.name),selectedPath:e?.kind===`document`?e.path:void 0,onSelect:e=>{e.isDirectory||t(dw({kind:`document`,path:e.path}))},onRename:he,onDelete:_e,defaultExpandedDepth:1})})}),(0,Z.jsx)(ww,{id:`gezels`,label:`Gezellen`,area:`gezels`,expanded:A.gezels,collapsed:P,active:be===`gezels`,onToggle:()=>ce(`gezels`),onOpen:()=>n(`gezels`),onAdd:fe(`gezels`,`gezel`,`gezel:new-gezel`),addTitle:`New gezel`,children:p.length===0?(0,Z.jsx)(`li`,{className:`app-sidebar-empty`,children:`No gezellen yet.`}):p.map(e=>{let n=uw({kind:`gezel`,id:e.id}),r=i({name:e.name,roleBasedName:e.roleBasedName},I),a=e.role??e.roleBasedName??``,o=bde(e.role,e.roleBasedName),s=I?o:a,c=!I&&a?`${r} — ${a}`:r;return o&&(c+=` · ${o}`),(0,Z.jsxs)(`li`,{className:`app-sidebar-gezel-row${ye===n?` active`:``}`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`app-sidebar-item app-sidebar-subitem app-sidebar-gezel${ye===n?` active`:``}`,onClick:()=>t(dw({kind:`gezel`,id:e.id})),title:c,children:[(0,Z.jsx)(`span`,{className:`app-sidebar-item-icon`,children:(0,Z.jsx)(Up,{poppetje:e.poppetje??null,svg:e.icon??null,iconOverride:e.iconOverride??!1,name:r,size:24,variant:`icon`})}),(0,Z.jsxs)(`span`,{className:`app-sidebar-gezel-text`,children:[(0,Z.jsxs)(`span`,{className:`app-sidebar-item-label`,children:[r,e.storageScope===`machine-shared`&&(0,Z.jsx)(`span`,{className:`machine-shared-badge`,title:`Shared with accounts on this machine; chats and memories stay private`,children:`Shared`})]}),s&&(0,Z.jsx)(`span`,{className:`app-sidebar-item-role`,children:s})]})]}),(0,Z.jsx)(ZC,{gezel:e,compact:!0})]},e.id)})}),(0,Z.jsxs)(`div`,{className:`app-sidebar-links`,children:[U.map(e=>{let t=uw({kind:`area`,area:e});return(0,Z.jsxs)(`button`,{type:`button`,className:`app-sidebar-item app-sidebar-item-root${ye===t?` active`:``}`,onClick:()=>n(e),title:Cw[e],"data-testid":`sidebar-area-${e}`,children:[(0,Z.jsx)(`span`,{className:`app-sidebar-item-icon`,children:(0,Z.jsx)(qC,{area:e,size:18})}),(0,Z.jsx)(`span`,{className:`app-sidebar-item-label`,children:Cw[e]})]},e)}),(0,Z.jsx)(`div`,{className:`app-sidebar-notices`,"aria-live":`polite`,"aria-atomic":`false`,children:q.map(e=>(0,Z.jsxs)(`button`,{type:`button`,className:`app-sidebar-notice`,"data-tone":e.tone??`warning`,"data-testid":`sidebar-notice-${e.id}`,onClick:()=>{Tx(`about`),n(`settings`),window.dispatchEvent(new CustomEvent(`gezel:navigate`,{detail:{view:`settings`,section:`about`}}))},title:`${e.title} ${e.body}`,children:[(0,Z.jsx)(`span`,{className:`app-sidebar-notice-dot`,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`app-sidebar-notice-label`,children:e.railLabel})]},e.id))})]})]}),(0,Z.jsx)(`div`,{className:`app-sidebar-footer`,children:(0,Z.jsx)(`button`,{type:`button`,className:`app-sidebar-collapse-toggle`,onClick:()=>se(!P),title:P?`Expand sidebar`:`Collapse sidebar`,"aria-label":P?`Expand sidebar`:`Collapse sidebar`,"aria-pressed":P,children:P?`›`:`‹`})}),(0,Z.jsx)(`div`,{className:`app-sidebar-grip`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize sidebar`,tabIndex:0,onMouseDown:ue,onKeyDown:de}),(0,Z.jsx)($C,{open:y,title:`New document`,placeholder:`e.g. guidelines/coding`,submitLabel:`Create`,suffix:`.md`,onSubmit:me,onCancel:()=>x(!1)}),(0,Z.jsx)($C,{open:S!==null,title:S?.isDirectory?`Rename folder`:`Rename document`,fieldLabel:`Name`,placeholder:`New name`,submitLabel:`Rename`,initialValue:S?.name??``,suffix:S&&!S.isDirectory&&(!S.name.includes(`.`)||/\.md$/i.test(S.name))?`.md`:void 0,error:w,onSubmit:ge,onCancel:()=>{C(null),T(null)}}),(0,Z.jsx)(ty,{open:E!==null,title:E?.isDirectory?`Delete folder?`:`Delete document?`,message:(0,Z.jsxs)(Z.Fragment,{children:[E?.isDirectory?`This will remove "${E.path}" and everything inside it. This cannot be undone.`:E?`"${E.path}" will be permanently removed.`:``,O&&(0,Z.jsxs)(`span`,{className:`gz-dialog-error`,role:`alert`,children:[`Delete failed: `,O]})]}),confirmLabel:`Delete`,danger:!0,onCancel:()=>{D(null),k(null)},onConfirm:ve}),l&&(0,Z.jsx)(dde,{projectId:l,onClose:()=>u(null)})]})}function ww({id:e,label:t,area:n,expanded:r,collapsed:i,active:a,onToggle:o,onOpen:s,onAdd:c,addTitle:l,children:u}){let d=r&&!i;return(0,Z.jsxs)(`div`,{className:`app-sidebar-group`,"data-group":e,children:[(0,Z.jsxs)(`div`,{className:`app-sidebar-group-header${a?` active`:``}`,children:[!i&&(0,Z.jsx)(`button`,{type:`button`,className:`app-sidebar-caret-btn`,onClick:o,"aria-expanded":r,"aria-label":r?`Collapse ${t}`:`Expand ${t}`,"data-testid":`sidebar-group-toggle-${e}`,children:(0,Z.jsx)(`span`,{className:`app-sidebar-caret${r?` expanded`:``}`,"aria-hidden":`true`,children:(0,Z.jsx)(`svg`,{width:14,height:14,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2.2,strokeLinecap:`round`,strokeLinejoin:`round`,focusable:`false`,"aria-hidden":`true`,children:(0,Z.jsx)(`polyline`,{points:`9 6 15 12 9 18`})})})}),(0,Z.jsxs)(`button`,{type:`button`,className:`app-sidebar-group-toggle`,onClick:s,title:t,"data-testid":`sidebar-group-${e}`,children:[(0,Z.jsx)(`span`,{className:`app-sidebar-item-icon`,children:(0,Z.jsx)(qC,{area:n,size:18})}),(0,Z.jsx)(`span`,{className:`app-sidebar-item-label app-sidebar-group-label`,children:t})]}),!i&&(0,Z.jsx)(`button`,{type:`button`,className:`app-sidebar-add`,onClick:c,title:l,"aria-label":l,children:`+`})]}),d&&(0,Z.jsx)(`ul`,{className:`app-sidebar-list`,children:u})]})}function Ade({size:e=18}){return(0,Z.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.8,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,focusable:`false`,children:[(0,Z.jsx)(`path`,{d:`M3 11.5 12 4l9 7.5`}),(0,Z.jsx)(`path`,{d:`M5 10v9a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-9`}),(0,Z.jsx)(`path`,{d:`M9.5 20v-5h5v5`})]})}function Tw(e){return e<1e3?`${Math.round(e)}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m ${Math.floor(e%6e4/1e3).toString().padStart(2,`0`)}s`}function Ew(){let[e,t]=(0,X.useState)([]),[n,r]=(0,X.useState)({available:!0,reason:null}),[i,a]=(0,X.useState)(``),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(0),[f,p]=(0,X.useState)([]),[m,h]=(0,X.useState)([]),[g,_]=(0,X.useState)(``),[v,y]=(0,X.useState)(`list`),[b,x]=(0,X.useState)(null),[S,C]=(0,X.useState)(null);(0,X.useEffect)(()=>{let e=!1;async function n(){try{let[n,o,c]=await Promise.all([Q.listEvalScenarios(),Q.getEvalAvailability(),Q.listLlamaCppModels().catch(()=>({models:[]}))]);if(e)return;t(n.scenarios.slice()),r(o);let u=c.models.map(e=>typeof e.id==`string`?e.id:null).filter(e=>!!e);if(p(u),n.scenarios.length>0&&!i){let e=n.scenarios[0];e&&(a(e.id),s(e.defaultModel),l(e.defaultImageModel??``))}}catch(t){e||C(t instanceof Error?t.message:String(t))}}return n(),()=>{e=!0}},[i]);let w=(0,X.useCallback)(async()=>{try{let e=await Q.listEvalResults({...g?{scenarioId:g}:{},limit:200});h(e.results)}catch(e){C(e instanceof Error?e.message:String(e))}},[g]);(0,X.useEffect)(()=>{w()},[w]);let T=(0,X.useMemo)(()=>e.find(e=>e.id===i),[e,i]),E=(0,X.useCallback)(t=>{a(t);let n=e.find(e=>e.id===t);n&&(s(n.defaultModel),l(n.defaultImageModel??``))},[e]),D=(0,X.useCallback)(async()=>{if(!T)return;let e=new AbortController,t={scenarioId:T.id,modelId:o,startedAt:Date.now(),trialId:null,runDir:null,logTail:[],ac:e};x(t),C(null);try{await Q.runEval({scenarioId:T.id,modelId:o,...c?{imageModelId:c}:{},...u>0?{timeoutMs:u*6e4}:{}},e=>{x(t=>{if(!t)return t;let n={...t,logTail:t.logTail};return e.type===`spawned`?(n.trialId=e.trialId??null,n.runDir=e.runDir??null):e.type===`log`?n.logTail=[...t.logTail,e.line].slice(-200):e.type===`error`&&C(e.error),n})},e.signal)}catch(e){C(e instanceof Error?e.message:String(e))}finally{x(null),w()}},[T,o,c,u,w]),O=(0,X.useCallback)(()=>{b&&b.ac.abort()},[b]);return(0,Z.jsxs)(`div`,{className:`benchmarks-view`,style:{padding:16},children:[(0,Z.jsxs)(`header`,{style:{display:`flex`,alignItems:`baseline`,gap:12},children:[(0,Z.jsx)(`h2`,{style:{margin:0},children:`Benchmarks`}),(0,Z.jsx)(`span`,{style:{color:`var(--muted)`,fontSize:13},children:`Run eval scenarios and review outcomes on this device.`})]}),!n.available&&(0,Z.jsxs)(`div`,{style:{margin:`12px 0`,padding:10,background:`rgba(220, 170, 0, 0.1)`,border:`1px solid rgba(220, 170, 0, 0.35)`,borderRadius:6,fontSize:13},children:[(0,Z.jsx)(`strong`,{children:`In-app eval runner unavailable.`}),` `,n.reason??`The harness binary was not found on disk.`,` You can still review past results below; new runs need `,(0,Z.jsx)(`code`,{children:`pnpm eval:run`}),` from the repo.`]}),S&&(0,Z.jsx)(`div`,{style:{margin:`12px 0`,padding:10,background:`rgba(220, 80, 80, 0.1)`,border:`1px solid rgba(220, 80, 80, 0.35)`,borderRadius:6,fontSize:13},children:S}),(0,Z.jsxs)(`section`,{style:{marginTop:16},children:[(0,Z.jsx)(`h3`,{style:{marginBottom:8},children:`Run a trial`}),(0,Z.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`180px 1fr`,gap:8,alignItems:`center`},children:[(0,Z.jsx)(`label`,{htmlFor:`bench-scenario`,children:`Scenario`}),(0,Z.jsx)(`select`,{id:`bench-scenario`,value:i,onChange:e=>E(e.currentTarget.value),style:{padding:4},children:e.map(e=>(0,Z.jsxs)(`option`,{value:e.id,children:[e.name,` — `,e.capabilityAxis,` `,e.anchored?`(anchored)`:``]},e.id))}),(0,Z.jsx)(`label`,{htmlFor:`bench-model`,children:`Model`}),(0,Z.jsxs)(`select`,{id:`bench-model`,value:o,onChange:e=>s(e.currentTarget.value),style:{padding:4},children:[(0,Z.jsxs)(`option`,{value:T?.defaultModel??``,children:[T?.defaultModel??`(no scenario)`,` (default)`]}),f.filter(e=>e!==T?.defaultModel).map(e=>(0,Z.jsxs)(`option`,{value:e,children:[e,` (local)`]},e))]}),T?.defaultImageModel&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`label`,{htmlFor:`bench-image-model`,children:`Image model`}),(0,Z.jsx)(`input`,{id:`bench-image-model`,type:`text`,value:c,onChange:e=>l(e.currentTarget.value),style:{padding:4}})]}),(0,Z.jsx)(`label`,{htmlFor:`bench-timeout`,children:`Timeout (min)`}),(0,Z.jsx)(`input`,{id:`bench-timeout`,type:`number`,min:0,max:120,value:u,onChange:e=>d(Number(e.currentTarget.value)||0),style:{padding:4,width:80}})]}),(0,Z.jsxs)(`div`,{style:{marginTop:12,display:`flex`,gap:8},children:[b?(0,Z.jsx)(`button`,{type:`button`,onClick:O,children:`Cancel running trial`}):(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>void D(),disabled:!T||!o||!n.available,children:[`Run `,T?.name??`scenario`]}),(0,Z.jsx)(`span`,{style:{color:`var(--muted)`,fontSize:12,alignSelf:`center`},children:T?`Default timeout: ${Math.round(T.timeoutMs/6e4)} min`:``})]})]}),b&&(0,Z.jsxs)(`section`,{style:{marginTop:24},children:[(0,Z.jsxs)(`h3`,{style:{marginBottom:8},children:[`Running: `,b.scenarioId,` / `,b.modelId,` `,(0,Z.jsxs)(`span`,{style:{color:`var(--muted)`,fontSize:13,fontWeight:`normal`},children:[`(`,Tw(Date.now()-b.startedAt),`)`]})]}),b.runDir&&(0,Z.jsxs)(`div`,{style:{fontSize:12,color:`var(--muted)`},children:[`runDir: `,b.runDir]}),(0,Z.jsx)(`pre`,{style:{maxHeight:280,overflow:`auto`,background:`var(--code-bg, #0e1014)`,color:`var(--code-fg, #d6d6d6)`,padding:8,fontSize:12,lineHeight:1.4},children:b.logTail.join(`
|
|
150
|
-
`)})]}),(0,Z.jsxs)(`section`,{style:{marginTop:24},children:[(0,Z.jsxs)(`div`,{style:{display:`flex`,alignItems:`baseline`,gap:12},children:[(0,Z.jsxs)(`h3`,{style:{marginBottom:0},children:[`Past results (`,m.length,`)`]}),(0,Z.jsxs)(`select`,{value:g,onChange:e=>_(e.currentTarget.value),style:{padding:4},children:[(0,Z.jsx)(`option`,{value:``,children:`All scenarios`}),e.map(e=>(0,Z.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void w(),children:`Refresh`}),(0,Z.jsxs)(`span`,{style:{marginLeft:`auto`},children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>y(`list`),disabled:v===`list`,children:`List`}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>y(`matrix`),disabled:v===`matrix`,children:`Matrix`})]})]}),v===`list`&&(0,Z.jsx)(Dw,{results:m}),v===`matrix`&&(0,Z.jsx)(Ow,{results:m,scenarios:e})]})]})}function Dw({results:e}){return e.length===0?(0,Z.jsx)(`p`,{style:{color:`var(--muted)`,marginTop:12},children:`No results yet for this filter.`}):(0,Z.jsxs)(`table`,{style:{marginTop:12,width:`100%`,borderCollapse:`collapse`,fontSize:13},children:[(0,Z.jsx)(`thead`,{children:(0,Z.jsxs)(`tr`,{style:{borderBottom:`1px solid var(--border, #444)`,textAlign:`left`},children:[(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`When`}),(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`Scenario`}),(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`Model`}),(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`Outcome`}),(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`Duration`}),(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`Reason`})]})}),(0,Z.jsx)(`tbody`,{children:e.map(e=>(0,Z.jsxs)(`tr`,{style:{borderBottom:`1px solid rgba(128,128,128,0.15)`},children:[(0,Z.jsx)(`td`,{style:{padding:`6px 8px`,whiteSpace:`nowrap`},children:new Date(e.startedAt).toLocaleString()}),(0,Z.jsx)(`td`,{style:{padding:`6px 8px`},children:e.scenarioId}),(0,Z.jsx)(`td`,{style:{padding:`6px 8px`},children:e.modelId}),(0,Z.jsx)(`td`,{style:{padding:`6px 8px`},children:e.success?(0,Z.jsx)(`span`,{style:{color:`var(--ok, #5bbf5e)`},children:`PASS`}):(0,Z.jsxs)(`span`,{style:{color:`var(--fail, #d57070)`},children:[`FAIL`,e.failureMode?` (${e.failureMode})`:``]})}),(0,Z.jsx)(`td`,{style:{padding:`6px 8px`},children:Tw(e.durationMs)}),(0,Z.jsx)(`td`,{style:{padding:`6px 8px`,maxWidth:360,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:e.reason,children:e.reason})]},e.trialId))})]})}function Ow({results:e,scenarios:t}){let n=(0,X.useMemo)(()=>{let t=new Map,n=new Set;for(let r of e){let e=`${r.scenarioId}::${r.modelId}`,i=t.get(e);n.add(r.modelId),i?t.set(e,{passes:i.passes+ +!!r.success,total:i.total+1,latest:i.latest}):t.set(e,{passes:+!!r.success,total:1,latest:r})}return{cells:t,models:[...n].sort()}},[e]);return e.length===0?(0,Z.jsx)(`p`,{style:{color:`var(--muted)`,marginTop:12},children:`No data to compare yet.`}):(0,Z.jsxs)(`table`,{style:{marginTop:12,borderCollapse:`collapse`,fontSize:13},children:[(0,Z.jsx)(`thead`,{children:(0,Z.jsxs)(`tr`,{style:{borderBottom:`1px solid var(--border, #444)`},children:[(0,Z.jsx)(`th`,{style:{padding:`6px 8px`,textAlign:`left`},children:`Scenario`}),n.models.map(e=>(0,Z.jsx)(`th`,{style:{padding:`6px 8px`,textAlign:`left`},children:e},e))]})}),(0,Z.jsx)(`tbody`,{children:t.map(e=>(0,Z.jsxs)(`tr`,{style:{borderBottom:`1px solid rgba(128,128,128,0.15)`},children:[(0,Z.jsx)(`td`,{style:{padding:`6px 8px`},children:e.name}),n.models.map(t=>{let r=n.cells.get(`${e.id}::${t}`);if(!r)return(0,Z.jsx)(`td`,{style:{padding:`6px 8px`,color:`var(--muted)`},children:`—`},t);let i=Math.round(r.passes/r.total*100);return(0,Z.jsxs)(`td`,{style:{padding:`6px 8px`,color:i>=75?`var(--ok, #5bbf5e)`:i>=50?`#cc9b3c`:`var(--fail, #d57070)`},title:`${r.passes}/${r.total} passes — most recent: ${new Date(r.latest.startedAt).toLocaleString()} (${r.latest.success?`PASS`:`FAIL`})`,children:[r.passes,`/`,r.total,` (`,i,`%)`]},t)})]},e.id))})]})}function kw(e){e.trigger(`gezel-preamble`,`editor.fold`,{selectionLines:[1]})}var Aw=(0,X.forwardRef)(function({projectId:e,scriptName:t,initialSource:n,collapsePreambleOnMount:r,readOnly:i,onChangeContent:a,onSave:o,onProblems:s,onReady:c},l){let u=(0,X.useRef)(null),d=(0,X.useRef)(null),f=(0,X.useRef)(null),p=(0,X.useRef)(null),[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(null),v=Ax(),y=(0,X.useRef)(a),b=(0,X.useRef)(o),x=(0,X.useRef)(s),S=(0,X.useRef)(c);(0,X.useEffect)(()=>{y.current=a,b.current=o,x.current=s,S.current=c},[a,o,s,c]);let C=(0,X.useRef)(n),w=(0,X.useRef)(r??!1),T=(0,X.useRef)(v);return T.current=v,(0,X.useEffect)(()=>{let n=!1,r=[];return(async()=>{let a;try{a=await Wr(()=>import(`./monaco-setup-
|
|
150
|
+
`)})]}),(0,Z.jsxs)(`section`,{style:{marginTop:24},children:[(0,Z.jsxs)(`div`,{style:{display:`flex`,alignItems:`baseline`,gap:12},children:[(0,Z.jsxs)(`h3`,{style:{marginBottom:0},children:[`Past results (`,m.length,`)`]}),(0,Z.jsxs)(`select`,{value:g,onChange:e=>_(e.currentTarget.value),style:{padding:4},children:[(0,Z.jsx)(`option`,{value:``,children:`All scenarios`}),e.map(e=>(0,Z.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void w(),children:`Refresh`}),(0,Z.jsxs)(`span`,{style:{marginLeft:`auto`},children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>y(`list`),disabled:v===`list`,children:`List`}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>y(`matrix`),disabled:v===`matrix`,children:`Matrix`})]})]}),v===`list`&&(0,Z.jsx)(Dw,{results:m}),v===`matrix`&&(0,Z.jsx)(Ow,{results:m,scenarios:e})]})]})}function Dw({results:e}){return e.length===0?(0,Z.jsx)(`p`,{style:{color:`var(--muted)`,marginTop:12},children:`No results yet for this filter.`}):(0,Z.jsxs)(`table`,{style:{marginTop:12,width:`100%`,borderCollapse:`collapse`,fontSize:13},children:[(0,Z.jsx)(`thead`,{children:(0,Z.jsxs)(`tr`,{style:{borderBottom:`1px solid var(--border, #444)`,textAlign:`left`},children:[(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`When`}),(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`Scenario`}),(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`Model`}),(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`Outcome`}),(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`Duration`}),(0,Z.jsx)(`th`,{style:{padding:`6px 8px`},children:`Reason`})]})}),(0,Z.jsx)(`tbody`,{children:e.map(e=>(0,Z.jsxs)(`tr`,{style:{borderBottom:`1px solid rgba(128,128,128,0.15)`},children:[(0,Z.jsx)(`td`,{style:{padding:`6px 8px`,whiteSpace:`nowrap`},children:new Date(e.startedAt).toLocaleString()}),(0,Z.jsx)(`td`,{style:{padding:`6px 8px`},children:e.scenarioId}),(0,Z.jsx)(`td`,{style:{padding:`6px 8px`},children:e.modelId}),(0,Z.jsx)(`td`,{style:{padding:`6px 8px`},children:e.success?(0,Z.jsx)(`span`,{style:{color:`var(--ok, #5bbf5e)`},children:`PASS`}):(0,Z.jsxs)(`span`,{style:{color:`var(--fail, #d57070)`},children:[`FAIL`,e.failureMode?` (${e.failureMode})`:``]})}),(0,Z.jsx)(`td`,{style:{padding:`6px 8px`},children:Tw(e.durationMs)}),(0,Z.jsx)(`td`,{style:{padding:`6px 8px`,maxWidth:360,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:e.reason,children:e.reason})]},e.trialId))})]})}function Ow({results:e,scenarios:t}){let n=(0,X.useMemo)(()=>{let t=new Map,n=new Set;for(let r of e){let e=`${r.scenarioId}::${r.modelId}`,i=t.get(e);n.add(r.modelId),i?t.set(e,{passes:i.passes+ +!!r.success,total:i.total+1,latest:i.latest}):t.set(e,{passes:+!!r.success,total:1,latest:r})}return{cells:t,models:[...n].sort()}},[e]);return e.length===0?(0,Z.jsx)(`p`,{style:{color:`var(--muted)`,marginTop:12},children:`No data to compare yet.`}):(0,Z.jsxs)(`table`,{style:{marginTop:12,borderCollapse:`collapse`,fontSize:13},children:[(0,Z.jsx)(`thead`,{children:(0,Z.jsxs)(`tr`,{style:{borderBottom:`1px solid var(--border, #444)`},children:[(0,Z.jsx)(`th`,{style:{padding:`6px 8px`,textAlign:`left`},children:`Scenario`}),n.models.map(e=>(0,Z.jsx)(`th`,{style:{padding:`6px 8px`,textAlign:`left`},children:e},e))]})}),(0,Z.jsx)(`tbody`,{children:t.map(e=>(0,Z.jsxs)(`tr`,{style:{borderBottom:`1px solid rgba(128,128,128,0.15)`},children:[(0,Z.jsx)(`td`,{style:{padding:`6px 8px`},children:e.name}),n.models.map(t=>{let r=n.cells.get(`${e.id}::${t}`);if(!r)return(0,Z.jsx)(`td`,{style:{padding:`6px 8px`,color:`var(--muted)`},children:`—`},t);let i=Math.round(r.passes/r.total*100);return(0,Z.jsxs)(`td`,{style:{padding:`6px 8px`,color:i>=75?`var(--ok, #5bbf5e)`:i>=50?`#cc9b3c`:`var(--fail, #d57070)`},title:`${r.passes}/${r.total} passes — most recent: ${new Date(r.latest.startedAt).toLocaleString()} (${r.latest.success?`PASS`:`FAIL`})`,children:[r.passes,`/`,r.total,` (`,i,`%)`]},t)})]},e.id))})]})}function kw(e){e.trigger(`gezel-preamble`,`editor.fold`,{selectionLines:[1]})}var Aw=(0,X.forwardRef)(function({projectId:e,scriptName:t,initialSource:n,collapsePreambleOnMount:r,readOnly:i,onChangeContent:a,onSave:o,onProblems:s,onReady:c},l){let u=(0,X.useRef)(null),d=(0,X.useRef)(null),f=(0,X.useRef)(null),p=(0,X.useRef)(null),[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(null),v=Ax(),y=(0,X.useRef)(a),b=(0,X.useRef)(o),x=(0,X.useRef)(s),S=(0,X.useRef)(c);(0,X.useEffect)(()=>{y.current=a,b.current=o,x.current=s,S.current=c},[a,o,s,c]);let C=(0,X.useRef)(n),w=(0,X.useRef)(r??!1),T=(0,X.useRef)(v);return T.current=v,(0,X.useEffect)(()=>{let n=!1,r=[];return(async()=>{let a;try{a=await Wr(()=>import(`./monaco-setup-CSa3_fbr.js`),__vite__mapDeps([22,23,4,24,1,25,26,27,28,29,30]));let{api:e}=await Wr(async()=>{let{api:e}=await Promise.resolve().then(()=>ff);return{api:e}},void 0);await a.ensureScriptTypescript(()=>e.getSdkTypes())}catch(e){n||_(e.message);return}if(n||!u.current)return;let o=a.monaco;d.current=o;let s=a.scriptModelUri(e,t);o.editor.getModel(s)?.dispose();let c=o.editor.createModel(C.current,`typescript`,s);p.current=c;let l=o.editor.create(u.current,{model:c,automaticLayout:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:13,tabSize:2,fixedOverflowWidgets:!0,readOnly:i??!1});f.current=l,o.editor.setTheme(T.current===`dark`?`gezel-dark`:`gezel-light`),w.current&&kw(l),r.push(c.onDidChangeContent(()=>y.current?.(c.getValue()))),l.addCommand(o.KeyMod.CtrlCmd|o.KeyCode.KeyS,()=>b.current?.()),r.push(o.editor.onDidChangeMarkers(e=>{if(!e.some(e=>e.toString()===s.toString()))return;let t=o.editor.getModelMarkers({resource:s});x.current?.(t.map(e=>({severity:e.severity===o.MarkerSeverity.Error?`error`:e.severity===o.MarkerSeverity.Warning?`warning`:`info`,message:e.message,line:e.startLineNumber,column:e.startColumn})))})),h(!0),S.current?.()})(),()=>{n=!0;for(let e of r)e.dispose();f.current?.dispose(),f.current=null,p.current?.dispose(),p.current=null}},[e,t,i]),(0,X.useEffect)(()=>{d.current?.editor.setTheme(v===`dark`?`gezel-dark`:`gezel-light`)},[v]),(0,X.useImperativeHandle)(l,()=>({getValue:()=>p.current?.getValue()??null,setValue:e=>p.current?.setValue(e),revealLine:e=>{f.current?.revealLineInCenter(e),f.current?.setPosition({lineNumber:e,column:1}),f.current?.focus()},focus:()=>f.current?.focus(),collapsePreamble:()=>{f.current&&kw(f.current)},setServerDiagnostics:e=>{let t=d.current,n=p.current;!t||!n||t.editor.setModelMarkers(n,`gezel-save`,e.map(e=>({severity:e.severity===`error`?t.MarkerSeverity.Error:e.severity===`warning`?t.MarkerSeverity.Warning:t.MarkerSeverity.Info,message:e.message,startLineNumber:e.line??1,startColumn:e.column??1,endLineNumber:e.line??1,endColumn:e.column?e.column+1:1})))}}),[]),(0,Z.jsxs)(`div`,{className:`script-code-editor`,children:[!m&&!g&&(0,Z.jsx)(`p`,{className:`muted small`,children:`Loading editor…`}),g&&(0,Z.jsxs)(`p`,{className:`script-code-editor__error`,children:[`Editor failed to load: `,g]}),(0,Z.jsx)(`div`,{ref:u,className:`script-code-editor__host`})]})});function jw(e){let t=globalThis;t.MonacoEnvironment={getWorker(t,n){switch(n){case`json`:if(e.json)return new e.json;break;case`css`:case`scss`:case`less`:if(e.css)return new e.css;break;case`html`:case`handlebars`:case`razor`:if(e.html)return new e.html;break;case`typescript`:case`javascript`:if(e.ts)return new e.ts;break}return new e.editor}}}var Mw={bash:`shell`,c:`cpp`,"c++":`cpp`,"c#":`csharp`,cs:`csharp`,cxx:`cpp`,docker:`dockerfile`,htm:`html`,js:`javascript`,jsx:`javascript`,md:`markdown`,mdown:`markdown`,py:`python`,rb:`ruby`,sh:`shell`,text:`plaintext`,txt:`plaintext`,ts:`typescript`,tsx:`typescript`,yml:`yaml`,zsh:`shell`};function Nw(e){let t=e.trim().toLowerCase();return Mw[t]??t}function Pw(e){return[...new Set((typeof e==`string`?[e]:e??[]).map(Nw).filter(Boolean))].sort()}function Fw(e,t={}){return`${t.languageServices?`services`:`syntax`}:${Pw(e).join(`,`)}`}function Iw(e,t){let n=Nw(e),r=new Set(n?[n]:[]);if(n!==`markdown`)return[...r];let i=null;for(let e of t.split(/\r?\n/)){let t=e.match(/^ {0,3}(`{3,}|~{3,})[ \t]*([^\s`~]+)?/);if(!t)continue;let n=t[1],a=n[0];if(i){a===i.marker&&n.length>=i.length&&(i=null);continue}i={marker:a,length:n.length};let o=t[2];o&&r.add(Nw(o))}return[...r]}var Lw=/\*\*(?![\s*])(.+?)(?<![\s*])\*\*/g,Rw=/(?<![\p{L}\p{N}_])__(?![\s_])(.+?)(?<![\s_])__(?![\p{L}\p{N}_])/gu,zw=/\*(?![\s*])(.+?)(?<![\s*])\*/g,Bw=/(?<![\p{L}\p{N}_])_(?![\s_])(.+?)(?<![\s_])_(?![\p{L}\p{N}_])/gu,Vw=/~~(.+?)~~/g,Hw=[`*`,`_`,`~`,`\\`],Uw=/\\([*_~\\])/g,Ww=/`(.+?)`/g,Gw=/!\[(.*?)\]\((.+?)\)/g,Kw=/@\[([^\]]+?)\]\(([a-z][a-z0-9+.-]*)\\?:([^)\s]+)\)/gi,qw=/<span\b[^>]*?\bdata-mention\b[^>]*?>(?:<[^>]+>)*([^<]*)<\/span>/gi,Jw=/\{\[([a-zA-Z0-9_:-]+)\]\}/g,Yw=/<i\b[^>]*?\bdata-icon="([^"]*)"[^>]*?><\/i>/gi,Xw=/<strong>(.*?)<\/strong>/g,Zw=/<b>(.*?)<\/b>/g,Qw=/<em>(.*?)<\/em>/g,$w=/<i>(.*?)<\/i>/g,eT=/<s>(.*?)<\/s>/g,tT=/<del>(.*?)<\/del>/g,nT=/<code>(.*?)<\/code>/g,rT=/<a\b([^>]*)>(.*?)<\/a>/g,iT=/<img\b([^>]*)>/g,aT=/<[^>]+>/g;function oT(e){if(!e.trim())return`<p></p>`;let t=e.replace(/\r\n/g,`
|
|
151
151
|
`).replace(/\r/g,`
|
|
152
152
|
`).split(`
|
|
153
153
|
`),n=mT(t),r=[],i=!1,a=``,o=[],s=[],c=!1,l=[],u=0,d=!1,f=()=>{if(u===0)return;let e=r.length===0?u:Math.max(0,u-1);for(let t=0;t<e;t++)r.push(`<p></p>`);u=0},p=e=>{f(),r.push(e),d=!1},m=e=>{e.openAttrs!==null&&(e.items.push(`<li${e.openAttrs}>${e.openContent}</li>`),e.openAttrs=null,e.openContent=``)},h=()=>{let e=s.pop();if(!e||(m(e),e.items.length===0))return;let t=e.type===`ol`?`ol`:`ul`,n=e.type===`task`?` data-type="taskList"`:``;e.type===`ol`&&e.start!=null&&e.start!==1&&(n+=` start="${e.start}"`);let r=`<${t}${n}>${e.items.join(``)}</${t}>`,i=s[s.length-1];if(!i){p(r),d=!0;return}i.openAttrs===null&&(i.openAttrs=i.type===`task`?` data-type="taskItem"`:``,i.openContent=`<p></p>`),i.openContent+=r},g=()=>{for(;s.length>0;)h()},_=(e,t,n,r,i=null)=>{for(;s.length>0&&e<s[s.length-1].minIndent;)h();let a=s[s.length-1];if(!a){s.push({indent:e,minIndent:0,type:t,start:i,items:[],openAttrs:n,openContent:r});return}if(e>a.indent){s.push({indent:e,minIndent:a.indent+1,type:t,start:i,items:[],openAttrs:n,openContent:r});return}if(e<a.indent&&(a.indent=e),a.type!==t){let{indent:e,minIndent:o}=a;h(),s.push({indent:e,minIndent:o,type:t,start:i,items:[],openAttrs:n,openContent:r});return}m(a),a.openAttrs=n,a.openContent=r},v=()=>{if(!c||l.length===0){c=!1,l=[];return}let e=l.length>=2?bT(l[1]):[],t=e.length>0&&e.every(e=>/^:?-+:?$/.test(e.trim()));if(l.length<2||!t){for(let e of l)p(`<p>${ET(e)}</p>`);c=!1,l=[];return}let n=xT(l[1]),r=bT(l[0]).map((e,t)=>{let r=n[t];return`<th${r?` style="text-align: ${r}"`:``}>${ET(e)}</th>`}).join(``),i=l.slice(2).map(e=>`<tr>${bT(e).map((e,t)=>{let r=n[t];return`<td${r?` style="text-align: ${r}"`:``}>${ET(e)}</td>`}).join(``)}</tr>`).join(``);p(`<table><thead><tr>${r}</tr></thead><tbody>${i}</tbody></table>`),c=!1,l=[]};for(let e=0;e<t.length;e++){let m=t[e];if(m.startsWith("```"))if(i){p(`<pre><code${a?` class="language-${wT(a)}"`:``}>${wT(o.join(`
|
|
@@ -586,7 +586,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
586
586
|
monaco.config({ paths: { vs: '...' } })
|
|
587
587
|
|
|
588
588
|
For more please check the link https://github.com/suren-atoyan/monaco-loader#config
|
|
589
|
-
`},oV=eV(iV)(aV),sV={config:nV},cV=function(){var e=[...arguments];return function(t){return e.reduceRight(function(e,t){return t(e)},t)}};function lV(e,t){return Object.keys(t).forEach(function(n){t[n]instanceof Object&&e[n]&&Object.assign(t[n],lV(e[n],t[n]))}),TB(TB({},e),t)}var uV={type:`cancelation`,msg:`operation is manually canceled`};function dV(e){var t=!1,n=new Promise(function(n,r){e.then(function(e){return t?r(uV):n(e)}),e.catch(r)});return n.cancel=function(){return t=!0},n}var fV=[`monaco`],pV=OB(QB.create({config:$B,isInitialized:!1,resolve:null,reject:null,monaco:null}),2),mV=pV[0],hV=pV[1];function gV(e){var t=sV.config(e),n=t.monaco,r=EB(t,fV);hV(function(e){return{config:lV(e.config,r),monaco:n}})}function _V(){var e=mV(function(e){return{monaco:e.monaco,isInitialized:e.isInitialized,resolve:e.resolve}});if(!e.isInitialized){if(hV({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),dV(wV);if(window.monaco&&window.monaco.editor)return SV(window.monaco),e.resolve(window.monaco),dV(wV);cV(vV,bV)(xV)}return dV(wV)}function vV(e){return document.body.appendChild(e)}function yV(e){var t=document.createElement(`script`);return e&&(t.src=e),t}function bV(e){var t=mV(function(e){return{config:e.config,reject:e.reject}}),n=yV(`${t.config.paths.vs}/loader.js`);return n.onload=function(){return e()},n.onerror=t.reject,n}function xV(){var e=mV(function(e){return{config:e.config,resolve:e.resolve,reject:e.reject}}),t=window.require;t.config(e.config),t([`vs/editor/editor.main`],function(t){var n=t.m||t;SV(n),e.resolve(n)},function(t){e.reject(t)})}function SV(e){mV().monaco||hV({monaco:e})}function CV(){return mV(function(e){return e.monaco})}var wV=new Promise(function(e,t){return hV({resolve:e,reject:t})}),TV={config:gV,init:_V,__getMonacoInstance:CV},EV={wrapper:{display:`flex`,position:`relative`,textAlign:`initial`},fullWidth:{width:`100%`},hide:{display:`none`}},DV={container:{display:`flex`,height:`100%`,width:`100%`,justifyContent:`center`,alignItems:`center`}};function OV({children:e}){return X.createElement(`div`,{style:DV.container},e)}var kV=OV;function AV({width:e,height:t,isEditorReady:n,loading:r,_ref:i,className:a,wrapperProps:o}){return X.createElement(`section`,{style:{...EV.wrapper,width:e,height:t},...o},!n&&X.createElement(kV,null,r),X.createElement(`div`,{ref:i,style:{...EV.fullWidth,...!n&&EV.hide},className:a}))}var jV=(0,X.memo)(AV);function MV(e){(0,X.useEffect)(e,[])}var NV=MV;function PV(e,t,n=!0){let r=(0,X.useRef)(!0);(0,X.useEffect)(r.current||!n?()=>{r.current=!1}:e,t)}var FV=PV;function IV(){}function LV(e,t,n,r){return RV(e,r)||zV(e,t,n,r)}function RV(e,t){return e.editor.getModel(BV(e,t))}function zV(e,t,n,r){return e.editor.createModel(t,n,r?BV(e,r):void 0)}function BV(e,t){return e.Uri.parse(t)}function VV({original:e,modified:t,language:n,originalLanguage:r,modifiedLanguage:i,originalModelPath:a,modifiedModelPath:o,keepCurrentOriginalModel:s=!1,keepCurrentModifiedModel:c=!1,theme:l=`light`,loading:u=`Loading...`,options:d={},height:f=`100%`,width:p=`100%`,className:m,wrapperProps:h={},beforeMount:g=IV,onMount:_=IV}){let[v,y]=(0,X.useState)(!1),[b,x]=(0,X.useState)(!0),S=(0,X.useRef)(null),C=(0,X.useRef)(null),w=(0,X.useRef)(null),T=(0,X.useRef)(_),E=(0,X.useRef)(g),D=(0,X.useRef)(!1);NV(()=>{let e=TV.init();return e.then(e=>(C.current=e)&&x(!1)).catch(e=>e?.type!==`cancelation`&&console.error(`Monaco initialization: error:`,e)),()=>S.current?A():e.cancel()}),FV(()=>{if(S.current&&C.current){let t=S.current.getOriginalEditor(),i=LV(C.current,e||``,r||n||`text`,a||``);i!==t.getModel()&&t.setModel(i)}},[a],v),FV(()=>{if(S.current&&C.current){let e=S.current.getModifiedEditor(),r=LV(C.current,t||``,i||n||`text`,o||``);r!==e.getModel()&&e.setModel(r)}},[o],v),FV(()=>{let e=S.current.getModifiedEditor();e.getOption(C.current.editor.EditorOption.readOnly)?e.setValue(t||``):t!==e.getValue()&&(e.executeEdits(``,[{range:e.getModel().getFullModelRange(),text:t||``,forceMoveMarkers:!0}]),e.pushUndoStop())},[t],v),FV(()=>{S.current?.getModel()?.original.setValue(e||``)},[e],v),FV(()=>{let{original:e,modified:t}=S.current.getModel();C.current.editor.setModelLanguage(e,r||n||`text`),C.current.editor.setModelLanguage(t,i||n||`text`)},[n,r,i],v),FV(()=>{C.current?.editor.setTheme(l)},[l],v),FV(()=>{S.current?.updateOptions(d)},[d],v);let O=(0,X.useCallback)(()=>{if(!C.current)return;E.current(C.current);let s=LV(C.current,e||``,r||n||`text`,a||``),c=LV(C.current,t||``,i||n||`text`,o||``);S.current?.setModel({original:s,modified:c})},[n,t,i,e,r,a,o]),k=(0,X.useCallback)(()=>{!D.current&&w.current&&(S.current=C.current.editor.createDiffEditor(w.current,{automaticLayout:!0,...d}),O(),C.current?.editor.setTheme(l),y(!0),D.current=!0)},[d,l,O]);(0,X.useEffect)(()=>{v&&T.current(S.current,C.current)},[v]),(0,X.useEffect)(()=>{!b&&!v&&k()},[b,v,k]);function A(){let e=S.current?.getModel();s||e?.original?.dispose(),c||e?.modified?.dispose(),S.current?.dispose()}return X.createElement(jV,{width:p,height:f,isEditorReady:v,loading:u,_ref:w,className:m,wrapperProps:h})}var HV=(0,X.memo)(VV);function UV(e){let t=(0,X.useRef)();return(0,X.useEffect)(()=>{t.current=e},[e]),t.current}var WV=UV,GV=new Map;function KV({defaultValue:e,defaultLanguage:t,defaultPath:n,value:r,language:i,path:a,theme:o=`light`,line:s,loading:c=`Loading...`,options:l={},overrideServices:u={},saveViewState:d=!0,keepCurrentModel:f=!1,width:p=`100%`,height:m=`100%`,className:h,wrapperProps:g={},beforeMount:_=IV,onMount:v=IV,onChange:y,onValidate:b=IV}){let[x,S]=(0,X.useState)(!1),[C,w]=(0,X.useState)(!0),T=(0,X.useRef)(null),E=(0,X.useRef)(null),D=(0,X.useRef)(null),O=(0,X.useRef)(v),k=(0,X.useRef)(_),A=(0,X.useRef)(),j=(0,X.useRef)(r),M=WV(a),N=(0,X.useRef)(!1),P=(0,X.useRef)(!1);NV(()=>{let e=TV.init();return e.then(e=>(T.current=e)&&w(!1)).catch(e=>e?.type!==`cancelation`&&console.error(`Monaco initialization: error:`,e)),()=>E.current?I():e.cancel()}),FV(()=>{let o=LV(T.current,e||r||``,t||i||``,a||n||``);o!==E.current?.getModel()&&(d&&GV.set(M,E.current?.saveViewState()),E.current?.setModel(o),d&&E.current?.restoreViewState(GV.get(a)))},[a],x),FV(()=>{E.current?.updateOptions(l)},[l],x),FV(()=>{!E.current||r===void 0||(E.current.getOption(T.current.editor.EditorOption.readOnly)?E.current.setValue(r):r!==E.current.getValue()&&(P.current=!0,E.current.executeEdits(``,[{range:E.current.getModel().getFullModelRange(),text:r,forceMoveMarkers:!0}]),E.current.pushUndoStop(),P.current=!1))},[r],x),FV(()=>{let e=E.current?.getModel();e&&i&&T.current?.editor.setModelLanguage(e,i)},[i],x),FV(()=>{s!==void 0&&E.current?.revealLine(s)},[s],x),FV(()=>{T.current?.editor.setTheme(o)},[o],x);let F=(0,X.useCallback)(()=>{if(!(!D.current||!T.current)&&!N.current){k.current(T.current);let c=a||n,f=LV(T.current,r||e||``,t||i||``,c||``);E.current=T.current?.editor.create(D.current,{model:f,automaticLayout:!0,...l},u),d&&E.current.restoreViewState(GV.get(c)),T.current.editor.setTheme(o),s!==void 0&&E.current.revealLine(s),S(!0),N.current=!0}},[e,t,n,r,i,a,l,u,d,o,s]);(0,X.useEffect)(()=>{x&&O.current(E.current,T.current)},[x]),(0,X.useEffect)(()=>{!C&&!x&&F()},[C,x,F]),j.current=r,(0,X.useEffect)(()=>{x&&y&&(A.current?.dispose(),A.current=E.current?.onDidChangeModelContent(e=>{P.current||y(E.current.getValue(),e)}))},[x,y]),(0,X.useEffect)(()=>{if(x){let e=T.current.editor.onDidChangeMarkers(e=>{let t=E.current.getModel()?.uri;if(t&&e.find(e=>e.path===t.path)){let e=T.current.editor.getModelMarkers({resource:t});b?.(e)}});return()=>{e?.dispose()}}return()=>{}},[x,b]);function I(){A.current?.dispose(),f?d&&GV.set(a,E.current.saveViewState()):E.current.getModel()?.dispose(),E.current.dispose()}return X.createElement(jV,{width:p,height:m,isEditorReady:x,loading:c,_ref:D,className:h,wrapperProps:g})}var qV=(0,X.memo)(KV),JV=null,YV=null,XV=null,ZV=new Set;function QV(e){let t=e.indexOf(`:`),n=t===-1?``:e.slice(t+1);return n?n.split(`,`):[]}async function rSe(e,t){let n=await $V();return ZV.has(e)||(await n.loadMonacoLanguages(QV(e),{languageServices:t}),ZV.add(e)),n}async function $V(){return JV||=Wr(()=>import(`./monaco-
|
|
589
|
+
`},oV=eV(iV)(aV),sV={config:nV},cV=function(){var e=[...arguments];return function(t){return e.reduceRight(function(e,t){return t(e)},t)}};function lV(e,t){return Object.keys(t).forEach(function(n){t[n]instanceof Object&&e[n]&&Object.assign(t[n],lV(e[n],t[n]))}),TB(TB({},e),t)}var uV={type:`cancelation`,msg:`operation is manually canceled`};function dV(e){var t=!1,n=new Promise(function(n,r){e.then(function(e){return t?r(uV):n(e)}),e.catch(r)});return n.cancel=function(){return t=!0},n}var fV=[`monaco`],pV=OB(QB.create({config:$B,isInitialized:!1,resolve:null,reject:null,monaco:null}),2),mV=pV[0],hV=pV[1];function gV(e){var t=sV.config(e),n=t.monaco,r=EB(t,fV);hV(function(e){return{config:lV(e.config,r),monaco:n}})}function _V(){var e=mV(function(e){return{monaco:e.monaco,isInitialized:e.isInitialized,resolve:e.resolve}});if(!e.isInitialized){if(hV({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),dV(wV);if(window.monaco&&window.monaco.editor)return SV(window.monaco),e.resolve(window.monaco),dV(wV);cV(vV,bV)(xV)}return dV(wV)}function vV(e){return document.body.appendChild(e)}function yV(e){var t=document.createElement(`script`);return e&&(t.src=e),t}function bV(e){var t=mV(function(e){return{config:e.config,reject:e.reject}}),n=yV(`${t.config.paths.vs}/loader.js`);return n.onload=function(){return e()},n.onerror=t.reject,n}function xV(){var e=mV(function(e){return{config:e.config,resolve:e.resolve,reject:e.reject}}),t=window.require;t.config(e.config),t([`vs/editor/editor.main`],function(t){var n=t.m||t;SV(n),e.resolve(n)},function(t){e.reject(t)})}function SV(e){mV().monaco||hV({monaco:e})}function CV(){return mV(function(e){return e.monaco})}var wV=new Promise(function(e,t){return hV({resolve:e,reject:t})}),TV={config:gV,init:_V,__getMonacoInstance:CV},EV={wrapper:{display:`flex`,position:`relative`,textAlign:`initial`},fullWidth:{width:`100%`},hide:{display:`none`}},DV={container:{display:`flex`,height:`100%`,width:`100%`,justifyContent:`center`,alignItems:`center`}};function OV({children:e}){return X.createElement(`div`,{style:DV.container},e)}var kV=OV;function AV({width:e,height:t,isEditorReady:n,loading:r,_ref:i,className:a,wrapperProps:o}){return X.createElement(`section`,{style:{...EV.wrapper,width:e,height:t},...o},!n&&X.createElement(kV,null,r),X.createElement(`div`,{ref:i,style:{...EV.fullWidth,...!n&&EV.hide},className:a}))}var jV=(0,X.memo)(AV);function MV(e){(0,X.useEffect)(e,[])}var NV=MV;function PV(e,t,n=!0){let r=(0,X.useRef)(!0);(0,X.useEffect)(r.current||!n?()=>{r.current=!1}:e,t)}var FV=PV;function IV(){}function LV(e,t,n,r){return RV(e,r)||zV(e,t,n,r)}function RV(e,t){return e.editor.getModel(BV(e,t))}function zV(e,t,n,r){return e.editor.createModel(t,n,r?BV(e,r):void 0)}function BV(e,t){return e.Uri.parse(t)}function VV({original:e,modified:t,language:n,originalLanguage:r,modifiedLanguage:i,originalModelPath:a,modifiedModelPath:o,keepCurrentOriginalModel:s=!1,keepCurrentModifiedModel:c=!1,theme:l=`light`,loading:u=`Loading...`,options:d={},height:f=`100%`,width:p=`100%`,className:m,wrapperProps:h={},beforeMount:g=IV,onMount:_=IV}){let[v,y]=(0,X.useState)(!1),[b,x]=(0,X.useState)(!0),S=(0,X.useRef)(null),C=(0,X.useRef)(null),w=(0,X.useRef)(null),T=(0,X.useRef)(_),E=(0,X.useRef)(g),D=(0,X.useRef)(!1);NV(()=>{let e=TV.init();return e.then(e=>(C.current=e)&&x(!1)).catch(e=>e?.type!==`cancelation`&&console.error(`Monaco initialization: error:`,e)),()=>S.current?A():e.cancel()}),FV(()=>{if(S.current&&C.current){let t=S.current.getOriginalEditor(),i=LV(C.current,e||``,r||n||`text`,a||``);i!==t.getModel()&&t.setModel(i)}},[a],v),FV(()=>{if(S.current&&C.current){let e=S.current.getModifiedEditor(),r=LV(C.current,t||``,i||n||`text`,o||``);r!==e.getModel()&&e.setModel(r)}},[o],v),FV(()=>{let e=S.current.getModifiedEditor();e.getOption(C.current.editor.EditorOption.readOnly)?e.setValue(t||``):t!==e.getValue()&&(e.executeEdits(``,[{range:e.getModel().getFullModelRange(),text:t||``,forceMoveMarkers:!0}]),e.pushUndoStop())},[t],v),FV(()=>{S.current?.getModel()?.original.setValue(e||``)},[e],v),FV(()=>{let{original:e,modified:t}=S.current.getModel();C.current.editor.setModelLanguage(e,r||n||`text`),C.current.editor.setModelLanguage(t,i||n||`text`)},[n,r,i],v),FV(()=>{C.current?.editor.setTheme(l)},[l],v),FV(()=>{S.current?.updateOptions(d)},[d],v);let O=(0,X.useCallback)(()=>{if(!C.current)return;E.current(C.current);let s=LV(C.current,e||``,r||n||`text`,a||``),c=LV(C.current,t||``,i||n||`text`,o||``);S.current?.setModel({original:s,modified:c})},[n,t,i,e,r,a,o]),k=(0,X.useCallback)(()=>{!D.current&&w.current&&(S.current=C.current.editor.createDiffEditor(w.current,{automaticLayout:!0,...d}),O(),C.current?.editor.setTheme(l),y(!0),D.current=!0)},[d,l,O]);(0,X.useEffect)(()=>{v&&T.current(S.current,C.current)},[v]),(0,X.useEffect)(()=>{!b&&!v&&k()},[b,v,k]);function A(){let e=S.current?.getModel();s||e?.original?.dispose(),c||e?.modified?.dispose(),S.current?.dispose()}return X.createElement(jV,{width:p,height:f,isEditorReady:v,loading:u,_ref:w,className:m,wrapperProps:h})}var HV=(0,X.memo)(VV);function UV(e){let t=(0,X.useRef)();return(0,X.useEffect)(()=>{t.current=e},[e]),t.current}var WV=UV,GV=new Map;function KV({defaultValue:e,defaultLanguage:t,defaultPath:n,value:r,language:i,path:a,theme:o=`light`,line:s,loading:c=`Loading...`,options:l={},overrideServices:u={},saveViewState:d=!0,keepCurrentModel:f=!1,width:p=`100%`,height:m=`100%`,className:h,wrapperProps:g={},beforeMount:_=IV,onMount:v=IV,onChange:y,onValidate:b=IV}){let[x,S]=(0,X.useState)(!1),[C,w]=(0,X.useState)(!0),T=(0,X.useRef)(null),E=(0,X.useRef)(null),D=(0,X.useRef)(null),O=(0,X.useRef)(v),k=(0,X.useRef)(_),A=(0,X.useRef)(),j=(0,X.useRef)(r),M=WV(a),N=(0,X.useRef)(!1),P=(0,X.useRef)(!1);NV(()=>{let e=TV.init();return e.then(e=>(T.current=e)&&w(!1)).catch(e=>e?.type!==`cancelation`&&console.error(`Monaco initialization: error:`,e)),()=>E.current?I():e.cancel()}),FV(()=>{let o=LV(T.current,e||r||``,t||i||``,a||n||``);o!==E.current?.getModel()&&(d&&GV.set(M,E.current?.saveViewState()),E.current?.setModel(o),d&&E.current?.restoreViewState(GV.get(a)))},[a],x),FV(()=>{E.current?.updateOptions(l)},[l],x),FV(()=>{!E.current||r===void 0||(E.current.getOption(T.current.editor.EditorOption.readOnly)?E.current.setValue(r):r!==E.current.getValue()&&(P.current=!0,E.current.executeEdits(``,[{range:E.current.getModel().getFullModelRange(),text:r,forceMoveMarkers:!0}]),E.current.pushUndoStop(),P.current=!1))},[r],x),FV(()=>{let e=E.current?.getModel();e&&i&&T.current?.editor.setModelLanguage(e,i)},[i],x),FV(()=>{s!==void 0&&E.current?.revealLine(s)},[s],x),FV(()=>{T.current?.editor.setTheme(o)},[o],x);let F=(0,X.useCallback)(()=>{if(!(!D.current||!T.current)&&!N.current){k.current(T.current);let c=a||n,f=LV(T.current,r||e||``,t||i||``,c||``);E.current=T.current?.editor.create(D.current,{model:f,automaticLayout:!0,...l},u),d&&E.current.restoreViewState(GV.get(c)),T.current.editor.setTheme(o),s!==void 0&&E.current.revealLine(s),S(!0),N.current=!0}},[e,t,n,r,i,a,l,u,d,o,s]);(0,X.useEffect)(()=>{x&&O.current(E.current,T.current)},[x]),(0,X.useEffect)(()=>{!C&&!x&&F()},[C,x,F]),j.current=r,(0,X.useEffect)(()=>{x&&y&&(A.current?.dispose(),A.current=E.current?.onDidChangeModelContent(e=>{P.current||y(E.current.getValue(),e)}))},[x,y]),(0,X.useEffect)(()=>{if(x){let e=T.current.editor.onDidChangeMarkers(e=>{let t=E.current.getModel()?.uri;if(t&&e.find(e=>e.path===t.path)){let e=T.current.editor.getModelMarkers({resource:t});b?.(e)}});return()=>{e?.dispose()}}return()=>{}},[x,b]);function I(){A.current?.dispose(),f?d&&GV.set(a,E.current.saveViewState()):E.current.getModel()?.dispose(),E.current.dispose()}return X.createElement(jV,{width:p,height:m,isEditorReady:x,loading:c,_ref:D,className:h,wrapperProps:g})}var qV=(0,X.memo)(KV),JV=null,YV=null,XV=null,ZV=new Set;function QV(e){let t=e.indexOf(`:`),n=t===-1?``:e.slice(t+1);return n?n.split(`,`):[]}async function rSe(e,t){let n=await $V();return ZV.has(e)||(await n.loadMonacoLanguages(QV(e),{languageServices:t}),ZV.add(e)),n}async function $V(){return JV||=Wr(()=>import(`./monaco-Bv9TxWl_.js`).then(e=>e.r).then(e=>(TV.config({monaco:e}),XV=e,e)),__vite__mapDeps([24,4,1,25,26,27,28,29])),JV}function iSe(){return YV??=$V().then(e=>e.loadMonacoSuggestions()).catch(e=>{throw YV=null,e}),YV}function eH(e=[],t={}){let n=t.languageServices===!0,r=Fw(e,{languageServices:n}),[i,a]=(0,X.useState)(()=>XV!==null&&ZV.has(r));return(0,X.useEffect)(()=>{let e=!1;return rSe(r,n).then(()=>{e||a(!0)}),()=>{e=!0}},[n,r]),{monaco:XV,ready:XV!==null&&i}}var tH=[];function nH(e,t,n){let r=(0,X.useRef)(t);r.current=t,(0,X.useEffect)(()=>{if(!e)return;let t=Symbol(`escape-dismissal`);tH.push(t);let i=e=>{e.key!==`Escape`||e.defaultPrevented||tH[tH.length-1]!==t||(e.preventDefault(),e.stopPropagation(),r.current(),n?.current?.focus({preventScroll:!0}))};return document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`keydown`,i);let e=tH.lastIndexOf(t);e>=0&&tH.splice(e,1)}},[e,n])}var aSe={display:`flex`,alignItems:`center`,justifyContent:`center`,width:`100%`,height:`100%`,color:`var(--squisq-editor-muted-foreground, #6a6258)`,fontSize:12};function oSe({original:e,modified:t,theme:n}){let{ready:r}=eH(Iw(`markdown`,`${e}
|
|
590
590
|
${t}`));return r?(0,Z.jsx)(HV,{original:e,modified:t,language:`markdown`,theme:n,options:{readOnly:!0,renderSideBySide:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:`on`,automaticLayout:!0,fontSize:12,lineNumbers:`off`,glyphMargin:!1,folding:!1,overviewRulerLanes:0,renderOverviewRuler:!1}}):(0,Z.jsx)(`div`,{style:aSe,children:`Loading diff…`})}var sSe={loading:!1,versions:[],selected:null,pendingRevert:null,error:null,currentStamp:new Date,latestSnapshotContent:null},rH=new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`});function iH(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function cSe(){let{versioning:e,saveVersion:t,replaceAll:n,markdownSource:r,colorScheme:i}=mB(),[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)(sSe),l=(0,X.useRef)(null),u=(0,X.useRef)(null);nH(a,(0,X.useCallback)(()=>o(!1),[]),u);let d=(0,X.useCallback)(async()=>{if(e){c(e=>({...e,loading:!0,error:null}));try{let t=await e.listVersions(),n=t[0],r=n?await e.readVersion(n):null;c(e=>({...e,loading:!1,versions:t,latestSnapshotContent:r}))}catch(e){let t=e instanceof Error?e.message:`Failed to list versions`;c(e=>({...e,loading:!1,error:t}))}}},[e]);(0,X.useEffect)(()=>{a?(c(e=>({...e,currentStamp:new Date})),d()):c(e=>({...e,selected:null,pendingRevert:null}))},[a,d]),(0,X.useEffect)(()=>{if(!a)return;let e=e=>{l.current&&!l.current.contains(e.target)&&o(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[a]);let f=(0,X.useCallback)(async t=>{if(e){if(s.selected?.version.path===t.path){c(e=>({...e,selected:null}));return}try{let n=await e.readVersion(t);if(n===null){c(e=>({...e,error:`Snapshot is no longer available.`}));return}c(e=>({...e,selected:{version:t,content:n},error:null}))}catch(e){let t=e instanceof Error?e.message:`Failed to read snapshot`;c(e=>({...e,error:t,selected:null}))}}},[e,s.selected]),p=(0,X.useCallback)(async i=>{if(e)try{let a=await t({content:r});if(!a.saved&&a.reason!==`unchanged`){c(e=>({...e,error:`Could not save your current draft as a snapshot (${a.reason}). Revert cancelled so your unsaved edits are not lost.`}));return}if(!(await e.revertToVersion(i,{snapshotCurrent:!1})).reverted){c(e=>({...e,error:`Revert failed — snapshot missing.`}));return}let o=await e.readVersion(i);o!==null&&n(o),c(e=>({...e,pendingRevert:null,selected:null})),await d()}catch(e){let t=e instanceof Error?e.message:`Revert failed`;c(e=>({...e,error:t}))}},[e,t,r,n,d]),m=s.latestSnapshotContent!==null&&s.latestSnapshotContent===r,h=(0,X.useMemo)(()=>m?s.versions.slice(1):s.versions,[s.versions,m]),g=(0,X.useMemo)(()=>new TextEncoder().encode(r).byteLength,[r]),_=s.selected!==null,v=i===`dark`?`vs-dark`:`vs`;return e?(0,Z.jsxs)(`div`,{className:`squisq-version-history`,ref:l,children:[(0,Z.jsx)(`button`,{ref:u,type:`button`,className:`squisq-toolbar-button squisq-version-history-trigger${a?` squisq-toolbar-button--active`:``}`,"data-tooltip":`Version history`,"aria-label":`Version history`,"aria-expanded":a,onClick:()=>o(e=>!e),children:(0,Z.jsx)(VT,{icon:`fa-solid fa-clock-rotate-left`})}),a&&(0,Z.jsxs)(`div`,{className:`squisq-version-history-popover${_?` squisq-version-history-popover--with-diff`:``}`,role:`dialog`,"aria-label":`Version history`,children:[_&&s.selected&&(0,Z.jsxs)(`div`,{className:`squisq-version-history-diff`,children:[(0,Z.jsxs)(`div`,{className:`squisq-version-history-diff-header`,children:[(0,Z.jsxs)(`span`,{className:`squisq-version-history-diff-label`,children:[(0,Z.jsx)(`strong`,{children:`Snapshot`}),` `,rH.format(s.selected.version.timestamp)]}),(0,Z.jsx)(`span`,{className:`squisq-version-history-diff-label`,children:(0,Z.jsx)(`strong`,{children:`Current`})})]}),(0,Z.jsx)(`div`,{className:`squisq-version-history-diff-body`,children:(0,Z.jsx)(oSe,{original:s.selected.content,modified:r,theme:v})})]}),(0,Z.jsxs)(`div`,{className:`squisq-version-history-list-pane`,children:[(0,Z.jsx)(`div`,{className:`squisq-version-history-header`,children:(0,Z.jsx)(`span`,{className:`squisq-version-history-title`,children:`Version history`})}),s.error&&(0,Z.jsx)(`div`,{className:`squisq-version-history-error`,children:s.error}),s.loading?(0,Z.jsx)(`div`,{className:`squisq-version-history-empty`,children:`Loading…`}):h.length===0?(0,Z.jsx)(`div`,{className:`squisq-version-history-empty`,children:`No versions yet. Versions are saved automatically as you edit.`}):(0,Z.jsxs)(`ul`,{className:`squisq-version-history-list`,children:[(0,Z.jsx)(`li`,{className:`squisq-version-history-row squisq-version-history-row--current${s.selected===null?` squisq-version-history-row--selected`:``}`,children:(0,Z.jsxs)(`button`,{type:`button`,className:`squisq-version-history-row-select`,onClick:()=>c(e=>({...e,selected:null})),children:[(0,Z.jsxs)(`span`,{className:`squisq-version-history-row__time`,children:[(0,Z.jsx)(`strong`,{children:`Current`}),` · `,rH.format(s.currentStamp)]}),(0,Z.jsx)(`span`,{className:`squisq-version-history-row__size`,children:iH(g)})]})}),h.map(e=>{let t=s.pendingRevert!==null&&s.pendingRevert.path===e.path;return(0,Z.jsxs)(`li`,{className:`squisq-version-history-row${s.selected?.version.path===e.path?` squisq-version-history-row--selected`:``}`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`squisq-version-history-row-select`,onClick:()=>void f(e),children:[(0,Z.jsx)(`span`,{className:`squisq-version-history-row__time`,children:rH.format(e.timestamp)}),(0,Z.jsx)(`span`,{className:`squisq-version-history-row__size`,children:iH(e.size)})]}),(0,Z.jsx)(`span`,{className:`squisq-version-history-row__actions`,children:(0,Z.jsx)(`button`,{type:`button`,className:`squisq-version-history-link`,onClick:()=>c(t=>({...t,pendingRevert:e})),children:`Revert`})}),t&&(0,Z.jsxs)(`div`,{className:`squisq-version-history-confirm`,children:[(0,Z.jsx)(`span`,{children:`Revert to this version? Your current draft will be saved as a new snapshot first. Reverting will reset your editor undo state.`}),(0,Z.jsxs)(`span`,{className:`squisq-version-history-confirm-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`squisq-version-history-link`,onClick:()=>c(e=>({...e,pendingRevert:null})),children:`Cancel`}),(0,Z.jsx)(`button`,{type:`button`,className:`squisq-version-history-link squisq-version-history-link--primary`,onClick:()=>void p(e),children:`Revert`})]})]})]},e.path)})]})]})]})]}):null}var aH=sr().map(e=>({id:e.id,name:e.name,description:e.description,theme:er(e.id)}));function oH(e){return aH.find(t=>t.id===e)}function lSe(e){return qn(e.typography.titleFont,ar.sans)}function sH({theme:e,label:t,className:n}){return(0,Z.jsx)(`span`,{className:`squisq-theme-picker-name-chip${n?` ${n}`:``}`,"data-theme-id":e.id,style:{background:e.colors.background,color:e.colors.text,fontFamily:lSe(e),borderColor:e.colors.backgroundLight},children:(0,Z.jsx)(`span`,{className:`squisq-theme-picker-name-chip-label`,children:t})})}function cH({theme:e}){return(0,Z.jsxs)(`span`,{className:`squisq-theme-picker-swatches`,"aria-hidden":`true`,children:[(0,Z.jsx)(`span`,{className:`squisq-theme-picker-swatch`,style:{background:e.colors.primary}}),(0,Z.jsx)(`span`,{className:`squisq-theme-picker-swatch`,style:{background:e.colors.secondary}}),(0,Z.jsx)(`span`,{className:`squisq-theme-picker-swatch`,style:{background:e.colors.highlight}})]})}function lH({value:e,onChange:t,includeDefault:n,variant:r=`compact`,ariaLabel:i=`Theme`,customThemes:a,onCreateCustom:o,onEditCustom:s,onDeleteCustom:c}){let[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)({}),p=(0,X.useRef)(null),m=(0,X.useRef)(null);nH(l,()=>u(!1),p);let h=`squisq-theme-picker-popover-${(0,X.useId)().replace(/:/g,``)}`,g=(0,X.useMemo)(()=>(a??[]).map(e=>({id:e.id,name:e.name,description:e.description,theme:e})),[a]),_=(0,X.useCallback)(e=>oH(e)??g.find(t=>t.id===e),[g]),v=(0,X.useMemo)(()=>e?_(e)??null:null,[e,_]),y=!v&&n===!0,b=v??oH(`standard`)??aH[0],x=v?v.name:n?`Default`:b?.name??`Theme`,S=(0,X.useCallback)(()=>{if(!p.current)return;let e=p.current.getBoundingClientRect(),t=window.innerWidth,n=window.innerHeight,r=t-16,i=Math.min(r,Math.max(560,e.width)),a=Math.max(8,t-i-8),o=Math.min(Math.max(8,e.left),a),s=m.current?.scrollHeight??520,c=n-e.bottom-8-4,l=e.top-8-4,u,d;s<=c||c>=l?(u=e.bottom+4,d=c):(d=Math.min(s,l),u=e.top-4-d),f({position:`fixed`,top:u,left:o,width:i,maxHeight:d,overflowY:`auto`,zIndex:9999})},[]),C=()=>{l||S(),u(e=>!e)};(0,X.useEffect)(()=>{if(!l)return;let e=e=>{let t=e.target;p.current?.contains(t)||m.current?.contains(t)||u(!1)},t=()=>S();return document.addEventListener(`mousedown`,e),window.addEventListener(`scroll`,t,!0),window.addEventListener(`resize`,t),requestAnimationFrame(S),()=>{document.removeEventListener(`mousedown`,e),window.removeEventListener(`scroll`,t,!0),window.removeEventListener(`resize`,t)}},[l,S]);let w=e=>{t(e),u(!1)},T=l?(0,Gi.createPortal)((0,Z.jsxs)(`div`,{ref:m,id:h,className:`squisq-theme-picker-popover`,role:`listbox`,"aria-label":i,style:d,children:[n&&(0,Z.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":e===``,"aria-label":`Default`,className:`squisq-theme-picker-row${e===``?` squisq-theme-picker-row--selected`:``}`,onClick:()=>w(``),children:[(0,Z.jsx)(sH,{theme:er(`standard`),label:`Default`,className:`squisq-theme-picker-name-chip--default`}),(0,Z.jsxs)(`span`,{className:`squisq-theme-picker-row-meta`,children:[(0,Z.jsx)(`span`,{className:`squisq-theme-picker-row-name`,children:`No explicit theme`}),(0,Z.jsx)(`span`,{className:`squisq-theme-picker-row-desc`,children:`Uses the document's default styling.`})]})]}),aH.map(t=>(0,Z.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":e===t.id,"aria-label":t.name,className:`squisq-theme-picker-row${e===t.id?` squisq-theme-picker-row--selected`:``}`,onClick:()=>w(t.id),title:t.description??t.name,children:[(0,Z.jsx)(sH,{theme:t.theme,label:t.name}),(0,Z.jsxs)(`span`,{className:`squisq-theme-picker-row-meta`,children:[(0,Z.jsx)(cH,{theme:t.theme}),t.description&&(0,Z.jsx)(`span`,{className:`squisq-theme-picker-row-desc`,children:t.description})]})]},t.id)),g.length>0&&(0,Z.jsx)(`div`,{className:`squisq-theme-picker-group-label`,children:`Custom`}),g.map(t=>(0,Z.jsxs)(`div`,{className:`squisq-theme-picker-custom-wrap`,children:[(0,Z.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":e===t.id,"aria-label":t.name,className:`squisq-theme-picker-row${e===t.id?` squisq-theme-picker-row--selected`:``}`,onClick:()=>w(t.id),title:t.description??t.name,children:[(0,Z.jsx)(sH,{theme:t.theme,label:t.name}),(0,Z.jsxs)(`span`,{className:`squisq-theme-picker-row-meta`,children:[(0,Z.jsx)(cH,{theme:t.theme}),t.description&&(0,Z.jsx)(`span`,{className:`squisq-theme-picker-row-desc`,children:t.description})]})]}),(s||c)&&(0,Z.jsxs)(`span`,{className:`squisq-theme-picker-card-actions`,children:[s&&(0,Z.jsx)(`button`,{type:`button`,className:`squisq-theme-picker-card-action`,onClick:()=>s(t.id),"aria-label":`Edit ${t.name}`,title:`Edit theme`,children:`✎`}),c&&(0,Z.jsx)(`button`,{type:`button`,className:`squisq-theme-picker-card-action`,onClick:()=>c(t.id),"aria-label":`Delete ${t.name}`,title:`Delete theme`,children:`×`})]})]},t.id)),o&&(0,Z.jsxs)(`button`,{type:`button`,className:`squisq-theme-picker-row squisq-theme-picker-create`,onClick:()=>{u(!1),o()},children:[(0,Z.jsx)(`span`,{className:`squisq-theme-picker-create-plus`,"aria-hidden":`true`,children:`+`}),(0,Z.jsxs)(`span`,{className:`squisq-theme-picker-row-meta`,children:[(0,Z.jsx)(`span`,{className:`squisq-theme-picker-row-name`,children:`Create custom theme…`}),(0,Z.jsx)(`span`,{className:`squisq-theme-picker-row-desc`,children:`Design your own colors, accents, and fonts.`})]})]})]}),document.body):null;return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`button`,{ref:p,type:`button`,className:`squisq-theme-picker-trigger squisq-theme-picker-trigger--${r}${l?` squisq-theme-picker-trigger--open`:``}`,onClick:C,"aria-haspopup":`listbox`,"aria-expanded":l,"aria-controls":l?h:void 0,"aria-label":i,children:[b&&(0,Z.jsx)(sH,{theme:b.theme,label:x,className:`squisq-theme-picker-name-chip--trigger${y?` squisq-theme-picker-name-chip--default`:``}`}),b&&r===`full`&&!y&&(0,Z.jsx)(cH,{theme:b.theme}),(0,Z.jsx)(`svg`,{className:`squisq-theme-picker-caret`,width:`10`,height:`10`,viewBox:`0 0 10 10`,"aria-hidden":`true`,children:(0,Z.jsx)(`path`,{d:`M2 3.5l3 3 3-3`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,fill:`none`})})]}),T]})}var uH=`squisq:custom-theme-library`;function dH(){try{return typeof globalThis<`u`&&globalThis.localStorage?globalThis.localStorage:null}catch{return null}}function fH(){let e=dH();if(!e)return{version:1,themes:[]};try{let t=e.getItem(uH);if(!t)return{version:1,themes:[]};let n=JSON.parse(t);if(n&&Array.isArray(n.themes))return{version:1,themes:n.themes.filter(e=>$n(e).valid)}}catch{}return{version:1,themes:[]}}function pH(e){let t=dH();if(t)try{t.setItem(uH,JSON.stringify(e))}catch{}}function mH(){let{themes:e}=fH();return e.slice().sort((e,t)=>e.name.localeCompare(t.name))}function uSe(e){let t=fH(),n=t.themes.findIndex(t=>t.id===e.id);return n>=0?t.themes[n]=e:t.themes.push(e),pH(t),t.themes.slice().sort((e,t)=>e.name.localeCompare(t.name))}function dSe(e){let t=fH();return t.themes=t.themes.filter(t=>t.id!==e),pH(t),t.themes.slice().sort((e,t)=>e.name.localeCompare(t.name))}var hH=(0,X.createContext)(null);function fSe({docThemes:e,onDocThemesChange:t,children:n}){let[r,i]=(0,X.useState)(()=>mH());(0,X.useEffect)(()=>{i(mH());let e=e=>{e.key===uH&&i(mH())};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]);let a=(0,X.useCallback)(n=>{let r=e.findIndex(e=>e.id===n.id);t(r>=0?e.map((e,t)=>t===r?n:e):[...e,n])},[e,t]),o=(0,X.useCallback)(n=>{let r=e.filter(e=>e.id!==n);r.length!==e.length&&t(r)},[e,t]),s=(0,X.useCallback)(e=>{i(uSe(e))},[]),c=(0,X.useCallback)(e=>{i(dSe(e))},[]),l=(0,X.useCallback)(t=>{let n=e.find(e=>e.id===t.id);return n||a(t),n??t},[e,a]),u=(0,X.useMemo)(()=>{let t=new Set(e.map(e=>e.id));return[...e,...r.filter(e=>!t.has(e.id))]},[e,r]),d=(0,X.useMemo)(()=>({docThemes:e,libraryThemes:r,allThemes:u,upsertDocTheme:a,upsertLibraryTheme:s,removeDocTheme:o,removeLibraryTheme:c,applyTheme:l}),[e,r,u,a,s,o,c,l]);return(0,Z.jsx)(hH.Provider,{value:d,children:n})}function pSe(){return(0,X.useContext)(hH)}function mSe(){let{doc:e,markdownSource:t,setMarkdownSource:n}=mB();return{docThemes:(0,X.useMemo)(()=>e?.customThemes??[],[e?.customThemes]),onDocThemesChange:(0,X.useCallback)(e=>{let r=bn(e),i=zn(t,{[tr]:r??null});i!==t&&n(i)},[t,n])}}var gH={sharp:0,soft:6,rounded:16},_H={static:0,subtle:1.4,normal:1,expressive:.7},vH={off:!1,on:!0},hSe=[`subtle`,`balanced`,`high`],gSe=[`none`,`mono`,`duotone`,`warm`,`cool`],_Se=[`sans-serif`,`serif`,`monospace`,`system-ui`],vSe={name:`My Theme`,seeds:{primary:`#3182ce`,secondary:`#4a5568`,accent:`#63b3ed`,background:`#1a202c`,text:`#f7fafc`},accents:[],accentsEdited:!1,titleFont:{kind:`curated`,stackId:`system-serif`},bodyFont:{kind:`curated`,stackId:`system-sans`},borderRadius:`soft`,animationSpeed:`normal`,textShadow:`on`,contrast:`balanced`,imageTreatment:`none`};function ySe(e){if(e===void 0)return`soft`;let t=`soft`,n=1/0;return Object.entries(gH).forEach(([r,i])=>{let a=Math.abs(i-e);a<n&&(t=r,n=a)}),t}function bSe(e){if(e===void 0||e===0)return e===0?`static`:`normal`;let t=`normal`,n=1/0;return Object.entries(_H).forEach(([r,i])=>{if(i===0)return;let a=Math.abs(i-e);a<n&&(t=r,n=a)}),t}function yH(e,t){return e?`stackId`in e?{kind:`curated`,stackId:e.stackId}:`custom`in e?{kind:`custom`,customName:e.custom.name,customFallback:e.custom.fallback}:{kind:`curated`,stackId:t}:{kind:`curated`,stackId:t}}function bH(e){return e.kind===`curated`?{stackId:e.stackId??`system-sans`}:{custom:{name:e.customName??`Sans`,fallback:e.customFallback??`sans-serif`}}}function xH(e){return e?Object.entries(e.colorSchemes).map(([e,t])=>({key:e,color:t.accent})):[]}function xSe(e){return Ur(e)}function SH(e){if(!e)return{...vSe};let t=e.seedColors??{primary:e.colors.primary,secondary:e.colors.secondary,accent:e.colors.highlight,background:e.colors.background,text:e.colors.text};return{name:e.name,baseId:e.basedOn,seeds:{primary:t.primary,secondary:t.secondary,accent:t.accent,background:t.background,text:t.text},accents:xH(e),accentsEdited:!1,titleFont:yH(e.typography.titleFont,`system-serif`),bodyFont:yH(e.typography.bodyFont,`system-sans`),borderRadius:ySe(e.style.borderRadius),animationSpeed:bSe(e.style.animationSpeed),textShadow:e.style.textShadow===!1?`off`:`on`,contrast:`balanced`,imageTreatment:e.style.imageTreatment?.type??`none`}}function SSe(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`custom`}function CSe(e){let t=SH(e);return{name:t.name,seeds:t.seeds,accents:t.accents,accentsEdited:t.accents.length>0,titleFont:t.titleFont,bodyFont:t.bodyFont}}function wSe(e,t={}){let n=t.existingId,r=n&&n.startsWith(`custom-`)?n:`custom-${SSe(e.name)}`,i=e.accentsEdited&&e.accents.length>0?Object.fromEntries(e.accents.map(e=>[e.key,xSe(e.color)])):void 0;return Hr({id:r,name:e.name,seedColors:e.seeds,typography:{titleFont:bH(e.titleFont),bodyFont:bH(e.bodyFont)},style:{borderRadius:gH[e.borderRadius],animationSpeed:_H[e.animationSpeed],textShadow:vH[e.textShadow],...e.imageTreatment===`none`?{}:{imageTreatment:{type:e.imageTreatment,strength:.5}}},...i?{colorSchemes:i}:{}},{contrast:e.contrast,base:t.base})}function TSe(e){return{key:`accent${e.length+1}`,color:`#63b3ed`}}var ESe=`.docx,.pptx,.xlsx`,DSe=/\.(docx|pptx|xlsx)$/i,OSe=4;function kSe(e){return typeof e.arrayBuffer==`function`?e.arrayBuffer():new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsArrayBuffer(e)})}function ASe({onImported:e,allowLayouts:t=!1}){let n=(0,X.useRef)(null),[r,i]=(0,X.useState)(!1),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)([]),[d,f]=(0,X.useState)(!1),p=(0,X.useCallback)(async r=>{if(!DSe.test(r.name)){o(`Only .docx, .pptx, or .xlsx files carry a theme.`);return}i(!0),o(null),c(null),u([]);try{let n=await kSe(r),{inferThemeFromFile:i}=await Wr(async()=>{let{inferThemeFromFile:e}=await import(`./infer-D6e75m-s.js`);return{inferThemeFromFile:e}},__vite__mapDeps([31,1,32,4,33,34,35,36,37,38,39,40,41])),a=await i(n,{inferLayouts:t,nameHint:r.name.replace(/\.[^.]+$/,``)}),o=a.layouts??[];e(CSe(a.theme),{theme:a.theme,...o.length>0?{layouts:o}:{},warnings:a.warnings,fileName:r.name}),c(o.length>0?`Imported colors and fonts from ${r.name} \u2014 ${o.length} slide layout${o.length===1?``:`s`} will be saved with the document.`:`Imported colors and fonts from ${r.name}.`),u(a.warnings)}catch(e){o(e instanceof Error?e.message:`Could not read a theme from that file.`)}finally{i(!1),n.current&&(n.current.value=``)}},[t,e]),m=(0,X.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),f(!0)},[]),h=(0,X.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),f(!1)},[]),g=(0,X.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),f(!1);let t=e.dataTransfer.files?.[0];t&&p(t)},[p]),_=l.slice(0,OSe),v=l.length-_.length;return(0,Z.jsxs)(`div`,{className:`squisq-theme-import`,children:[(0,Z.jsxs)(`div`,{className:`squisq-theme-import-drop${d?` squisq-theme-import-drop--active`:``}${r?` squisq-theme-import-drop--busy`:``}`,onDragOver:m,onDragLeave:h,onDrop:g,children:[(0,Z.jsx)(`button`,{type:`button`,className:`squisq-theme-customizer-button`,onClick:()=>n.current?.click(),disabled:r,children:r?`Reading…`:`Choose file…`}),(0,Z.jsx)(`span`,{className:`squisq-theme-import-hint`,children:`or drop a .docx / .pptx / .xlsx here`}),(0,Z.jsx)(`input`,{ref:n,type:`file`,accept:ESe,style:{display:`none`},onChange:e=>{let t=e.target.files?.[0];t&&p(t)},"aria-label":`Import theme from file`})]}),a&&(0,Z.jsx)(`div`,{className:`squisq-theme-import-error`,role:`alert`,children:a}),s&&(0,Z.jsx)(`div`,{className:`squisq-theme-import-status`,children:s}),_.length>0&&(0,Z.jsxs)(`ul`,{className:`squisq-theme-import-warnings`,children:[_.map((e,t)=>(0,Z.jsx)(`li`,{children:e},t)),v>0&&(0,Z.jsxs)(`li`,{children:[`…and `,v,` more`]})]})]})}function CH({title:e,hint:t,children:n}){return(0,Z.jsxs)(`div`,{className:`squisq-theme-customizer-section`,children:[(0,Z.jsx)(`div`,{className:`squisq-theme-customizer-section-title`,children:e}),t&&(0,Z.jsx)(`div`,{className:`squisq-theme-customizer-section-hint`,children:t}),(0,Z.jsx)(`div`,{className:`squisq-theme-customizer-section-body`,children:n})]})}function wH({label:e,value:t,onChange:n}){let r=cr(t)?t:`#000000`;return(0,Z.jsxs)(`label`,{className:`squisq-theme-customizer-row`,children:[(0,Z.jsx)(`span`,{className:`squisq-theme-customizer-row-label`,children:e}),(0,Z.jsx)(`input`,{type:`color`,className:`squisq-theme-customizer-color`,value:r,onChange:e=>n(e.target.value)}),(0,Z.jsx)(`input`,{type:`text`,className:`squisq-theme-customizer-input squisq-theme-customizer-input--hex`,value:t,onChange:e=>n(e.target.value),spellCheck:!1,"aria-label":`${e} hex value`})]})}function TH({label:e,value:t,onChange:n}){let r=t.kind===`curated`?Qn.find(e=>e.id===t.stackId)?.family:void 0;return(0,Z.jsxs)(`div`,{className:`squisq-theme-customizer-row squisq-theme-customizer-row--font`,children:[(0,Z.jsx)(`span`,{className:`squisq-theme-customizer-row-label`,children:e}),(0,Z.jsxs)(`select`,{className:`squisq-theme-customizer-input`,style:r?{fontFamily:r}:void 0,value:t.kind===`custom`?`__custom__`:t.stackId??``,onChange:e=>{let r=e.target.value;n(r===`__custom__`?{kind:`custom`,customName:t.customName??``,customFallback:t.customFallback??`sans-serif`}:{kind:`curated`,stackId:r})},"aria-label":`${e} font`,children:[Qn.map(e=>(0,Z.jsx)(`option`,{value:e.id,style:{fontFamily:e.family},children:e.label},e.id)),(0,Z.jsx)(`option`,{value:`__custom__`,children:`Custom…`})]}),t.kind===`custom`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`input`,{type:`text`,className:`squisq-theme-customizer-input`,placeholder:`Font name`,value:t.customName??``,onChange:e=>n({...t,customName:e.target.value}),"aria-label":`${e} custom font name`}),(0,Z.jsx)(`select`,{className:`squisq-theme-customizer-input`,value:t.customFallback??`sans-serif`,onChange:e=>n({...t,customFallback:e.target.value}),"aria-label":`${e} custom font fallback`,children:_Se.map(e=>(0,Z.jsx)(`option`,{value:e,children:e},e))})]})]})}function EH({label:e,value:t,options:n,onChange:r}){return(0,Z.jsxs)(`label`,{className:`squisq-theme-customizer-row`,children:[(0,Z.jsx)(`span`,{className:`squisq-theme-customizer-row-label`,children:e}),(0,Z.jsx)(`select`,{className:`squisq-theme-customizer-input`,value:t,onChange:e=>r(e.target.value),"aria-label":e,children:n.map(e=>(0,Z.jsx)(`option`,{value:e,children:e},e))})]})}function jSe({accents:e,onChange:t}){let n=(n,r)=>t(e.map((e,t)=>t===n?{...e,color:r}:e)),r=n=>t(e.filter((e,t)=>t!==n));return(0,Z.jsxs)(`div`,{className:`squisq-theme-customizer-accents`,children:[e.map((e,t)=>(0,Z.jsxs)(`div`,{className:`squisq-theme-customizer-row squisq-theme-customizer-row--accent`,children:[(0,Z.jsx)(`input`,{type:`color`,className:`squisq-theme-customizer-color`,value:cr(e.color)?e.color:`#000000`,onChange:e=>n(t,e.target.value),"aria-label":`Accent ${t+1}`}),(0,Z.jsx)(`input`,{type:`text`,className:`squisq-theme-customizer-input squisq-theme-customizer-input--hex`,value:e.color,onChange:e=>n(t,e.target.value),spellCheck:!1,"aria-label":`Accent ${t+1} hex value`}),(0,Z.jsx)(`button`,{type:`button`,className:`squisq-theme-customizer-accent-remove`,onClick:()=>r(t),"aria-label":`Remove accent ${t+1}`,title:`Remove accent`,children:`×`})]},e.key)),(0,Z.jsx)(`button`,{type:`button`,className:`squisq-theme-customizer-button squisq-theme-customizer-accent-add`,onClick:()=>t([...e,TSe(e)]),children:`+ Add accent`})]})}function MSe(e){let t=SH(e);return e&&(t.accentsEdited=!0),t}function NSe({value:e,onChange:t,onSave:n,onClose:r}){let[i,a]=(0,X.useState)(()=>MSe(e)),[o,s]=(0,X.useState)(null),c=(0,X.useRef)(null);(0,X.useEffect)(()=>{c.current?.focus(),c.current?.select()},[]),(0,X.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]);let l=(0,X.useCallback)(t=>{let n=t.baseId?er(t.baseId):void 0;return wSe(t,{existingId:e?.id,base:n})},[e?.id]),u=(0,X.useCallback)(e=>{a(n=>{let r=typeof e==`function`?e(n):{...n,...e};try{t?.(l(r))}catch{}return r})},[t,l]),d=(0,X.useCallback)((e,t)=>u(n=>({...n,seeds:{...n.seeds,[e]:t}})),[u]),f=(0,X.useCallback)(e=>{try{let t=o&&o.length>0?{templates:o}:void 0;n(l(i),e,t)}catch{}},[i,n,l,o]),p=(0,X.useMemo)(()=>i.baseId?er(i.baseId):null,[i.baseId]),m=i.accentsEdited?i.accents:xH(p),h=(0,X.useCallback)(e=>u({accents:e,accentsEdited:!0}),[u]);return(0,Z.jsxs)(`div`,{className:`squisq-custom-theme-pane`,role:`dialog`,"aria-label":`Design custom theme`,children:[(0,Z.jsxs)(`div`,{className:`squisq-doc-settings-header`,children:[(0,Z.jsx)(`h2`,{className:`squisq-doc-settings-title`,children:e?`Edit custom theme`:`New custom theme`}),(0,Z.jsx)(`button`,{type:`button`,className:`squisq-doc-settings-close`,onClick:r,"aria-label":`Close`,children:`×`})]}),(0,Z.jsxs)(`div`,{className:`squisq-doc-settings-body squisq-theme-customizer-body squisq-custom-theme-pane-body`,children:[(0,Z.jsx)(CH,{title:`Name`,children:(0,Z.jsx)(`input`,{ref:c,type:`text`,className:`squisq-theme-customizer-input`,value:i.name,onChange:e=>u({name:e.target.value}),"aria-label":`Theme name`})}),(0,Z.jsx)(CH,{title:`Base theme`,hint:`Inherit render style, motion, and layout from a base.`,children:(0,Z.jsx)(lH,{value:i.baseId??``,onChange:e=>u({baseId:e||void 0}),includeDefault:!0,variant:`full`,ariaLabel:`Base theme`})}),(0,Z.jsx)(CH,{title:`Import from file`,hint:`Pull colors and fonts from a Word, PowerPoint, or Excel file. PowerPoint slide layouts become custom layouts.`,children:(0,Z.jsx)(ASe,{allowLayouts:!0,onImported:(e,t)=>{u(e),s(t.layouts??null)}})}),(0,Z.jsxs)(CH,{title:`Colors`,hint:`Primary, secondary, and tertiary (accent). The rest is derived.`,children:[(0,Z.jsx)(wH,{label:`Primary`,value:i.seeds.primary,onChange:e=>d(`primary`,e)}),(0,Z.jsx)(wH,{label:`Secondary`,value:i.seeds.secondary??``,onChange:e=>d(`secondary`,e)}),(0,Z.jsx)(wH,{label:`Tertiary`,value:i.seeds.accent??``,onChange:e=>d(`accent`,e)}),(0,Z.jsx)(wH,{label:`Background`,value:i.seeds.background??``,onChange:e=>d(`background`,e)}),(0,Z.jsx)(wH,{label:`Text`,value:i.seeds.text??``,onChange:e=>d(`text`,e)})]}),(0,Z.jsx)(CH,{title:`Accents`,hint:`Per-block accent colors. Add as many as you like.`,children:(0,Z.jsx)(jSe,{accents:m,onChange:h})}),(0,Z.jsxs)(CH,{title:`Typography`,children:[(0,Z.jsx)(TH,{label:`Heading`,value:i.titleFont,onChange:e=>u({titleFont:e})}),(0,Z.jsx)(TH,{label:`Body`,value:i.bodyFont,onChange:e=>u({bodyFont:e})})]}),(0,Z.jsxs)(CH,{title:`Style`,children:[(0,Z.jsx)(EH,{label:`Border radius`,value:i.borderRadius,options:Object.keys(gH),onChange:e=>u({borderRadius:e})}),(0,Z.jsx)(EH,{label:`Animation`,value:i.animationSpeed,options:Object.keys(_H),onChange:e=>u({animationSpeed:e})}),(0,Z.jsx)(EH,{label:`Text shadow`,value:i.textShadow,options:Object.keys(vH),onChange:e=>u({textShadow:e})}),(0,Z.jsx)(EH,{label:`Contrast`,value:i.contrast,options:hSe,onChange:e=>u({contrast:e})}),(0,Z.jsx)(EH,{label:`Image grade`,value:i.imageTreatment,options:gSe,onChange:e=>u({imageTreatment:e})})]})]}),(0,Z.jsxs)(`div`,{className:`squisq-doc-settings-footer squisq-custom-theme-pane-footer`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`squisq-doc-settings-btn squisq-doc-settings-btn--secondary`,onClick:r,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`button`,className:`squisq-doc-settings-btn squisq-doc-settings-btn--secondary`,onClick:()=>f(`library`),title:o&&o.length>0?`Save to your browser-local library so other docs can use it (imported slide layouts only save to the document)`:`Save to your browser-local library so other docs can use it`,children:`Save to library`}),(0,Z.jsx)(`button`,{type:`button`,className:`squisq-doc-settings-btn squisq-doc-settings-btn--primary`,onClick:()=>f(`doc`),children:`Save to document`})]})]})}var PSe=new Set(Jr().map(e=>e.id));function DH(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase().replace(/\s+/g,`-`);return t===`datadriven`?`data-driven`:PSe.has(t)?t:null}var OH={theme:{canonical:`squisq-theme`,legacy:[`themeId`,`theme`]},transform:{canonical:`squisq-transform`,legacy:`transform-style`},captions:{canonical:`squisq-captions`,legacy:`caption-style`},coverSlide:sn.enabled,coverTemplate:sn.template,coverDuration:sn.duration,coverPlayback:sn.playback,videoLoop:{canonical:`squisq-video-loop`,legacy:`video-loop`},videoPresentation:{canonical:`squisq-video-presentation`,legacy:`video-presentation`},pipSize:{canonical:`squisq-pip-size`,legacy:`pip-size`},pipShape:{canonical:`squisq-pip-shape`,legacy:`pip-shape`},pipPosition:{canonical:`squisq-pip-position`,legacy:`pip-position`}},kH={theme:`standard`,transform:``,captions:`standard`,coverSlide:Zt.enabled,coverTemplate:Zt.template,coverDuration:Zt.duration,coverPlayback:Zt.playback,videoLoop:!1,videoPresentation:`background`,pipSize:`small`,pipShape:`square`,pipPosition:`bottom-right`};function AH(e,t){return e===t?null:e}var jH=(0,X.createContext)(null);function MH(){let e=(0,X.useContext)(jH);if(!e)throw Error(`usePreviewSettings must be used within PreviewSettingsProvider`);return e}function NH(){return(0,X.useContext)(jH)}function FSe(e){return typeof e==`string`?{landscape:`landscape`,"16:9":`landscape`,widescreen:`landscape`,portrait:`portrait`,"9:16":`portrait`,vertical:`portrait`,stories:`portrait`,square:`square`,"1:1":`square`,standard:`standard`,"4:3":`standard`}[e.trim().toLowerCase()]??null:null}function ISe(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return t===`video`||t===`slideshow`||t===`linear`||t===`narrate`?t:t===`slides`||t===`presentation`||t===`deck`?`slideshow`:t===`teleprompter`||t===`prompter`?`narrate`:t===`page`||t===`paged`?`linear`:t===`document`||t===`scroll`||t===`html`||t===`plain`||t===`reader`?`page`:null}var PH=new Set(sr().map(e=>e.id));function LSe(e,t){if(typeof e!=`string`)return null;let n=e.trim(),r=n.toLowerCase();if(PH.has(r))return r;let i=r.replace(/\s+/g,`-`);return PH.has(i)?i:t?.has(n)?n:t?.has(r)?r:null}function RSe(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return t===`off`||t===`none`||t===`hidden`||t===`false`||t===`no`?`off`:t===`standard`||t===`cc`||t===`captions`?`standard`:t===`social`||t===`instagram`||t===`tiktok`||t===`reels`?`social`:null}function zSe(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return t===`background`||t===`behind`?`background`:t===`full-frame`||t===`fullscreen`||t===`full`?`full-frame`:t===`picture-in-picture`||t===`pip`||t===`overlay`?`picture-in-picture`:null}function BSe(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return t===`small`||t===`sm`||t===`pip-small`?`small`:t===`large`||t===`lg`||t===`big`||t===`pip-large`?`large`:null}function VSe(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return t===`square`||t===`1:1`?`square`:t===`wide`||t===`16:9`||t===`widescreen`?`wide`:null}function HSe(e){return typeof e==`string`?{"top-left":`top-left`,"upper-left":`top-left`,"top-right":`top-right`,"upper-right":`top-right`,"bottom-left":`bottom-left`,"lower-left":`bottom-left`,"bottom-right":`bottom-right`,"lower-right":`bottom-right`}[e.trim().toLowerCase().replace(/[_\s]+/g,`-`)]??null:null}function USe(e){if(typeof e==`boolean`)return e;if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return t===`true`||t===`yes`||t===`on`||t===`show`||t===`visible`?!0:t===`false`||t===`no`||t===`off`||t===`hide`||t===`hidden`?!1:null}function FH(e,t,n){if(e)return Object.prototype.hasOwnProperty.call(e,t)?e[t]:e[n]}function IH(e){try{let t=Cr(e).frontmatter;return{themes:Lt(t)??[],templates:Qt(t)??[]}}catch(e){return console.error(`[squisq-editor] could not read the document source to merge custom themes:`,e instanceof Error?e.message:String(e)),null}}var LH=`Could not read the document, so the theme was not saved (saving would have erased the document’s other custom themes). Fix the document, then try again.`;function WSe({doc:e,children:t,defaultViewportPreset:n=`landscape`,themeOverride:r}){let i=e?.frontmatter,{markdownSource:a,setMarkdownSource:o,allowNarrate:s}=mB(),c=(0,X.useCallback)(e=>{let t=zn(a,e);t!==a&&o(t)},[a,o]),l=(0,X.useMemo)(()=>ISe(i?.[`display-mode`]),[i]),[u,d]=(0,X.useState)(null);(0,X.useEffect)(()=>d(null),[l]);let f=u??l??`slideshow`,p=f===`narrate`&&!s?`video`:f,m=(0,X.useMemo)(()=>FSe(i?.[`document-render-as`]),[i]),[h,g]=(0,X.useState)(null);(0,X.useEffect)(()=>g(null),[m]);let _=h??m??(p===`slideshow`||p===`video`?n:`landscape`),v=Hn[_],y=pSe(),b=(0,X.useMemo)(()=>y?.docThemes??e?.customThemes??[],[y,e?.customThemes]),x=(0,X.useMemo)(()=>y?.allThemes??b,[y,b]),S=(0,X.useMemo)(()=>new Set(x.map(e=>e.id)),[x]),C=(0,X.useMemo)(()=>LSe(Fn(i),S),[i,S]),[w,T]=(0,X.useState)(null);(0,X.useEffect)(()=>T(null),[C]);let E=w??C??kH.theme,D=(0,X.useMemo)(()=>x.find(e=>e.id===E)??it(e,E),[x,e,E]),[O,k]=(0,X.useState)(null),[A,j]=(0,X.useState)(null),[M,N]=(0,X.useState)({open:!1,editing:null}),P=O?.id??r?.id??E,F=O??r??D,I=(0,X.useCallback)(e=>{if(e===null){T(null);return}let t=x.find(t=>t.id===e),n={[OH.theme.canonical]:AH(e,kH.theme),[OH.theme.legacy[0]]:null,[OH.theme.legacy[1]]:null};if(t){let r=IH(a);if(!r){j(LH);return}r.themes.some(t=>t.id===e)||(n[tr]=bn([...r.themes,t])??null)}j(null),T(e),c(n)},[x,a,c]),L=(0,X.useCallback)(e=>{N({open:!0,editing:e}),k(e),j(null)},[]),R=(0,X.useCallback)(()=>{N({open:!1,editing:null}),k(null),j(null)},[]),z=(0,X.useCallback)((e,t,n)=>{if(t===`library`)y?.upsertLibraryTheme(e);else{let t=IH(a);if(!t){j(LH);return}let r=t.themes.findIndex(t=>t.id===e.id),i=r>=0?t.themes.map((t,n)=>n===r?e:t):[...t.themes,e],o={[tr]:bn(i)??null,[OH.theme.canonical]:e.id};n?.templates&&n.templates.length>0&&(o[Xn]=rn([...t.templates.filter(e=>!n.templates.some(t=>t.name===e.name)),...n.templates])??null),j(null),c(o),T(e.id)}R()},[y,a,c,R]),B=(0,X.useCallback)(e=>{y?.removeDocTheme(e),y?.removeLibraryTheme(e)},[y]),V=(0,X.useMemo)(()=>DH(FH(i,OH.transform.canonical,OH.transform.legacy)),[i]),[H,U]=(0,X.useState)(null);(0,X.useEffect)(()=>U(null),[V]);let ee=H??V??``,te=(0,X.useCallback)(e=>{U(e),e!==null&&c({[OH.transform.canonical]:AH(e,kH.transform),[OH.transform.legacy]:null})},[c]),W=(0,X.useMemo)(()=>!!e&&ir(e).some(e=>e.kind===`video`),[e]),G=(0,X.useMemo)(()=>zSe(FH(i,OH.videoPresentation.canonical,OH.videoPresentation.legacy)),[i]),[ne,K]=(0,X.useState)(null);(0,X.useEffect)(()=>K(null),[G]);let q=ne??G??kH.videoPresentation,re=(0,X.useCallback)(e=>{K(e),c({[OH.videoPresentation.canonical]:AH(e,kH.videoPresentation),[OH.videoPresentation.legacy]:null})},[c]),ie=(0,X.useMemo)(()=>BSe(FH(i,OH.pipSize.canonical,OH.pipSize.legacy)),[i]),[J,ae]=(0,X.useState)(null);(0,X.useEffect)(()=>ae(null),[ie]);let oe=J??ie??kH.pipSize,se=(0,X.useCallback)(e=>{ae(e),c({[OH.pipSize.canonical]:AH(e,kH.pipSize),[OH.pipSize.legacy]:null})},[c]),Y=(0,X.useMemo)(()=>VSe(FH(i,OH.pipShape.canonical,OH.pipShape.legacy)),[i]),[ce,le]=(0,X.useState)(null);(0,X.useEffect)(()=>le(null),[Y]);let ue=ce??Y??kH.pipShape,de=(0,X.useCallback)(e=>{le(e),c({[OH.pipShape.canonical]:AH(e,kH.pipShape),[OH.pipShape.legacy]:null})},[c]),fe=(0,X.useMemo)(()=>HSe(FH(i,OH.pipPosition.canonical,OH.pipPosition.legacy)),[i]),[pe,me]=(0,X.useState)(null);(0,X.useEffect)(()=>me(null),[fe]);let he=pe??fe??kH.pipPosition,ge=(0,X.useCallback)(e=>{me(e),c({[OH.pipPosition.canonical]:AH(e,kH.pipPosition),[OH.pipPosition.legacy]:null})},[c]),_e=(0,X.useMemo)(()=>RSe(FH(i,OH.captions.canonical,OH.captions.legacy)),[i]),[ve,ye]=(0,X.useState)(null);(0,X.useEffect)(()=>ye(null),[_e]);let be=ve??_e??kH.captions,xe=be!==`off`,Se=be===`social`?`social`:`standard`,Ce=(0,X.useCallback)(e=>{ye(e),c({[OH.captions.canonical]:AH(e,kH.captions),[OH.captions.legacy]:null})},[c]),we=(0,X.useMemo)(()=>USe(FH(i,OH.videoLoop.canonical,OH.videoLoop.legacy)),[i]),[Te,Ee]=(0,X.useState)(null);(0,X.useEffect)(()=>Ee(null),[we]);let De=Te??we??kH.videoLoop,Oe=(0,X.useCallback)(e=>{Ee(e),c({[OH.videoLoop.canonical]:AH(e,kH.videoLoop),[OH.videoLoop.legacy]:null})},[c]),ke=(0,X.useMemo)(()=>Tn(i),[i]),Ae=ke.enabled,[je,Me]=(0,X.useState)(null);(0,X.useEffect)(()=>Me(null),[Ae]);let Ne=je??Ae,Pe=(0,X.useCallback)(e=>{Me(e),c({[OH.coverSlide.canonical]:AH(e,kH.coverSlide),[OH.coverSlide.legacy]:null})},[c]),[Fe,Ie]=(0,X.useState)(null);(0,X.useEffect)(()=>Ie(null),[ke.template]);let Le=Fe??ke.template,Re=(0,X.useCallback)(e=>{Ie(e),c({[OH.coverTemplate.canonical]:AH(e,kH.coverTemplate),[OH.coverTemplate.legacy]:null})},[c]),[ze,Be]=(0,X.useState)(null);(0,X.useEffect)(()=>Be(null),[ke.duration]);let Ve=ze??ke.duration,He=(0,X.useCallback)(e=>{!Number.isFinite(e)||e<0||e>60||(Be(e),c({[OH.coverDuration.canonical]:AH(e,kH.coverDuration),[OH.coverDuration.legacy]:null}))},[c]),[Ue,We]=(0,X.useState)(null);(0,X.useEffect)(()=>We(null),[ke.playback]);let Ge=Ue??ke.playback,Ke=(0,X.useCallback)(e=>{We(e),c({[OH.coverPlayback.canonical]:AH(e,kH.coverPlayback),[OH.coverPlayback.legacy]:null})},[c]),qe=(0,X.useMemo)(()=>M.open?{value:M.editing,onChange:k,onSave:z,onClose:R}:null,[M.open,M.editing,z,R]),Je=(0,X.useMemo)(()=>({activePreset:_,setSelectedPreset:g,activeViewport:v,activeDisplayMode:p,setSelectedDisplayMode:d,activeThemeId:P,setSelectedThemeId:I,activeTheme:F,activeTransformStyle:ee,setSelectedTransformStyle:te,activeCaptionStyle:Se,activeCaptionsEnabled:xe,setCaptionMode:Ce,hasVideoMedia:W,activeVideoPresentation:q,setVideoPresentation:re,activePipSize:oe,setPipSize:se,activePipShape:ue,setPipShape:de,activePipPosition:he,setPipPosition:ge,activeVideoLoop:De,setVideoLoopEnabled:Oe,activeCoverSlide:Ne,setCoverSlideEnabled:Pe,activeCoverSlideTemplate:Le,setCoverSlideTemplate:Re,activeCoverSlideDuration:Ve,setCoverSlideDuration:He,activeCoverSlidePlayback:Ge,setCoverSlidePlayback:Ke,customThemes:x,openThemeDesigner:L,deleteCustomTheme:B,themeDesigner:qe,themeSaveError:A}),[_,v,p,P,F,ee,Se,xe,W,q,oe,ue,he,De,Ne,Le,Ve,Ge,I,te,Ce,re,se,de,ge,Oe,Pe,Re,He,Ke,x,L,B,qe,A]);return(0,Z.jsx)(jH.Provider,{value:Je,children:t})}function GSe(){let{themeDesigner:e,themeSaveError:t}=MH();return e?(0,Z.jsxs)(Z.Fragment,{children:[t&&(0,Z.jsx)(`div`,{className:`squisq-theme-save-error`,role:`alert`,style:nCe,children:t}),(0,Z.jsx)(NSe,{value:e.value,onChange:e.onChange,onSave:e.onSave,onClose:e.onClose})]}):null}var KSe=[{key:`landscape`,label:`16:9`,w:13,h:7},{key:`square`,label:`1:1`,w:10,h:10},{key:`portrait`,label:`9:16`,w:7,h:12},{key:`standard`,label:`4:3`,w:12,h:9}],qSe=[{key:`background`,label:`Behind`},{key:`full-frame`,label:`Full frame`},{key:`picture-in-picture`,label:`Picture in picture`}],JSe=[{key:`small`,label:`Small`},{key:`large`,label:`Large`}],YSe=[{key:`square`,label:`Square`},{key:`wide`,label:`Wide (16:9)`}],XSe=[{key:`top-left`,label:`Top left`},{key:`top-right`,label:`Top right`},{key:`bottom-left`,label:`Bottom left`},{key:`bottom-right`,label:`Bottom right`}],RH=[{key:`slideshow`,label:`Slideshow`,icon:`fa-solid fa-images`,summary:`Present designed slides one at a time.`},{key:`video`,label:`Video`,icon:`fa-solid fa-circle-play`,summary:`Play an automatically timed presentation.`},{key:`linear`,label:`Page`,icon:`fa-solid fa-window-maximize`,summary:`Scroll through the fully designed page.`},{key:`page`,label:`Document`,icon:`fa-solid fa-align-left`,summary:`Read a clean, text-first document.`},{key:`narrate`,label:`Narrate`,icon:`fa-solid fa-microphone-lines`,summary:`Speak with a voice-paced teleprompter.`}];function zH(e){return RH.find(t=>t.key===e)?.label??`Slideshow`}var ZSe=[{key:``,label:`None`},...Jr().map(e=>({key:e.id,label:e.name}))],QSe=`Extract and summarize content for presentation with these Use modes. Your underlying content is not changed.`,BH=[`format`,`video`,`theme`,`transform`,`captions`,`loop`,`cover`];function $Se(e,t){let n=BH;return e!==`video`&&(n=n.filter(e=>e!==`loop`)),(!t||e!==`slideshow`&&e!==`video`)&&(n=n.filter(e=>e!==`video`)),e===`linear`?n.filter(e=>e!==`format`&&e!==`captions`):n}var eCe=4,VH=8,tCe=220;function HH(e,t,n){let r=Math.max(VH,n-t-VH);return Math.min(Math.max(VH,e.right-t),r)}var UH={color:`var(--squisq-text-muted, #6b7280)`,fontSize:`12px`,whiteSpace:`nowrap`},nCe={padding:`8px 10px`,border:`1px solid var(--squisq-danger-border, #d88a8a)`,background:`var(--squisq-danger-bg, #fceeee)`,color:`var(--squisq-danger-text, #8c2a2a)`,fontSize:`12px`,maxWidth:`320px`},WH={padding:`2px 6px`,borderRadius:`4px`,border:`1px solid var(--squisq-border, #d1d5db)`,background:`var(--squisq-input-bg, #fff)`,color:`var(--squisq-text, #1f2937)`,fontSize:`12px`,cursor:`pointer`},rCe=336,iCe=4,aCe=8;function oCe({compact:e}){let t=MH(),{colorScheme:n,doc:r,fileName:i,mediaProvider:a}=mB(),o=(0,X.useRef)(null),s=(0,X.useRef)(null),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)(!1),m=(0,X.useCallback)(()=>{let e=o.current;if(!e)return;let t=e.getBoundingClientRect(),n=Math.min(rCe,window.innerWidth-aCe*2);d({top:t.bottom+iCe,left:HH(t,n,window.innerWidth)})},[]),h=(0,X.useCallback)(()=>{l(!1),d(null)},[]);(0,X.useEffect)(()=>{if(!c)return;let e=e=>{let t=e.target;o.current?.contains(t)||s.current?.contains(t)||h()},t=e=>{e.key===`Escape`&&(e.preventDefault(),h(),o.current?.focus())};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),window.addEventListener(`resize`,m),window.addEventListener(`scroll`,m,!0),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t),window.removeEventListener(`resize`,m),window.removeEventListener(`scroll`,m,!0)}},[h,c,m]);let g=!!r?.startBlock,_=(0,X.useMemo)(()=>{if(!c||!r?.startBlock)return null;let e=Bn(t.activeTheme,0,1,t.activeViewport);return{id:`cover-slide-menu-preview`,startTime:-1,duration:0,audioSegment:-1,layers:ft(r.startBlock,e,t.activeCoverSlideTemplate)}},[c,r?.startBlock,t.activeTheme,t.activeViewport,t.activeCoverSlideTemplate]);return(0,Z.jsxs)(`div`,{className:`squisq-preview-control squisq-cover-slide-control${e?` squisq-preview-control--compact`:``}`,children:[(0,Z.jsxs)(`button`,{ref:o,type:`button`,className:`squisq-cover-slide-trigger${c?` squisq-cover-slide-trigger--open`:``}`,"aria-label":`Cover slide settings`,"aria-haspopup":`dialog`,"aria-expanded":c,onClick:()=>{c?h():(m(),l(!0))},children:[(0,Z.jsx)(`span`,{className:`squisq-cover-slide-status${t.activeCoverSlide?` squisq-cover-slide-status--enabled`:``}`,"aria-hidden":`true`,children:(0,Z.jsx)(VT,{icon:t.activeCoverSlide?`fa-solid fa-check`:`fa-solid fa-minus`})}),(0,Z.jsx)(`span`,{children:`Cover slide`}),(0,Z.jsx)(`svg`,{width:`10`,height:`10`,viewBox:`0 0 10 10`,"aria-hidden":`true`,children:(0,Z.jsx)(`path`,{d:`M2 3.5 5 6.5 8 3.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`})})]}),c&&u&&(0,Gi.createPortal)((0,Z.jsxs)(`div`,{ref:s,className:`squisq-cover-slide-menu`,"data-theme":n,role:`dialog`,"aria-label":`Cover slide settings`,style:{top:u.top,left:u.left},children:[(0,Z.jsxs)(`div`,{className:`squisq-cover-slide-menu-heading`,children:[(0,Z.jsx)(`span`,{children:`Cover slide`}),(0,Z.jsxs)(`label`,{className:`squisq-cover-slide-switch`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,"aria-label":`Cover slide`,checked:t.activeCoverSlide,onChange:e=>t.setCoverSlideEnabled(e.target.checked)}),(0,Z.jsx)(`span`,{children:t.activeCoverSlide?`Shown`:`Hidden`})]})]}),(0,Z.jsx)(`div`,{className:`squisq-cover-slide-preview${t.activeCoverSlide?``:` squisq-cover-slide-preview--disabled`}`,style:{aspectRatio:`${t.activeViewport.width} / ${t.activeViewport.height}`},children:_?(0,Z.jsx)(Xy.Provider,{value:a??null,children:(0,Z.jsx)(`div`,{className:`squisq-cover-slide-preview-frame`,"aria-hidden":`true`,children:(0,Z.jsx)(jb,{block:_,blockTime:0,basePath:`.`,viewport:t.activeViewport,animationsEnabled:!1,muted:!0,theme:t.activeTheme})})}):(0,Z.jsxs)(`p`,{className:`squisq-cover-slide-preview-empty`,children:[`No cover to preview yet — start the document with a level-1 heading (`,(0,Z.jsx)(`code`,{children:`#\xA0Title`}),`) to generate one.`]})}),(0,Z.jsxs)(`label`,{className:`squisq-cover-slide-field`,children:[(0,Z.jsx)(`span`,{children:`Appearance`}),(0,Z.jsx)(`select`,{"aria-label":`Cover slide appearance`,value:t.activeCoverSlideTemplate,onChange:e=>t.setCoverSlideTemplate(e.target.value),children:mn.map(e=>(0,Z.jsx)(`option`,{value:e.id,disabled:e.requiresHeroImage&&!r?.startBlock?.heroSrc,children:e.label},e.id))})]}),(0,Z.jsx)(`p`,{className:`squisq-cover-slide-help`,children:mn.find(e=>e.id===t.activeCoverSlideTemplate)?.description}),(0,Z.jsxs)(`label`,{className:`squisq-cover-slide-field`,children:[(0,Z.jsxs)(`span`,{children:[`Duration`,(0,Z.jsxs)(`output`,{children:[t.activeCoverSlideDuration.toFixed(1),`s`]})]}),(0,Z.jsx)(`input`,{"aria-label":`Cover slide duration`,type:`range`,min:0,max:10,step:.5,value:t.activeCoverSlideDuration,onChange:e=>t.setCoverSlideDuration(Number(e.target.value))})]}),(0,Z.jsxs)(`fieldset`,{className:`squisq-cover-slide-timing`,children:[(0,Z.jsx)(`legend`,{children:`Exported video timing`}),(0,Z.jsxs)(`label`,{children:[(0,Z.jsx)(`input`,{type:`radio`,name:`squisq-cover-playback`,value:`preroll`,checked:t.activeCoverSlidePlayback===`preroll`,onChange:()=>t.setCoverSlidePlayback(`preroll`)}),(0,Z.jsxs)(`span`,{children:[`Delay video`,(0,Z.jsx)(`small`,{children:`Start the story after the cover.`})]})]}),(0,Z.jsxs)(`label`,{children:[(0,Z.jsx)(`input`,{type:`radio`,name:`squisq-cover-playback`,value:`overlay`,checked:t.activeCoverSlidePlayback===`overlay`,onChange:()=>t.setCoverSlidePlayback(`overlay`)}),(0,Z.jsxs)(`span`,{children:[`Play underneath`,(0,Z.jsx)(`small`,{children:`Let the story advance behind the cover.`})]})]})]}),(0,Z.jsxs)(`button`,{type:`button`,className:`squisq-cover-slide-export`,disabled:!g,title:g?void 0:`No cover slide to export — start the document with a level-1 heading (# Title) to generate one.`,onClick:()=>{h(),p(!0)},children:[(0,Z.jsx)(VT,{icon:`fa-solid fa-image`}),`Export cover as image…`]})]}),document.body),f&&r&&(0,Gi.createPortal)((0,Z.jsx)(che,{doc:r,mediaProvider:a,theme:t.activeTheme,coverSlideTemplate:t.activeCoverSlideTemplate,defaultWidth:t.activeViewport.width,defaultHeight:t.activeViewport.height,defaultFileName:i,colorScheme:n,onClose:()=>p(!1)}),document.body)]})}function GH({displayMode:e}={}){let t=MH(),n=$Se(e??t.activeDisplayMode,t.hasVideoMedia),[r,i]=(0,X.useState)(BH.length),[a,o]=(0,X.useState)(!1),s=(0,X.useRef)(null),c=(0,X.useRef)(null),l=(0,X.useRef)(null),u=(0,X.useRef)(null),d=(0,X.useRef)(null),[f,p]=(0,X.useState)(null),m=(0,X.useCallback)(()=>{let e=u.current;if(!e)return;let t=e.getBoundingClientRect(),n=d.current?.getBoundingClientRect().width??tCe,r=Math.min(n,window.innerWidth-VH*2);p({top:t.bottom+eCe,left:HH(t,r,window.innerWidth)})},[]),h=(0,X.useCallback)(()=>{o(!1),p(null)},[]);(0,X.useLayoutEffect)(()=>{let e=s.current,t=c.current;if(!e||!t)return;let n=()=>{let n=e.clientWidth-9,r=Array.from(t.children).map(e=>e.getBoundingClientRect().width),a=e=>r.slice(0,e).reduce((e,t)=>e+t,0)+6*Math.max(0,e-1);if(a(r.length)<=n){i(r.length);return}let o=n-40-6-2,s=0;for(;s<r.length&&a(s+1)<=o;)s++;i(s)},r=new ResizeObserver(n);return r.observe(e),r.observe(t),n(),()=>r.disconnect()},[n.length]),(0,X.useEffect)(()=>{if(!a)return;let e=e=>{let t=e.target;l.current?.contains(t)||d.current?.contains(t)||h()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[h,a]),(0,X.useLayoutEffect)(()=>{a&&m()},[a,m,r]),(0,X.useEffect)(()=>{if(a)return window.addEventListener(`resize`,m),window.addEventListener(`scroll`,m,!0),()=>{window.removeEventListener(`resize`,m),window.removeEventListener(`scroll`,m,!0)}},[a,m]);let g=(0,X.useCallback)(()=>{let e=t.customThemes.find(e=>e.id===t.activeThemeId);if(e)t.openThemeDesigner(e);else{let e=t.activeTheme;t.openThemeDesigner({...e,name:`Modified ${e.name}`,basedOn:e.id})}},[t]),_=(e,n)=>{switch(e){case`format`:return(0,Z.jsxs)(`div`,{className:`squisq-preview-control squisq-preview-control--seg${n?` squisq-preview-control--compact`:``}`,children:[n&&(0,Z.jsx)(`label`,{style:UH,children:`Format:`}),(0,Z.jsx)(dCe,{})]},`format`);case`video`:{let e=t.activeVideoPresentation===`picture-in-picture`;return(0,Z.jsxs)(`div`,{className:`squisq-preview-control${n?` squisq-preview-control--compact`:``}`,children:[(0,Z.jsx)(`label`,{style:UH,children:`Video:`}),(0,Z.jsx)(`select`,{"aria-label":`Video presentation`,style:WH,value:t.activeVideoPresentation,onChange:e=>t.setVideoPresentation(e.target.value),children:qSe.map(e=>(0,Z.jsx)(`option`,{value:e.key,children:e.label},e.key))}),e&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`select`,{"aria-label":`Picture-in-picture size`,style:WH,value:t.activePipSize,onChange:e=>t.setPipSize(e.target.value),children:JSe.map(e=>(0,Z.jsx)(`option`,{value:e.key,children:e.label},e.key))}),(0,Z.jsx)(`select`,{"aria-label":`Picture-in-picture shape`,style:WH,value:t.activePipShape,onChange:e=>t.setPipShape(e.target.value),children:YSe.map(e=>(0,Z.jsx)(`option`,{value:e.key,children:e.label},e.key))}),(0,Z.jsx)(`select`,{"aria-label":`Picture-in-picture position`,style:WH,value:t.activePipPosition,onChange:e=>t.setPipPosition(e.target.value),children:XSe.map(e=>(0,Z.jsx)(`option`,{value:e.key,children:e.label},e.key))})]})]},`video`)}case`theme`:return(0,Z.jsxs)(`div`,{className:`squisq-preview-control${n?` squisq-preview-control--compact`:``}`,children:[(0,Z.jsx)(`label`,{style:UH,children:`Theme:`}),(0,Z.jsx)(lH,{value:t.activeThemeId,onChange:e=>t.setSelectedThemeId(e),ariaLabel:`Theme`,customThemes:t.customThemes,onCreateCustom:()=>t.openThemeDesigner(null),onEditCustom:e=>t.openThemeDesigner(t.customThemes.find(t=>t.id===e)??null),onDeleteCustom:e=>t.deleteCustomTheme(e)}),(0,Z.jsx)(`button`,{type:`button`,className:`squisq-theme-edit-btn`,onClick:g,"aria-label":`Edit theme`,title:`Edit this theme`,children:(0,Z.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M2.5 13.5l1-3 7-7 2 2-7 7-3 1z`}),(0,Z.jsx)(`path`,{d:`M9.5 4.5l2 2`})]})}),t.themeSaveError&&(0,Z.jsx)(`span`,{className:`squisq-theme-save-error`,role:`alert`,title:t.themeSaveError,style:{color:`var(--squisq-danger-text, #8c2a2a)`,fontSize:`12px`},children:`⚠ Theme not saved`})]},`theme`);case`transform`:return(0,Z.jsx)(fCe,{label:`Summarize`,labelTooltip:QSe,value:t.activeTransformStyle,options:ZSe,onChange:e=>t.setSelectedTransformStyle(e),compact:n},`transform`);case`captions`:{let e=t.activeCaptionsEnabled,r=e&&t.activeCaptionStyle===`standard`,i=e&&t.activeCaptionStyle===`social`;return(0,Z.jsxs)(`div`,{className:`squisq-preview-control${n?` squisq-preview-control--compact`:``}`,children:[(0,Z.jsx)(`label`,{style:UH,children:`Captions:`}),(0,Z.jsxs)(`div`,{className:`squisq-preview-seg`,role:`group`,"aria-label":`Captions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`squisq-preview-seg-btn squisq-preview-seg-btn--icon${r?` squisq-preview-seg-btn--active`:``}`,"aria-pressed":r,"aria-label":`Standard captions`,title:`Standard captions`,onClick:()=>t.setCaptionMode(r?`off`:`standard`),children:(0,Z.jsx)(VT,{icon:`fa-solid fa-closed-captioning`})}),(0,Z.jsx)(`button`,{type:`button`,className:`squisq-preview-seg-btn squisq-preview-seg-btn--icon${i?` squisq-preview-seg-btn--active`:``}`,"aria-pressed":i,"aria-label":`Social captions`,title:`Social captions`,onClick:()=>t.setCaptionMode(i?`off`:`social`),children:(0,Z.jsx)(VT,{icon:`fa-solid fa-share-nodes`})})]})]},`captions`)}case`loop`:return(0,Z.jsx)(`div`,{className:`squisq-preview-control${n?` squisq-preview-control--compact`:``}`,children:(0,Z.jsxs)(`label`,{className:`squisq-preview-checkbox`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:t.activeVideoLoop,onChange:e=>t.setVideoLoopEnabled(e.target.checked)}),(0,Z.jsx)(`span`,{children:`Loop`})]})},`loop`);case`cover`:return(0,Z.jsx)(oCe,{compact:n},`cover`)}},v=r<n.length,y=n.slice(0,r),b=n.slice(r);return(0,X.useEffect)(()=>{!v&&a&&h()},[h,v,a]),(0,Z.jsxs)(`div`,{className:`squisq-preview-controls`,"data-has-overflow":v?`true`:void 0,ref:s,children:[(0,Z.jsx)(`div`,{className:`squisq-preview-controls-probe`,ref:c,"aria-hidden":`true`,children:n.map(e=>_(e,!1))}),y.length>0&&(0,Z.jsx)(`div`,{className:`squisq-preview-controls-inline`,children:y.map(e=>_(e,!1))}),v&&(0,Z.jsxs)(`div`,{className:`squisq-preview-controls-compact`,ref:l,children:[(0,Z.jsx)(`button`,{ref:u,className:`squisq-toolbar-button${a?` squisq-toolbar-button--active`:``}`,onClick:()=>{if(a){h();return}m(),o(!0)},"aria-label":`More preview settings`,title:`More preview settings`,"aria-expanded":a,children:(0,Z.jsx)(VT,{icon:`fa-solid fa-ellipsis`})}),a&&f&&(0,Z.jsx)(`div`,{ref:d,className:`squisq-preview-controls-popover`,style:{top:f.top,left:f.left},children:b.map(e=>_(e,!0))})]})]})}var sCe=340,cCe=4,KH=8;function lCe({openRequest:e=0}){let t=MH(),{allowNarrate:n,colorScheme:r,setActiveView:i}=mB(),a=RH.filter(e=>e.key!==`narrate`||n),o=zH(t.activeDisplayMode),s=(0,X.useRef)(null),c=(0,X.useRef)(null),l=(0,X.useId)(),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(null),m=(0,X.useCallback)(()=>{let e=s.current;if(!e)return;let t=e.getBoundingClientRect(),n=Math.min(sCe,window.innerWidth-KH*2),r=Math.max(KH,window.innerWidth-n-KH);p({top:t.bottom+cCe,left:Math.min(Math.max(KH,t.right-n),r)})},[]),h=(0,X.useCallback)((e=!1)=>{d(!1),p(null),e&&s.current?.focus()},[]),g=(0,X.useCallback)(()=>{m(),d(!0)},[m]);return(0,X.useEffect)(()=>{e>0&&g()},[g,e]),(0,X.useEffect)(()=>{if(!u)return;let e=e=>{let t=e.composedPath();s.current&&t.includes(s.current)||c.current&&t.includes(c.current)||h()},t=e=>{e.key===`Escape`&&(e.preventDefault(),h(!0))};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),window.addEventListener(`resize`,m),window.addEventListener(`scroll`,m,!0),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t),window.removeEventListener(`resize`,m),window.removeEventListener(`scroll`,m,!0)}},[h,u,m]),(0,X.useLayoutEffect)(()=>{if(!u||!f)return;let e=c.current?.querySelector(`[aria-checked="true"]`),t=c.current?.querySelector(`[role="menuitemradio"]`);(e??t)?.focus()},[f,u]),(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`button`,{ref:s,type:`button`,className:`squisq-use-mode-trigger${u?` squisq-use-mode-trigger--open`:``}`,"aria-label":`Choose Use mode`,"aria-haspopup":`menu`,"aria-expanded":u,title:`Use mode: ${o}`,onClick:()=>u?h():g(),onKeyDown:e=>{e.key===`ArrowDown`&&(e.preventDefault(),g())},children:(0,Z.jsx)(`svg`,{width:`10`,height:`10`,viewBox:`0 0 10 10`,"aria-hidden":`true`,children:(0,Z.jsx)(`path`,{d:`M2 3.5 5 6.5 8 3.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`})})}),u&&f&&(0,Gi.createPortal)((0,Z.jsx)(`div`,{ref:c,className:`squisq-use-mode-menu`,"data-theme":r,role:`menu`,"aria-label":`Use mode`,style:{top:f.top,left:f.left},onKeyDown:e=>{if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=Array.from(e.currentTarget.querySelectorAll(`[role="menuitemradio"]`));if(t.length===0)return;let n=t.indexOf(document.activeElement);t[e.key===`Home`?0:e.key===`End`?t.length-1:e.key===`ArrowUp`?(n-1+t.length)%t.length:(n+1)%t.length]?.focus()},children:a.map(e=>{let n=e.key===t.activeDisplayMode,r=`${l}-${e.key}-label`,a=`${l}-${e.key}-summary`;return(0,Z.jsxs)(`button`,{type:`button`,className:`squisq-use-mode-menu-item${n?` squisq-use-mode-menu-item--selected`:``}`,role:`menuitemradio`,"aria-checked":n,"aria-labelledby":r,"aria-describedby":a,onClick:()=>{t.setSelectedDisplayMode(e.key),i(`preview`),h(!0)},children:[(0,Z.jsx)(`span`,{className:`squisq-use-mode-menu-icon`,"aria-hidden":`true`,children:(0,Z.jsx)(VT,{icon:e.icon})}),(0,Z.jsxs)(`span`,{className:`squisq-use-mode-menu-copy`,children:[(0,Z.jsx)(`span`,{id:r,className:`squisq-use-mode-menu-label`,children:e.label}),(0,Z.jsx)(`span`,{id:a,className:`squisq-use-mode-menu-summary`,children:e.summary})]}),(0,Z.jsx)(`span`,{className:`squisq-use-mode-menu-check`,"aria-hidden":`true`,children:n&&(0,Z.jsx)(VT,{icon:`fa-solid fa-check`})})]},e.key)})}),document.body)]})}function uCe({w:e,h:t}){return(0,Z.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`,"aria-hidden":`true`,children:(0,Z.jsx)(`rect`,{x:(16-e)/2,y:(16-t)/2,width:e,height:t,rx:`1.5`})})}function dCe(){let e=MH();return(0,Z.jsx)(`div`,{className:`squisq-preview-seg`,role:`group`,"aria-label":`Aspect ratio`,children:KSe.map(t=>{let n=e.activePreset===t.key;return(0,Z.jsx)(`button`,{type:`button`,className:`squisq-preview-seg-btn squisq-preview-seg-btn--icon${n?` squisq-preview-seg-btn--active`:``}`,"aria-pressed":n,"aria-label":t.label,title:t.label,onClick:()=>e.setSelectedPreset(t.key),children:(0,Z.jsx)(uCe,{w:t.w,h:t.h})},t.key)})})}function fCe({label:e,labelTooltip:t,value:n,options:r,onChange:i,compact:a}){return(0,Z.jsxs)(`div`,{className:`squisq-preview-control${a?` squisq-preview-control--compact`:``}`,children:[(0,Z.jsxs)(`label`,{style:UH,title:t,children:[e,`:`]}),(0,Z.jsx)(`select`,{value:n,onChange:e=>i(e.target.value),style:WH,children:r.map(e=>(0,Z.jsx)(`option`,{value:e.key,children:e.label},e.key))})]})}function pCe(){let{inlinePreviewVisible:e,setInlinePreviewVisible:t,statusBarVisible:n,setStatusBarVisible:r,outlineVisible:i,setOutlineVisible:a,blockTagVisibility:o,setBlockTagVisibility:s,themeInheritance:c,setThemeInheritance:l,layoutMode:u,setLayoutMode:d}=mB(),[f,p]=(0,X.useState)(!1),m=(0,X.useRef)(null),h=(0,X.useRef)(null);nH(f,(0,X.useCallback)(()=>p(!1),[]),h),(0,X.useEffect)(()=>{if(!f)return;let e=e=>{m.current&&!m.current.contains(e.target)&&p(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[f]);let g=(0,X.useCallback)(()=>{t(!e)},[e,t]),_=(0,X.useCallback)(()=>{r(!n)},[n,r]),v=(0,X.useCallback)(()=>{a(!i)},[i,a]);return(0,Z.jsxs)(`div`,{className:`squisq-view-menu`,ref:m,children:[(0,Z.jsx)(`button`,{ref:h,type:`button`,className:`squisq-toolbar-button squisq-view-menu-trigger${f?` squisq-toolbar-button--active`:``}`,"data-tooltip":`View options`,"aria-label":`View options`,"aria-expanded":f,"aria-haspopup":`menu`,onClick:()=>p(e=>!e),children:(0,Z.jsx)(VT,{icon:`fa-solid fa-eye`})}),f&&(0,Z.jsxs)(`div`,{className:`squisq-view-menu-popover`,role:`menu`,"aria-label":`View options`,children:[(0,Z.jsx)(JH,{label:`View`,value:u,onChange:e=>d(e),options:[{value:`document`,label:`Document`},{value:`block`,label:`Block-at-a-time`},{value:`timeline`,label:`Timeline`}]}),(0,Z.jsx)(`div`,{className:`squisq-view-menu-separator`,role:`separator`}),(0,Z.jsx)(qH,{label:`Show outline`,checked:i,onChange:v}),(0,Z.jsx)(qH,{label:`Show block previews`,checked:e,onChange:g}),(0,Z.jsx)(JH,{label:`Show block tags`,value:o,onChange:e=>s(e),options:[{value:`none`,label:`No inline block tags`},{value:`active`,label:`Selected/hovered block`},{value:`always`,label:`Always show`}]}),(0,Z.jsx)(qH,{label:`Show status bar`,checked:n,onChange:_}),(0,Z.jsx)(`div`,{className:`squisq-view-menu-separator`,role:`separator`}),(0,Z.jsx)(JH,{label:`Editor styling from theme`,value:c,onChange:e=>l(e),options:[{value:`none`,label:`Don't inherit`},{value:`fonts`,label:`Fonts only`},{value:`fonts-colors`,label:`Fonts & colors`}]})]})]})}function qH({label:e,checked:t,onChange:n}){return(0,Z.jsxs)(`label`,{className:`squisq-view-menu-row`,role:`menuitemcheckbox`,"aria-checked":t,children:[(0,Z.jsx)(`input`,{type:`checkbox`,className:`squisq-view-menu-checkbox`,checked:t,onChange:n}),(0,Z.jsx)(`span`,{className:`squisq-view-menu-label`,children:e})]})}function JH({label:e,value:t,onChange:n,options:r}){let i=(0,X.useId)();return(0,Z.jsxs)(`div`,{className:`squisq-view-menu-row squisq-view-menu-row--radios`,role:`radiogroup`,"aria-label":e,children:[(0,Z.jsx)(`span`,{className:`squisq-view-menu-label`,children:e}),r.map(e=>{let r=e.value===t;return(0,Z.jsxs)(`label`,{className:`squisq-view-menu-radio-row`,role:`menuitemradio`,"aria-checked":r,children:[(0,Z.jsx)(`input`,{type:`radio`,className:`squisq-view-menu-radio`,name:i,value:e.value,checked:r,onChange:()=>n(e.value)}),(0,Z.jsx)(`span`,{className:`squisq-view-menu-radio-label`,children:e.label})]},e.value)})]})}var mCe=[60,80,100,120];function hCe({id:e}){return e===`unwrap`?(0,Z.jsxs)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,"data-transform-icon":`unwrap`,children:[(0,Z.jsx)(`path`,{d:`M5 3.5h9.5L19 8v12.5H5z`}),(0,Z.jsx)(`path`,{d:`M14.5 3.5V8H19`}),(0,Z.jsx)(`path`,{d:`M7.8 11.2h8.4M7.8 14.6h8.4M7.8 18h8.4`})]}):e===`wrap`?(0,Z.jsxs)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,"data-transform-icon":`wrap`,children:[(0,Z.jsx)(`path`,{d:`M5 3.5h9.5L19 8v12.5H5z`}),(0,Z.jsx)(`path`,{d:`M14.5 3.5V8H19`}),(0,Z.jsx)(`path`,{d:`M12.7 9.7v1.4m0 1.5V14m0 1.5v1.4m0 1.5v1.1`,strokeDasharray:`1 1.5`}),(0,Z.jsx)(`path`,{d:`M7.8 11.2h3.1M7.8 14.6h3.1M7.8 18h3.1`})]}):(0,Z.jsx)(VT,{icon:`fa-solid fa-wand-magic-sparkles`})}function gCe(){let{editorMode:e,layoutMode:t,activeView:n,markdownSource:r,setMarkdownSource:i,monacoEditor:a,versioning:o,saveVersion:s}=mB(),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(80),[f,p]=(0,X.useState)(``),m=(0,X.useRef)(null),h=(0,X.useRef)(null);nH(c,(0,X.useCallback)(()=>l(!1),[]),h),(0,X.useEffect)(()=>{if(!c)return;let e=e=>{m.current&&!m.current.contains(e.target)&&l(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[c]),(0,X.useEffect)(()=>{c&&p(``)},[c]);let g=(0,X.useMemo)(()=>c?Pr(r):null,[c,r]),_=n===`preview`,v=t!==`document`,y=_||v,b=v?`Transforms apply to the whole document — switch to the Document layout first.`:_?`Switch to Write or Source view to apply (transforms are undoable there).`:null,x=(0,X.useCallback)(e=>{let t=e===`wrap`?{width:u}:void 0;o&&s({content:r}).catch(()=>{});let c=(e,t)=>{p(e?`Transformed.`:t?`Could not safely transform — document left unchanged.`:`No changes needed.`)};if(n===`raw`&&a){let n=a.getModel();if(n){let r=Or(e,n.getValue(),t);if(r.changed){let e=r.edits.map(e=>{let t=n.getPositionAt(e.start),r=n.getPositionAt(e.end);return{range:{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:r.lineNumber,endColumn:r.column},text:e.text}});a.pushUndoStop(),a.executeEdits(`squisq-transform`,e),a.pushUndoStop()}c(r.changed,r.degraded);return}}let l=Or(e,r,t);l.changed&&i(l.output),c(l.changed,l.degraded)},[n,r,a,s,i,o,u]);if(e!==`markdown`)return null;let S=g===null?null:g.kind===`wrapped`?`Detected mode: wrapped at ~${g.width} characters wide`:g.kind===`unwrapped`?`Detected mode: unwrapped`:g.kind===`mixed`?`Detected mode: mixed wrapping`:`Detected mode: no prose to judge`,C=g?.kind===`wrapped`?`wrap`:g?.kind===`unwrapped`?`unwrap`:null,w=g?.kind===`wrapped`?`Current (~${g.width} characters wide)`:`Current`;return(0,Z.jsxs)(`div`,{className:`squisq-transform-menu`,ref:m,children:[(0,Z.jsx)(`button`,{ref:h,type:`button`,className:`squisq-toolbar-button squisq-transform-menu-trigger${c?` squisq-toolbar-button--active`:``}`,"data-tooltip":`Transform`,"aria-label":`Transform document`,"aria-expanded":c,"aria-haspopup":`dialog`,onClick:()=>l(e=>!e),children:(0,Z.jsx)(VT,{icon:`fa-solid fa-wand-magic-sparkles`})}),c&&(0,Z.jsxs)(`div`,{className:`squisq-transform-menu-popover`,role:`dialog`,"aria-label":`Transform document`,children:[S&&(0,Z.jsx)(`div`,{className:`squisq-transform-menu-state`,children:S}),Fr.map(e=>{let t=e.id===C;return(0,Z.jsxs)(`div`,{className:`squisq-transform-menu-item`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`squisq-transform-menu-action${t?` squisq-transform-menu-action--current`:``}`,"aria-current":t?`true`:void 0,disabled:y,onClick:()=>x(e.id),children:[(0,Z.jsx)(`span`,{className:`squisq-transform-menu-action-icon`,"aria-hidden":`true`,children:(0,Z.jsx)(hCe,{id:e.id})}),(0,Z.jsxs)(`span`,{className:`squisq-transform-menu-action-copy`,children:[(0,Z.jsxs)(`span`,{className:`squisq-transform-menu-action-heading`,children:[(0,Z.jsx)(`span`,{className:`squisq-transform-menu-action-label`,children:e.label}),t&&(0,Z.jsx)(`span`,{className:`squisq-transform-menu-current-badge`,children:w})]}),(0,Z.jsx)(`span`,{className:`squisq-transform-menu-action-desc`,children:e.description})]})]}),e.id===`wrap`&&(0,Z.jsxs)(`div`,{className:`squisq-transform-menu-widths`,"aria-label":`Wrap width`,children:[mCe.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`squisq-transform-menu-width${u===e?` squisq-transform-menu-width--active`:``}`,disabled:y,onClick:()=>d(e),children:e},e)),(0,Z.jsx)(`input`,{type:`number`,className:`squisq-transform-menu-width-input`,"aria-label":`Custom wrap width`,min:20,max:500,value:u,disabled:y,onChange:e=>{let t=Number(e.target.value);Number.isNaN(t)||d(t)}})]})]},e.id)}),b&&(0,Z.jsx)(`div`,{className:`squisq-transform-menu-note`,children:b}),(0,Z.jsx)(`div`,{className:`squisq-transform-menu-status`,role:`status`,"aria-live":`polite`,children:f})]})]})}var YH=`squisq:custom-template-library`;function XH(){try{return typeof globalThis<`u`&&globalThis.localStorage?globalThis.localStorage:null}catch{return null}}function ZH(){let e=XH();if(!e)return{version:1,templates:[]};try{let t=e.getItem(YH);if(!t)return{version:1,templates:[]};let n=JSON.parse(t);if(n&&Array.isArray(n.templates))return{version:1,templates:n.templates.filter(Yn)}}catch{}return{version:1,templates:[]}}function QH(e){let t=XH();if(t)try{t.setItem(YH,JSON.stringify(e))}catch{}}function $H(){let{templates:e}=ZH();return e.slice().sort((e,t)=>e.label.localeCompare(t.label))}function eU(e){let t=ZH(),n=t.templates.findIndex(t=>t.name===e.name);return n>=0?t.templates[n]=e:t.templates.push(e),QH(t),t.templates.slice().sort((e,t)=>e.label.localeCompare(t.label))}function _Ce(e){let t=ZH();return t.templates=t.templates.filter(t=>t.name!==e),QH(t),t.templates.slice().sort((e,t)=>e.label.localeCompare(t.label))}var tU=(0,X.createContext)(null);function nU({docTemplates:e,onDocTemplatesChange:t,children:n}){let[r,i]=(0,X.useState)(()=>$H());(0,X.useEffect)(()=>{i($H());let e=e=>{e.key===YH&&i($H())};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]);let a=(0,X.useCallback)(n=>{let r=e.findIndex(e=>e.name===n.name);t(r>=0?e.map((e,t)=>t===r?n:e):[...e,n])},[e,t]),o=(0,X.useCallback)(n=>{let r=e.filter(e=>e.name!==n);r.length!==e.length&&t(r)},[e,t]),s=(0,X.useCallback)(e=>{i(eU(e))},[]),c=(0,X.useCallback)(e=>{i(_Ce(e))},[]),l=(0,X.useCallback)(t=>{let n=e.find(e=>e.name===t.name);return n||a(t),n??t},[e,a]),u=(0,X.useMemo)(()=>{let t=new Set(e.map(e=>e.name));return[...e,...r.filter(e=>!t.has(e.name))]},[e,r]),d=(0,X.useMemo)(()=>({docTemplates:e,libraryTemplates:r,allTemplates:u,upsertDocTemplate:a,upsertLibraryTemplate:s,removeDocTemplate:o,removeLibraryTemplate:c,applyTemplate:l}),[e,r,u,a,s,o,c,l]);return(0,Z.jsx)(tU.Provider,{value:d,children:n})}function rU(){return(0,X.useContext)(tU)}function iU({layer:e,viewport:t,blockTime:n=0,basePath:r=``}){switch(e.type){case`image`:return(0,Z.jsx)(nb,{layer:e,viewport:t,blockTime:n,basePath:r});case`text`:return(0,Z.jsx)(ab,{layer:e,viewport:t,blockTime:n});case`shape`:return(0,Z.jsx)(cb,{layer:e,viewport:t,blockTime:n});case`path`:return(0,Z.jsx)(ub,{layer:e,viewport:t,blockTime:n});case`video`:return(0,Z.jsx)(gb,{layer:e,viewport:t,blockTime:n,basePath:r});case`map`:return(0,Z.jsx)(hb,{layer:e,viewport:t,blockTime:n,basePath:r});case`table`:return(0,Z.jsx)(_b,{layer:e,viewport:t,blockTime:n});default:return null}}var vCe=56,yCe=40;function aU({def:e,width:t=vCe,height:n=yCe}){return(0,Z.jsxs)(`svg`,{width:t,height:n,viewBox:`0 0 ${e.viewport.width} ${e.viewport.height}`,preserveAspectRatio:`xMidYMid meet`,className:`squisq-template-thumbnail`,"aria-hidden":`true`,children:[(0,Z.jsx)(`rect`,{width:e.viewport.width,height:e.viewport.height,fill:`#f8fafc`}),e.layers.map(t=>(0,Z.jsx)(`g`,{children:(0,Z.jsx)(iU,{layer:t,viewport:e.viewport})},t.id)),(0,Z.jsx)(`rect`,{x:0,y:0,width:e.viewport.width,height:e.viewport.height,fill:`none`,stroke:`#cbd5e1`,strokeWidth:2,vectorEffect:`non-scaling-stroke`})]})}var oU=/(?:[$\u20ac\u00a3\u00a5]\s?\d+(?:[.,]\d+)*(?:\s?(?:[MBK]|million|billion|thousand))?|\d+(?:[.,]\d+)*\s?(?:%|\u2030|x|\u00d7|[MBK]|million|billion|thousand|percent|years?|days?|hours?)|\d{3,}(?:[.,]\d+)*)/i,bCe=/\b(?:\d{4}-\d{2}-\d{2}|\d{1,2}\/\d{1,2}\/\d{2,4}|Q[1-4]\s+\d{4}|\d{4}s|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Sept|Oct|Nov|Dec)[a-z]*\.?\s+\d{1,2},?\s+\d{4}|\d{1,2}\s+(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Sept|Oct|Nov|Dec)[a-z]*\.?\s+\d{4})\b/i,xCe=/\.(?:aac|flac|m4a|m4v|mkv|mov|mp3|mp4|oga|ogg|ogv|opus|wav|webm)(?:$|[?#\s"'<>),])/i,SCe=/<\/?(?:audio|source|video)\b/i,CCe=/^(?:audio|video)\//i;function sU(e,t){let{block:n,theme:r,viewport:i}=t,a=OCe(n),o=ht(n.contents),s=n.template===e,c=s&&(n.templateData&&Object.keys(n.templateData).length>0||n.templateOverrides&&Object.keys(n.templateOverrides).length>0),{inputs:l,warning:u}=wCe(e,n,a,o);if(!l&&!c)return{visual:null,warning:u};let d={...n,id:`template-preview-${n.id}-${e}`,template:e,title:a||n.title||e,duration:1,audioSegment:0,layers:void 0,templateData:s?n.templateData:void 0,templateOverrides:s?n.templateOverrides:void 0,...l??{}},f={blockIndex:0,totalBlocks:1,theme:r,viewport:i,customTemplates:t.customTemplates};try{let e=hn(d,f),{layers:t}=e;return t.length===0?{visual:null,warning:u}:{visual:{...d,layers:t},warning:u??e.diagnostic?.message}}catch{return{visual:null,warning:u}}}function wCe(e,t,n,r){let i=t.contents,a=[n,r].filter(Boolean).join(`
|
|
591
591
|
`);switch(e){case`title`:return{inputs:a?{title:n||uU(r)||`Untitled`,...n&&r?{subtitle:r}:{}}:null};case`sectionHeader`:{if(!a)return{inputs:null};let e=pn(i,1)[0];return{inputs:{title:n||uU(r)||`Untitled`,...e?{imageSrc:e.src,imageAlt:e.alt||n}:{}}}}case`statHighlight`:return oU.test(a)?{inputs:kt(e,n,i,{placeholders:!1})}:{inputs:null,warning:`No stat found in this block`};case`quote`:case`fullBleedQuote`:return{inputs:dt(i)||r?kt(e,n,i,{placeholders:!1}):null};case`pullQuote`:return{inputs:TCe(t,n,r),...pn(i,1).length===0?{warning:`No image found in this block`}:{}};case`factCard`:case`definitionCard`:return{inputs:n&&r?kt(e,n,i,{placeholders:!1}):null};case`twoColumn`:return{inputs:ECe(t,n,r)};case`dateEvent`:return bCe.test(a)?{inputs:kt(e,n,i,{placeholders:!1})}:{inputs:null,warning:`No date found in this block`};case`comparisonBar`:{let e=DCe(t);return{inputs:e,...e?{}:{warning:`No stat found in this block`}}}case`imageWithCaption`:case`leftFeature`:case`rightFeature`:case`photoGrid`:{let t=pn(i,e===`photoGrid`?2:1).length,r=e===`photoGrid`?t<2:t===0;return{inputs:r?null:kt(e,n,i,{placeholders:!1}),...r?{warning:`No image found in this block`}:{}}}case`map`:return{inputs:null};case`videoWithCaption`:case`videoPullQuote`:return{inputs:null,...lU(i)?{}:{warning:`No audio/video found in this block`}};case`diagram`:case`layout`:case`drawing`:return{inputs:t.children&&t.children.length>0?{title:n}:null};case`barChart`:case`columnChart`:case`pieChart`:case`donutChart`:case`lineChart`:case`areaChart`:case`scatterChart`:{let t=kt(e,n,i,{placeholders:!1});return{inputs:t,...t?{}:{warning:`No table found in this block`}}}default:return{inputs:kt(e,n,i,{placeholders:!1})}}}function TCe(e,t,n){let r=pn(e.contents,1)[0],i=dt(e.contents)||n||t;return!r||!i?null:{text:i,backgroundImage:{src:r.src,alt:r.alt||t}}}function ECe(e,t,n){let r=mt(e.contents);if(r.length>=2)return{...t?{header:t}:{},left:{label:dU(r[0])},right:{label:dU(r[1])}};let i=n.split(/\n{2,}|\n|(?<=[.!?])\s+/).map(e=>e.trim()).filter(Boolean);return t&&i.length>=1?{left:{label:dU(t)},right:{label:dU(i[0])}}:i.length>=2?{left:{label:dU(i[0])},right:{label:dU(i[1])}}:null}function DCe(e){let t=Mt(e.contents);if(t){let e=t.rows.map(e=>({label:e[0]||`Value`,value:cU(e.slice(1).join(` `))})).filter(e=>e.value!==null);if(e.length>=2)return{leftLabel:dU(e[0].label,24),leftValue:e[0].value,rightLabel:dU(e[1].label,24),rightValue:e[1].value}}let n=ht(e.contents),r=Array.from(n.matchAll(new RegExp(oU.source,`gi`))).map(e=>cU(e[0])).filter(e=>e!==null);return r.length<2?null:{leftLabel:`A`,leftValue:r[0],rightLabel:`B`,rightValue:r[1]}}function cU(e){let t=e.replace(/[$\u20ac\u00a3\u00a5,%\u2030]/g,``).replace(/,/g,``).trim().match(/-?\d+(?:\.\d+)?/);if(!t)return null;let n=Number.parseFloat(t[0]);return Number.isFinite(n)?n:null}function lU(e){if(typeof e==`string`)return SCe.test(e)||xCe.test(e)||CCe.test(e);if(Array.isArray(e))return e.some(lU);if(!e||typeof e!=`object`)return!1;let t=e,n=typeof t.tagName==`string`?t.tagName.toLowerCase():``;if(n===`audio`||n===`video`||t.type===`audio`||t.type===`video`)return!0;let r=t.attributes;if(r&&typeof r==`object`){let e=r;if(lU(e.src)||lU(e.type))return!0}return Object.values(t).some(lU)}function OCe(e){return e.sourceHeading?Rn(e.sourceHeading).trim():(e.title??e.id??``).trim()}function uU(e){return e.split(/\r?\n/).map(e=>e.trim()).find(Boolean)??``}function dU(e,t=72){let n=e.replace(/\s+/g,` `).trim();return n.length<=t?n:`${n.slice(0,t-1).trimEnd()}...`}function kCe({templateName:e,source:t,fallback:n}){let r=(0,X.useMemo)(()=>t?sU(e,t):null,[e,t]);return t?r?.visual?(0,Z.jsx)(`div`,{className:`squisq-template-gallery-content-preview`,style:{aspectRatio:`${t.viewport.width} / ${t.viewport.height}`},"aria-hidden":`true`,children:(0,Z.jsx)(Xy.Provider,{value:t.mediaProvider??null,children:(0,Z.jsx)(jb,{block:r.visual,blockTime:0,basePath:t.basePath??`/`,viewport:t.viewport})})}):r?.warning?(0,Z.jsxs)(`div`,{className:`squisq-template-gallery-content-preview squisq-template-gallery-content-preview--fallback`,style:{aspectRatio:`${t.viewport.width} / ${t.viewport.height}`},"aria-hidden":`true`,children:[(0,Z.jsx)(`div`,{className:`squisq-template-gallery-content-preview-fallback`,children:n}),(0,Z.jsx)(`span`,{className:`squisq-template-gallery-content-preview-warning`,children:r.warning})]}):n:n}var ACe=`[data-squisq-template-gallery-portal]`,fU=`squisq-template-gallery-dialog`,jCe=`squisq-template-gallery-portal`;function MCe(){return`${jCe}-${(0,X.useId)().replace(/:/g,``)}`}var pU=56,mU=40,hU=`#d1d5db`,gU=`#9ca3af`,_U=`#818cf8`;function vU({children:e}){return(0,Z.jsx)(`svg`,{width:pU,height:mU,viewBox:`0 0 ${pU} ${mU}`,"aria-hidden":`true`,className:`squisq-template-picker-icon`,children:e})}var yU={name:``,label:`— none —`,description:`Plain heading block with no visual treatment.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:4,y:4,width:48,height:32,rx:2,fill:`none`,stroke:hU,strokeWidth:1.5,strokeDasharray:`3 2`}),(0,Z.jsx)(`rect`,{x:12,y:15,width:32,height:4,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:16,y:22,width:24,height:3,rx:1,fill:hU,opacity:.6})]})},bU=[{name:`title`,label:`Title`,description:`A bold opening slide with large title text, perfect for covers and chapters.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:4,y:4,width:48,height:32,rx:2,fill:hU,opacity:.3}),(0,Z.jsx)(`rect`,{x:8,y:11,width:40,height:8,rx:1,fill:_U}),(0,Z.jsx)(`rect`,{x:14,y:23,width:28,height:3,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:20,y:29,width:16,height:2,rx:1,fill:hU})]})},{name:`sectionHeader`,label:`Section Header`,description:`A clean section break with a prominent title and optional background image.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:4,y:4,width:3,height:32,rx:1,fill:_U}),(0,Z.jsx)(`rect`,{x:11,y:8,width:36,height:6,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:11,y:18,width:28,height:3,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:11,y:24,width:20,height:2.5,rx:1,fill:hU,opacity:.7})]})},{name:`bigText`,label:`Big Text`,description:`Gigantic uppercase display text — thumbnail-style — on a theme surface or over an image with a contrast bloom.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:4,y:4,width:48,height:32,rx:2,fill:hU,opacity:.25}),(0,Z.jsx)(`ellipse`,{cx:28,cy:20,rx:22,ry:13,fill:hU,opacity:.35}),(0,Z.jsx)(`rect`,{x:8,y:12,width:40,height:10,rx:2,fill:_U}),(0,Z.jsx)(`rect`,{x:16,y:26,width:24,height:4,rx:1,fill:gU})]})},{name:`content`,label:`Content`,description:`Shows a heading and the complete body in a loss-averse content-first layout.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:7,y:7,width:34,height:5,rx:1,fill:_U}),(0,Z.jsx)(`rect`,{x:7,y:17,width:42,height:2.5,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:7,y:22,width:38,height:2.5,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:7,y:27,width:41,height:2.5,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:7,y:32,width:30,height:2.5,rx:1,fill:hU,opacity:.7})]})},{name:`statHighlight`,label:`Stat Highlight`,description:`Showcases a single key number or metric with supporting context.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:14,y:4,width:28,height:16,rx:2,fill:_U}),(0,Z.jsx)(`rect`,{x:10,y:24,width:36,height:3.5,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:16,y:30,width:24,height:2.5,rx:1,fill:hU})]})},{name:`quote`,label:`Quote`,description:`Displays a stylized pull quote with decorative marks and attribution.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`text`,{x:5,y:18,fontSize:18,fill:_U,fontFamily:`serif`,fontWeight:`bold`,opacity:.7,children:`"`}),(0,Z.jsx)(`rect`,{x:16,y:8,width:36,height:4,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:16,y:15,width:32,height:4,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:16,y:22,width:24,height:4,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:16,y:31,width:18,height:2.5,rx:1,fill:hU})]})},{name:`factCard`,label:`Fact Card`,description:`Presents a focused fact or insight with a labeled header and body text.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:4,y:4,width:20,height:6,rx:3,fill:_U,opacity:.8}),(0,Z.jsx)(`rect`,{x:4,y:14,width:48,height:5,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:4,y:22,width:44,height:3.5,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:4,y:28,width:36,height:3,rx:1,fill:hU,opacity:.7})]})},{name:`twoColumn`,label:`Two Column`,description:`Divides the slide into two equal side-by-side content columns.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:3,y:4,width:23,height:32,rx:2,fill:hU,opacity:.4}),(0,Z.jsx)(`rect`,{x:3,y:4,width:23,height:7,rx:2,fill:gU,opacity:.6}),(0,Z.jsx)(`rect`,{x:6,y:15,width:17,height:3,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:6,y:21,width:14,height:2.5,rx:1,fill:hU,opacity:.7}),(0,Z.jsx)(`rect`,{x:30,y:4,width:23,height:32,rx:2,fill:hU,opacity:.4}),(0,Z.jsx)(`rect`,{x:30,y:4,width:23,height:7,rx:2,fill:gU,opacity:.6}),(0,Z.jsx)(`rect`,{x:33,y:15,width:17,height:3,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:33,y:21,width:14,height:2.5,rx:1,fill:hU,opacity:.7})]})},{name:`dateEvent`,label:`Date Event`,description:`Highlights a date-based event or milestone with a prominent date display.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:3,y:4,width:18,height:18,rx:3,fill:_U,opacity:.85}),(0,Z.jsx)(`rect`,{x:6,y:8,width:12,height:2,rx:1,fill:`white`,opacity:.7}),(0,Z.jsx)(`rect`,{x:6,y:13,width:12,height:6,rx:1,fill:`white`,opacity:.5}),(0,Z.jsx)(`rect`,{x:25,y:6,width:27,height:5,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:25,y:15,width:22,height:3,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:25,y:21,width:16,height:2.5,rx:1,fill:hU,opacity:.7}),(0,Z.jsx)(`rect`,{x:3,y:27,width:50,height:2.5,rx:1,fill:hU,opacity:.5}),(0,Z.jsx)(`rect`,{x:3,y:32,width:40,height:2,rx:1,fill:hU,opacity:.4})]})},{name:`imageWithCaption`,label:`Image with Caption`,description:`Displays a full-bleed image with an optional caption below.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:3,y:3,width:50,height:28,rx:2,fill:gU,opacity:.5}),(0,Z.jsx)(`line`,{x1:3,y1:14,x2:53,y2:14,stroke:`white`,strokeWidth:.5,opacity:.3}),(0,Z.jsx)(`polygon`,{points:`22,10 22,20 32,15`,fill:`white`,opacity:.4}),(0,Z.jsx)(`rect`,{x:10,y:35,width:36,height:2.5,rx:1,fill:hU})]})},{name:`leftFeature`,label:`Left Feature`,description:`Image on the left, title and body text stacked on the right.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:3,y:4,width:24,height:32,rx:2,fill:gU,opacity:.55}),(0,Z.jsx)(`polygon`,{points:`11,16 11,24 19,20`,fill:`white`,opacity:.5}),(0,Z.jsx)(`rect`,{x:31,y:9,width:20,height:4,rx:1,fill:_U}),(0,Z.jsx)(`rect`,{x:31,y:17,width:22,height:2.5,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:31,y:22,width:22,height:2.5,rx:1,fill:hU,opacity:.75}),(0,Z.jsx)(`rect`,{x:31,y:27,width:16,height:2.5,rx:1,fill:hU,opacity:.6})]})},{name:`rightFeature`,label:`Right Feature`,description:`Image on the right, title and body text stacked on the left.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:29,y:4,width:24,height:32,rx:2,fill:gU,opacity:.55}),(0,Z.jsx)(`polygon`,{points:`37,16 37,24 45,20`,fill:`white`,opacity:.5}),(0,Z.jsx)(`rect`,{x:3,y:9,width:20,height:4,rx:1,fill:_U}),(0,Z.jsx)(`rect`,{x:3,y:17,width:22,height:2.5,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:3,y:22,width:22,height:2.5,rx:1,fill:hU,opacity:.75}),(0,Z.jsx)(`rect`,{x:3,y:27,width:16,height:2.5,rx:1,fill:hU,opacity:.6})]})},{name:`map`,label:`Map`,description:`Embeds an interactive map centered on a geographic location.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:3,y:3,width:50,height:34,rx:2,fill:hU,opacity:.3}),(0,Z.jsx)(`line`,{x1:3,y1:13,x2:53,y2:13,stroke:hU,strokeWidth:1}),(0,Z.jsx)(`line`,{x1:3,y1:23,x2:53,y2:23,stroke:hU,strokeWidth:1}),(0,Z.jsx)(`line`,{x1:18,y1:3,x2:18,y2:37,stroke:hU,strokeWidth:1}),(0,Z.jsx)(`line`,{x1:38,y1:3,x2:38,y2:37,stroke:hU,strokeWidth:1}),(0,Z.jsx)(`circle`,{cx:28,cy:18,r:4,fill:_U,opacity:.8}),(0,Z.jsx)(`line`,{x1:28,y1:22,x2:28,y2:26,stroke:_U,strokeWidth:1.5,opacity:.6})]})},{name:`fullBleedQuote`,label:`Full Bleed Quote`,description:`A full-width quote that spans the entire slide for maximum impact.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:4,y:4,width:48,height:32,rx:2,fill:gU,opacity:.2}),(0,Z.jsx)(`text`,{x:5,y:15,fontSize:16,fill:_U,fontFamily:`serif`,fontWeight:`bold`,opacity:.8,children:`"`}),(0,Z.jsx)(`rect`,{x:4,y:14,width:48,height:5,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:4,y:22,width:44,height:5,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:4,y:30,width:30,height:4,rx:1,fill:gU,opacity:.7})]})},{name:`list`,label:`List`,description:`Renders a bulleted or numbered list in a clean, card-style layout.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:4,y:5,width:6,height:5,rx:3,fill:_U,opacity:.8}),(0,Z.jsx)(`rect`,{x:14,y:6,width:38,height:4,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:4,y:17,width:6,height:5,rx:3,fill:_U,opacity:.8}),(0,Z.jsx)(`rect`,{x:14,y:18,width:34,height:4,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:4,y:29,width:6,height:5,rx:3,fill:_U,opacity:.8}),(0,Z.jsx)(`rect`,{x:14,y:30,width:36,height:4,rx:1,fill:gU})]})},{name:`photoGrid`,label:`Photo Grid`,description:`Arranges multiple photos in a 2×2 or 3×3 mosaic grid.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:3,y:3,width:23,height:16,rx:1.5,fill:gU,opacity:.55}),(0,Z.jsx)(`rect`,{x:30,y:3,width:23,height:16,rx:1.5,fill:gU,opacity:.7}),(0,Z.jsx)(`rect`,{x:3,y:22,width:23,height:16,rx:1.5,fill:gU,opacity:.8}),(0,Z.jsx)(`rect`,{x:30,y:22,width:23,height:16,rx:1.5,fill:gU,opacity:.5})]})},{name:`definitionCard`,label:`Definition Card`,description:`Shows a term and its definition in a structured, dictionary-style card.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:4,y:6,width:32,height:6,rx:1,fill:_U,opacity:.8}),(0,Z.jsx)(`rect`,{x:4,y:17,width:48,height:3.5,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:4,y:23,width:44,height:3,rx:1,fill:hU,opacity:.8}),(0,Z.jsx)(`rect`,{x:4,y:29,width:36,height:3,rx:1,fill:hU,opacity:.6})]})},{name:`comparisonBar`,label:`Comparison Bar`,description:`Visualizes two or more values side-by-side with labeled horizontal bars.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:4,y:5,width:14,height:3,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:20,y:4,width:32,height:5,rx:1,fill:_U,opacity:.85}),(0,Z.jsx)(`rect`,{x:4,y:16,width:14,height:3,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:20,y:15,width:22,height:5,rx:1,fill:gU,opacity:.7}),(0,Z.jsx)(`rect`,{x:4,y:27,width:14,height:3,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:20,y:26,width:28,height:5,rx:1,fill:gU,opacity:.5})]})},{name:`pullQuote`,label:`Pull Quote`,description:`A stylized pull quote with large decorative marks and centered text.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`text`,{x:3,y:20,fontSize:26,fill:_U,fontFamily:`serif`,opacity:.5,children:`"`}),(0,Z.jsx)(`rect`,{x:16,y:7,width:36,height:4.5,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:16,y:15,width:34,height:4.5,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:16,y:23,width:28,height:4.5,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:32,y:31,width:20,height:3,rx:1,fill:hU}),(0,Z.jsx)(`text`,{x:44,y:42,fontSize:26,fill:_U,fontFamily:`serif`,opacity:.3,children:`"`})]})},{name:`videoWithCaption`,label:`Video with Caption`,description:`Embeds a video player with an optional caption below.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:3,y:3,width:50,height:28,rx:2,fill:hU,opacity:.4}),(0,Z.jsx)(`rect`,{x:3,y:3,width:50,height:28,rx:2,fill:gU,opacity:.25}),(0,Z.jsx)(`circle`,{cx:28,cy:17,r:8,fill:_U,opacity:.7}),(0,Z.jsx)(`polygon`,{points:`25,13 25,21 33,17`,fill:`white`}),(0,Z.jsx)(`rect`,{x:10,y:35,width:36,height:2.5,rx:1,fill:hU})]})},{name:`videoPullQuote`,label:`Video Pull Quote`,description:`Combines a video panel with a highlighted pull quote side-by-side.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:3,y:4,width:23,height:32,rx:2,fill:gU,opacity:.35}),(0,Z.jsx)(`circle`,{cx:14.5,cy:20,r:6,fill:_U,opacity:.65}),(0,Z.jsx)(`polygon`,{points:`12,17 12,23 18,20`,fill:`white`}),(0,Z.jsx)(`rect`,{x:30,y:4,width:23,height:32,rx:2,fill:hU,opacity:.3}),(0,Z.jsx)(`text`,{x:32,y:16,fontSize:12,fill:_U,fontFamily:`serif`,opacity:.6,children:`"`}),(0,Z.jsx)(`rect`,{x:30,y:17,width:20,height:3.5,rx:1,fill:gU}),(0,Z.jsx)(`rect`,{x:30,y:23,width:18,height:3,rx:1,fill:hU}),(0,Z.jsx)(`rect`,{x:30,y:29,width:14,height:2.5,rx:1,fill:hU,opacity:.7})]})},{name:`dataTable`,label:`Data Table`,description:`Renders tabular data in a clean, styled table with a header row.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:3,y:3,width:50,height:8,rx:1.5,fill:_U,opacity:.7}),(0,Z.jsx)(`rect`,{x:3,y:13,width:50,height:6,rx:1,fill:hU,opacity:.5}),(0,Z.jsx)(`rect`,{x:3,y:21,width:50,height:6,rx:1,fill:hU,opacity:.35}),(0,Z.jsx)(`rect`,{x:3,y:29,width:50,height:6,rx:1,fill:hU,opacity:.5}),(0,Z.jsx)(`line`,{x1:20,y1:3,x2:20,y2:35,stroke:`white`,strokeWidth:1,opacity:.4}),(0,Z.jsx)(`line`,{x1:37,y1:3,x2:37,y2:35,stroke:`white`,strokeWidth:1,opacity:.4})]})},{name:`barChart`,label:`Bar Chart`,description:`Horizontal bars from the block's markdown table — one bar per row.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:8,y:6,width:40,height:5,rx:1,fill:_U,opacity:.85}),(0,Z.jsx)(`rect`,{x:8,y:14,width:28,height:5,rx:1,fill:gU,opacity:.8}),(0,Z.jsx)(`rect`,{x:8,y:22,width:34,height:5,rx:1,fill:_U,opacity:.6}),(0,Z.jsx)(`rect`,{x:8,y:30,width:18,height:5,rx:1,fill:hU,opacity:.8}),(0,Z.jsx)(`line`,{x1:8,y1:4,x2:8,y2:37,stroke:hU,strokeWidth:1.5})]})},{name:`columnChart`,label:`Column Chart`,description:`Vertical columns from the block's markdown table — one column per row.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:8,y:18,width:7,height:16,rx:1,fill:gU,opacity:.8}),(0,Z.jsx)(`rect`,{x:19,y:10,width:7,height:24,rx:1,fill:_U,opacity:.85}),(0,Z.jsx)(`rect`,{x:30,y:14,width:7,height:20,rx:1,fill:_U,opacity:.6}),(0,Z.jsx)(`rect`,{x:41,y:22,width:7,height:12,rx:1,fill:hU,opacity:.8}),(0,Z.jsx)(`line`,{x1:5,y1:34,x2:51,y2:34,stroke:hU,strokeWidth:1.5})]})},{name:`pieChart`,label:`Pie Chart`,description:`A pie of the block's markdown table — each row becomes a labeled slice.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`circle`,{cx:28,cy:20,r:14,fill:hU,opacity:.6}),(0,Z.jsx)(`path`,{d:`M 28 20 L 28 6 A 14 14 0 0 1 41.4 24.1 Z`,fill:_U,opacity:.85}),(0,Z.jsx)(`path`,{d:`M 28 20 L 41.4 24.1 A 14 14 0 0 1 20.5 32.9 Z`,fill:gU,opacity:.8})]})},{name:`donutChart`,label:`Donut Chart`,description:`A donut of the block's markdown table — each row becomes a labeled slice.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`circle`,{cx:28,cy:20,r:14,fill:hU,opacity:.6}),(0,Z.jsx)(`path`,{d:`M 28 20 L 28 6 A 14 14 0 0 1 41.4 24.1 Z`,fill:_U,opacity:.85}),(0,Z.jsx)(`path`,{d:`M 28 20 L 41.4 24.1 A 14 14 0 0 1 20.5 32.9 Z`,fill:gU,opacity:.8}),(0,Z.jsx)(`circle`,{cx:28,cy:20,r:7,fill:`white`})]})},{name:`lineChart`,label:`Line Chart`,description:`Lines from the block's markdown table — one line per value column.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`line`,{x1:6,y1:12,x2:50,y2:12,stroke:hU,strokeWidth:1,opacity:.5}),(0,Z.jsx)(`line`,{x1:6,y1:22,x2:50,y2:22,stroke:hU,strokeWidth:1,opacity:.5}),(0,Z.jsx)(`line`,{x1:6,y1:32,x2:50,y2:32,stroke:hU,strokeWidth:1,opacity:.5}),(0,Z.jsx)(`polyline`,{points:`8,28 20,16 32,20 48,8`,fill:`none`,stroke:_U,strokeWidth:2.5,opacity:.85}),(0,Z.jsx)(`polyline`,{points:`8,32 20,26 32,30 48,20`,fill:`none`,stroke:gU,strokeWidth:2,opacity:.7})]})},{name:`areaChart`,label:`Area Chart`,description:`Filled area lines from the block's markdown table — one area per value column.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`path`,{d:`M 8 28 L 20 16 L 32 20 L 48 8 L 48 34 L 8 34 Z`,fill:_U,opacity:.4}),(0,Z.jsx)(`polyline`,{points:`8,28 20,16 32,20 48,8`,fill:`none`,stroke:_U,strokeWidth:2.5,opacity:.85}),(0,Z.jsx)(`line`,{x1:6,y1:34,x2:50,y2:34,stroke:hU,strokeWidth:1.5})]})},{name:`scatterChart`,label:`Scatter Chart`,description:`An x/y scatter plot from the block's markdown table's numeric columns.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`line`,{x1:8,y1:4,x2:8,y2:34,stroke:hU,strokeWidth:1.5}),(0,Z.jsx)(`line`,{x1:8,y1:34,x2:50,y2:34,stroke:hU,strokeWidth:1.5}),(0,Z.jsx)(`circle`,{cx:16,cy:26,r:2.5,fill:gU,opacity:.8}),(0,Z.jsx)(`circle`,{cx:22,cy:18,r:2.5,fill:_U,opacity:.85}),(0,Z.jsx)(`circle`,{cx:28,cy:22,r:2.5,fill:gU,opacity:.8}),(0,Z.jsx)(`circle`,{cx:34,cy:12,r:2.5,fill:_U,opacity:.85}),(0,Z.jsx)(`circle`,{cx:40,cy:16,r:2.5,fill:gU,opacity:.8}),(0,Z.jsx)(`circle`,{cx:45,cy:9,r:2.5,fill:_U,opacity:.85})]})},{name:`diagram`,label:`Diagram`,description:`Renders sub-headings as connected nodes — edit visually as a node-and-edge diagram.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:4,y:6,width:16,height:10,rx:2,fill:_U,opacity:.85}),(0,Z.jsx)(`rect`,{x:36,y:6,width:16,height:10,rx:2,fill:gU,opacity:.8}),(0,Z.jsx)(`rect`,{x:20,y:24,width:16,height:10,rx:2,fill:gU,opacity:.8}),(0,Z.jsx)(`path`,{d:`M 20 11 L 36 11`,stroke:_U,strokeWidth:1.5,fill:`none`,opacity:.7}),(0,Z.jsx)(`path`,{d:`M 36 11 L 32 8.5 L 32 13.5 Z`,fill:_U,opacity:.7}),(0,Z.jsx)(`path`,{d:`M 12 16 C 12 22, 24 22, 24 24`,stroke:_U,strokeWidth:1.5,fill:`none`,opacity:.7}),(0,Z.jsx)(`path`,{d:`M 44 16 C 44 22, 32 22, 32 24`,stroke:_U,strokeWidth:1.5,fill:`none`,opacity:.7})]})},{name:`tree`,label:`Tree`,description:`Renders an ASCII file-tree / outline fence as a filesystem-style treeview — edit as an outline.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:6,y:5,width:16,height:7,rx:1.5,fill:_U,opacity:.85}),(0,Z.jsx)(`path`,{d:`M 12 12 L 12 34 M 12 20 L 22 20 M 12 34 L 22 34`,stroke:hU,strokeWidth:1.5,fill:`none`,opacity:.7}),(0,Z.jsx)(`rect`,{x:24,y:16,width:14,height:7,rx:1.5,fill:gU,opacity:.8}),(0,Z.jsx)(`rect`,{x:24,y:30,width:14,height:7,rx:1.5,fill:gU,opacity:.8}),(0,Z.jsx)(`rect`,{x:26,y:2,width:14,height:7,rx:1.5,fill:gU,opacity:.6})]})},{name:`timeline`,label:`Timeline`,description:`Plots events across one or more horizontal tracks with callouts and optional branching links.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`path`,{d:`M 5 21 L 51 21`,stroke:hU,strokeWidth:1.8,fill:`none`}),(0,Z.jsx)(`path`,{d:`M 47 18 L 52 21 L 47 24`,stroke:hU,strokeWidth:1.5,fill:`none`}),(0,Z.jsx)(`circle`,{cx:13,cy:21,r:3,fill:_U}),(0,Z.jsx)(`circle`,{cx:29,cy:21,r:3,fill:gU}),(0,Z.jsx)(`circle`,{cx:44,cy:21,r:3,fill:_U}),(0,Z.jsx)(`path`,{d:`M 13 18 L 13 10 M 29 24 L 29 32 M 44 18 L 44 8`,stroke:hU,strokeWidth:1}),(0,Z.jsx)(`rect`,{x:7,y:5,width:12,height:3,rx:1,fill:gU,opacity:.8}),(0,Z.jsx)(`rect`,{x:23,y:33,width:12,height:3,rx:1,fill:gU,opacity:.8}),(0,Z.jsx)(`rect`,{x:38,y:3,width:12,height:3,rx:1,fill:gU,opacity:.8})]})},{name:`layout`,label:`Layout`,description:`Free-form 2D canvas — drag layers into place. Use for one-off block layouts that don't fit a template.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:3,y:3,width:50,height:34,rx:2,fill:`none`,stroke:hU,strokeWidth:1,strokeDasharray:`3 2`}),(0,Z.jsx)(`rect`,{x:7,y:7,width:20,height:12,rx:1.5,fill:_U,opacity:.85}),(0,Z.jsx)(`rect`,{x:30,y:7,width:20,height:26,rx:1.5,fill:gU,opacity:.7}),(0,Z.jsx)(`rect`,{x:7,y:22,width:20,height:11,rx:1.5,fill:hU,opacity:.7})]})},{name:`drawing`,label:`Drawing`,description:`Free-form sketches — draw shapes, paths, and text directly on a 2D surface.`,icon:(0,Z.jsxs)(vU,{children:[(0,Z.jsx)(`rect`,{x:3,y:3,width:50,height:34,rx:2,fill:`none`,stroke:hU,strokeWidth:1}),(0,Z.jsx)(`path`,{d:`M 8 28 C 14 12, 26 14, 30 22 S 44 32, 50 14`,stroke:_U,strokeWidth:2,fill:`none`,opacity:.85,strokeLinecap:`round`}),(0,Z.jsx)(`circle`,{cx:10,cy:10,r:2.5,fill:gU}),(0,Z.jsx)(`rect`,{x:40,y:28,width:8,height:6,rx:1,fill:gU,opacity:.7})]})}],xU=bU.map(e=>e.name);function SU(e,t){if(!e)return`— none —`;let n=pr(e),r=$t[n];if(r)return r.label;let i=t?.find(e=>e.name===n);return i?i.label:n.replace(/([A-Z])/g,` $1`).replace(/^./,e=>e.toUpperCase())}function CU({value:e,onChange:t,colorScheme:n=`light`,compact:r,recommended:i,onOpenDesigner:a,previewSource:o}){let[s,c]=(0,X.useState)(!1),[l,u]=(0,X.useState)({}),d=(0,X.useRef)(null),f=(0,X.useRef)(null),p=(0,X.useRef)(null),m=`${fU}-${(0,X.useId)().replace(/:/g,``)}`;nH(s,()=>c(!1),f);let h=()=>{f.current&&u(kU(f.current))},g=()=>{h(),c(e=>!e)};(0,X.useEffect)(()=>{if(!s)return;let e=e=>{let t=e.target,n=f.current?.contains(t),r=p.current?.contains(t);!n&&!r&&c(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s]),(0,X.useEffect)(()=>{if(!s)return;requestAnimationFrame(h);let e=()=>h();return window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e)}},[s]);let _=e=>{t(e),c(!1)},v=SU(e),y=e&&bU.find(t=>t.name===e)||yU,b=OU(o);if(r)return(0,Z.jsx)(`select`,{className:`squisq-template-picker-select`,value:e,onChange:e=>t(e.target.value),children:[yU,...bU].map(e=>(0,Z.jsx)(`option`,{value:e.name,children:e.label},e.name))});let x=s?(0,Gi.createPortal)((0,Z.jsx)(wU,{dialogRef:p,returnFocusRef:f,dialogId:m,title:b,colorScheme:n,style:l,onClose:()=>c(!1),children:(0,Z.jsx)(EU,{value:e,onSelect:_,style:{},recommended:i,onOpenDesigner:a,previewSource:o})}),document.body):null;return(0,Z.jsxs)(`div`,{className:`squisq-template-picker-popover-host`,ref:d,children:[(0,Z.jsxs)(`button`,{ref:f,type:`button`,className:`squisq-template-picker-trigger${s?` squisq-template-picker-trigger--open`:``}`,onClick:g,"aria-haspopup":`dialog`,"aria-expanded":s,"aria-controls":s?m:void 0,title:`Choose block type`,children:[(0,Z.jsx)(`span`,{className:`squisq-template-picker-trigger-label`,children:`Block:`}),(0,Z.jsx)(`span`,{className:`squisq-template-picker-trigger-thumb`,"aria-hidden":`true`,children:y.icon}),(0,Z.jsx)(`span`,{className:`squisq-template-picker-trigger-value`,children:e?v:`(No visual)`}),(0,Z.jsx)(`svg`,{className:`squisq-template-picker-trigger-caret`,width:`10`,height:`10`,viewBox:`0 0 10 10`,fill:`currentColor`,"aria-hidden":`true`,children:(0,Z.jsx)(`path`,{d:`M2 3.5l3 3 3-3`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,fill:`none`})})]}),x]})}function wU({dialogRef:e,returnFocusRef:t,dialogId:n,children:r,title:i,colorScheme:a,style:o,onClose:s}){let c=(0,X.useRef)(null),l=(0,X.useId)();return ux({rootRef:e,dialogRef:c,returnFocusRef:t,onClose:s}),(0,Z.jsx)(`div`,{ref:e,id:n,className:`squisq-template-gallery-dialog`,"data-theme":a,style:o,onMouseDown:e=>{e.target===e.currentTarget&&s()},children:(0,Z.jsxs)(`div`,{ref:c,className:`squisq-template-gallery-dialog-panel`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":l,tabIndex:-1,children:[(0,Z.jsxs)(`div`,{className:`squisq-template-gallery-dialog-header`,children:[(0,Z.jsx)(`h2`,{id:l,className:`squisq-template-gallery-dialog-title`,children:i}),(0,Z.jsx)(`button`,{type:`button`,className:`squisq-template-gallery-dialog-close`,onClick:s,"aria-label":`Close block type picker`,children:(0,Z.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 14 14`,"aria-hidden":`true`,children:(0,Z.jsx)(`path`,{d:`M3.2 3.2l7.6 7.6M10.8 3.2l-7.6 7.6`,stroke:`currentColor`,strokeWidth:`1.7`,strokeLinecap:`round`})})})]}),(0,Z.jsx)(`div`,{className:`squisq-template-gallery-dialog-body`,children:r})]})})}function TU({entry:e,value:t,onSelect:n,previewSource:r}){return(0,Z.jsxs)(`button`,{type:`button`,"aria-pressed":t===e.name,className:`squisq-template-gallery-card${t===e.name?` squisq-template-gallery-card--selected`:``}`,onClick:()=>n(e.name),title:e.description,children:[(0,Z.jsx)(`div`,{className:`squisq-template-gallery-card-icon`,children:(0,Z.jsx)(kCe,{templateName:e.name,source:r,fallback:e.icon})}),(0,Z.jsxs)(`div`,{className:`squisq-template-gallery-card-body`,children:[(0,Z.jsx)(`span`,{className:`squisq-template-gallery-card-name`,children:e.label}),(0,Z.jsx)(`span`,{className:`squisq-template-gallery-card-desc`,children:e.description})]})]})}function NCe(e,t){if(!t)return{blockTypeEntries:[...e],contentNeededEntries:[]};let n=[],r=[];for(let i of e)sU(i.name,t).warning?r.push(i):n.push(i);return{blockTypeEntries:n,contentNeededEntries:r}}function EU({value:e,onSelect:t,style:n,recommended:r,onOpenDesigner:i,previewSource:a}){let o=MCe(),[s,c]=(0,X.useState)(``),l=(0,X.useRef)(null),u=rU(),d=(0,X.useMemo)(()=>u?.allTemplates??[],[u]);(0,X.useEffect)(()=>{l.current?.focus()},[]);let f=s.trim().toLowerCase(),p=f.length>0,m=(0,X.useMemo)(()=>p?{built:bU.filter(e=>e.label.toLowerCase().includes(f)||e.description.toLowerCase().includes(f)||e.name.toLowerCase().includes(f)),custom:d.filter(e=>e.label.toLowerCase().includes(f)||e.name.toLowerCase().includes(f)||(e.description??``).toLowerCase().includes(f))}:null,[p,f,d]),h=(0,X.useMemo)(()=>r&&r.length>0?new Set(r):null,[r]),g=(0,X.useMemo)(()=>h?bU.filter(e=>h.has(e.name)):[],[h]),_=(0,X.useMemo)(()=>h?bU.filter(e=>!h.has(e.name)):bU,[h]),{blockTypeEntries:v,contentNeededEntries:y}=(0,X.useMemo)(()=>NCe(_,a),[_,a]),b=!p&&(g.length>0||y.length>0);return(0,Z.jsxs)(`div`,{id:o,"data-squisq-template-gallery-portal":``,className:`squisq-template-gallery${b?` squisq-template-gallery--segmented`:``}`,role:`region`,"aria-label":`Block types`,style:n,children:[(0,Z.jsxs)(`div`,{className:`squisq-template-gallery-search`,children:[(0,Z.jsxs)(`svg`,{className:`squisq-template-gallery-search-icon`,width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:[(0,Z.jsx)(`circle`,{cx:`7`,cy:`7`,r:`5`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,Z.jsx)(`path`,{d:`M11 11l3 3`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})]}),(0,Z.jsx)(`input`,{ref:l,type:`search`,className:`squisq-template-gallery-search-input`,placeholder:`Search block types…`,value:s,onChange:e=>c(e.target.value),"aria-label":`Search block types`})]}),!p&&(0,Z.jsxs)(`button`,{type:`button`,"aria-pressed":e===``,className:`squisq-template-gallery-none${e===``?` squisq-template-gallery-card--selected`:``}`,onClick:()=>t(``),children:[yU.icon,(0,Z.jsx)(`span`,{className:`squisq-template-gallery-none-label`,children:yU.label}),(0,Z.jsx)(`span`,{className:`squisq-template-gallery-none-desc`,children:yU.description})]}),p?m&&(m.built.length>0||m.custom.length>0)?(0,Z.jsxs)(Z.Fragment,{children:[m.custom.length>0&&(0,Z.jsxs)(`div`,{className:`squisq-template-gallery-section`,children:[(0,Z.jsx)(`h3`,{className:`squisq-template-gallery-section-title`,children:`Custom`}),(0,Z.jsx)(`div`,{className:`squisq-template-gallery-grid`,children:m.custom.map(n=>(0,Z.jsx)(DU,{def:n,value:e,onSelect:t},n.name))})]}),m.built.length>0&&(0,Z.jsx)(`div`,{className:`squisq-template-gallery-grid`,children:m.built.map(n=>(0,Z.jsx)(TU,{entry:n,value:e,onSelect:t,previewSource:a},n.name))})]}):(0,Z.jsxs)(`div`,{className:`squisq-template-gallery-empty`,children:[`No block types match "`,s,`".`]}):(0,Z.jsxs)(Z.Fragment,{children:[i&&(0,Z.jsxs)(`button`,{type:`button`,className:`squisq-template-gallery-new`,onClick:i,children:[(0,Z.jsx)(`span`,{className:`squisq-template-gallery-new-plus`,"aria-hidden":`true`,children:`+`}),(0,Z.jsxs)(`span`,{className:`squisq-template-gallery-new-body`,children:[(0,Z.jsx)(`span`,{className:`squisq-template-gallery-new-label`,children:`New block type`}),(0,Z.jsxs)(`span`,{className:`squisq-template-gallery-new-desc`,children:[`Design a reusable block type with placeholders for `,`{title}`,` and `,`{content}`,`.`]})]})]}),d.length>0&&(0,Z.jsxs)(`div`,{className:`squisq-template-gallery-section`,children:[(0,Z.jsx)(`h3`,{className:`squisq-template-gallery-section-title`,children:`Custom`}),(0,Z.jsx)(`div`,{className:`squisq-template-gallery-grid`,children:d.map(n=>(0,Z.jsx)(DU,{def:n,value:e,onSelect:t},n.name))})]}),g.length>0&&(0,Z.jsxs)(`div`,{className:`squisq-template-gallery-section`,children:[(0,Z.jsx)(`h3`,{className:`squisq-template-gallery-section-title`,children:`Suggested Block Types`}),(0,Z.jsx)(`div`,{className:`squisq-template-gallery-grid`,children:g.map(n=>(0,Z.jsx)(TU,{entry:n,value:e,onSelect:t,previewSource:a},n.name))})]}),b?(0,Z.jsxs)(Z.Fragment,{children:[v.length>0&&(0,Z.jsxs)(`div`,{className:`squisq-template-gallery-section`,children:[(0,Z.jsx)(`h3`,{className:`squisq-template-gallery-section-title`,children:`Block Types`}),(0,Z.jsx)(`div`,{className:`squisq-template-gallery-grid`,children:v.map(n=>(0,Z.jsx)(TU,{entry:n,value:e,onSelect:t,previewSource:a},n.name))})]}),y.length>0&&(0,Z.jsxs)(`div`,{className:`squisq-template-gallery-section`,children:[(0,Z.jsx)(`h3`,{className:`squisq-template-gallery-section-title`,children:`Block Types for Content`}),(0,Z.jsx)(`div`,{className:`squisq-template-gallery-grid`,children:y.map(n=>(0,Z.jsx)(TU,{entry:n,value:e,onSelect:t,previewSource:a},n.name))})]})]}):(0,Z.jsx)(`div`,{className:`squisq-template-gallery-grid`,children:v.map(n=>(0,Z.jsx)(TU,{entry:n,value:e,onSelect:t,previewSource:a},n.name))})]})]})}function DU({def:e,value:t,onSelect:n}){return(0,Z.jsxs)(`button`,{type:`button`,"aria-pressed":t===e.name,className:`squisq-template-gallery-card${t===e.name?` squisq-template-gallery-card--selected`:``}`,onClick:()=>n(e.name),title:e.description??e.label,children:[(0,Z.jsx)(`div`,{className:`squisq-template-gallery-card-icon`,children:(0,Z.jsx)(aU,{def:e})}),(0,Z.jsxs)(`div`,{className:`squisq-template-gallery-card-body`,children:[(0,Z.jsx)(`span`,{className:`squisq-template-gallery-card-name`,children:e.label}),(0,Z.jsx)(`span`,{className:`squisq-template-gallery-card-desc`,children:e.description??`Custom block type`})]})]})}function PCe({anchorRect:e,value:t,onChange:n,onClose:r,colorScheme:i=`light`,recommended:a,onOpenDesigner:o,previewSource:s}){let[c,l]=(0,X.useState)(()=>kU(e)),u=(0,X.useRef)(null),d=`${fU}-${(0,X.useId)().replace(/:/g,``)}`;return(0,X.useEffect)(()=>{let t=requestAnimationFrame(()=>l(kU(e)));return()=>cancelAnimationFrame(t)},[e]),(0,X.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()},t=e=>{let t=e.target;u.current?.contains(t)||r()},n=requestAnimationFrame(()=>{document.addEventListener(`mousedown`,t)});return document.addEventListener(`keydown`,e),()=>{cancelAnimationFrame(n),document.removeEventListener(`mousedown`,t),document.removeEventListener(`keydown`,e)}},[r]),(0,Gi.createPortal)((0,Z.jsx)(wU,{dialogRef:u,dialogId:d,title:OU(s),colorScheme:i,style:c,onClose:r,children:(0,Z.jsx)(EU,{value:t,onSelect:e=>{n(e),r()},style:{},recommended:a,onOpenDesigner:o,previewSource:s})}),document.body)}function OU(e){return`Block Type for ${FCe(e)}`}function FCe(e){let t=e?.block;return t&&((t.sourceHeading?Rn(t.sourceHeading).trim():``)||t.title||``).replace(/\s+/g,` `).trim()||`this block`}function kU(e){let t=ICe(e),n=Math.max(0,t.left),r=Math.max(0,t.top),i=Math.min(window.innerWidth,t.right),a=Math.min(window.innerHeight,t.bottom);return{position:`fixed`,top:r,left:n,width:Math.max(0,i-n),height:Math.max(0,a-r),zIndex:9999}}function ICe(e){if(e instanceof Element){let t=e.closest(`.squisq-editor-shell`);if(t)return t.getBoundingClientRect()}else{let t=e.left+e.width/2,n=e.top+e.height/2;for(let e of document.elementsFromPoint(t,n)){let t=e.closest(`.squisq-editor-shell`);if(t)return t.getBoundingClientRect()}}return new DOMRect(0,0,window.innerWidth,window.innerHeight)}var AU={type:``,direction:``,duration:``},LCe=[`transition`,`transitionDirection`,`transitionDuration`],RCe=/^(#{1,6}\s+)([\s\S]*)$/;function jU(e){return e?{type:e.transition??``,direction:e.transitionDirection??``,duration:e.transitionDuration??``}:{...AU}}function MU(e,t){let n={};for(let[t,r]of Object.entries(e))LCe.includes(t)||(n[t]=r);return t.type&&(n.transition=t.type,t.direction&&(n.transitionDirection=t.direction),t.duration&&(n.transitionDuration=t.duration)),n}function NU(e){if(!e.params)return e;let t=MU(e.params,AU);return Object.keys(t).length>0?e.params=t:delete e.params,e}function PU(e,t){let n=gr(e),r={};for(let e of t?n.slice(1):n){let t=dr(e);t&&(r[t.key]=t.value)}return r}function FU(e){if(!e)return{template:void 0,params:{}};let t=gr(e),n=t.length>0&&t[0].indexOf(`=`)>0||t.length===0?void 0:t[0],r=+!!n,i={};for(let e of t.slice(r)){let t=dr(e);t&&(i[t.key]=t.value)}return{template:n,params:i}}function IU(e){let t=Object.entries(e).map(([e,t])=>`${e}=${fr(t)}`);return t.length>0?t.join(` `):null}function zCe(e,t){let n=[];e&&n.push(e);let r=IU(t);return r&&n.push(r),n.length>0?`{[${n.join(` `)}]}`:null}function LU(e){let t=e.match(RCe);if(!t)return null;let n=t[2],r=``,i=Sr(n);i&&(r=n.slice(i.index).trim(),n=n.slice(0,i.index));let a=null,o=mr(n);return o&&(a=o.inner,n=n.slice(0,o.index)),{prefix:t[1],text:n.replace(/\s+$/,``),pandocInner:a,templateText:r}}function RU(e){let t=LU(e);if(!t)return{...AU};let n=t.templateText?FU(BU(t.templateText)).params:{},r=t.pandocInner?wr(t.pandocInner).params??{}:{};return jU({...n,...r})}function zU(e,t){let n=LU(e);if(!n)return e;let r=n.pandocInner?wr(n.pandocInner):{};NU(r);let i=UU(r),a=FU(n.templateText?BU(n.templateText):null),o=MU(a.params,t),s=zCe(a.template,o),c=n.prefix+n.text;return i&&(c+=` ${i}`),s&&(c+=` ${s}`),c}function BU(e){let t=e.match(/^\{\[([\s\S]*)\]\}[\s\]}]*$/);return t?t[1]:e}function VU(e,t){let n=t?PU(t,!1):{},r=e?wr(e).params??{}:{};return jU({...n,...r})}function HU(e,t,n){let r=e?wr(e):{};NU(r);let i=UU(r),a=MU(PU(t??``,!1),n);return{blockAttrsInner:i?i.slice(1,-1):null,templateParams:IU(a)}}function UU(e){let t=br(e);return t==null||t===`{}`?null:t}var WU=[{title:`Basic`,entries:[{value:`fade`,label:`Fade`},{value:`dissolve`,label:`Dissolve`},{value:`flash`,label:`Flash`},{value:`morph`,label:`Morph`}]},{title:`Slide & Push`,entries:[{value:`push`,label:`Push`,direction:`lrud`},{value:`cover`,label:`Cover`,direction:`lrud`},{value:`uncover`,label:`Uncover`,direction:`lrud`},{value:`pan`,label:`Pan`,direction:`lrud`},{value:`conveyor`,label:`Conveyor`}]},{title:`Reveal & Wipe`,entries:[{value:`wipe`,label:`Wipe`,direction:`lrud`},{value:`reveal`,label:`Reveal`,direction:`lrud`},{value:`split`,label:`Split`,direction:`axis`},{value:`blinds`,label:`Blinds`},{value:`wedge`,label:`Wedge`},{value:`wheel`,label:`Wheel`},{value:`circle`,label:`Circle`},{value:`diamond`,label:`Diamond`},{value:`checkerboard`,label:`Checkerboard`}]},{title:`3D & Motion`,entries:[{value:`zoom`,label:`Zoom`},{value:`cube`,label:`Cube`},{value:`flip`,label:`Flip`},{value:`rotate`,label:`Rotate`},{value:`doors`,label:`Doors`},{value:`box`,label:`Box`},{value:`gallery`,label:`Gallery`},{value:`pageCurl`,label:`Page Curl`},{value:`origami`,label:`Origami`},{value:`ferrisWheel`,label:`Ferris Wheel`},{value:`orbit`,label:`Orbit`},{value:`flyThrough`,label:`Fly Through`}]},{title:`Effects`,entries:[{value:`ripple`,label:`Ripple`},{value:`honeycomb`,label:`Honeycomb`},{value:`glitter`,label:`Glitter`},{value:`vortex`,label:`Vortex`},{value:`shred`,label:`Shred`},{value:`fracture`,label:`Fracture`},{value:`crush`,label:`Crush`},{value:`prestige`,label:`Prestige`},{value:`curtains`,label:`Curtains`},{value:`drape`,label:`Drape`},{value:`wind`,label:`Wind`},{value:`fallOver`,label:`Fall Over`},{value:`peelOff`,label:`Peel Off`},{value:`airplane`,label:`Airplane`}]}],GU=WU.flatMap(e=>e.entries),KU=new Map(GU.map(e=>[e.value,e])),BCe={lrud:[{value:`left`,label:`Left`},{value:`right`,label:`Right`},{value:`up`,label:`Up`},{value:`down`,label:`Down`}],axis:[{value:`horizontal`,label:`Horizontal`},{value:`vertical`,label:`Vertical`}]};function VCe(e){return KU.get(e)}function qU(e){if(!e)return`None`;let t=KU.get(e);return t?t.label:e.replace(/([A-Z])/g,` $1`).replace(/^./,e=>e.toUpperCase())}var JU=`squisq-transition-flyout-portal`,YU=JU;function XU({value:e,onChange:t,colorScheme:n=`light`,accentColor:r}){let[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)({}),c=(0,X.useRef)(null);nH(i,()=>a(!1),c);let l=()=>{if(!c.current)return;let e=c.current.getBoundingClientRect(),t=document.getElementById(YU),n=t?.getBoundingClientRect()?.width??460,r=t?.scrollHeight??520,i=window.innerWidth,a=window.innerHeight,o=Math.min(Math.max(8,e.left),Math.max(8,i-n-8)),l=a-e.bottom-6-8,u=e.top-6-8,d=l>=r||l>=u,f=d?e.bottom+6:Math.max(8,e.top-6-Math.min(r,u));s({position:`fixed`,top:f,left:o,maxHeight:Math.max(140,d?l:u),zIndex:9999})},u=()=>{l(),a(e=>!e)};(0,X.useEffect)(()=>{if(!i)return;let e=e=>{let t=e.target,n=c.current?.contains(t),r=document.getElementById(YU)?.contains(t);!n&&!r&&a(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[i]),(0,X.useEffect)(()=>{if(!i)return;requestAnimationFrame(l);let e=()=>l();return window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e)}},[i]);let d=i?(0,Gi.createPortal)((0,Z.jsx)(HCe,{style:{...o,...ZU(r)},value:e,onChange:t,colorScheme:n}),document.body):null;return(0,Z.jsxs)(`div`,{className:`squisq-transition-picker`,"data-theme":n,style:ZU(r),children:[(0,Z.jsxs)(`button`,{ref:c,type:`button`,className:`squisq-transition-picker-trigger${i?` squisq-transition-picker-trigger--open`:``}`,onClick:u,"aria-haspopup":`menu`,"aria-expanded":i,title:`Block transition`,children:[(0,Z.jsx)(`span`,{className:`squisq-transition-picker-trigger-label`,children:`Transition:`}),(0,Z.jsx)(`span`,{className:`squisq-transition-picker-trigger-value`,children:qU(e.type)}),(0,Z.jsx)(`svg`,{width:`10`,height:`10`,viewBox:`0 0 10 10`,"aria-hidden":`true`,children:(0,Z.jsx)(`path`,{d:`M2 3.5l3 3 3-3`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,fill:`none`})})]}),d]})}function HCe({style:e,value:t,onChange:n,colorScheme:r}){let[i,a]=(0,X.useState)(``),o=(0,X.useRef)(null);(0,X.useEffect)(()=>{o.current?.focus()},[]);let s=i.trim().toLowerCase(),c=s.length>0,l=(0,X.useMemo)(()=>c?GU.filter(e=>e.label.toLowerCase().includes(s)||e.value.toLowerCase().includes(s)):null,[c,s]),u=VCe(t.type),d=e=>{if(!e){n({...AU});return}n({type:e.value,direction:e.direction?t.direction:``,duration:t.duration})},f=e=>{n({...t,direction:t.direction===e?``:e})},p=e=>{n({...t,duration:e.trim()})};return(0,Z.jsxs)(`div`,{id:YU,className:`squisq-transition-flyout`,"data-theme":r,role:`menu`,style:e,children:[(0,Z.jsx)(`div`,{className:`squisq-transition-flyout-search`,children:(0,Z.jsx)(`input`,{ref:o,type:`search`,className:`squisq-transition-flyout-search-input`,placeholder:`Search transitions…`,value:i,onChange:e=>a(e.target.value),"aria-label":`Search transitions`})}),(0,Z.jsxs)(`div`,{className:`squisq-transition-flyout-list`,children:[(0,Z.jsx)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":t.type===``,className:`squisq-transition-option${t.type===``?` squisq-transition-option--selected`:``}`,onClick:()=>d(null),children:`None`}),c?l&&l.length>0?(0,Z.jsx)(`div`,{className:`squisq-transition-flyout-grid`,children:l.map(e=>(0,Z.jsx)(QU,{entry:e,selected:t.type===e.value,direction:t.type===e.value?t.direction:void 0,onSelect:()=>d(e)},e.value))}):(0,Z.jsxs)(`div`,{className:`squisq-transition-flyout-empty`,children:[`No transitions match “`,i,`”.`]}):WU.map(e=>(0,Z.jsxs)(`div`,{className:`squisq-transition-flyout-group`,children:[(0,Z.jsx)(`h4`,{className:`squisq-transition-flyout-group-title`,children:e.title}),(0,Z.jsx)(`div`,{className:`squisq-transition-flyout-grid`,children:e.entries.map(e=>(0,Z.jsx)(QU,{entry:e,selected:t.type===e.value,direction:t.type===e.value?t.direction:void 0,onSelect:()=>d(e)},e.value))})]},e.title))]}),t.type&&(0,Z.jsxs)(`div`,{className:`squisq-transition-flyout-controls`,children:[u?.direction&&(0,Z.jsxs)(`div`,{className:`squisq-transition-flyout-control`,children:[(0,Z.jsx)(`span`,{className:`squisq-transition-flyout-control-label`,children:`Direction`}),(0,Z.jsx)(`div`,{className:`squisq-transition-direction-row`,children:BCe[u.direction].map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`squisq-transition-direction-button${t.direction===e.value?` squisq-transition-direction-button--selected`:``}`,onClick:()=>f(e.value),children:e.label},e.value))})]}),(0,Z.jsxs)(`div`,{className:`squisq-transition-flyout-control`,children:[(0,Z.jsx)(`span`,{className:`squisq-transition-flyout-control-label`,children:`Duration`}),(0,Z.jsxs)(`div`,{className:`squisq-transition-duration-row`,children:[(0,Z.jsx)(`input`,{type:`number`,min:`0`,step:`0.1`,className:`squisq-transition-duration-input`,placeholder:`0.7`,value:t.duration,onChange:e=>p(e.target.value),"aria-label":`Transition duration in seconds`}),(0,Z.jsx)(`span`,{className:`squisq-transition-duration-unit`,children:`sec`})]})]})]})]})}function ZU(e){return e?{"--squisq-block-props-accent":e}:{}}function QU({entry:e,selected:t,direction:n,onSelect:r}){let[i,a]=(0,X.useState)(!1),o=i&&e.value?Gt(e.value,!0,UCe(n)):``;return(0,Z.jsx)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":t,className:`squisq-transition-option${t?` squisq-transition-option--selected`:``}`,onClick:r,onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),children:(0,Z.jsx)(`span`,{className:`squisq-transition-option-label ${o}`,children:e.label})})}function UCe(e){return e||void 0}function $U(e,t,n){if(!e)return``;let r=Object.prototype.hasOwnProperty.call(e,t)?e[t]:e[n];return typeof r==`string`?r:``}var WCe=[{key:``,label:`Default (Standard)`},{key:`standard`,label:`Standard`},{key:`social`,label:`Social`}];function GCe({markdownSource:e,onSave:t,onClose:n}){let r=(0,X.useMemo)(()=>Cr(e),[e]),i=r.frontmatter,a=(0,X.useMemo)(()=>An(r),[r]),o=typeof i?.title==`string`?i.title:``,s=Fn(i)??``,c=DH($U(i,OH.transform.canonical,OH.transform.legacy))??``,l=$U(i,OH.captions.canonical,OH.captions.legacy),[u,d]=(0,X.useState)(o),[f,p]=(0,X.useState)(s),[m,h]=(0,X.useState)(c),[g,_]=(0,X.useState)(l),v=(0,X.useRef)(null),y=(0,X.useRef)(null),b=(0,X.useRef)(null),x=(0,X.useId)();ux({rootRef:v,dialogRef:y,initialFocusRef:b,onClose:n});let S=(0,X.useCallback)(e=>{e.target===e.currentTarget&&n()},[n]),C=(0,X.useMemo)(()=>[{key:``,label:`None`},...Jr().map(e=>({key:e.id,label:e.name}))],[]);return(0,Z.jsx)(`div`,{ref:v,className:`squisq-doc-settings-overlay`,onMouseDown:S,children:(0,Z.jsxs)(`form`,{ref:y,className:`squisq-doc-settings-dialog`,onSubmit:(0,X.useCallback)(n=>{n.preventDefault();let r=u.trim();t(zn(e,{title:!r||a&&r===a?null:r,[OH.theme.canonical]:AH(f||kH.theme,kH.theme),[OH.theme.legacy[0]]:null,[OH.theme.legacy[1]]:null,[OH.transform.canonical]:AH(m,kH.transform),[OH.transform.legacy]:null,[OH.captions.canonical]:AH(g||kH.captions,kH.captions),[OH.captions.legacy]:null}))},[u,f,m,g,a,e,t]),role:`dialog`,"aria-modal":`true`,"aria-labelledby":x,tabIndex:-1,children:[(0,Z.jsxs)(`div`,{className:`squisq-doc-settings-header`,children:[(0,Z.jsx)(`h2`,{id:x,className:`squisq-doc-settings-title`,children:`Document settings`}),(0,Z.jsx)(`button`,{type:`button`,className:`squisq-doc-settings-close`,onClick:n,"aria-label":`Close`,children:`×`})]}),(0,Z.jsxs)(`div`,{className:`squisq-doc-settings-body`,children:[(0,Z.jsxs)(`div`,{className:`squisq-doc-settings-field`,children:[(0,Z.jsx)(`label`,{className:`squisq-doc-settings-label`,htmlFor:`squisq-doc-settings-title`,children:`Title`}),(0,Z.jsx)(`input`,{ref:b,id:`squisq-doc-settings-title`,type:`text`,className:`squisq-doc-settings-input`,value:u,onChange:e=>d(e.target.value),placeholder:a??`Document title`,spellCheck:!0}),a?(0,Z.jsxs)(`span`,{className:`squisq-doc-settings-hint`,children:[`Defaults to `,(0,Z.jsx)(`strong`,{children:a}),` — leave blank to use it.`]}):(0,Z.jsx)(`span`,{className:`squisq-doc-settings-hint`,children:`No title heading found — set one here or add an H1 to the document.`})]}),(0,Z.jsxs)(`div`,{className:`squisq-doc-settings-field`,children:[(0,Z.jsx)(`span`,{className:`squisq-doc-settings-label`,children:`Theme`}),(0,Z.jsx)(lH,{value:f,onChange:p,includeDefault:!0,variant:`full`,ariaLabel:`Theme`})]}),(0,Z.jsxs)(`div`,{className:`squisq-doc-settings-field`,children:[(0,Z.jsx)(`label`,{className:`squisq-doc-settings-label`,htmlFor:`squisq-doc-settings-transform`,children:`Transform`}),(0,Z.jsx)(`select`,{id:`squisq-doc-settings-transform`,className:`squisq-doc-settings-input`,value:m,onChange:e=>h(e.target.value),children:C.map(e=>(0,Z.jsx)(`option`,{value:e.key,children:e.label},e.key))})]}),(0,Z.jsxs)(`div`,{className:`squisq-doc-settings-field`,children:[(0,Z.jsx)(`label`,{className:`squisq-doc-settings-label`,htmlFor:`squisq-doc-settings-captions`,children:`Captions`}),(0,Z.jsx)(`select`,{id:`squisq-doc-settings-captions`,className:`squisq-doc-settings-input`,value:g,onChange:e=>_(e.target.value),children:WCe.map(e=>(0,Z.jsx)(`option`,{value:e.key,children:e.label},e.key))})]})]}),(0,Z.jsxs)(`div`,{className:`squisq-doc-settings-footer`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`squisq-doc-settings-btn squisq-doc-settings-btn--secondary`,onClick:n,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`submit`,className:`squisq-doc-settings-btn squisq-doc-settings-btn--primary`,children:`Save`})]})]})})}function $(e,t,...n){return{char:e,name:t,keywords:[t,...n].join(` `).toLowerCase()}}var KCe=[{id:`smileys`,label:`Smileys`,icon:`😀`,emojis:[$(`😀`,`grinning`),$(`😃`,`smiley`),$(`😄`,`smile`,`happy`),$(`😁`,`grin`,`beaming`),$(`😆`,`laughing`),$(`😅`,`sweat smile`),$(`🤣`,`rofl`,`rolling laughing`),$(`😂`,`joy`,`laughing tears`),$(`🙂`,`slight smile`),$(`🙃`,`upside down`),$(`😉`,`wink`),$(`😊`,`blush`),$(`😇`,`innocent`,`halo`),$(`🥰`,`smiling hearts`),$(`😍`,`heart eyes`),$(`🤩`,`star struck`),$(`😘`,`kiss`,`blow kiss`),$(`😗`,`kissing`),$(`😚`,`kissing closed eyes`),$(`😙`,`kissing smile`),$(`🥲`,`smiling tear`),$(`😋`,`yum`,`tongue`),$(`😛`,`tongue out`),$(`😜`,`wink tongue`),$(`🤪`,`zany`,`crazy`),$(`😝`,`squint tongue`),$(`🤑`,`money face`),$(`🤗`,`hugging`),$(`🤭`,`hand over mouth`),$(`🤫`,`shushing`),$(`🤔`,`thinking`),$(`🤐`,`zipper mouth`),$(`🤨`,`raised eyebrow`),$(`😐`,`neutral`),$(`😑`,`expressionless`),$(`😶`,`no mouth`),$(`😏`,`smirk`),$(`😒`,`unamused`),$(`🙄`,`eye roll`),$(`😬`,`grimace`),$(`🤥`,`lying`,`pinocchio`),$(`😌`,`relieved`),$(`😔`,`pensive`),$(`😪`,`sleepy`),$(`🤤`,`drool`),$(`😴`,`sleeping`,`zzz`),$(`😷`,`mask`),$(`🤒`,`thermometer face`),$(`🤕`,`head bandage`),$(`🤢`,`nauseated`),$(`🤮`,`vomiting`),$(`🤧`,`sneeze`),$(`🥵`,`hot face`),$(`🥶`,`cold face`),$(`🥴`,`woozy`),$(`😵`,`dizzy`),$(`🤯`,`mind blown`,`exploding head`),$(`🤠`,`cowboy`),$(`🥳`,`partying`),$(`🥸`,`disguised`),$(`😎`,`sunglasses`,`cool`),$(`🤓`,`nerd`,`glasses`),$(`🧐`,`monocle`),$(`😕`,`confused`),$(`😟`,`worried`),$(`🙁`,`slight frown`),$(`☹️`,`frown`),$(`😮`,`open mouth`),$(`😯`,`hushed`),$(`😲`,`astonished`),$(`😳`,`flushed`),$(`🥺`,`pleading`),$(`😦`,`frowning open mouth`),$(`😧`,`anguished`),$(`😨`,`fearful`),$(`😰`,`anxious sweat`),$(`😥`,`sad relieved`),$(`😢`,`cry`),$(`😭`,`sobbing`,`loud cry`),$(`😱`,`screaming`,`shocked`),$(`😖`,`confounded`),$(`😣`,`persevering`),$(`😞`,`disappointed`),$(`😓`,`downcast sweat`),$(`😩`,`weary`),$(`😫`,`tired`),$(`😤`,`triumph`),$(`😡`,`pout`,`red angry`),$(`😠`,`angry`),$(`🤬`,`cursing`,`symbols`),$(`😈`,`smiling devil`),$(`👿`,`angry devil`),$(`💀`,`skull`),$(`💩`,`poop`,`pile`),$(`🤡`,`clown`),$(`👻`,`ghost`),$(`👽`,`alien`),$(`🤖`,`robot`),$(`🎃`,`jack o lantern`,`pumpkin`)]},{id:`people`,label:`People`,icon:`👋`,emojis:[$(`👋`,`wave`,`hello`),$(`🤚`,`raised back hand`),$(`🖐️`,`raised hand fingers`),$(`✋`,`raised hand`,`stop`),$(`🖖`,`vulcan`),$(`👌`,`ok hand`),$(`🤌`,`pinched fingers`),$(`🤏`,`pinching`),$(`✌️`,`peace`),$(`🤞`,`crossed fingers`,`luck`),$(`🤟`,`love you gesture`),$(`🤘`,`rock on`,`horns`),$(`🤙`,`call me`),$(`👈`,`point left`),$(`👉`,`point right`),$(`👆`,`point up`),$(`👇`,`point down`),$(`☝️`,`index up`),$(`👍`,`thumbs up`,`like`),$(`👎`,`thumbs down`,`dislike`),$(`✊`,`raised fist`),$(`👊`,`oncoming fist`,`punch`),$(`🤛`,`left fist`,`bump`),$(`🤜`,`right fist`),$(`👏`,`clap`),$(`🙌`,`raised hands`,`praise`),$(`👐`,`open hands`),$(`🤲`,`palms up`),$(`🤝`,`handshake`),$(`🙏`,`pray`,`thanks`),$(`💪`,`muscle`,`strong`),$(`🦵`,`leg`),$(`🦶`,`foot`),$(`👂`,`ear`),$(`🦻`,`ear hearing aid`),$(`👃`,`nose`),$(`🧠`,`brain`),$(`🫀`,`heart anatomy`),$(`🫁`,`lungs`),$(`🦷`,`tooth`),$(`🦴`,`bone`),$(`👀`,`eyes`),$(`👁️`,`eye`),$(`👅`,`tongue`),$(`👄`,`mouth`),$(`💋`,`lipstick kiss`),$(`👶`,`baby`),$(`🧒`,`child`),$(`👦`,`boy`),$(`👧`,`girl`),$(`🧑`,`person`),$(`👨`,`man`),$(`👩`,`woman`),$(`🧓`,`older person`),$(`👴`,`old man`),$(`👵`,`old woman`),$(`👮`,`police`),$(`🕵️`,`detective`),$(`💂`,`guard`),$(`🧑⚕️`,`health worker`),$(`🧑🎓`,`student`),$(`🧑🏫`,`teacher`),$(`🧑🔧`,`mechanic`),$(`🧑💻`,`technologist`,`developer`),$(`🧑🎨`,`artist`),$(`🧑🚀`,`astronaut`),$(`🧑🚒`,`firefighter`),$(`👷`,`construction worker`),$(`🤴`,`prince`),$(`👸`,`princess`),$(`🦸`,`superhero`),$(`🦹`,`supervillain`),$(`🧙`,`mage`,`wizard`),$(`🧚`,`fairy`),$(`🧛`,`vampire`),$(`🧜`,`merperson`),$(`🧝`,`elf`),$(`🧞`,`genie`),$(`🧟`,`zombie`)]},{id:`nature`,label:`Nature`,icon:`🌿`,emojis:[$(`🐶`,`dog face`),$(`🐱`,`cat face`),$(`🐭`,`mouse`),$(`🐹`,`hamster`),$(`🐰`,`rabbit face`),$(`🦊`,`fox`),$(`🐻`,`bear`),$(`🐼`,`panda`),$(`🐻❄️`,`polar bear`),$(`🐨`,`koala`),$(`🐯`,`tiger face`),$(`🦁`,`lion`),$(`🐮`,`cow face`),$(`🐷`,`pig face`),$(`🐽`,`pig nose`),$(`🐸`,`frog`),$(`🐵`,`monkey face`),$(`🙈`,`see no evil`),$(`🙉`,`hear no evil`),$(`🙊`,`speak no evil`),$(`🐒`,`monkey`),$(`🐔`,`chicken`),$(`🐧`,`penguin`),$(`🐦`,`bird`),$(`🐤`,`baby chick`),$(`🐣`,`hatching chick`),$(`🦆`,`duck`),$(`🦅`,`eagle`),$(`🦉`,`owl`),$(`🦇`,`bat`),$(`🐺`,`wolf`),$(`🐗`,`boar`),$(`🐴`,`horse face`),$(`🦄`,`unicorn`),$(`🐝`,`bee`),$(`🐛`,`bug`),$(`🦋`,`butterfly`),$(`🐌`,`snail`),$(`🐞`,`lady beetle`),$(`🐜`,`ant`),$(`🦂`,`scorpion`),$(`🕷️`,`spider`),$(`🐢`,`turtle`),$(`🐍`,`snake`),$(`🦖`,`trex`),$(`🦕`,`sauropod`),$(`🐙`,`octopus`),$(`🦑`,`squid`),$(`🦐`,`shrimp`),$(`🦞`,`lobster`),$(`🦀`,`crab`),$(`🐡`,`blowfish`),$(`🐠`,`tropical fish`),$(`🐟`,`fish`),$(`🐬`,`dolphin`),$(`🐳`,`spouting whale`),$(`🐋`,`whale`),$(`🦈`,`shark`),$(`🐊`,`crocodile`),$(`🐅`,`tiger`),$(`🐆`,`leopard`),$(`🦓`,`zebra`),$(`🦍`,`gorilla`),$(`🦧`,`orangutan`),$(`🐘`,`elephant`),$(`🦛`,`hippopotamus`),$(`🦏`,`rhinoceros`),$(`🐪`,`camel`),$(`🐫`,`two hump camel`),$(`🦒`,`giraffe`),$(`🦘`,`kangaroo`),$(`🐃`,`water buffalo`),$(`🐂`,`ox`),$(`🐄`,`cow`),$(`🐎`,`horse`),$(`🐖`,`pig`),$(`🐏`,`ram`),$(`🐑`,`ewe`),$(`🦙`,`llama`),$(`🐐`,`goat`),$(`🦌`,`deer`),$(`🐕`,`dog`),$(`🐩`,`poodle`),$(`🦮`,`guide dog`),$(`🐕🦺`,`service dog`),$(`🐈`,`cat`),$(`🐈⬛`,`black cat`),$(`🐓`,`rooster`),$(`🦃`,`turkey`),$(`🦚`,`peacock`),$(`🦜`,`parrot`),$(`🦢`,`swan`),$(`🌲`,`evergreen tree`),$(`🌳`,`deciduous tree`),$(`🌴`,`palm tree`),$(`🌵`,`cactus`),$(`🌷`,`tulip`),$(`🌸`,`cherry blossom`),$(`🌹`,`rose`),$(`🥀`,`wilted flower`),$(`🌺`,`hibiscus`),$(`🌻`,`sunflower`),$(`🌼`,`blossom`),$(`🌱`,`seedling`),$(`🪴`,`potted plant`),$(`🌿`,`herb`),$(`☘️`,`shamrock`),$(`🍀`,`four leaf clover`),$(`🍁`,`maple leaf`),$(`🍂`,`fallen leaf`),$(`🍃`,`leaf wind`),$(`🌞`,`sun face`),$(`☀️`,`sun`),$(`🌝`,`full moon face`),$(`🌚`,`new moon face`),$(`🌛`,`first quarter moon face`),$(`🌜`,`last quarter moon face`),$(`🌙`,`crescent moon`),$(`🌎`,`earth americas`),$(`🌍`,`earth europe africa`),$(`🌏`,`earth asia australia`),$(`🪐`,`ringed planet`),$(`⭐`,`star`),$(`🌟`,`glowing star`),$(`✨`,`sparkles`),$(`⚡`,`lightning`,`bolt`),$(`☄️`,`comet`),$(`🔥`,`fire`),$(`💥`,`collision`,`boom`),$(`🌈`,`rainbow`),$(`☁️`,`cloud`),$(`⛅`,`sun behind cloud`),$(`🌧️`,`rain cloud`),$(`⛈️`,`thunder cloud`),$(`🌩️`,`lightning cloud`),$(`🌨️`,`snow cloud`),$(`❄️`,`snowflake`),$(`⛄`,`snowman`),$(`🌪️`,`tornado`),$(`🌫️`,`fog`),$(`🌊`,`wave`),$(`💧`,`droplet`),$(`💦`,`sweat drops`)]},{id:`food`,label:`Food`,icon:`🍎`,emojis:[$(`🍏`,`green apple`),$(`🍎`,`red apple`),$(`🍐`,`pear`),$(`🍊`,`tangerine`,`orange`),$(`🍋`,`lemon`),$(`🍌`,`banana`),$(`🍉`,`watermelon`),$(`🍇`,`grapes`),$(`🍓`,`strawberry`),$(`🫐`,`blueberries`),$(`🍈`,`melon`),$(`🍒`,`cherries`),$(`🍑`,`peach`),$(`🥭`,`mango`),$(`🍍`,`pineapple`),$(`🥥`,`coconut`),$(`🥝`,`kiwi`),$(`🍅`,`tomato`),$(`🍆`,`eggplant`),$(`🥑`,`avocado`),$(`🥦`,`broccoli`),$(`🥬`,`leafy green`),$(`🥒`,`cucumber`),$(`🌶️`,`pepper`),$(`🫑`,`bell pepper`),$(`🌽`,`corn`),$(`🥕`,`carrot`),$(`🫒`,`olive`),$(`🧄`,`garlic`),$(`🧅`,`onion`),$(`🥔`,`potato`),$(`🍠`,`sweet potato`),$(`🥐`,`croissant`),$(`🥯`,`bagel`),$(`🍞`,`bread`),$(`🥖`,`baguette`),$(`🥨`,`pretzel`),$(`🧀`,`cheese`),$(`🥚`,`egg`),$(`🍳`,`cooking`,`frying`),$(`🧈`,`butter`),$(`🥞`,`pancakes`),$(`🧇`,`waffle`),$(`🥓`,`bacon`),$(`🥩`,`cut of meat`),$(`🍗`,`poultry leg`),$(`🍖`,`meat on bone`),$(`🌭`,`hot dog`),$(`🍔`,`hamburger`),$(`🍟`,`fries`),$(`🍕`,`pizza`),$(`🥪`,`sandwich`),$(`🌮`,`taco`),$(`🌯`,`burrito`),$(`🥙`,`stuffed flatbread`),$(`🧆`,`falafel`),$(`🥗`,`salad`),$(`🥘`,`shallow pan of food`),$(`🍝`,`spaghetti`),$(`🍜`,`steaming bowl`),$(`🍲`,`pot of food`),$(`🍛`,`curry`),$(`🍣`,`sushi`),$(`🍱`,`bento`),$(`🥟`,`dumpling`),$(`🍤`,`shrimp tempura`),$(`🍙`,`rice ball`),$(`🍚`,`rice`),$(`🍘`,`rice cracker`),$(`🥠`,`fortune cookie`),$(`🥮`,`moon cake`),$(`🍢`,`oden`),$(`🍡`,`dango`),$(`🦪`,`oyster`),$(`🍦`,`soft serve`),$(`🍧`,`shaved ice`),$(`🍨`,`ice cream`),$(`🍩`,`doughnut`),$(`🍪`,`cookie`),$(`🎂`,`birthday cake`),$(`🍰`,`shortcake`),$(`🧁`,`cupcake`),$(`🥧`,`pie`),$(`🍫`,`chocolate bar`),$(`🍬`,`candy`),$(`🍭`,`lollipop`),$(`🍮`,`custard`),$(`🍯`,`honey`),$(`🍼`,`baby bottle`),$(`🥛`,`milk`),$(`☕`,`coffee`),$(`🫖`,`teapot`),$(`🍵`,`tea`),$(`🍶`,`sake`),$(`🍾`,`champagne`),$(`🍷`,`wine glass`),$(`🍸`,`cocktail`),$(`🍹`,`tropical drink`),$(`🍺`,`beer`),$(`🍻`,`clink beers`),$(`🥂`,`clink champagne`),$(`🥃`,`tumbler`),$(`🥤`,`cup straw`),$(`🧋`,`bubble tea`),$(`🧃`,`juice box`),$(`🧉`,`mate`),$(`🧊`,`ice cube`)]},{id:`travel`,label:`Travel`,icon:`✈️`,emojis:[$(`🚗`,`car`),$(`🚕`,`taxi`),$(`🚙`,`suv`),$(`🚌`,`bus`),$(`🚎`,`trolleybus`),$(`🏎️`,`racing car`),$(`🚓`,`police car`),$(`🚑`,`ambulance`),$(`🚒`,`fire engine`),$(`🚐`,`minibus`),$(`🛻`,`pickup truck`),$(`🚚`,`delivery truck`),$(`🚛`,`semi truck`),$(`🚜`,`tractor`),$(`🛵`,`motor scooter`),$(`🏍️`,`motorcycle`),$(`🚲`,`bicycle`),$(`🛴`,`kick scooter`),$(`🛹`,`skateboard`),$(`🛼`,`roller skate`),$(`🚂`,`locomotive`),$(`🚃`,`railway car`),$(`🚄`,`high speed train`),$(`🚅`,`bullet train`),$(`🚆`,`train`),$(`🚇`,`metro`),$(`🚈`,`light rail`),$(`🚉`,`station`),$(`🚝`,`monorail`),$(`🚞`,`mountain railway`),$(`🚋`,`tram`),$(`🚊`,`tram car`),$(`🚟`,`suspension railway`),$(`🚠`,`mountain cableway`),$(`🚡`,`aerial tramway`),$(`✈️`,`airplane`),$(`🛫`,`departing`),$(`🛬`,`arriving`),$(`🛩️`,`small airplane`),$(`🚁`,`helicopter`),$(`🛸`,`flying saucer`),$(`🚀`,`rocket`),$(`🛰️`,`satellite`),$(`🛶`,`canoe`),$(`⛵`,`sailboat`),$(`🚤`,`speedboat`),$(`🛥️`,`motor boat`),$(`🛳️`,`passenger ship`),$(`⛴️`,`ferry`),$(`🚢`,`ship`),$(`⚓`,`anchor`),$(`🪝`,`hook`),$(`⛽`,`fuel pump`),$(`🚧`,`construction`),$(`🚦`,`traffic light`),$(`🚥`,`horizontal traffic light`),$(`🗺️`,`map`),$(`🗿`,`moai`),$(`🗽`,`statue of liberty`),$(`🗼`,`tokyo tower`),$(`🏰`,`castle`),$(`🏯`,`japanese castle`),$(`🏟️`,`stadium`),$(`🎡`,`ferris wheel`),$(`🎢`,`roller coaster`),$(`🎠`,`carousel`),$(`⛲`,`fountain`),$(`⛱️`,`umbrella ground`),$(`🏖️`,`beach umbrella`),$(`🏝️`,`desert island`),$(`🏜️`,`desert`),$(`🌋`,`volcano`),$(`⛰️`,`mountain`),$(`🏔️`,`snow mountain`),$(`🗻`,`mount fuji`),$(`🏕️`,`camping`),$(`⛺`,`tent`),$(`🛖`,`hut`),$(`🏠`,`house`),$(`🏡`,`house with garden`),$(`🏘️`,`houses`),$(`🏚️`,`derelict house`),$(`🏗️`,`construction site`),$(`🏭`,`factory`),$(`🏢`,`office building`),$(`🏬`,`department store`),$(`🏣`,`japanese post office`),$(`🏤`,`post office`),$(`🏥`,`hospital`),$(`🏦`,`bank`),$(`🏨`,`hotel`),$(`🏪`,`convenience store`),$(`🏫`,`school`),$(`🏩`,`love hotel`),$(`💒`,`wedding`),$(`🏛️`,`classical building`),$(`⛪`,`church`),$(`🕌`,`mosque`),$(`🛕`,`hindu temple`),$(`🕍`,`synagogue`),$(`⛩️`,`shrine`),$(`🌁`,`foggy city`),$(`🌃`,`night stars`),$(`🌄`,`sunrise mountains`),$(`🌅`,`sunrise`),$(`🌆`,`cityscape dusk`),$(`🌇`,`sunset`),$(`🌉`,`bridge night`),$(`♨️`,`hot springs`),$(`🎑`,`moon viewing`),$(`🏞️`,`national park`)]},{id:`activities`,label:`Activities`,icon:`⚽`,emojis:[$(`⚽`,`soccer`),$(`🏀`,`basketball`),$(`🏈`,`football`),$(`⚾`,`baseball`),$(`🥎`,`softball`),$(`🎾`,`tennis`),$(`🏐`,`volleyball`),$(`🏉`,`rugby`),$(`🥏`,`flying disc`,`frisbee`),$(`🎱`,`pool`,`eight ball`),$(`🪀`,`yoyo`),$(`🏓`,`ping pong`),$(`🏸`,`badminton`),$(`🏒`,`ice hockey`),$(`🏑`,`field hockey`),$(`🥍`,`lacrosse`),$(`🏏`,`cricket`),$(`🪃`,`boomerang`),$(`🥅`,`goal net`),$(`⛳`,`flag in hole`,`golf`),$(`🪁`,`kite`),$(`🏹`,`bow and arrow`),$(`🎣`,`fishing`),$(`🤿`,`diving mask`),$(`🥊`,`boxing glove`),$(`🥋`,`martial arts`),$(`🎽`,`running shirt`),$(`🛹`,`skateboard`),$(`🛼`,`roller skate`),$(`🛷`,`sled`),$(`⛸️`,`ice skate`),$(`🥌`,`curling stone`),$(`🎿`,`skis`),$(`⛷️`,`skier`),$(`🏂`,`snowboarder`),$(`🪂`,`parachute`),$(`🏋️`,`weight lifting`),$(`🤼`,`wrestling`),$(`🤸`,`cartwheel`),$(`⛹️`,`bouncing ball`),$(`🤺`,`fencing`),$(`🤾`,`handball`),$(`🏌️`,`golfing`),$(`🏇`,`horse racing`),$(`🧘`,`meditation`,`yoga`),$(`🏄`,`surfing`),$(`🏊`,`swimming`),$(`🤽`,`water polo`),$(`🚣`,`rowing`),$(`🧗`,`climbing`),$(`🚵`,`mountain biker`),$(`🚴`,`biker`),$(`🏆`,`trophy`),$(`🥇`,`gold medal`),$(`🥈`,`silver medal`),$(`🥉`,`bronze medal`),$(`🏅`,`sports medal`),$(`🎖️`,`military medal`),$(`🏵️`,`rosette`),$(`🎗️`,`reminder ribbon`),$(`🎫`,`ticket`),$(`🎟️`,`admission tickets`),$(`🎪`,`circus tent`),$(`🎭`,`theatre masks`),$(`🎨`,`art palette`),$(`🎬`,`clapper board`),$(`🎤`,`microphone`),$(`🎧`,`headphone`),$(`🎼`,`musical score`),$(`🎹`,`piano`),$(`🥁`,`drum`),$(`🪘`,`long drum`),$(`🎷`,`saxophone`),$(`🎺`,`trumpet`),$(`🎸`,`guitar`),$(`🪕`,`banjo`),$(`🎻`,`violin`),$(`🪗`,`accordion`),$(`🎲`,`game die`),$(`♟️`,`chess pawn`),$(`🎯`,`bullseye`,`dart`),$(`🎳`,`bowling`),$(`🎮`,`video game`),$(`🎰`,`slot machine`),$(`🧩`,`jigsaw`)]},{id:`objects`,label:`Objects`,icon:`💡`,emojis:[$(`💡`,`light bulb`,`idea`),$(`🔦`,`flashlight`),$(`🕯️`,`candle`),$(`🪔`,`diya lamp`),$(`🧯`,`fire extinguisher`),$(`🛢️`,`oil drum`),$(`💸`,`money wings`),$(`💵`,`dollar`),$(`💴`,`yen banknote`),$(`💶`,`euro banknote`),$(`💷`,`pound banknote`),$(`💰`,`money bag`),$(`💳`,`credit card`),$(`💎`,`gem`),$(`⚖️`,`balance scale`),$(`🪜`,`ladder`),$(`🧰`,`toolbox`),$(`🔧`,`wrench`),$(`🪛`,`screwdriver`),$(`🔨`,`hammer`),$(`⚒️`,`hammer and pick`),$(`🛠️`,`hammer and wrench`),$(`⛏️`,`pick`),$(`🪚`,`saw`),$(`🔩`,`nut and bolt`),$(`⚙️`,`gear`),$(`🧱`,`brick`),$(`⛓️`,`chains`),$(`🧲`,`magnet`),$(`🔫`,`water pistol`),$(`💣`,`bomb`),$(`🧨`,`firecracker`),$(`🪓`,`axe`),$(`🔪`,`kitchen knife`),$(`🗡️`,`dagger`),$(`⚔️`,`crossed swords`),$(`🛡️`,`shield`),$(`🚬`,`cigarette`),$(`⚰️`,`coffin`),$(`🪦`,`headstone`),$(`⚱️`,`urn`),$(`🏺`,`amphora`),$(`🔮`,`crystal ball`),$(`📿`,`prayer beads`),$(`🧿`,`nazar amulet`),$(`💈`,`barber pole`),$(`⚗️`,`alembic`),$(`🔭`,`telescope`),$(`🔬`,`microscope`),$(`🕳️`,`hole`),$(`🩹`,`bandage`),$(`🩺`,`stethoscope`),$(`💊`,`pill`),$(`💉`,`syringe`),$(`🩸`,`blood drop`),$(`🧬`,`dna`),$(`🦠`,`microbe`),$(`🧫`,`petri dish`),$(`🧪`,`test tube`),$(`🌡️`,`thermometer`),$(`🧹`,`broom`),$(`🪠`,`plunger`),$(`🧺`,`basket`),$(`🧻`,`roll of paper`),$(`🚽`,`toilet`),$(`🚰`,`tap water`),$(`🚿`,`shower`),$(`🛁`,`bathtub`),$(`🛀`,`person bathing`),$(`🧼`,`soap`),$(`🪥`,`toothbrush`),$(`🪒`,`razor`),$(`🧽`,`sponge`),$(`🪣`,`bucket`),$(`🧴`,`lotion`),$(`🛎️`,`bellhop bell`),$(`🔑`,`key`),$(`🗝️`,`old key`),$(`🚪`,`door`),$(`🪑`,`chair`),$(`🛋️`,`couch`),$(`🛏️`,`bed`),$(`🛌`,`person in bed`),$(`🧸`,`teddy bear`),$(`🖼️`,`framed picture`),$(`🪞`,`mirror`),$(`🪟`,`window`),$(`🛍️`,`shopping bags`),$(`🛒`,`cart`),$(`🎁`,`gift`),$(`🎀`,`ribbon`),$(`🎊`,`confetti ball`),$(`🎉`,`party popper`,`celebration`),$(`🎈`,`balloon`),$(`🪄`,`magic wand`),$(`📱`,`mobile`),$(`📲`,`incoming phone`),$(`☎️`,`phone`),$(`📞`,`phone receiver`),$(`📟`,`pager`),$(`📠`,`fax`),$(`🔋`,`battery`),$(`🔌`,`plug`),$(`💻`,`laptop`),$(`🖥️`,`desktop`),$(`🖨️`,`printer`),$(`⌨️`,`keyboard`),$(`🖱️`,`mouse`),$(`🖲️`,`trackball`),$(`💽`,`minidisc`),$(`💾`,`floppy`,`save`),$(`💿`,`cd`),$(`📀`,`dvd`),$(`🧮`,`abacus`),$(`🎥`,`movie camera`),$(`🎞️`,`film frames`),$(`📽️`,`film projector`),$(`📺`,`television`),$(`📷`,`camera`),$(`📸`,`camera flash`),$(`📹`,`video camera`),$(`📼`,`videocassette`),$(`🔍`,`magnifying left`),$(`🔎`,`magnifying right`),$(`🕰️`,`mantelpiece clock`),$(`⏰`,`alarm clock`),$(`⏱️`,`stopwatch`),$(`⏲️`,`timer`),$(`⏳`,`hourglass flowing`),$(`⌛`,`hourglass done`),$(`📡`,`satellite antenna`),$(`📚`,`books`),$(`📖`,`open book`),$(`🔖`,`bookmark`),$(`🏷️`,`tag`),$(`📰`,`newspaper`),$(`🗞️`,`rolled newspaper`),$(`📄`,`page`),$(`📃`,`page curl`),$(`📑`,`bookmark tabs`),$(`📜`,`scroll`),$(`📋`,`clipboard`),$(`📅`,`calendar`),$(`📆`,`tear off calendar`),$(`🗓️`,`spiral calendar`),$(`📇`,`card index`),$(`🗃️`,`card file box`),$(`🗳️`,`ballot box`),$(`🗄️`,`file cabinet`),$(`📂`,`open folder`),$(`📁`,`folder`),$(`📊`,`bar chart`),$(`📈`,`chart up`),$(`📉`,`chart down`),$(`📌`,`pushpin`),$(`📍`,`round pushpin`),$(`📎`,`paperclip`),$(`🖇️`,`linked paperclips`),$(`📏`,`straight ruler`),$(`📐`,`triangular ruler`),$(`✂️`,`scissors`),$(`🖊️`,`pen`),$(`🖋️`,`fountain pen`),$(`✒️`,`black nib`),$(`🖌️`,`paintbrush`),$(`🖍️`,`crayon`),$(`📝`,`memo`,`note`),$(`✏️`,`pencil`),$(`🔏`,`locked with pen`),$(`🔐`,`locked with key`),$(`🔒`,`locked`),$(`🔓`,`unlocked`),$(`🧿`,`amulet`),$(`🪬`,`hamsa`)]},{id:`symbols`,label:`Symbols`,icon:`❤️`,emojis:[$(`❤️`,`red heart`),$(`🧡`,`orange heart`),$(`💛`,`yellow heart`),$(`💚`,`green heart`),$(`💙`,`blue heart`),$(`💜`,`purple heart`),$(`🖤`,`black heart`),$(`🤍`,`white heart`),$(`🤎`,`brown heart`),$(`💔`,`broken heart`),$(`❣️`,`heart exclamation`),$(`💕`,`two hearts`),$(`💞`,`revolving hearts`),$(`💓`,`beating heart`),$(`💗`,`growing heart`),$(`💖`,`sparkling heart`),$(`💘`,`heart arrow`),$(`💝`,`heart with ribbon`),$(`💟`,`heart decoration`),$(`☮️`,`peace`),$(`✝️`,`cross`),$(`☪️`,`star and crescent`),$(`🕉️`,`om`),$(`☸️`,`wheel of dharma`),$(`✡️`,`star of david`),$(`🔯`,`six pointed star`),$(`🕎`,`menorah`),$(`☯️`,`yin yang`),$(`☦️`,`orthodox cross`),$(`🛐`,`place of worship`),$(`⛎`,`ophiuchus`),$(`♈`,`aries`),$(`♉`,`taurus`),$(`♊`,`gemini`),$(`♋`,`cancer`),$(`♌`,`leo`),$(`♍`,`virgo`),$(`♎`,`libra`),$(`♏`,`scorpio`),$(`♐`,`sagittarius`),$(`♑`,`capricorn`),$(`♒`,`aquarius`),$(`♓`,`pisces`),$(`🆔`,`id`),$(`⚛️`,`atom`),$(`🉑`,`accept`),$(`☢️`,`radioactive`),$(`☣️`,`biohazard`),$(`📴`,`phone off`),$(`📳`,`vibration`),$(`🈶`,`not free`),$(`🈚`,`free`),$(`🈸`,`application`),$(`🈺`,`open for business`),$(`🈷️`,`monthly amount`),$(`✴️`,`eight pointed star`),$(`🆚`,`vs`),$(`💮`,`white flower`),$(`🉐`,`bargain`),$(`㊙️`,`secret`),$(`㊗️`,`congratulations`),$(`🈴`,`passing grade`),$(`🈵`,`no vacancy`),$(`🈹`,`discount`),$(`🈲`,`prohibited`),$(`🅰️`,`a button`),$(`🅱️`,`b button`),$(`🆎`,`ab button`),$(`🆑`,`cl button`),$(`🅾️`,`o button`),$(`🆘`,`sos`),$(`❌`,`cross mark`),$(`⭕`,`circle`),$(`🛑`,`stop sign`),$(`⛔`,`no entry`),$(`📛`,`name badge`),$(`🚫`,`prohibited sign`),$(`💯`,`100`,`hundred`),$(`💢`,`anger`),$(`♨️`,`hot springs`),$(`🚷`,`no pedestrians`),$(`🚯`,`no littering`),$(`🚳`,`no bicycles`),$(`🚱`,`non potable`),$(`🔞`,`no minors`),$(`📵`,`no phones`),$(`🚭`,`no smoking`),$(`❗`,`exclamation`),$(`❕`,`white exclamation`),$(`❓`,`question`),$(`❔`,`white question`),$(`‼️`,`double exclamation`),$(`⁉️`,`exclamation question`),$(`🔅`,`dim`),$(`🔆`,`bright`),$(`〽️`,`part alternation`),$(`⚠️`,`warning`),$(`🚸`,`children crossing`),$(`🔱`,`trident`),$(`⚜️`,`fleur de lis`),$(`🔰`,`beginner`),$(`♻️`,`recycle`),$(`✅`,`check mark`),$(`🈯`,`reserved`),$(`💹`,`chart with yen`),$(`❇️`,`sparkle`),$(`✳️`,`eight spoked asterisk`),$(`❎`,`cross box`),$(`🌐`,`globe meridians`),$(`💠`,`diamond`),$(`Ⓜ️`,`circled m`),$(`🌀`,`cyclone`),$(`💤`,`zzz`,`sleep`),$(`🏧`,`atm`),$(`🚾`,`water closet`),$(`♿`,`wheelchair`),$(`🅿️`,`parking`),$(`🛗`,`elevator`),$(`🈳`,`vacancy`),$(`🈂️`,`service`),$(`🛂`,`passport control`),$(`🛃`,`customs`),$(`🛄`,`baggage claim`),$(`🛅`,`left luggage`),$(`🚹`,`mens`),$(`🚺`,`womens`),$(`🚼`,`baby symbol`),$(`🚻`,`restroom`),$(`🚮`,`litter bin`),$(`🎦`,`cinema`),$(`📶`,`antenna bars`),$(`🈁`,`here`),$(`🔣`,`input symbols`),$(`ℹ️`,`info`),$(`🔤`,`input latin`),$(`🔡`,`input lowercase`),$(`🔠`,`input uppercase`),$(`🆖`,`ng`),$(`🆗`,`ok`),$(`🆙`,`up`),$(`🆒`,`cool`),$(`🆕`,`new`),$(`🆓`,`free`),$(`0️⃣`,`keycap 0`),$(`1️⃣`,`keycap 1`),$(`2️⃣`,`keycap 2`),$(`3️⃣`,`keycap 3`),$(`4️⃣`,`keycap 4`),$(`5️⃣`,`keycap 5`),$(`6️⃣`,`keycap 6`),$(`7️⃣`,`keycap 7`),$(`8️⃣`,`keycap 8`),$(`9️⃣`,`keycap 9`),$(`🔟`,`keycap 10`),$(`🔢`,`input numbers`),$(`#️⃣`,`keycap hash`),$(`*️⃣`,`keycap asterisk`),$(`▶️`,`play`),$(`⏸️`,`pause`),$(`⏯️`,`play or pause`),$(`⏹️`,`stop button`),$(`⏺️`,`record`),$(`⏭️`,`next track`),$(`⏮️`,`last track`),$(`⏩`,`fast forward`),$(`⏪`,`fast reverse`),$(`⏫`,`fast up`),$(`⏬`,`fast down`),$(`◀️`,`reverse`),$(`🔼`,`up button`),$(`🔽`,`down button`),$(`➡️`,`right arrow`),$(`⬅️`,`left arrow`),$(`⬆️`,`up arrow`),$(`⬇️`,`down arrow`),$(`↗️`,`up right arrow`),$(`↘️`,`down right arrow`),$(`↙️`,`down left arrow`),$(`↖️`,`up left arrow`),$(`↕️`,`up down arrow`),$(`↔️`,`left right arrow`),$(`↪️`,`right arrow curving`),$(`↩️`,`left arrow curving`),$(`⤴️`,`arrow up curve`),$(`⤵️`,`arrow down curve`),$(`🔀`,`shuffle`),$(`🔁`,`repeat`),$(`🔂`,`repeat single`),$(`🔄`,`arrows ccw`),$(`🔃`,`arrows cw`),$(`🎵`,`note`),$(`🎶`,`notes`),$(`➕`,`plus`),$(`➖`,`minus`),$(`➗`,`divide`),$(`✖️`,`multiply`),$(`🟰`,`equals`),$(`♾️`,`infinity`),$(`💲`,`dollar`),$(`💱`,`currency exchange`),$(`™️`,`tm`),$(`©️`,`copyright`),$(`®️`,`registered`),$(`〰️`,`wavy`),$(`➰`,`curly loop`),$(`➿`,`double curly loop`),$(`🔚`,`end`),$(`🔙`,`back`),$(`🔛`,`on`),$(`🔝`,`top`),$(`🔜`,`soon`),$(`✔️`,`check`),$(`☑️`,`ballot box check`),$(`🔘`,`radio button`),$(`🔴`,`red circle`),$(`🟠`,`orange circle`),$(`🟡`,`yellow circle`),$(`🟢`,`green circle`),$(`🔵`,`blue circle`),$(`🟣`,`purple circle`),$(`🟤`,`brown circle`),$(`⚫`,`black circle`),$(`⚪`,`white circle`),$(`🟥`,`red square`),$(`🟧`,`orange square`),$(`🟨`,`yellow square`),$(`🟩`,`green square`),$(`🟦`,`blue square`),$(`🟪`,`purple square`),$(`🟫`,`brown square`),$(`⬛`,`black square`),$(`⬜`,`white square`),$(`◼️`,`medium black square`),$(`◻️`,`medium white square`),$(`◾`,`small black square`),$(`◽`,`small white square`),$(`▪️`,`tiny black square`),$(`▫️`,`tiny white square`),$(`🔶`,`large orange diamond`),$(`🔷`,`large blue diamond`),$(`🔸`,`small orange diamond`),$(`🔹`,`small blue diamond`),$(`🔺`,`red triangle up`),$(`🔻`,`red triangle down`),$(`🔳`,`white square button`),$(`🔲`,`black square button`)]},{id:`flags`,label:`Flags`,icon:`🏳️`,emojis:[$(`🏁`,`checkered flag`),$(`🚩`,`triangular flag`),$(`🎌`,`crossed flags`),$(`🏴`,`black flag`),$(`🏳️`,`white flag`),$(`🏳️🌈`,`rainbow flag`),$(`🏳️⚧️`,`transgender flag`),$(`🏴☠️`,`pirate flag`),$(`🇺🇸`,`united states`,`us`,`usa`),$(`🇨🇦`,`canada`),$(`🇲🇽`,`mexico`),$(`🇬🇧`,`united kingdom`,`uk`),$(`🇮🇪`,`ireland`),$(`🇫🇷`,`france`),$(`🇩🇪`,`germany`),$(`🇮🇹`,`italy`),$(`🇪🇸`,`spain`),$(`🇵🇹`,`portugal`),$(`🇳🇱`,`netherlands`),$(`🇧🇪`,`belgium`),$(`🇨🇭`,`switzerland`),$(`🇦🇹`,`austria`),$(`🇸🇪`,`sweden`),$(`🇳🇴`,`norway`),$(`🇩🇰`,`denmark`),$(`🇫🇮`,`finland`),$(`🇮🇸`,`iceland`),$(`🇵🇱`,`poland`),$(`🇨🇿`,`czech republic`),$(`🇸🇰`,`slovakia`),$(`🇭🇺`,`hungary`),$(`🇷🇴`,`romania`),$(`🇧🇬`,`bulgaria`),$(`🇬🇷`,`greece`),$(`🇹🇷`,`turkey`),$(`🇷🇺`,`russia`),$(`🇺🇦`,`ukraine`),$(`🇨🇳`,`china`),$(`🇯🇵`,`japan`),$(`🇰🇷`,`south korea`,`korea`),$(`🇮🇳`,`india`),$(`🇵🇰`,`pakistan`),$(`🇧🇩`,`bangladesh`),$(`🇹🇭`,`thailand`),$(`🇻🇳`,`vietnam`),$(`🇮🇩`,`indonesia`),$(`🇵🇭`,`philippines`),$(`🇲🇾`,`malaysia`),$(`🇸🇬`,`singapore`),$(`🇦🇺`,`australia`),$(`🇳🇿`,`new zealand`),$(`🇧🇷`,`brazil`),$(`🇦🇷`,`argentina`),$(`🇨🇱`,`chile`),$(`🇨🇴`,`colombia`),$(`🇵🇪`,`peru`),$(`🇻🇪`,`venezuela`),$(`🇿🇦`,`south africa`),$(`🇪🇬`,`egypt`),$(`🇲🇦`,`morocco`),$(`🇰🇪`,`kenya`),$(`🇳🇬`,`nigeria`),$(`🇸🇦`,`saudi arabia`),$(`🇦🇪`,`uae`),$(`🇮🇱`,`israel`),$(`🇮🇷`,`iran`),$(`🇮🇶`,`iraq`),$(`🇸🇾`,`syria`),$(`🇱🇧`,`lebanon`),$(`🇯🇴`,`jordan`),$(`🇪🇺`,`european union`,`eu`),$(`🇺🇳`,`united nations`,`un`)]}];function eW(e,t){let n=e===`brands`?`github`:e===`solid`?`house`:`face-smile`,r=yr.filter(t=>t.family===e),i=r.find(e=>e.name===n)??r[0],a=i?{kind:`icon`,family:e,name:i.name}:{kind:`emoji`,char:`◆`};return{id:`fa-${e}`,label:t,tab:a,entries:r.map(e=>({kind:`icon`,family:e.family,name:e.name,label:e.label,keywords:e.keywords,token:_r(e)}))}}var tW=[...KCe.map(e=>({id:e.id,label:e.label,tab:{kind:`emoji`,char:e.icon},entries:e.emojis.map(e=>({kind:`emoji`,char:e.char,name:e.name,keywords:e.keywords}))})),eW(`brands`,`Brands`),eW(`solid`,`Solid`),eW(`regular`,`Regular`)],qCe=tW.flatMap(e=>e.entries);function JCe(e,t=80){let n=e.trim().toLowerCase();if(!n)return[];let r=[];for(let e of qCe)if(e.keywords.includes(n)&&(r.push(e),r.length>=t))break;return r}var YCe={bg:`#fff`,border:`#d4cdb5`,inputBg:`#fff`,text:`#1f2937`,textMuted:`#8a7a5a`,accent:`#8B6914`,accentSoft:`#f3eedb`},nW={bg:`#1f2937`,border:`#4b5563`,inputBg:`#374151`,text:`#e5e7eb`,textMuted:`#9ca3af`,accent:`#fbbf24`,accentSoft:`#374151`},rW=480,iW=560;function XCe(e){return{position:`absolute`,zIndex:100,background:e.bg,border:`1px solid ${e.border}`,borderRadius:6,boxShadow:e===nW?`0 8px 32px rgba(0, 0, 0, 0.5)`:`0 6px 24px rgba(0, 0, 0, 0.15)`,color:e.text,width:rW,maxWidth:`95vw`,maxHeight:iW,display:`flex`,flexDirection:`column`,overflow:`hidden`}}function ZCe({open:e,onSelect:t,onClose:n,anchorRef:r,className:i,style:a,theme:o=`light`}){let s=o===`dark`?nW:YCe,[c,l]=(0,X.useState)(tW[0].id),[u,d]=(0,X.useState)(``),f=(0,X.useRef)(null);nH(e,n,r);let p=(0,X.useRef)(null);(0,X.useEffect)(()=>{if(e){let e=setTimeout(()=>p.current?.focus(),0);return()=>clearTimeout(e)}d(``),l(tW[0].id)},[e]),(0,X.useEffect)(()=>{if(!e)return;let t=e=>{let t=e.target;t&&(f.current?.contains(t)||r?.current?.contains(t)||n())};return document.addEventListener(`mousedown`,t),()=>{document.removeEventListener(`mousedown`,t)}},[e,n,r]);let m=(0,X.useMemo)(()=>{if(u.trim())return JCe(u);let e=tW.find(e=>e.id===c);return e?e.entries:[]},[u,c]);return e?(0,Z.jsxs)(`div`,{ref:f,className:`squisq-emoji-picker ${i??``}`,"data-theme":o,style:{...XCe(s),...a},role:`dialog`,"aria-label":`Insert emoji`,"data-testid":`emoji-picker`,children:[(0,Z.jsx)(`div`,{style:{padding:`8px 10px`,borderBottom:`1px solid ${s.border}`},children:(0,Z.jsx)(`input`,{ref:p,type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:`Search emoji & icons…`,"aria-label":`Search emoji & icons`,style:{width:`100%`,padding:`6px 8px`,fontSize:13,fontFamily:`inherit`,border:`1px solid ${s.border}`,borderRadius:4,background:s.inputBg,color:s.text,boxSizing:`border-box`}})}),!u.trim()&&(0,Z.jsx)(`div`,{role:`tablist`,"aria-label":`Emoji & icon categories`,style:{display:`grid`,gridTemplateColumns:`repeat(6, 1fr)`,gap:2,padding:`4px 6px`,borderBottom:`1px solid ${s.border}`},children:tW.map(e=>{let t=e.id===c;return(0,Z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,"aria-label":e.label,title:e.label,onClick:()=>l(e.id),style:{fontSize:18,lineHeight:1,padding:`6px 0`,cursor:`pointer`,background:t?s.accentSoft:`transparent`,border:`1px solid transparent`,borderBottom:t?`2px solid ${s.accent}`:`2px solid transparent`,borderRadius:4,color:s.text,display:`flex`,alignItems:`center`,justifyContent:`center`},children:e.tab.kind===`emoji`?e.tab.char:(0,Z.jsx)(`i`,{className:`fa-${e.tab.family} fa-${e.tab.name}`,"aria-hidden":`true`})},e.id)})}),(0,Z.jsx)(`div`,{style:{padding:6,flex:1,minHeight:0,overflowY:`auto`,display:`grid`,gridTemplateColumns:`repeat(10, 1fr)`,gap:2},children:m.length===0?(0,Z.jsx)(`div`,{style:{gridColumn:`1 / -1`,padding:`20px 8px`,textAlign:`center`,color:s.textMuted,fontSize:13},children:u.trim()?`No matches for "${u.trim()}"`:`No entries`}):m.map((e,n)=>{let r=e.kind===`emoji`?e.name:e.label,i=e.kind===`emoji`?`e-${e.char}-${n}`:`i-${e.token}-${n}`;return(0,Z.jsx)(`button`,{type:`button`,title:r,"aria-label":r,"data-picker-kind":e.kind,onClick:()=>t(e),style:{fontSize:22,lineHeight:1,padding:4,background:`transparent`,border:`1px solid transparent`,borderRadius:4,cursor:`pointer`,color:s.text,display:`flex`,alignItems:`center`,justifyContent:`center`},onMouseEnter:e=>{e.currentTarget.style.background=s.accentSoft},onMouseLeave:e=>{e.currentTarget.style.background=`transparent`},children:e.kind===`emoji`?e.char:(0,Z.jsx)(`i`,{className:`fa-${e.family} fa-${e.name}`,"aria-hidden":`true`})},i)})})]}):null}var QCe=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`,`avif`,`ico`,`mp4`,`webm`,`mov`,`avi`,`mp3`,`wav`,`ogg`,`aac`,`m4a`,`flac`]),$Ce=new Set([`md`,`txt`,`docx`]);function ewe(e){let t=e.lastIndexOf(`.`);return t>=0?e.slice(t+1).toLowerCase():``}function twe(e){let t=ewe(e.name);return QCe.has(t)?`media`:$Ce.has(t)?`text`:e.type.startsWith(`image/`)||e.type.startsWith(`video/`)||e.type.startsWith(`audio/`)?`media`:e.type===`text/plain`||e.type===`text/markdown`?`text`:`unknown`}function nwe(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(i.kind!==`file`)continue;let a=i.type.toLowerCase();a.startsWith(`image/`)||a.startsWith(`video/`)||a.startsWith(`audio/`)?t=!0:(a===`text/plain`||a===`text/markdown`||a===`application/vnd.openxmlformats-officedocument.wordprocessingml.document`||(t=!0),n=!0)}return t&&n?`mixed`:t?`media`:n?`text`:null}function rwe({onDrop:e,enabled:t=!0}){let[n,r]=(0,X.useState)(!1),[i,a]=(0,X.useState)(null),o=(0,X.useRef)(0),s=(0,X.useRef)(!1);(0,X.useEffect)(()=>{if(!t)return;let e=()=>{s.current=!0},n=()=>{s.current=!1};return document.addEventListener(`dragstart`,e,!0),document.addEventListener(`dragend`,n,!0),document.addEventListener(`drop`,n,!0),()=>{document.removeEventListener(`dragstart`,e,!0),document.removeEventListener(`dragend`,n,!0),document.removeEventListener(`drop`,n,!0)}},[t]);let c=(0,X.useCallback)(e=>{if(!t||s.current)return;let n=e.dataTransfer.types;if(!(n&&Array.from(n).includes(`Files`)))return;let i=e.dataTransfer.items?nwe(e.dataTransfer.items):`mixed`;i&&(e.preventDefault(),o.current++,o.current===1&&(r(!0),a(i)))},[t]),l=(0,X.useCallback)(e=>{t&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},[t]),u=(0,X.useCallback)(e=>{t&&(e.preventDefault(),o.current=Math.max(0,o.current-1),o.current===0&&(r(!1),a(null)))},[t]),d=(0,X.useCallback)(e=>{t&&(e.preventDefault(),o.current=0,r(!1),a(null))},[t]),f=(0,X.useCallback)(t=>({onDragOver:e=>{e.preventDefault(),e.stopPropagation(),e.dataTransfer.dropEffect=`copy`},onDrop:n=>{n.preventDefault(),n.stopPropagation(),o.current=0,r(!1),a(null);let i=Array.from(n.dataTransfer.files);i.length>0&&e(i,t)}}),[e]);return{isDragging:n,dragContentType:i,containerProps:{onDragEnter:c,onDragOver:l,onDragLeave:u,onDrop:d},zoneProps:f}}function aW(e){let t=[],n=[];for(let r of e){let e=twe(r);e===`media`?t.push(r):e===`text`&&n.push(r)}return{media:t,text:n}}async function oW(e,t){let n=[];for(let r of e){let e;try{e=await r.arrayBuffer()}catch(e){console.warn(`[squisq-editor] Skipped dropped file "${r.name}" \u2014 could not read its contents.`,`This is typical for drags from virtual sources (Phone Link, screenshot tools, cross-tab drags) whose File reference goes stale before the async read completes.`,e instanceof Error?e.message:e),n.push(null);continue}if(e.byteLength===0){console.warn(`[squisq-editor] Skipped dropped file "${r.name}" \u2014 its contents read as 0 bytes. The drag source likely never materialized the file (try saving it to disk first, then dragging from there).`),n.push(null);continue}let i=r.type||`application/octet-stream`;try{let a=await t.addMedia(r.name,e,i);n.push(a)}catch(e){console.warn(`[squisq-editor] Failed to save "${r.name}" via mediaProvider:`,e instanceof Error?e.message:e),n.push(null)}}return n}async function sW(e){let t=e.name.split(`.`).pop()?.toLowerCase()??``;if(t===`md`||t===`txt`)return await e.text();if(t===`docx`){let t=await e.arrayBuffer(),{docxToMarkdownDoc:n}=await Wr(async()=>{let{docxToMarkdownDoc:e}=await import(`./docx-BEJpkI6I.js`).then(e=>e.t);return{docxToMarkdownDoc:e}},__vite__mapDeps([42,4,43,44,39,40,38,45,46,47,41,48,32,33,49,50,34,51,52,53,54]));return Mr(await n(t))}return await e.text()}async function iwe(e){let t=[];for(let n of e){let e=await sW(n);t.push(e)}return t.join(`
|
|
592
592
|
|
|
@@ -786,7 +786,7 @@ ${a}`:a)},[ee,re,ie,K,te,J]),et=(0,X.useCallback)((e,t,n)=>{$e(e,t,n),Ve(e=>e+1)
|
|
|
786
786
|
|
|
787
787
|
`),r=!1);let c=e?e(a):a,u=NPe(t);u===``?s.push(c):s.push((0,Z.jsx)(`span`,{className:u,children:c},i++))};for(;c<o.length;){if(o.charCodeAt(c)!==27){c++;continue}let e=WQ(o,c);if(e===null)return u(c),n=o.slice(c),s;u(c),e.sgrParams&&(t=PPe(t,e.sgrParams)),e.transcriptLineBreak&&IPe(o,e.end)?(s.push(`
|
|
788
788
|
|
|
789
|
-
`),r=!1):e.transcriptLineBreak&&(r=!0),c=e.end,l=c}return u(o.length),s}}}function IPe(e,t){let n=t;for(;n<e.length;){if(e.charCodeAt(n)===27){let t=WQ(e,n);if(t===null)return!1;n=t.end;continue}if(!/\s/.test(e[n]))return!0;n++}return!1}function GQ({text:e,renderText:t}){return(0,Z.jsx)(Z.Fragment,{children:(0,X.useMemo)(()=>FPe(t).feed(e),[e,t])})}function KQ(e){let t=RPe(e);return t===``?`/`:t.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(t)?t:`/${t}`}var LPe=/\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\x1b[@-_]|\uFFFD\[[0-9;?]*[ -/]*[@-~]/g;function RPe(e){let t=``;for(let n of e.replace(LPe,``)){let e=n.charCodeAt(0);e>=32&&e!==127&&(t+=n)}return t.trim()}var zPe={tabIndex:0};function BPe({entry:e,onOpenWorkspaceFile:t}){let n=KQ(e.cwd===void 0?e.workingDir:e.cwd);if(e.msgKind===`command`)return(0,Z.jsxs)(`div`,{className:`msg msg-user terminal-group terminal-group-command`,"data-terminal-message-id":e.messageId,"data-terminal-thread-id":e.threadId,children:[(0,Z.jsxs)(`div`,{className:`msg-header terminal-group-header`,children:[(0,Z.jsx)(`span`,{className:`terminal-folder-pill`,title:`Working folder`,children:n}),(0,Z.jsx)(`span`,{className:`msg-author`,children:`You · terminal`})]}),(0,Z.jsxs)(`div`,{className:`msg-body terminal-cmd-body`,children:[(0,Z.jsx)(`span`,{className:`terminal-prompt-sigil`,children:`>`}),` `,(0,Z.jsx)(`code`,{className:`terminal-cmd-code`,children:e.content})]}),e.resolvedFrom&&e.resolvedFrom!==e.content&&(0,Z.jsxs)(`div`,{className:`terminal-resolved-hint`,children:[`from: `,e.resolvedFrom]})]});let r=e.exitCode!==void 0&&e.exitCode!==0,i=e.exitCode===void 0?null:e.exitCode===0?`exit 0`:`exit ${e.exitCode}`,a=n=>VPe(n,e.fileReferences??[],t);return(0,Z.jsxs)(`div`,{className:`msg msg-assistant terminal-group terminal-group-output`,"data-terminal-message-id":e.messageId,"data-terminal-thread-id":e.threadId,children:[(0,Z.jsxs)(`div`,{className:`msg-header terminal-group-header`,children:[(0,Z.jsx)(`span`,{className:`terminal-folder-pill`,title:`Working folder`,children:n}),(0,Z.jsx)(`span`,{className:`msg-author`,children:`Terminal output`}),i&&(0,Z.jsx)(`span`,{className:`terminal-exit-pill ${r?`terminal-exit-fail`:`terminal-exit-ok`}`,children:i}),typeof e.durationMs==`number`&&(0,Z.jsx)(`span`,{className:`terminal-duration`,children:UPe(e.durationMs)}),e.truncated&&(0,Z.jsx)(`span`,{className:`terminal-truncated-pill`,title:`200KB output cap reached`,children:`truncated`})]}),e.errorMessage&&e.exitCode===-1&&(0,Z.jsx)(`div`,{className:`terminal-error-banner`,children:e.errorMessage}),(0,Z.jsx)(`section`,{className:`terminal-output-viewport`,"aria-label":`Terminal output`,...zPe,children:(0,Z.jsx)(`pre`,{className:`terminal-output-body`,children:e.content?(0,Z.jsx)(GQ,{text:e.content,renderText:a}):r?`(no output)`:``})})]})}function VPe(e,t,n){if(!n||t.length===0||!e)return e;let r=[...t].sort((e,t)=>t.label.length-e.label.length),i=e.toLowerCase(),a=[],o=0,s=0;for(;o<e.length;){let t=null;for(let n of r){let r=n.label.toLowerCase(),a=i.indexOf(r,o);for(;a>=0&&!HPe(e,a,n.label.length);)a=i.indexOf(r,a+Math.max(1,r.length));a>=0&&(!t||a<t.at)&&(t={at:a,reference:n})}if(!t)break;t.at>o&&a.push(e.slice(o,t.at));let c=e.slice(t.at,t.at+t.reference.label.length);a.push((0,Z.jsx)(`button`,{type:`button`,className:`terminal-file-link`,title:`Preview ${t.reference.path}`,onClick:()=>n(t.reference.path),children:c},`${t.reference.path}:${s++}`)),o=t.at+t.reference.label.length}return o===0?e:(o<e.length&&a.push(e.slice(o)),a)}function HPe(e,t,n){let r=t===0?``:e[t-1],i=t+n,a=i>=e.length?``:e[i];return(r===``||/[\s"'([{<]/.test(r))&&(a===``||/[\s"')\]}>:,;]/.test(a))}function UPe(e){if(e<1e3)return`${e}ms`;let t=e/1e3;if(t<60)return`${t.toFixed(1)}s`;let n=Math.floor(t/60);return`${n}m${Math.round(t-n*60).toString().padStart(2,`0`)}s`}var WPe=24,GPe={tabIndex:0};function KPe({content:e,cwd:t,startedAt:n,onCancel:r,awaitingInput:i,onSendInput:a}){let o=KQ(t),s=(0,X.useRef)(null),c=(0,X.useRef)(!0);(0,X.useLayoutEffect)(()=>{let e=s.current;!e||!c.current||(e.scrollTop=e.scrollHeight)},[e]);let l=()=>{let e=s.current;if(!e)return;let t=e.scrollHeight-e.clientHeight-e.scrollTop;c.current=t<=WPe};return(0,Z.jsxs)(`div`,{className:`msg msg-assistant terminal-group terminal-group-output terminal-group-streaming`,children:[(0,Z.jsxs)(`div`,{className:`msg-header terminal-group-header`,children:[(0,Z.jsx)(`span`,{className:`terminal-folder-pill`,title:`Working folder`,children:o}),(0,Z.jsx)(`span`,{className:`msg-author`,children:`Terminal output`}),(0,Z.jsx)(JPe,{startedAt:n}),r&&(0,Z.jsx)(`button`,{type:`button`,className:`terminal-cancel-btn`,onClick:r,title:`Stop the running command (Ctrl+C)`,children:`■ Stop`})]}),(0,Z.jsx)(`section`,{ref:s,className:`terminal-output-viewport`,"aria-label":`Live terminal output`,"aria-busy":`true`,...GPe,onScroll:l,children:(0,Z.jsx)(`pre`,{className:`terminal-output-body`,children:(0,Z.jsx)(GQ,{text:e})})}),i&&a&&(0,Z.jsx)(qPe,{awaitingInput:i,onSubmit:a})]})}function qPe({awaitingInput:e,onSubmit:t}){let[n,r]=(0,X.useState)(``),i=e=>{t(e),r(``)},a=e=>{e.key===`Enter`&&(e.preventDefault(),i(n))};if(e.mode===`yes-no`)return(0,Z.jsxs)(`div`,{className:`terminal-input-prompt`,children:[(0,Z.jsx)(`div`,{className:`terminal-input-prompt-line`,children:e.promptLine}),(0,Z.jsxs)(`div`,{className:`terminal-input-prompt-row`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`terminal-input-yesno-btn`,onClick:()=>i(`y`),children:`Yes`}),(0,Z.jsx)(`button`,{type:`button`,className:`terminal-input-yesno-btn`,onClick:()=>i(`n`),children:`No`}),(0,Z.jsx)(`input`,{type:`text`,className:`terminal-input-reply`,value:n,onChange:e=>r(e.target.value),onKeyDown:a,placeholder:`or type a custom reply`,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1})]})]});let o=e.mode===`password`;return(0,Z.jsxs)(`div`,{className:`terminal-input-prompt`,children:[(0,Z.jsx)(`div`,{className:`terminal-input-prompt-line`,children:e.promptLine}),(0,Z.jsxs)(`div`,{className:`terminal-input-prompt-row`,children:[(0,Z.jsx)(`input`,{type:o?`password`:`text`,className:`terminal-input-reply`,value:n,onChange:e=>r(e.target.value),onKeyDown:a,placeholder:o?`password (not echoed or saved)`:`reply…`,autoFocus:!0,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1}),(0,Z.jsx)(`button`,{type:`button`,className:`terminal-input-send-btn`,onClick:()=>i(n),children:`Send`})]}),o&&(0,Z.jsx)(`div`,{className:`terminal-input-hint`,children:`Your input is hidden and isn't kept in the timeline.`})]})}function JPe({startedAt:e}){let[,t]=(0,X.useState)(0);(0,X.useEffect)(()=>{let e=setInterval(()=>t(e=>e+1),1e3);return()=>clearInterval(e)},[]);let n=(0,X.useMemo)(()=>new Date(e).getTime(),[e]);return(0,Z.jsxs)(`span`,{className:`terminal-running-pill`,title:`Running…`,children:[`running `,YPe(Math.max(0,Date.now()-n))]})}function YPe(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m${(t%60).toString().padStart(2,`0`)}s`}var XPe=300*1e3;function qQ(e){let t=Date.parse(e);return Number.isFinite(t)?t+XPe:void 0}function ZPe(e,t){let n;for(let r of e){let e=qQ(r.at);e===void 0||e<t||(n===void 0||e<n)&&(n=e)}return n}function JQ(e,t){if(e.kind===`terminal-streaming`)return 2;if(e.kind===`terminal`){let n=qQ(e.at);if(n!==void 0&&t<=n)return 2}return+(e.kind===`streaming`)}function QPe(e,t,n){let r=JQ(e,n)-JQ(t,n);return r===0?e.at<t.at?-1:+(e.at>t.at):r}function $Pe(e){let t=new Map,n=new Map;for(let r of e){if(r.role!==`user`)continue;let e=r.content.trim(),i=Date.parse(r.at),a=t.get(e);if(a&&a.sessionId!==r.sessionId&&i-a.atMs<=5e3){n.set(r,a.row);continue}t.set(e,{atMs:i,sessionId:r.sessionId,row:r})}return n}function eFe(e){let t=$Pe(e.flatMap(e=>e.kind===`message`&&e.msg.role===`user`?[{at:e.msg.at,role:e.msg.role,content:e.msg.content,sessionId:e.msg.sessionId,ref:e}]:[])),n=new Map;for(let[e,r]of t)n.set(e.ref,r.ref);let r=[],i=new Map,a=new Map;for(let t of e){if(t.kind===`terminal`||t.kind===`terminal-streaming`){r.push(t);continue}if(t.kind===`message`&&t.msg.role===`user`){let e=n.get(t);if(e){let n=a.get(e);if(n){i.set(t.msg.sessionId,n);continue}}let o={kind:`thread`,sessionId:t.msg.sessionId,at:t.at,root:t,replies:[]};r.push(o),i.set(t.msg.sessionId,o),a.set(t,o);continue}let e=t.kind===`message`?t.msg.sessionId:t.sessionId,o=i.get(e);o||(o={kind:`thread`,sessionId:e,at:t.at,replies:[]},r.push(o),i.set(e,o)),o.replies.push(t)}return r}function tFe(){let[e,t]=(0,X.useState)(!1);return(0,X.useEffect)(()=>{let e=!1;Q.getConfig().then(n=>{e||t(n.narrateAssistantReplies??!1)}).catch(()=>{});let n=e=>{let n=e.detail;n&&typeof n.narrateAssistantReplies==`boolean`&&t(n.narrateAssistantReplies)};return window.addEventListener(`gezel:config-updated`,n),()=>{e=!0,window.removeEventListener(`gezel:config-updated`,n)}},[]),e}var YQ=100,nFe=new Set([`ollama`,`llama-cpp`,`mlx`,`ds4`]),rFe=1440*60*1e3,iFe=180*1e3,aFe=80,oFe=80,sFe=700,XQ=2e3,cFe=8e3;function ZQ(e){return e.replace(/["\\]/g,`\\$&`)}var lFe=7200*1e3;function QQ(e,t){let n=new Map((e??[]).map(e=>[e.messageId,e]));for(let e of t)n.set(e.messageId,e);return[...n.values()].sort((e,t)=>e.at<t.at?-1:+(e.at>t.at))}function $Q(e,t){let n=t.filter(e=>e.role===`user`),r=e.filter(e=>{if(!e.optimistic)return!0;let t=Date.parse(e.at);return!n.some(n=>{if(n.sessionId!==e.sessionId||n.content!==e.content)return!1;let r=Date.parse(n.at);return Number.isFinite(t)&&Number.isFinite(r)?Math.abs(r-t)<2*6e4:!0})}),i=new Set,a=[];for(let e of[...r,...t]){let t=`${e.sessionId}:${e.at}:${e.role}`;i.has(t)||(i.add(t),a.push(e))}return a.sort((e,t)=>e.at<t.at?-1:+(e.at>t.at)),a}var uFe={starting:`Starting engine`,loading_model:`Loading model`,prefill:`Thinking it through`,generating:`Generating`,ready:`Ready`};function dFe(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/@\[([^\]]+)\]\([^)]+\)/g,`@$1`).replace(/\[([^\]]+)\]\([^)]+\)/g,`$1`).replace(/\*\*([^*]+)\*\*/g,`$1`).replace(/__([^_]+)__/g,`$1`).replace(/(?<!\*)\*([^*]+)\*(?!\*)/g,`$1`).replace(/(?<!_)_([^_]+)_(?!_)/g,`$1`).replace(/~~([^~]+)~~/g,`$1`).replace(/`+([^`]+)`+/g,`$1`).replace(/^\s*#+\s+/gm,``).replace(/^\s*>\s+/gm,``).replace(/^\s*[-*+]\s+/gm,``).replace(/^\s*\d+\.\s+/gm,``).replace(/\s+/g,` `).trim()}function fFe(e,t,n){let r=[];for(let[i,a]of t){let t=e.get(i);!t||t!==a||!t.error&&!n.has(i)&&r.push(i)}return r}function e$({scopeKey:e,activeSessionId:t,onFocusSession:n,onToolActivity:r,onArtifactReference:a,onArtifactSeen:o,onWorkspaceReference:s,onWorkspaceSeen:c,onTaskReference:l,emptyPlaceholder:u,loadTimeline:f,streamUrl:m,terminalStreamUrl:h,terminalRefreshKey:g,terminalSubmission:_,terminalFocusRequest:v,sessionFocusRequest:y,onTerminalWorkingDirChanged:b,showProjectName:x,inflightScope:S,scopedSessionIds:C,onUnknownSession:w}){let T=fC(),E=(0,X.useRef)(C);E.current=C;let D=(0,X.useRef)(w);D.current=w;let O=tFe(),k=(0,X.useRef)(O);k.current=O;let A=(0,X.useRef)(null),j=(0,X.useRef)(null),M=(0,X.useRef)(new Map);(0,X.useEffect)(()=>()=>{a$(A,j)},[]);let[N,P]=(0,X.useState)([]),F=(0,X.useRef)([]);(0,X.useEffect)(()=>{F.current=N},[N]),(0,X.useEffect)(()=>{if(l)for(let e of N){if(e.taskRef){let n=!!t&&e.sessionId===t;l(e.taskRef,{scoped:n})}if(e.referencedTasks)for(let t of e.referencedTasks)l(t)}},[N,t,l]),(0,X.useEffect)(()=>{if(!(!o&&!c))for(let e of N){for(let t of e.referencedArtifacts??[])o?.(t,e.projectId);for(let t of e.toolCalls??[]){if(!t.success)continue;for(let n of[...t.images??[],...t.audios??[],...t.videos??[]])o?.(n.path,e.projectId);let n=t.paths?.length?t.paths:t.path?[t.path]:[];for(let r of n)t.name===`read_artifact`||t.name===`write_artifact`?o?.(r,e.projectId):(t.name===`read_file`||t.name===`read_files`||t.name===`write_file`)&&c?.(r,e.projectId)}}},[N,o,c]);let[I,L]=(0,X.useState)([]),[R,z]=(0,X.useState)(0),[B,V]=(0,X.useState)(!1),[H,U]=(0,X.useState)();(0,X.useEffect)(()=>{let e=ZPe(I,Date.now());if(e===void 0)return;let t=window.setTimeout(()=>z(e=>e+1),Math.max(0,e-Date.now()+1));return()=>window.clearTimeout(t)},[I,R]),(0,X.useEffect)(()=>{t&&Q.warmSessionCache(t).catch(()=>{})},[t]);let[te,W]=(0,X.useState)(!0),[G,ne]=(0,X.useState)(null),[K,q]=(0,X.useState)(new Map),[re,ie]=(0,X.useState)(new Map),[J,ae]=(0,X.useState)(new Map),[oe,se]=(0,X.useState)(0),Y=(0,X.useRef)(new Map),[ce,le]=(0,X.useState)(0),ue=(0,X.useRef)(new Map),de=(0,X.useRef)(new Map),fe=(0,X.useRef)(new Map),pe=(0,X.useRef)(null),me=(0,X.useRef)(null),[he,_e]=(0,X.useState)(!0),[ve,ye]=(0,X.useState)(null),[be,xe]=(0,X.useState)(null),Se=(0,X.useRef)(null),Ce=(0,X.useRef)(null),we=(0,X.useRef)(!1),[Te,Ee]=(0,X.useState)(null),De=(0,X.useRef)(null),Oe=(0,X.useRef)(60),ke=(0,X.useRef)(0),Ae=(0,X.useRef)(0),je=S?.projectId,Me=S?.gezelId;(0,X.useEffect)(()=>{let e=!1;return W(!0),ne(null),P([]),L([]),V(!1),U(void 0),Y.current.clear(),de.current.clear(),fe.current.clear(),_e(!0),ye(null),xe(null),ke.current=0,Ae.current=0,(async()=>{try{let t=await f({limit:YQ});if(e)return;P(t.messages),V(t.hasMore),U(t.nextCursor),L(e=>QQ(t.terminalEntries,e));try{let n=await Q.listInflightTurns({...je===void 0?{}:{projectId:je},...Me===void 0?{}:{gezelId:Me}});if(e)return;for(let e of n.inflight){if(Y.current.has(e.sessionId)||E.current&&!E.current.has(e.sessionId))continue;let n=t$(t.messages,e.sessionId);Y.current.set(e.sessionId,{gezelId:e.gezelId,projectId:e.projectId,segments:[],startedAt:e.startedAt,lastActivityAt:e.lastProgressAgoMs==null?e.startedAt:Date.now()-e.lastProgressAgoMs,hasProgress:e.lastProgressAgoMs!=null,anchorAt:n?n$(n.at):new Date().toISOString(),...n?{sessionTitle:n.sessionTitle,sessionCreatedAt:n.sessionCreatedAt,sessionProviderName:n.sessionProviderName,...n.sessionModel?{sessionModel:n.sessionModel}:{},...n.taskRef?{taskRef:n.taskRef}:{}}:{}})}n.inflight.length>0&&se(e=>e+1)}catch{}try{let t=await Q.getQueueStatus();if(e)return;for(let e of t.sessions)E.current&&!E.current.has(e.sessionId)||de.current.set(e.sessionId,e.entries.map(e=>({id:e.queueId,preview:e.preview,enqueuedAt:e.enqueuedAt,...e.nudge?{nudge:!0}:{}})));t.sessions.length>0&&se(e=>e+1)}catch{}try{let t=await f({limit:YQ});if(e)return;P(e=>$Q(e,t.messages)),L(e=>QQ(t.terminalEntries,e))}catch{}}catch(t){e||ne(t.message)}finally{e||W(!1)}})(),()=>{e=!0}},[e,f,je,Me]);let[Ne,Pe]=(0,X.useState)(`copilot`),[Fe,Ie]=(0,X.useState)({}),[Le,Re]=(0,X.useState)(!1);(0,X.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await Q.getConfig();if(e)return;Pe(t.provider),Ie(t.defaultModel??{}),Re(t.debugMode===!0)}catch{}})(),()=>{e=!0}},[]);let ze=(0,X.useCallback)((e,t,n=!1)=>{let r=t$(e,t.sessionId);return{sessionId:t.sessionId,gezelId:t.gezelId,projectId:t.projectId,sessionTitle:r?.sessionTitle??ge(t.content),sessionCreatedAt:r?.sessionCreatedAt??t.at,sessionLastActivityAt:t.at,sessionProviderName:r?.sessionProviderName??Ne,...r?.sessionModel?{sessionModel:r.sessionModel}:{},...r?.taskRef?{taskRef:r.taskRef}:{},...r?.stepId?{stepId:r.stepId}:{},role:`user`,content:t.content,at:t.at,...t.from?{from:t.from}:{},...n?{optimistic:!0}:{}}},[Ne]),Be=(0,X.useCallback)(e=>K.get(e)?.provider??Ne,[K,Ne]),Ve=(0,X.useCallback)(e=>{let t=K.get(e),n=Be(e),r=t?.model;return r?`Provider: ${o$(n)} (${r})`:`Provider: ${o$(n)}`},[K,Be]),He=(0,X.useCallback)((e,t)=>{let n=Fe[Ne],r=nFe.has(e);if(e!==Ne)return t&&!r?`${o$(e)} · ${t}`:o$(e);if(!r&&t&&n&&t!==n)return t},[Ne,Fe]),Ue=(0,X.useRef)(null),We=(0,X.useCallback)(()=>{if(Ue.current)return Ue.current;let e=(async()=>{try{let e=await Q.listGezels(),t=new Map;for(let n of e.gezels)t.set(n.id,n);q(t)}catch{}finally{Ue.current=null}})();return Ue.current=e,e},[]);(0,X.useEffect)(()=>{We()},[We]),(0,X.useEffect)(()=>{let e=e=>{let t=e.detail;t?.id&&q(e=>{let n=new Map(e);return n.set(t.id,{...n.get(t.id),...t}),n})};return window.addEventListener(`gezel:gezel-updated`,e),()=>window.removeEventListener(`gezel:gezel-updated`,e)},[]),(0,X.useEffect)(()=>{if(!x)return;let e=!1;return(async()=>{try{let t=await Q.listProjects();if(e)return;let n=new Map;for(let e of t.projects)n.set(e.id,e);ie(n)}catch{}})(),()=>{e=!0}},[x]);let Ge=(0,X.useCallback)(async()=>{try{let e=await Q.listQuestions({pending:!0});ae(t=>{let n=new Map(t);for(let[e,t]of n)t.answer||n.delete(e);for(let t of e.questions)n.set(t.id,t);return n})}catch{}},[]);(0,X.useEffect)(()=>{Ge()},[e,Ge]),(0,X.useEffect)(()=>{let e=new AbortController,t=!1,n=250;return(async()=>{for(;!t;){try{let r={url:m(),headers:Q.authHeader(),signal:e.signal,fetch:Q.getFetch()};for await(let e of Df(r)){if(t)return;qe(e),n=250}}catch(e){if(t||e.name===`AbortError`)return;console.warn(`[ChatTimelineView] envelope stream error (reconnecting in ${n}ms):`,e)}if(t)return;await new Promise(e=>setTimeout(e,n)),n=Math.min(n*2,5e3)}})(),()=>{t=!0,e.abort()}},[e,m]),(0,X.useEffect)(()=>{if(!h)return;let e=new AbortController,t=!1,n=250;return(async()=>{let{streamTerminalEvents:r}=await Wr(async()=>{let{streamTerminalEvents:e}=await import(`./dist-8uH4DcHx.js`).then(e=>e.r);return{streamTerminalEvents:e}},__vite__mapDeps([57,4,23]));for(;!t;){try{for await(let i of r({url:h(),headers:Q.authHeader(),signal:e.signal,fetch:Q.getFetch()})){if(t)return;if(i.kind===`workingDirChanged`){b?.(i.threadId,i.newWorkingDir),n=250;continue}if(i.kind===`openFile`){s?.(i.path,i.projectId),n=250;continue}if(i.kind===`runStarted`){ue.current.set(i.runId,{projectId:i.projectId,threadId:i.threadId,commandMessageId:i.commandMessageId,startedAt:i.at,cwd:i.cwd,content:``}),le(e=>e+1),n=250;continue}if(i.kind===`outputChunk`){let e=ue.current.get(i.runId);e&&(e.content+=i.chunk,e.awaitingInput&&delete e.awaitingInput,le(e=>e+1)),n=250;continue}if(i.kind===`inputRequested`){let e=ue.current.get(i.runId);e&&(e.awaitingInput={promptLine:i.promptLine,mode:i.mode},le(e=>e+1)),n=250;continue}i.runId&&(ue.current.delete(i.runId),le(e=>e+1)),L(e=>{if(e.some(e=>e.messageId===i.message.id))return e;let t={threadId:i.threadId,projectId:i.projectId,workingDir:i.workingDir,threadCreatedAt:i.message.at,threadLastActivityAt:i.message.at,messageId:i.message.id,msgKind:i.message.kind,content:i.message.content,at:i.message.at,...i.message.resolvedFrom?{resolvedFrom:i.message.resolvedFrom}:{},...i.message.stdout===void 0?{}:{stdout:i.message.stdout},...i.message.stderr===void 0?{}:{stderr:i.message.stderr},...i.message.exitCode===void 0?{}:{exitCode:i.message.exitCode},...i.message.durationMs===void 0?{}:{durationMs:i.message.durationMs},...i.message.truncated?{truncated:!0}:{},...i.message.errorMessage?{errorMessage:i.message.errorMessage}:{},...i.message.fileReferences?{fileReferences:i.message.fileReferences}:{},...i.message.cwd===void 0?{}:{cwd:i.message.cwd}},n=[...e,t];return n.sort((e,t)=>e.at<t.at?-1:+(e.at>t.at)),n}),n=250}}catch(e){if(t||e.name===`AbortError`)return;console.warn(`[ChatTimelineView] terminal stream error (reconnecting in ${n}ms):`,e)}if(t)return;await new Promise(e=>setTimeout(e,n)),n=Math.min(n*2,5e3)}})(),()=>{t=!0,e.abort()}},[e,h,s]),(0,X.useEffect)(()=>{if(!g)return;let e=!1;return f({limit:YQ}).then(t=>{e||L(e=>QQ(t.terminalEntries,e))}).catch(()=>{}),()=>{e=!0}},[g,f]),(0,X.useEffect)(()=>{_&&(ye({kind:`terminal`,key:`terminal:${_.runId}`,runId:_.runId,threadId:_.threadId,input:_.input}),xe(null))},[_]);let Ke=(0,X.useCallback)(async()=>{try{let e=await f({limit:YQ});P(t=>$Q(t,e.messages))}catch{}},[f]);(0,X.useEffect)(()=>{let e=!1,t=!1,n=async()=>{if(t||Y.current.size===0)return;t=!0;let n=new Map(Y.current);try{let t=await Q.listInflightTurns({...je===void 0?{}:{projectId:je},...Me===void 0?{}:{gezelId:Me}});if(e)return;let r=new Set(t.inflight.map(e=>e.sessionId)),i=fFe(Y.current,n,r);if(i.length===0)return;for(let e of i)Y.current.delete(e),M.current.delete(e);se(e=>e+1),Ke()}catch{}finally{t=!1}},r=window.setInterval(()=>{n()},5e3);return()=>{e=!0,window.clearInterval(r)}},[je,Me,Ke]),(0,X.useEffect)(()=>OPe(e=>{if(je!==void 0&&e.projectId!==je||Me!==void 0&&e.gezelId!==Me||E.current&&!E.current.has(e.sessionId))return;let t=Date.parse(e.at);if(P(n=>{if(n.some(n=>{if(n.sessionId!==e.sessionId||n.role!==`user`||n.content!==e.content)return!1;let r=Date.parse(n.at);return Number.isFinite(t)&&Number.isFinite(r)?Math.abs(r-t)<2*6e4:!0}))return n;let r=[...n,ze(n,e,!0)];return r.sort((e,t)=>e.at<t.at?-1:+(e.at>t.at)),r}),!Y.current.has(e.sessionId)){let n=t$(F.current,e.sessionId),r=Number.isFinite(t)?t:Date.now();Y.current.set(e.sessionId,{gezelId:e.gezelId,projectId:e.projectId,segments:[],startedAt:r,lastActivityAt:r,hasProgress:!1,anchorAt:n$(e.at),...n?{sessionTitle:n.sessionTitle}:{sessionTitle:ge(e.content)},...n?{sessionCreatedAt:n.sessionCreatedAt}:{sessionCreatedAt:e.at},...n?{sessionProviderName:n.sessionProviderName,...n.sessionModel?{sessionModel:n.sessionModel}:{}}:{},...n?.taskRef?{taskRef:n.taskRef}:{},...n?.stepId?{stepId:n.stepId}:{}}),se(e=>e+1)}ye({kind:`chat`,key:`chat:${e.sessionId}:${e.at}`,sessionId:e.sessionId,content:e.content,at:e.at}),xe(null)}),[je,Me,ze]);let qe=(0,X.useCallback)(e=>{let{sessionId:t,gezelId:n,projectId:i,event:a}=e;if(je!==void 0&&i!==je||Me!==void 0&&n!==Me)return;let o=E.current;if(o&&!o.has(t)){D.current?.(t);return}if(K.has(n)||We(),a.type===`user_message`){!a.message.hidden&&!a.message.from&&(a$(A,j),M.current.delete(t));let e=t$(N,t),r={sessionId:t,gezelId:n,projectId:i,sessionTitle:e?.sessionTitle??ge(a.message.content),sessionCreatedAt:e?.sessionCreatedAt??a.message.at,sessionLastActivityAt:a.message.at,sessionProviderName:e?.sessionProviderName??Ne,...e?.sessionModel?{sessionModel:e.sessionModel}:{},...e?.taskRef?{taskRef:e.taskRef}:{},...e?.stepId?{stepId:e.stepId}:{},role:a.message.role,content:a.message.content,at:a.message.at,...a.message.from?{from:a.message.from}:{},...a.message.nudge?{nudge:!0}:{}},o=`${t}:${a.message.at}:${a.message.role}`;if(P(e=>{if(a.message.hidden)return e;let n=e.filter(e=>!e.optimistic||!(e.sessionId===t&&e.role===a.message.role&&e.content===a.message.content));if(n.some(e=>`${e.sessionId}:${e.at}:${e.role}`===o))return n;let i=[...n,r];return i.sort((e,t)=>e.at<t.at?-1:+(e.at>t.at)),i}),a.message.role===`user`&&Y.current.get(t)?.error&&Y.current.delete(t),a.message.role===`user`&&!Y.current.has(t)){let o=Date.parse(a.message.at),s=Number.isFinite(o)?o:Date.now();Y.current.set(t,{gezelId:n,projectId:i,segments:[],startedAt:s,lastActivityAt:s,hasProgress:!1,anchorAt:n$(a.message.at),...e?{sessionTitle:e.sessionTitle}:{sessionTitle:r.sessionTitle},...e?{sessionCreatedAt:e.sessionCreatedAt}:{sessionCreatedAt:r.sessionCreatedAt},...e?{sessionProviderName:e.sessionProviderName,...e.sessionModel?{sessionModel:e.sessionModel}:{}}:{},...e?.taskRef?{taskRef:e.taskRef}:{}}),se(e=>e+1)}}else if(a.type===`delta`){let e=Y.current.get(t)??s(n,i,t),r=e.segments[e.segments.length-1],o=Date.now(),c=o-e.lastActivityAt<5e3;r?.kind===`text`&&c?r.content+=a.content:e.segments.push({kind:`text`,content:a.content}),e.lastActivityAt=o,e.hasProgress=!0,delete e.queueAhead,e.wirePulseCount=0,e.thinkingLabel=void 0,delete e.thinkingProgress,delete e.thinkingDetail,delete e.liveToolArgs,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`reasoning_delta`){let e=Y.current.get(t)??s(n,i,t);e.liveReasoning=(e.liveReasoning??``)+a.content,e.lastActivityAt=Date.now(),e.hasProgress=!0,delete e.queueAhead,e.wirePulseCount=0,delete e.thinkingProgress,delete e.thinkingDetail,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`tool_args_delta`){let e=Y.current.get(t)??s(n,i,t),r=e.liveToolArgs,o=a.name.length>0?a.name:r?.name??``,c=((r?.head??``)+a.content).slice(0,400),l=((r?.tail??``)+a.content).slice(-2e3);e.liveToolArgs={name:o,chars:(r?.chars??0)+a.content.length,head:c,tail:l},e.lastActivityAt=Date.now(),e.hasProgress=!0,delete e.queueAhead,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`wire_pulse`){let e=Y.current.get(t)??s(n,i,t);e.wirePulseCount=(e.wirePulseCount??0)+1,e.lastActivityAt=Date.now(),e.hasProgress=!0,delete e.queueAhead,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`intent`){let e=Y.current.get(t)??s(n,i,t);e.segments.push({kind:`intent`,label:a.label}),e.lastActivityAt=Date.now(),e.hasProgress=!0,e.wirePulseCount=0,delete e.queueAhead,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`heartbeat`){let e=Y.current.get(t)??s(n,i,t);e.lastActivityAt=Date.now(),e.hasProgress=!0,e.wirePulseCount=0,e.thinkingLabel=a.label,delete e.queueAhead,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`warning`){let e=Y.current.get(t)??s(n,i,t);e.warnings=[...e.warnings??[],a],Y.current.set(t,e),se(e=>e+1)}else if(a.type===`queued`){let e=Y.current.get(t)??s(n,i,t);e.queueAhead=a.aheadOf,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`queue_enqueued`){let e=de.current.get(t)??[],n={id:a.queueId,preview:a.preview,enqueuedAt:a.enqueuedAt,...a.nudge?{nudge:!0}:{}},r=e.findIndex(e=>e.id===a.queueId);r>=0?e[r]=n:e.push(n),de.current.set(t,e),se(e=>e+1)}else if(a.type===`queue_removed`){let e=de.current.get(t);if(e){let n=e.filter(e=>e.id!==a.queueId);n.length===0?de.current.delete(t):de.current.set(t,n),se(e=>e+1)}}else if(a.type===`tool`){let e=Y.current.get(t)??s(n,i,t),o={name:a.name,durationMs:a.durationMs,success:a.success,...a.errorMessage?{errorMessage:a.errorMessage}:{},...a.path?{path:a.path}:{},...a.paths&&a.paths.length>0?{paths:a.paths}:{},...a.argsSummary?{argsSummary:a.argsSummary}:{},...a.argsFull?{argsFull:a.argsFull}:{},...a.resultText?{resultText:a.resultText}:{},...a.resultTruncated?{resultTruncated:!0}:{},...a.images&&a.images.length>0?{images:a.images}:{},...a.diff===void 0?{}:{diff:a.diff},...a.addedLines===void 0?{}:{addedLines:a.addedLines},...a.removedLines===void 0?{}:{removedLines:a.removedLines},projectId:i};e.segments.push({kind:`tool`,tool:o}),e.lastActivityAt=Date.now(),e.hasProgress=!0,e.wirePulseCount=0,delete e.liveToolArgs,delete e.queueAhead,Y.current.set(t,e),se(e=>e+1),r?.(o)}else if(a.type===`complete`){let e=Y.current.get(t);e&&(e.segments=[],e.lastActivityAt=Date.now(),e.hasProgress=!0,e.anchorAt=n$(a.message.at),e.wirePulseCount=0,delete e.liveReasoning,delete e.liveToolArgs,delete e.queueAhead,delete e.error,Y.current.set(t,e)),se(e=>e+1),Ke();let r=a.message.content.trim().length;console.debug(`[narrate] complete event — contentLen=${r} gezelId=${n} projectId=${i} sessionId=${t} (buffering for done)`),r>0&&M.current.set(t,{content:a.message.content,gezelId:n,projectId:i})}else if(a.type===`error`){let e=Y.current.get(t);e&&(e.error=a.error,e.errorDetail=a.errorDetail,Y.current.set(t,e),se(e=>e+1))}else if(a.type===`cancelled`)Y.current.delete(t)&&se(e=>e+1),Ke();else if(a.type===`done`){let e=Y.current.get(t);e&&!e.error&&(Y.current.delete(t),se(e=>e+1));let n=M.current.get(t);n&&(M.current.delete(t),k.current&&(console.debug(`[narrate] done event — playing buffered narration chars=${n.content.length} sessionId=${t}`),SFe(n.content,n.gezelId,n.projectId,A,j))),Ke()}else if(a.type===`engine_phase`){let e=Y.current.get(t)??s(n,i,t);if(e.lastActivityAt=Date.now(),e.hasProgress=!0,a.phase===`ready`)delete e.thinkingLabel,delete e.thinkingProgress,delete e.thinkingDetail;else{let t=uFe[a.phase];a.progress===void 0?(e.thinkingLabel=a.detail??t,delete e.thinkingProgress,delete e.thinkingDetail):(e.thinkingLabel=t,e.thinkingProgress=a.progress,a.detail?e.thinkingDetail=a.detail:delete e.thinkingDetail)}Y.current.set(t,e),se(e=>e+1)}else if(a.type===`gpu_swap`){let e=Y.current.get(t)??s(n,i,t);e.lastActivityAt=Date.now(),a.state===`ended`?(delete e.gpuSwapTask,delete e.gpuSwapDetail,delete e.gpuSwapPrompt,delete e.gpuSwapProgress,delete e.gpuSwapStep,delete e.gpuSwapTotalSteps,delete e.gpuSwapSecondsPerStep):(e.gpuSwapTask=a.task,a.detail?e.gpuSwapDetail=a.detail:a.state===`started`&&delete e.gpuSwapDetail,a.prompt&&(e.gpuSwapPrompt=a.prompt),typeof a.progress==`number`&&(e.gpuSwapProgress=a.progress),typeof a.step==`number`&&(e.gpuSwapStep=a.step),typeof a.totalSteps==`number`&&(e.gpuSwapTotalSteps=a.totalSteps),typeof a.secondsPerStep==`number`&&(e.gpuSwapSecondsPerStep=a.secondsPerStep)),Y.current.set(t,e),se(e=>e+1)}else if(a.type===`awaiting_gezel`){let e=Y.current.get(t)??s(n,i,t);e.lastActivityAt=Date.now(),a.state===`ended`?delete e.awaitingGezelName:e.awaitingGezelName=a.targetGezelName,Y.current.set(t,e),se(e=>e+1)}else a.type===`context_warning`?fe.current.get(t)?.kind!==`compacted`&&(fe.current.set(t,{kind:`warning`,estimatedTokens:a.estimatedTokens,numCtx:a.numCtx,model:a.model,at:Date.now()}),se(e=>e+1)):a.type===`context_compacted`?(fe.current.set(t,{kind:`compacted`,model:a.model,removedCount:a.removedCount,at:Date.now()}),Ke(),se(e=>e+1)):(a.type===`question_asked`||a.type===`question_answered`)&&(ae(e=>{let t=new Map(e);return a.type===`question_answered`&&!a.question.answer?t.delete(a.question.id):t.set(a.question.id,a.question),t}),a.type===`question_asked`&&Ke());function s(e,t,n){let r=t$(N,n),i=Date.now();return{gezelId:e,projectId:t,segments:[],startedAt:i,lastActivityAt:i,hasProgress:!1,anchorAt:r?n$(r.at):vFe(),...r?{sessionTitle:r.sessionTitle}:{},...r?{sessionCreatedAt:r.sessionCreatedAt}:{},...r?.taskRef?{taskRef:r.taskRef}:{}}}},[N,r,Ke,K,We,Ne,je,Me]),Je=(0,X.useMemo)(()=>{let e=[];for(let[t,n]of Y.current.entries())e.push({kind:`streaming`,sessionId:t,slot:n});let t=N.map(e=>({kind:`message`,msg:e,at:e.at})),n=e.map(e=>({kind:`streaming`,sessionId:e.sessionId,slot:e.slot,at:e.slot.anchorAt})),r=I.map(e=>({kind:`terminal`,entry:e,at:e.at})),i=[];for(let[e,t]of ue.current.entries())i.push({kind:`terminal-streaming`,runId:e,slot:t,at:t.startedAt});let a=[...t,...n,...r,...i],o=Date.now();return a.sort((e,t)=>QPe(e,t,o)),a},[N,I,oe,ce,R]),Ye=(0,X.useMemo)(()=>eFe(Je),[Je]);(0,X.useEffect)(()=>{let e=pe.current;if(!e)return;let t=Je.length>ke.current,n=e.scrollHeight>Ae.current;ke.current=Je.length,Ae.current=e.scrollHeight,!(!t&&!n)&&he&&e.scrollTo({top:e.scrollHeight,behavior:`instant`})},[Je,he]),(0,X.useEffect)(()=>{let e=pe.current;if(!e||!ve||be===ve.key)return;let t=null;if(ve.kind===`chat`){let n=Date.parse(ve.at),r=N.filter(e=>e.sessionId===ve.sessionId&&e.role===`user`&&e.content===ve.content).sort((e,t)=>Math.abs(Date.parse(e.at)-n)-Math.abs(Date.parse(t.at)-n))[0];if(r){let n=ZQ(`msg:${r.sessionId}:${r.at}:${r.role}`);t=e.querySelector(`[data-msg-id="${n}"]`)}}else{let n=[...I].reverse().find(e=>e.threadId===ve.threadId&&e.msgKind===`command`&&(e.content===ve.input||e.resolvedFrom===ve.input));if(n){let r=ZQ(n.messageId);t=e.querySelector(`[data-terminal-message-id="${r}"]`)}}if(!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=Math.max(0,e.scrollTop+r.top-n.top-12);_e(!0),e.scrollTo({top:i}),xe(ve.key)},[N,I,ve,be]),(0,X.useEffect)(()=>{if(!v||Se.current===v.requestKey)return;let e=pe.current;if(!e)return;let t=ZQ(v.threadId),n=e.querySelectorAll(`[data-terminal-thread-id="${t}"]`),r=n[n.length-1];r&&(Se.current=v.requestKey,_e(!1),typeof r.scrollIntoView==`function`&&r.scrollIntoView({block:`center`}),r.classList.add(`timeline-focus-flash`),window.setTimeout(()=>r.classList.remove(`timeline-focus-flash`),XQ))},[v,I]);let Xe=(0,X.useCallback)((e,t)=>{let r=pe.current;if(!r)return!1;let i=ZQ(e),a=r.querySelector(`[data-session-error="${i}"]`),o=r.querySelectorAll(`[data-session-id="${i}"]`),s=a??o[o.length-1]??null;if(!s)return!1;if(_e(!1),typeof s.scrollIntoView==`function`&&s.scrollIntoView({block:`center`}),s.classList.add(`timeline-focus-flash`),window.setTimeout(()=>s.classList.remove(`timeline-focus-flash`),XQ),t?.notifyParent!==!1){let t=F.current.find(t=>t.sessionId===e);t&&n?.(e,t.gezelId,t.projectId)}return!0},[n]),Ze=(0,X.useRef)(null),[Qe,$e]=(0,X.useState)(0),et=(0,X.useCallback)((e,t)=>{Ze.current={sessionId:e,until:Date.now()+cFe,notifyParent:t?.notifyParent!==!1},$e(e=>e+1)},[]);(0,X.useEffect)(()=>{let e=Ze.current;if(e){if(Date.now()>e.until){Ze.current=null;return}Xe(e.sessionId,{notifyParent:e.notifyParent})&&(Ze.current=null)}},[Je,Qe,Xe]),(0,X.useEffect)(()=>{let e=e=>{let t=e.detail;t?.sessionId&&t.projectId===je&&(je&&lw(je),et(t.sessionId))};return window.addEventListener(`gezel:focus-session-error`,e),()=>window.removeEventListener(`gezel:focus-session-error`,e)},[je,et]);let tt=(0,X.useRef)(void 0);(0,X.useEffect)(()=>{if(tt.current!==je&&(tt.current=je,Ze.current=null),!je)return;let e=lw(je);e&&et(e.sessionId)},[je,et]),(0,X.useEffect)(()=>{y&&Ce.current!==y.requestKey&&(Ce.current=y.requestKey,et(y.sessionId,{notifyParent:!1}))},[y,et]);let nt=(0,X.useCallback)(()=>{let e=pe.current;if(!e){Ee(e=>e===null?e:null);return}let t=e.getBoundingClientRect(),n=e.parentElement;if(n){let t=e.offsetWidth-e.clientWidth;n.style.setProperty(`--chat-timeline-sb-width`,`${t}px`)}let r=e.parentElement?.querySelector(`.chat-sticky-header`);if(r){let e=r.getBoundingClientRect().height;e>0&&(Oe.current=e)}let i=Oe.current,a=t.top,o=t.top+i,s=null,c=0,l=null,u=null,d=null,f=e.querySelectorAll(`[data-msg-id]`);for(let e of f){let t=e.dataset.msgId,n=e.dataset.sessionId;if(!t)continue;let r=e.getBoundingClientRect(),i=r.top<a&&r.bottom>o,d=e.classList.contains(`msg-assistant`)||e.classList.contains(`msg-from-gezel`);i&&d&&(s=t,c=r.top,l=n??null,u=r)}if(n&&u){let e=n.getBoundingClientRect(),t=u.left-e.left;n.style.setProperty(`--chat-sticky-left`,`${t}px`),n.style.setProperty(`--chat-sticky-width`,`${u.width}px`)}if(s&&l)for(let e of f){let t=e.dataset.msgId,n=e.dataset.sessionId;!t||n!==l||e.classList.contains(`msg-user`)&&e.getBoundingClientRect().bottom<=c&&(d=t)}let p=s&&d?{userMessageId:d,assistantMessageId:s}:null;Ee(e=>e===p||e&&p&&e.userMessageId===p.userMessageId&&e.assistantMessageId===p.assistantMessageId?e:p)},[]),rt=(0,X.useCallback)(()=>{De.current===null&&(De.current=requestAnimationFrame(()=>{De.current=null,nt()}))},[nt]);(0,X.useEffect)(()=>{rt()},[Je,rt]),(0,X.useEffect)(()=>{let e=pe.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(rt);return t.observe(e),()=>t.disconnect()},[rt]),(0,X.useEffect)(()=>()=>{De.current!==null&&(cancelAnimationFrame(De.current),De.current=null),me.current!==null&&(window.clearTimeout(me.current),me.current=null)},[]);let it=(0,X.useCallback)(()=>{rt();let e=pe.current;if(!e)return;e.classList.add(`chat-timeline-scrolling`),me.current!==null&&window.clearTimeout(me.current),me.current=window.setTimeout(()=>{pe.current?.classList.remove(`chat-timeline-scrolling`),me.current=null},sFe);let t=e.scrollHeight-(e.scrollTop+e.clientHeight)<=aFe;if(_e(e=>e===t?e:t),e.scrollTop<=oFe&&B&&!te&&!we.current&&H){we.current=!0;let t=e.scrollHeight,n=e.scrollTop;(async()=>{try{let e=await f({limit:YQ,before:H});P(t=>[...e.messages,...t]),V(e.hasMore),U(e.nextCursor),requestAnimationFrame(()=>{let e=pe.current;e&&e.scrollTo({top:e.scrollHeight-t+n,behavior:`instant`}),we.current=!1})}catch{we.current=!1}})()}},[B,te,H,f,rt]),at=(0,X.useCallback)(()=>{_e(e=>{let t=!e;if(t){let e=pe.current;e&&e.scrollTo({top:e.scrollHeight,behavior:`instant`})}return t})},[]),ot=(0,X.useMemo)(()=>{if(!Te)return null;let e=N.find(e=>`msg:${e.sessionId}:${e.at}:${e.role}`===Te.userMessageId);if(!e)return null;let t=null;if(Te.assistantMessageId.startsWith(`live:`)){let e=Te.assistantMessageId.slice(5),n=Y.current.get(e);n&&(t={kind:`live`,sessionId:e,slot:n})}else{let e=N.find(e=>`msg:${e.sessionId}:${e.at}:${e.role}`===Te.assistantMessageId);e&&(t={kind:`message`,msg:e})}return t?{userMsg:e,assistantInfo:t}:null},[Te,N,oe]);if(te&&N.length===0)return(0,Z.jsx)(`div`,{className:`chat-timeline chat-timeline-loading`,children:(0,Z.jsx)(`p`,{className:`muted small`,children:`Loading…`})});if(G)return(0,Z.jsx)(`div`,{className:`chat-timeline chat-timeline-error`,children:(0,Z.jsx)(`p`,{className:`error`,children:G})});if(Je.length===0)return(0,Z.jsx)(`div`,{className:`chat-timeline`,ref:pe,"data-testid":`chat-timeline`,children:u&&(0,Z.jsx)(`p`,{className:`placeholder`,children:u})});let st=null,ct=null,lt=null,ut=new Set,dt=new Map,ft=new Set;for(let e of N)e.pendingQuestionId&&ft.add(e.pendingQuestionId);let pt=new Map;for(let e of J.values()){if(e.answer||ft.has(e.id))continue;let t=pt.get(e.sessionId);(!t||e.createdAt>t.createdAt)&&pt.set(e.sessionId,e)}let mt=[],ht=(e,t,n)=>{mt.push((0,Z.jsxs)(`div`,{className:`timeline-session-error-banner`,"data-session-error":e,children:[`✗ Last turn failed: `,t,_Fe(t)&&(0,Z.jsxs)(Z.Fragment,{children:[` `,(0,Z.jsx)(`button`,{type:`button`,className:`timeline-session-error-link`,onClick:()=>window.dispatchEvent(new CustomEvent(`gezel:navigate`,{detail:{view:`settings`,section:`defaults`}})),children:`Open Settings →`})]}),n&&(0,Z.jsxs)(Z.Fragment,{children:[` `,(0,Z.jsx)(`button`,{type:`button`,className:`timeline-session-error-link`,title:`Clear the failed-turn state across this project so ambient work resumes`,onClick:()=>{Q.clearProjectErrors(n).then(()=>{P(e=>e.map(e=>e.projectId===n?{...e,sessionLastTurnError:void 0}:e)),window.dispatchEvent(new CustomEvent(`gezel:session-error-cleared`,{detail:{projectId:n}}))}).catch(()=>{})},children:`Continue`})]}),` `,!ee(t)&&(0,Z.jsx)(Mx,{report:{surface:`session-error`,message:t}})]},`session-error:${e}`))},gt=(e,n)=>{let r=K.get(e.gezelId),o=e.sessionId===t,s=yFe(e.sessionLastActivityAt,rFe),c=!o&&!s,l=x&&e.projectId!=="default"?re.get(e.projectId):void 0,u=e.from?e.from.gezelId:e.gezelId,f=K.get(u)?.font,m=p(f),h=d(f);return(0,Z.jsx)(Nle,{dataMsgId:`msg:${e.sessionId}:${e.at}:${e.role}`,dataSessionId:e.sessionId,debugMode:Le,sessionId:e.sessionId,messageAt:e.at,role:e.role,content:e.content,authorLabel:r?i({name:r.name,roleBasedName:r.roleBasedName},T):`Gezel`,authorIcon:r?.icon??null,...r?.poppetje?{authorPoppetje:r.poppetje}:{},...r?.iconOverride?{authorIconOverride:!0}:{},authorTooltip:Ve(e.gezelId),...(()=>{let t=He(e.sessionProviderName,e.sessionModel);return t?{driftLabel:t}:{}})(),...!T&&r?.role?{authorRole:r.role}:{},...e.from?{from:e.from}:{},...e.nudge?{nudge:!0}:{},receiverLabel:r?i({name:r.name,roleBasedName:r.roleBasedName},T):`Gezel`,...m?{fontFamily:m}:{},...h===1?{}:{fontScale:h},...l?{projectLabel:l.name}:{},extraClass:c?`timeline-msg-faded`:void 0,mediaProvider:AQ(e.projectId,e.sessionId),...e.referencedArtifacts?{referencedArtifacts:e.referencedArtifacts}:{},...e.referencedTasks?{referencedTasks:e.referencedTasks}:{},...e.toolCalls&&e.toolCalls.length>0?{toolCalls:e.toolCalls,projectId:e.projectId}:{},...e.reasoning?{reasoning:e.reasoning}:{},...e.reasoningDurationMs===void 0?{}:{reasoningDurationMs:e.reasoningDurationMs},...e.attemptedToolCalls&&e.attemptedToolCalls.length>0?{attemptedToolCalls:e.attemptedToolCalls}:{},...n?.recoveredInNextTurn?{recoveredInNextTurn:!0}:{},...n?.suppressHeader?{suppressHeader:!0}:{},...n?.timestampLabel?{timestampLabel:n.timestampLabel}:{},...e.intents&&e.intents.length>0?{intents:e.intents}:{},...e.warnings&&e.warnings.length>0?{warnings:e.warnings}:{},...e.pendingQuestionId&&J.get(e.pendingQuestionId)?{question:J.get(e.pendingQuestionId),onQuestionAnswered:e=>ae(t=>{let n=new Map(t);return n.set(e.id,e),n})}:{},...a?{onArtifactReference:t=>a(t,e.projectId)}:{},onTaskReference:e=>window.dispatchEvent(new CustomEvent(`gezel:open-tab`,{detail:{kind:`task`,ref:e}}))},`msg:${e.sessionId}:${e.at}:${e.role}`)},_t=(e,t)=>{let n=[],r=K.get(t.gezelId),a=p(r?.font),o=d(r?.font);n.push((0,Z.jsx)(Lle,{dataMsgId:`live:${e}`,dataSessionId:e,authorLabel:r?i({name:r.name,roleBasedName:r.roleBasedName},T):`Gezel`,authorIcon:r?.icon??null,...r?.poppetje?{authorPoppetje:r.poppetje}:{},...r?.iconOverride?{authorIconOverride:!0}:{},authorTooltip:Ve(t.gezelId),...(()=>{if(!t.sessionProviderName)return{};let e=He(t.sessionProviderName,t.sessionModel);return e?{driftLabel:e}:{}})(),...!T&&r?.role?{authorRole:r.role}:{},segments:t.segments,startedAt:t.startedAt,lastActivityAt:t.lastActivityAt,hasProgress:t.hasProgress,...Be(t.gezelId)===`ollama`?{onProbeOllama:()=>Q.ollamaProbe()}:{},...Be(t.gezelId)===`ollama`?{localEngine:`ollama`}:Be(t.gezelId)===`llama-cpp`?{localEngine:`llama-cpp`}:Be(t.gezelId)===`ds4`?{localEngine:`ds4`}:{},onCancel:async()=>{try{await Q.cancelChatSessionTurn(e)}catch(e){console.warn(`[timeline] failed to cancel turn:`,e)}},onReEngage:async()=>{try{await Q.cancelChatSessionTurn(e)}catch(e){console.warn(`[timeline] re-engage: cancel failed:`,e)}try{await Q.sendToChatSession(e,{message:`Please continue where you left off and finish the work you started.`})}catch(e){console.warn(`[timeline] re-engage: send failed:`,e)}},...a?{fontFamily:a}:{},...o===1?{}:{fontScale:o},...t.error?{error:t.error}:{},...t.errorDetail?{errorDetail:t.errorDetail}:{},...t.queueAhead===void 0?{}:{queueAhead:t.queueAhead},...t.wirePulseCount&&t.wirePulseCount>0?{wirePulseCount:t.wirePulseCount}:{},...t.thinkingLabel?{thinkingLabel:t.thinkingLabel}:{},...t.thinkingProgress===void 0?{}:{thinkingProgress:t.thinkingProgress},...t.thinkingDetail?{thinkingDetail:t.thinkingDetail}:{},...t.liveReasoning?{liveReasoning:t.liveReasoning}:{},...t.liveToolArgs?{liveToolArgs:t.liveToolArgs}:{},...t.gpuSwapTask?{gpuSwapTask:t.gpuSwapTask}:{},...t.gpuSwapDetail?{gpuSwapDetail:t.gpuSwapDetail}:{},...t.gpuSwapPrompt?{gpuSwapPrompt:t.gpuSwapPrompt}:{},...t.gpuSwapProgress===void 0?{}:{gpuSwapProgress:t.gpuSwapProgress},...t.gpuSwapStep===void 0?{}:{gpuSwapStep:t.gpuSwapStep},...t.gpuSwapTotalSteps===void 0?{}:{gpuSwapTotalSteps:t.gpuSwapTotalSteps},...t.gpuSwapSecondsPerStep===void 0?{}:{gpuSwapSecondsPerStep:t.gpuSwapSecondsPerStep},...t.awaitingGezelName?{awaitingGezelName:t.awaitingGezelName}:{},...t.warnings&&t.warnings.length>0?{warnings:t.warnings}:{},...pt.get(e)?{question:pt.get(e),onQuestionAnswered:e=>ae(t=>{let n=new Map(t);return n.set(e.id,e),n})}:{},debugMode:Le,sessionId:e},`live:${e}`));let s=de.current.get(e);if(s&&s.length>0)for(let r of s)n.push((0,Z.jsx)(zle,{sessionId:e,queueId:r.id,preview:r.preview,enqueuedAt:r.enqueuedAt,mediaProvider:AQ(t.projectId,e),...r.nudge?{nudge:!0}:{},onDiscard:async()=>{try{await Q.cancelQueuedMessage(e,r.id)}catch(e){console.warn(`[timeline] failed to discard queued message:`,e)}},onCancelCurrent:async()=>{try{await Q.cancelChatSessionTurn(e)}catch(e){console.warn(`[timeline] failed to cancel current turn:`,e)}},onLoadText:async()=>{try{return(await Q.listSessionQueue(e)).entries.find(e=>e.queueId===r.id)?.text??null}catch{return null}},onSaveEdit:async t=>{try{return await Q.updateQueuedMessage(e,r.id,{message:t}),!0}catch(e){if(/not found/i.test(e.message??``))return!1;throw e}}},`ghost:${r.id}`));return n};for(let e of Ye){if(e.kind===`terminal`){let t=e.entry,n=dt.get(t.threadId),r=!n,i=n?Math.max(0,new Date(t.at).getTime()-new Date(n.at).getTime()):0;(r||i>lFe)&&mt.push(mFe({entry:t,key:`terminal-divider:${t.threadId}:${t.messageId}`})),mt.push((0,Z.jsx)(BPe,{entry:t,...s?{onOpenWorkspaceFile:e=>s(e,t.projectId)}:{}},`terminal:${t.threadId}:${t.messageId}`)),dt.set(t.threadId,t);continue}if(e.kind===`terminal-streaming`){let t=e.slot.projectId,n=e.runId;mt.push((0,Z.jsx)(KPe,{content:e.slot.content,cwd:e.slot.cwd,startedAt:e.slot.startedAt,...e.slot.awaitingInput?{awaitingInput:e.slot.awaitingInput}:{},onCancel:()=>{Q.cancelTerminalRun(t,n).catch(()=>{})},onSendInput:e=>{let r=ue.current.get(n);r&&(delete r.awaitingInput,le(e=>e+1)),Q.sendTerminalInput(t,n,e).catch(e=>{console.warn(`[ChatTimelineView] sendTerminalInput failed`,e)})}},`terminal-streaming:${n}`));continue}let r=e.sessionId,i=e.root??e.replies[0];if(!i)continue;if(r!==st){st&&ct&&!Y.current.has(st)&&ht(st,ct,lt);let a=ut.has(r);mt.push(pFe({row:i,gezels:K,projects:re,showProjectName:x,activeSessionId:t,onFocusSession:n,continuing:a,key:`divider:${r}:${e.at}`,roleBasedNameOnlyMode:T})),ut.add(r),st=r,ct=null,lt=null}let a=e.root??e.replies.find(e=>e.kind===`message`);a&&a.kind===`message`&&a.msg.sessionLastTurnError&&(ct=a.msg.sessionLastTurnError,lt=a.msg.projectId);let o=[];if(e.root&&o.push(gt(e.root.msg,{timestampLabel:r$(e.root.at)})),e.replies.length>0){let t=[];for(let n=0;n<e.replies.length;n++){let r=e.replies[n];if(r.kind===`streaming`){t.push(..._t(r.sessionId,r.slot));continue}let i=r.msg,a=n>0?e.replies[n-1]:void 0,o=a?a.at:e.root?.at,s=(o?Math.max(0,Date.parse(i.at)-Date.parse(o)):0)>iFe,c=a?.kind===`message`&&a.msg.gezelId===i.gezelId,l=e.replies[n+1],u=i.role===`assistant`&&i.content.trim().length===0&&!!i.toolCalls&&i.toolCalls.length>0&&l!==void 0&&l.kind===`message`&&l.msg.sessionId===i.sessionId&&l.msg.role===`assistant`&&l.msg.content.trim().length>0;t.push(gt(i,{...c&&!s?{suppressHeader:!0}:{},...s?{timestampLabel:r$(i.at)}:{},...u?{recoveredInNextTurn:!0}:{}}))}o.push((0,Z.jsx)(`div`,{className:`timeline-thread-replies`,children:t},`replies`))}let c=e.replies.length>0&&(!e.root||!e.root.msg.from);mt.push((0,Z.jsx)(`div`,{className:`timeline-thread${e.root?``:` timeline-thread-rootless`}${c?` timeline-thread-railed`:``}`,children:o},`thread:${r}:${e.at}`))}st&&ct&&!Y.current.has(st)&&ht(st,ct,lt);let vt=t?fe.current.get(t):void 0,yt=vt?.kind===`warning`&&typeof vt.estimatedTokens==`number`&&typeof vt.numCtx==`number`&&vt.numCtx>0?Math.round(100*vt.estimatedTokens/vt.numCtx):null,bt=ve?.kind===`chat`?Y.current.has(ve.sessionId):ve?.kind===`terminal`&&ue.current.has(ve.runId),xt=ve!==null&&(be!==ve.key||bt);return(0,Z.jsxs)(`div`,{className:`chat-timeline-viewport`,children:[vt&&(0,Z.jsx)(`output`,{className:`chat-context-banner chat-context-banner-${vt.kind}`,children:vt.kind===`warning`?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`chat-context-banner-icon`,"aria-hidden":!0,children:`⚠`}),(0,Z.jsxs)(`span`,{className:`chat-context-banner-body`,children:[(0,Z.jsx)(`strong`,{children:`Context window getting full`}),` — this thread`,` `,yt===null?`is approaching`:yt>100?`has exceeded`:`has used about ${yt}% of`,` `,`the model's available context. Earlier context may become less reliable — consider starting fresh for better recall.`]})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`chat-context-banner-icon`,"aria-hidden":!0,children:`✦`}),(0,Z.jsxs)(`span`,{className:`chat-context-banner-body`,children:[(0,Z.jsx)(`strong`,{children:`Compacted older messages`}),` to fit the model context.`,` `,vt.removedCount??0,` earlier turn`,vt.removedCount===1?``:`s`,` were summarized into a single bubble; the gezel will continue from the synthesis.`]})]})}),ot&&(0,Z.jsx)(bFe,{payload:ot,gezels:K}),(0,Z.jsxs)(`div`,{className:`chat-timeline`,ref:pe,onScroll:it,"data-testid":`chat-timeline`,children:[B&&(0,Z.jsx)(`div`,{className:`timeline-loading-pill muted small`,children:we.current?`Loading older messages…`:`Scroll up for older messages`}),mt,xt&&(0,Z.jsx)(`div`,{className:`timeline-response-runway`,"aria-hidden":`true`})]}),!he&&(0,Z.jsx)(`button`,{type:`button`,className:`chat-timeline-pin-toggle`,onClick:at,title:`Jump to newest and follow`,"aria-label":`Jump to newest and follow`,children:(0,Z.jsxs)(`svg`,{className:`chat-timeline-pin-glyph`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,role:`img`,"aria-hidden":!0,children:[(0,Z.jsx)(`title`,{children:`Jump to newest`}),(0,Z.jsx)(`line`,{x1:`12`,y1:`4`,x2:`12`,y2:`15`}),(0,Z.jsx)(`polyline`,{points:`6 10 12 16 18 10`}),(0,Z.jsx)(`line`,{x1:`5`,y1:`20`,x2:`19`,y2:`20`})]})})]})}function pFe(e){let{row:t,gezels:n,projects:r,showProjectName:a,activeSessionId:o,onFocusSession:s,continuing:c,key:l,roleBasedNameOnlyMode:u}=e,d=t.kind===`streaming`?t.sessionId:t.msg.sessionId,f=t.kind===`streaming`?t.slot.gezelId:t.msg.gezelId,p=t.kind===`streaming`?t.slot.projectId:t.msg.projectId,m=n.get(f),h=a&&p!=="default"?r.get(p):void 0,g=d===o,_=t.kind===`message`?t.msg.sessionCreatedAt:t.slot.sessionCreatedAt??new Date(t.slot.startedAt).toISOString(),v=t.kind===`message`?t.msg.taskRef:t.slot.taskRef,y=t.kind===`message`?t.msg.handoffFrom:void 0,b=y?(()=>{let e=n.get(y.gezelId);return e?i({name:e.name,roleBasedName:e.roleBasedName},u):void 0})():void 0,x=m?i({name:m.name,roleBasedName:m.roleBasedName},u):`Gezel`;return(0,Z.jsxs)(`button`,{type:`button`,className:`timeline-session-divider${g?` timeline-session-divider-active`:``}${c?` timeline-session-divider-continuing`:``}`,onClick:()=>s?.(d,f,p),title:`Focus this thread — composer will post here`,children:[(0,Z.jsx)(Up,{svg:m?.icon??null,poppetje:m?.poppetje,iconOverride:m?.iconOverride,name:x,size:16}),(0,Z.jsxs)(`span`,{className:`timeline-divider-meta`,children:[c?(0,Z.jsxs)(Z.Fragment,{children:[`↩ continuing with `,x,h&&(0,Z.jsxs)(Z.Fragment,{children:[` · in `,h.name]})]}):(0,Z.jsxs)(Z.Fragment,{children:[`new thread with `,x,h&&(0,Z.jsxs)(Z.Fragment,{children:[` · in `,h.name]}),` · `,`started `,r$(_)]}),v&&(0,Z.jsxs)(Z.Fragment,{children:[` · task `,v]})]}),y&&b&&(0,Z.jsxs)(`span`,{className:`timeline-divider-handoff`,children:[(0,Z.jsxs)(`svg`,{className:`timeline-divider-handoff-icon`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,focusable:`false`,children:[(0,Z.jsx)(`path`,{d:`M2.5 4.25v2.1a4.4 4.4 0 0 0 4.4 4.4H13`}),(0,Z.jsx)(`path`,{d:`m10.5 8.25 2.75 2.5-2.75 2.5`})]}),`handoff from `,b]})]},l)}function mFe(e){let{entry:t,key:n}=e;return(0,Z.jsxs)(`div`,{className:`timeline-session-divider timeline-terminal-session-divider`,children:[(0,Z.jsx)(`span`,{className:`terminal-folder-pill`,title:`Working folder`,children:t.workingDir===``?`/`:t.workingDir}),(0,Z.jsxs)(`span`,{className:`timeline-divider-meta`,children:[`terminal session · started `,r$(t.at)]})]},n)}function hFe(e){for(let t of e)if(t.kind===`text`&&t.content.length>0)return!0;return!1}function gFe(e){let t=0;for(let n of e)n.kind===`tool`&&t++;return t}function t$(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].sessionId===t)return e[n];return null}function _Fe(e){return/model\s+.*\bnot available\b/i.test(e)||/\bunknown model\b/i.test(e)}function n$(e){try{let t=new Date(e).getTime();return new Date(t+1).toISOString()}catch{return e}}function vFe(){return new Date().toISOString()}function yFe(e,t){if(!e)return!1;try{let n=new Date(e).getTime();return Date.now()-n<=t}catch{return!1}}function bFe({payload:e,gezels:t}){let{userMsg:n,assistantInfo:r}=e,a=dFe(n.content),o=r.kind===`live`,s=o?r.slot:null,c=WS(o?s?.startedAt??null:null),l=o?r.sessionId:r.msg.gezelId,u=t.get(o?s?.gezelId??``:r.msg.gezelId),d=fC(),f=u?i({name:u.name,roleBasedName:u.roleBasedName},d):`Gezel`;return(0,Z.jsxs)(`div`,{className:`chat-sticky-header`,"aria-live":`polite`,children:[(0,Z.jsxs)(`div`,{className:`chat-sticky-header-user`,title:n.content,children:[(0,Z.jsx)(`span`,{className:`chat-sticky-header-author`,children:`YOU`}),(0,Z.jsx)(`span`,{className:`chat-sticky-header-preview`,children:a})]}),(0,Z.jsxs)(`div`,{className:`chat-sticky-header-assistant`,children:[(0,Z.jsx)(Up,{svg:u?.icon??null,poppetje:u?.poppetje,iconOverride:u?.iconOverride,name:f,size:18}),(0,Z.jsx)(`span`,{className:`chat-sticky-header-author`,children:f}),!d&&u?.role&&(0,Z.jsx)(PS,{role:u.role}),o&&s&&(0,Z.jsx)(zS,{failed:!!s.error,queued:s.queueAhead!==void 0&&!hFe(s.segments),queueAhead:s.queueAhead,elapsedSeconds:c,toolCount:gFe(s.segments),wirePulseCount:s.wirePulseCount,...s.thinkingLabel?{thinkingLabel:s.thinkingLabel}:{},...s.thinkingProgress===void 0?{}:{thinkingProgress:s.thinkingProgress},...s.thinkingDetail?{thinkingDetail:s.thinkingDetail}:{},...s.awaitingGezelName?{awaitingGezelName:s.awaitingGezelName}:{}})]},l)]})}function r$(e){try{let t=new Date(e).getTime(),n=Math.max(0,Date.now()-t),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}catch{return e}}var i$=280;function a$(e,t){t?.current&&(t.current.abort(),t.current=null);let n=e.current;if(n){try{n.pause(),n.removeAttribute(`src`),n.load()}catch{}e.current=null}}function xFe(e){let t=e.trim();if(t.length<=i$)return t;let n=t.slice(0,i$),r=Math.max(n.lastIndexOf(`. `),n.lastIndexOf(`! `),n.lastIndexOf(`? `));return r>=i$/2?n.slice(0,r+1).trim():`${n.trim()}…`}async function SFe(e,t,n,r,i){a$(r,i);let a=new AbortController;i.current=a;let o=xFe(e);console.debug(`[narrate] synth start chars=${o.length} (of ${e.length}) gezelId=${t}`);let s;try{s=await Q.synthesizeSpeech({text:o,gezelId:t,projectId:n,inline:!0,signal:a.signal})}catch(e){if(a.signal.aborted){console.debug(`[narrate] synth aborted (superseded by newer turn)`);return}console.warn(`[narrate] synth failed:`,e);return}if(a.signal.aborted){console.debug(`[narrate] synth resolved but aborted — dropping`);return}if(console.debug(`[narrate] synth ok b64Len=${s.b64Wav?.length??0} meta=`,s.meta),!s.b64Wav){console.warn(`[narrate] synth returned no b64Wav — narration skipped`);return}let c=new Audio(`data:audio/wav;base64,${s.b64Wav}`);r.current=c,c.addEventListener(`ended`,()=>{console.debug(`[narrate] playback ended`),r.current===c&&(r.current=null),i.current===a&&(i.current=null)});try{await c.play(),console.debug(`[narrate] playback started`)}catch(e){console.warn(`[narrate] playback rejected:`,e),r.current===c&&(r.current=null),i.current===a&&(i.current=null)}}function o$(e){switch(e){case`copilot`:return`Copilot`;case`openai`:return`OpenAI`;case`anthropic`:return`Claude`;case`anthropic-cli`:return`Claude CLI`;case`codex-cli`:return`Codex CLI`;case`ollama`:return`Ollama`;case`llama-cpp`:return`On-device`;case`mlx`:return`MLX`;case`ds4`:return`DwarfStar`;case`remote`:return`Remote`}}function s$({projectId:e,gezelId:t,taskRef:n,activeSessionId:r,onFocusSession:i,onToolActivity:a,onArtifactReference:o,onArtifactSeen:s,onWorkspaceReference:c,onWorkspaceSeen:l,onTaskReference:u,emptyPlaceholder:d,onTerminalWorkingDirChanged:f,terminalRefreshKey:p,terminalSubmission:m,terminalFocusRequest:h,sessionFocusRequest:g}){let _=(0,X.useCallback)(r=>Q.listProjectTimeline(e,{...r,...t?{gezelId:t}:{},...n?{taskRef:n}:{}}),[e,t,n]),v=(0,X.useCallback)(()=>t?Q.gezelEventsUrl(t):Q.projectEventsUrl(e),[e,t]),y=(0,X.useCallback)(()=>Q.terminalEventsUrl(e),[e]),b=(0,X.useMemo)(()=>t?{projectId:e,gezelId:t}:{projectId:e},[e,t]),[x,S]=(0,X.useState)(c$),[C,w]=(0,X.useState)(0);(0,X.useEffect)(()=>{if(!n){S(c$);return}let e=Fe(n);if(!e){S(c$);return}let t=!1;return Q.listTaskSessions(e.projectId,e.num).then(e=>{t||S(new Set(e.sessions.filter(e=>!e.archived).map(e=>e.id)))}).catch(()=>{}),()=>{t=!0}},[n,C]);let T=(0,X.useMemo)(()=>{if(n)return!r||x.has(r)?x:new Set([...x,r])},[n,x,r]),E=(0,X.useRef)(!1),D=(0,X.useCallback)(()=>{E.current||(E.current=!0,setTimeout(()=>{E.current=!1,w(e=>e+1)},500))},[]);return(0,Z.jsx)(e$,{scopeKey:n?`project:${e}:task:${n}`:t?`project:${e}:gezel:${t}`:`project:${e}`,activeSessionId:r,onFocusSession:i,onToolActivity:a,onArtifactReference:o,onArtifactSeen:s,onWorkspaceReference:c,onWorkspaceSeen:l,...u?{onTaskReference:u}:{},emptyPlaceholder:d,loadTimeline:_,streamUrl:v,...t||n?{}:{terminalStreamUrl:y},...p===void 0?{}:{terminalRefreshKey:p},...m?{terminalSubmission:m}:{},...h?{terminalFocusRequest:h}:{},...g?{sessionFocusRequest:g}:{},...t||n||!f?{}:{onTerminalWorkingDirChanged:f},inflightScope:b,...T?{scopedSessionIds:T,onUnknownSession:D}:{}})}var c$=new Set,l$=`default`;function CFe({craftbookId:e,craftbookName:t,readOnly:n}){let[r,i]=(0,X.useState)([]),[a,o]=(0,X.useState)(``);(0,X.useEffect)(()=>{Q.listGezels().then(e=>i(e.gezels)).catch(()=>{})},[]),(0,X.useEffect)(()=>{o(``)},[e]);let s=(0,X.useMemo)(()=>r.find(e=>e.role===`voorman`)??r.find(e=>e.role===`meester`)??r[0],[r]),c=t=>{t?.startsWith(`craftbook_`)&&window.dispatchEvent(new CustomEvent(`gezel:craftbook-edited`,{detail:{id:e}}))};return n?(0,Z.jsx)(`div`,{className:`craftbook-chat-pane muted small`,children:`This craftbook is read-only — fork it to a local copy to edit it with AI.`}):s?(0,Z.jsxs)(`div`,{className:`craftbook-chat-pane task-detail-chat`,children:[(0,Z.jsx)(s$,{projectId:l$,activeSessionId:a||void 0,onFocusSession:(e,t)=>{t===s.id&&o(e)},onToolActivity:e=>c(e.name)}),(0,Z.jsx)(BQ,{gezelId:s.id,gezelName:s.name,gezelIcon:s.icon??null,...s.poppetje?{gezelPoppetje:s.poppetje}:{},...s.iconOverride?{gezelIconOverride:s.iconOverride}:{},projectId:l$,sessionId:a||void 0,onSessionCreated:e=>o(e),onToolActivity:e=>c(e.name),craftbookRef:e,placeholder:`Ask ${s.name} to shape “${t}” — add steps, set roles, wire gates…`})]}):(0,Z.jsx)(`div`,{className:`craftbook-chat-pane muted small`,children:`No gezel available yet. Create a voorman or the Meester first, then come back.`})}function u$({value:e,readOnly:t,placeholder:n,minHeight:r=`80px`,maxHeight:i=`40vh`,onCommit:a}){let o=Ax(),s=(0,X.useRef)(e),c=(0,X.useRef)(e),l=(0,X.useCallback)(e=>{s.current=e},[]),u=(0,X.useCallback)(()=>{t||s.current!==c.current&&(c.current=s.current,a(s.current))},[t,a]),d=(0,X.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||u()},[u]),f=(0,X.useRef)(u);return f.current=u,(0,X.useEffect)(()=>()=>f.current(),[]),(0,Z.jsx)(`div`,{className:`markdown-field`,onBlur:d,children:(0,Z.jsx)(uQ,{initialMarkdown:e,initialView:`wysiwyg`,onChange:l,readOnly:t??!1,colorScheme:o,uxFont:`var(--font-ui)`,...n?{placeholder:n}:{},minHeight:r,maxHeight:i,showPlayTab:!1,showStatusBar:!1,showFilesToggle:!1,fullWidth:!0,thinMargins:!0})})}function d$(e){window.dispatchEvent(new CustomEvent(`gezel:open-tab`,{detail:e}))}function wFe({craftbookId:e,steps:t,stepId:n,entryStepId:r,gezels:i,readOnly:a,busy:o,onPatch:s,onRemove:c,onSetEntry:l}){let u=n?t.find(e=>e.id===n)??null:null,[d,f]=(0,X.useState)(n),p=(0,X.useRef)(u?.name??``),m=(0,X.useRef)(u?.description??``),h=(0,X.useRef)(u?.prompt??``),g=(0,X.useRef)(u?.suggestedRole??``);if((0,X.useEffect)(()=>{p.current=u?.name??``,m.current=u?.description??``,h.current=u?.prompt??``,g.current=u?.suggestedRole??``,f(u?.id??null)},[u?.id,u?.name,u?.description,u?.prompt,u?.suggestedRole]),!u)return(0,Z.jsx)(`section`,{className:`task-step-panel empty`,children:(0,Z.jsx)(`p`,{className:`muted small`,children:t.length===0?`No steps yet — add one with the + button to begin.`:`Select a step above to view and edit it.`})});let _=u.id===r,v=e=>{a||s(u.id,e)},y=()=>{let e=p.current.trim();!e||e===u.name||v({name:e})},b=()=>{m.current!==(u.description??``)&&v({description:m.current})},x=()=>{h.current!==(u.prompt??``)&&v({prompt:h.current})},S=()=>{let e=g.current.trim();e!==(u.suggestedRole??``)&&v({suggestedRole:e||null})},C=u.assignee?u.assignee.kind===`user`?`__user`:u.assignee.gezelId:u.suggestedGezelId?u.suggestedGezelId:`__none`,w=e=>{v(e===`__user`?{assignee:{kind:`user`},suggestedGezelId:null}:e===`__none`?{assignee:null,suggestedGezelId:null}:{assignee:null,suggestedGezelId:e})},T=u.terminal?`__terminal`:u.next??`__linear`,E=e=>{v(e===`__terminal`?{terminal:!0,next:null}:e===`__linear`?{terminal:!1,next:null}:{terminal:!1,next:e})},D=t=>{let n=pe(t===`enter`?u.onEnter:u.onExit),r=t===`enter`?`onEnter`:`onExit`,i=e=>v({[r]:e.length>0?e:null});return(0,Z.jsxs)(`div`,{className:`step-script-row`,children:[(0,Z.jsx)(`span`,{className:`step-script-moment muted small`,children:t===`enter`?`when it starts`:`when it finishes`}),n.length===0&&a&&(0,Z.jsx)(`span`,{className:`muted small`,children:`—`}),n.map((t,r)=>(0,Z.jsxs)(`span`,{className:`step-script-chip`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`link-button`,onClick:()=>{(t.scope===void 0||t.scope===`craftbook`)&&d$({kind:`craftbook-script`,craftbookId:e,name:t.name})},title:t.scope?`${t.scope} script`:`Open this script in the editor`,children:[`⚙ `,t.name,t.scope&&t.scope!==`craftbook`?` (${t.scope})`:``]}),!a&&(0,Z.jsx)(`button`,{type:`button`,className:`link-button muted`,onClick:()=>i(n.filter((e,t)=>t!==r)),children:`detach`})]},`${t.scope??`craftbook`}:${t.name}:${r}`)),!a&&(0,Z.jsx)(`button`,{type:`button`,className:`link-button`,onClick:()=>{let r=`${u.id}-${t}${n.length>0?`-${n.length+1}`:``}`;i([...n,{name:r}]),d$({kind:`craftbook-script`,craftbookId:e,name:r})},children:`+ attach script`})]})},O=[];if(u.gate){let e=K(u.gate),t=[...e.checks.length>0?[`${e.checks.length} check(s)`]:[],...e.scripts.length>0?[`${e.scripts.length} script(s)`]:[]];O.push(`gate at ${e.at}: ${t.join(` + `)||`empty`}`)}return u.advanceWhen&&O.push(`auto-advance on ${u.advanceWhen.file}`),u.branches&&u.branches.length>0&&O.push(`${u.branches.length} branch(es)`),(0,Z.jsxs)(`section`,{className:`task-step-panel`,children:[(0,Z.jsxs)(`header`,{className:`task-step-panel-header`,children:[(0,Z.jsxs)(`div`,{className:`task-step-panel-title`,children:[(0,Z.jsx)(`h4`,{children:u.name}),_&&(0,Z.jsx)(`span`,{className:`step-status-pill status-active`,children:`Entry`})]}),!a&&(0,Z.jsxs)(`div`,{className:`task-step-panel-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`secondary`,onClick:()=>void l(u.id),disabled:o||_,title:`Make this the craftbook's entry step`,children:`Set as entry`}),(0,Z.jsx)(`button`,{type:`button`,className:`danger`,onClick:()=>void c(u.id),disabled:o||t.length<=1,title:t.length<=1?`A craftbook needs at least one step`:`Delete this step`,children:`Delete`})]})]}),(0,Z.jsxs)(`div`,{className:`task-step-panel-grid`,children:[(0,Z.jsxs)(`label`,{className:`task-step-field`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Name`}),(0,Z.jsx)(`input`,{defaultValue:u.name,disabled:a,onChange:e=>{p.current=e.target.value},onBlur:y},`name-${d}`)]}),(0,Z.jsxs)(`label`,{className:`task-step-field`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Suggested role`}),(0,Z.jsx)(`input`,{defaultValue:u.suggestedRole??``,disabled:a,placeholder:`developer, reviewer, designer…`,onChange:e=>{g.current=e.target.value},onBlur:S},`role-${d}`)]}),(0,Z.jsxs)(`label`,{className:`task-step-field`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Assignee (override)`}),(0,Z.jsxs)(gv,{value:C,disabled:a||o,onValueChange:w,children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsxs)(xv,{children:[(0,Z.jsx)(Sv,{value:`__none`,children:`— by role —`}),(0,Z.jsx)(Sv,{value:`__user`,children:`→ You`}),i.map(e=>(0,Z.jsxs)(Sv,{value:e.id,children:[`→ `,e.name]},e.id))]})]})]}),(0,Z.jsxs)(`label`,{className:`task-step-field`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Next step`}),(0,Z.jsxs)(gv,{value:T,disabled:a||o,onValueChange:E,children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsxs)(xv,{children:[(0,Z.jsx)(Sv,{value:`__linear`,children:`→ next in order`}),(0,Z.jsx)(Sv,{value:`__terminal`,children:`■ terminal (ends here)`}),t.filter(e=>e.id!==u.id).map(e=>(0,Z.jsxs)(Sv,{value:e.id,children:[`→ `,e.name]},e.id))]})]})]}),(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Description`}),(0,Z.jsx)(u$,{value:u.description??``,readOnly:a,placeholder:`What this step produces, who it's for, what 'done' looks like.`,onCommit:e=>{m.current=e,b()}},`desc-${d}`)]}),(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsxs)(`span`,{className:`task-step-field-label`,children:[`Prompt `,(0,Z.jsx)(`span`,{className:`muted small`,children:`— step-specific guidance for the assignee`})]}),(0,Z.jsx)(u$,{value:u.prompt??``,readOnly:a,placeholder:`Instructions the assignee can lean on for this step.`,onCommit:e=>{h.current=e,x()}},`prompt-${d}`)]}),(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Scripts`}),(0,Z.jsxs)(`div`,{className:`step-scripts`,children:[D(`enter`),D(`exit`)]})]}),O.length>0&&(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Routing`}),(0,Z.jsxs)(`p`,{className:`muted small`,children:[O.join(` · `),` — edit gates/branches/auto-advance via the AI assist.`]})]})]})]})}function TFe(e){switch(e){case`done`:return`✓`;case`active`:return`▶`;case`pending`:return``}}function f$({steps:e,selectedStepId:t,onSelect:n,statusOf:r,entryStepId:i,onAddStep:a,onReorder:o,busy:s=!1,ariaLabel:c=`Steps`,addLabel:l=`Add`,variant:u=`compact`,stepOf:d,terminal:f}){let p=(0,X.useRef)(null),m=(0,X.useRef)(null),[h,g]=(0,X.useState)({left:0,client:0,scroll:0}),_=Math.max(0,h.scroll-h.client),v=_>1,y=h.scroll>0?Math.min(1,h.client/h.scroll):1,b=_>0?h.left/_:0,x=(0,X.useCallback)(()=>{let e=m.current;e&&g({left:e.scrollLeft,client:e.clientWidth,scroll:e.scrollWidth})},[]);(0,X.useLayoutEffect)(()=>{x();let e=m.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(x);return t.observe(e),()=>t.disconnect()},[x,e.length]);let S=(0,X.useRef)(null),C=e=>{S.current={x:e.clientX,left:h.left},e.currentTarget.setPointerCapture(e.pointerId),e.preventDefault()},w=e=>{let t=S.current,n=m.current;if(!t||!n)return;let r=h.client*(1-y);r<=0||(n.scrollLeft=t.left+(e.clientX-t.x)/r*_)},T=()=>{S.current=null},E=(t,n,r)=>{if(!o||t===n)return;let i=e.map(e=>e.id).filter(e=>e!==t),a=i.indexOf(n);a<0||(i.splice(r?a+1:a,0,t),o(i))},D=(t,r)=>{if(t.key!==`ArrowLeft`&&t.key!==`ArrowRight`)return;t.preventDefault();let i=t.key===`ArrowRight`?1:-1;if(t.altKey&&o){let t=e[r+i];t&&E(e[r].id,t.id,i>0);return}let a=e[r+i];a&&n(a.id)},O=e=>({draggable:o!=null&&!s,onDragStart:()=>{p.current=e},onDragOver:e=>{o&&p.current&&e.preventDefault()},onDrop:t=>{t.preventDefault();let n=p.current;if(p.current=null,n){let r=t.currentTarget.getBoundingClientRect();E(n,e,t.clientX>r.left+r.width/2)}}}),k=(e,t,n)=>`${e.name}${n?` (entry step)`:``}${t===`active`?` (active)`:t===`done`?` (completed)`:``}${o?` — drag or Alt+Arrow to reorder`:``}`;return u===`bench`?(0,Z.jsxs)(`div`,{className:`bench-scroll`,children:[v&&(0,Z.jsx)(`div`,{className:`bench-scrollbar`,"aria-hidden":`true`,children:(0,Z.jsx)(`div`,{className:`bench-scrollbar-thumb`,style:{width:`${y*100}%`,left:`${b*(1-y)*100}%`},onPointerDown:C,onPointerMove:w,onPointerUp:T,onPointerCancel:T})}),(0,Z.jsx)(`div`,{className:`bench-viewport`,ref:m,onScroll:x,children:(0,Z.jsxs)(`nav`,{className:`step-tracker step-bench`,"aria-label":c,role:`tablist`,children:[(0,Z.jsx)(`span`,{className:`step-rail`,"aria-hidden":`true`}),e.length===0&&(0,Z.jsx)(`span`,{className:`step-tracker-empty muted small`,children:`No steps yet —`}),e.map((e,a)=>{let o=r?r(e,a):`pending`,c=e.id===t,l=i!=null&&e.id===i,u=d?.(e,a)??{},f=String(a+1).padStart(2,`0`);return(0,Z.jsxs)(`div`,{className:[`bench-step`,`status-${o}`,c?`selected`:``,l?`entry`:``].filter(Boolean).join(` `),children:[(0,Z.jsx)(`span`,{className:`bench-step-assignee`,children:u.assigneeControl??(u.assigneeName&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`bench-step-assignee-name`,children:u.assigneeName}),u.assigneeRole&&(0,Z.jsx)(`span`,{className:`bench-step-assignee-role`,children:u.assigneeRole})]}))}),(0,Z.jsx)(`span`,{className:`bench-step-stage`,children:(0,Z.jsx)(`button`,{type:`button`,className:`bench-step-marker`,onClick:()=>n(e.id),onKeyDown:e=>D(e,a),disabled:s,role:`tab`,"aria-selected":c,...O(e.id),title:k(e,o,l),children:u.figure??(0,Z.jsx)(`span`,{className:`bench-peg`,"aria-hidden":`true`,children:o===`done`?`✓`:l&&o===`pending`?`▸`:``})})}),(0,Z.jsxs)(`button`,{type:`button`,className:`bench-step-foot`,onClick:()=>n(e.id),disabled:s,tabIndex:-1,title:k(e,o,l),children:[(0,Z.jsx)(`span`,{className:`bench-step-num`,children:f}),(0,Z.jsx)(`span`,{className:`bench-step-name`,children:e.name}),u.statusWord&&(0,Z.jsx)(`span`,{className:`bench-step-status`,children:u.statusWord})]})]},e.id)}),a&&(0,Z.jsxs)(`div`,{className:`bench-step bench-step-add`,children:[(0,Z.jsx)(`span`,{className:`bench-step-assignee`}),(0,Z.jsx)(`span`,{className:`bench-step-stage`,children:(0,Z.jsx)(`button`,{type:`button`,className:`bench-step-marker`,onClick:a,disabled:s,title:`Add a step`,"aria-label":`Add a step`,children:(0,Z.jsx)(`span`,{className:`bench-peg is-add`,"aria-hidden":`true`,children:`+`})})}),(0,Z.jsxs)(`span`,{className:`bench-step-foot`,children:[(0,Z.jsx)(`span`,{className:`bench-step-num`,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`bench-step-name muted`,children:l})]})]}),f&&(0,Z.jsxs)(`div`,{className:`bench-step bench-step-terminal terminal-${f.tone}`,children:[(0,Z.jsx)(`span`,{className:`bench-step-assignee`}),(0,Z.jsx)(`span`,{className:`bench-step-stage`,children:(0,Z.jsx)(`span`,{className:`bench-peg bench-peg-terminal`,"aria-hidden":`true`,children:f.tone===`complete`?`✓`:`✕`})}),(0,Z.jsxs)(`span`,{className:`bench-step-foot`,children:[(0,Z.jsx)(`span`,{className:`bench-step-num`,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`bench-step-status`,children:f.word})]})]})]})})]}):(0,Z.jsxs)(`nav`,{className:`step-tracker`,"aria-label":c,role:`tablist`,children:[e.length===0&&(0,Z.jsx)(`span`,{className:`step-tracker-empty muted small`,children:`No steps yet —`}),e.map((a,o)=>{let c=r?r(a,o):`pending`,l=a.id===t,u=i!=null&&a.id===i;return(0,Z.jsxs)(`span`,{className:`step-dot-wrap`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:[`step-dot`,`status-${c}`,l?`selected`:``,u?`entry`:``].filter(Boolean).join(` `),onClick:()=>n(a.id),onKeyDown:e=>D(e,o),disabled:s,role:`tab`,"aria-selected":l,...O(a.id),title:k(a,c,u),children:[(0,Z.jsx)(`span`,{className:`step-dot-badge`,"aria-hidden":`true`,children:u&&c===`pending`?`▸`:TFe(c)}),(0,Z.jsx)(`span`,{className:`step-dot-label`,children:a.name})]}),o<e.length-1&&(0,Z.jsx)(`span`,{className:`step-dot-connector status-${c}`,"aria-hidden":`true`})]},a.id)}),a&&(0,Z.jsxs)(Z.Fragment,{children:[e.length>0&&(0,Z.jsx)(`span`,{className:`step-dot-connector status-pending`,"aria-hidden":`true`}),(0,Z.jsxs)(`button`,{type:`button`,className:`step-dot step-dot-add`,onClick:a,disabled:s,title:`Add a step`,"aria-label":`Add a step`,children:[(0,Z.jsx)(`span`,{className:`step-dot-badge`,"aria-hidden":`true`,children:`+`}),(0,Z.jsx)(`span`,{className:`step-dot-label muted small`,children:l})]})]})]})}function EFe(e){window.dispatchEvent(new CustomEvent(`gezel:open-tab`,{detail:e}))}function DFe(e){return{name:e.name,description:e.description??null,plan:e.plan??null,defaultAssignee:e.defaultAssignee??null,steps:e.steps,entryStepId:e.entryStepId}}function p$({craftbookId:e,source:t,onChanged:n}){let[r,i]=(0,X.useState)(null),[a,o]=(0,X.useState)(t??`local`),[c,l]=(0,X.useState)([]),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)(`editor`),[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(null),v=(0,X.useRef)(``),y=(0,X.useRef)(``),b=a!==`local`,x=(0,X.useCallback)(async()=>{try{let n=await Q.getCraftbook(e,t?{source:t}:{});i(n.craftbook),v.current=n.craftbook.name,y.current=n.craftbook.description??``,d(e=>e&&n.craftbook.steps.some(t=>t.id===e)?e:n.craftbook.entryStepId??n.craftbook.steps[0]?.id??null)}catch(e){_(e.message)}},[e,t]);(0,X.useEffect)(()=>{x()},[x]),(0,X.useEffect)(()=>{Q.listGezels().then(e=>l(e.gezels)).catch(()=>{})},[]),(0,X.useEffect)(()=>{if(t){o(t);return}Q.listCraftbooks({source:`all`}).then(t=>{let n=t.craftbooks.find(t=>t.id===e);n&&o(n.source)}).catch(()=>{})},[e,t]),(0,X.useEffect)(()=>{let t=t=>{let n=t.detail;(!n?.id||n.id===e)&&x()};return window.addEventListener(`gezel:craftbook-edited`,t),()=>window.removeEventListener(`gezel:craftbook-edited`,t)},[e,x]);let S=(0,X.useCallback)(async e=>{if(i(e),!b){h(!0),_(null);try{let t=await Q.updateCraftbook(e.id,DFe(e));i(t.craftbook),n?.()}catch(e){_(e.message),await x()}finally{h(!1)}}},[b,n,x]);if(g&&!r)return(0,Z.jsx)(`p`,{className:`error`,children:g});if(!r)return(0,Z.jsx)(`p`,{className:`placeholder`,children:`Loading…`});let C=(e,t)=>{S({...r,steps:r.steps.map(n=>n.id===e?q(n,t):n)})},w=e=>{S({...r,steps:ze(r.steps,e)})},T=e=>{try{let t=I(r.steps,e),n=r.entryStepId===e?t[0].id:r.entryStepId;u===e&&d(n),S({...r,steps:t,entryStepId:n})}catch(e){_(e.message)}},E=e=>{S({...r,entryStepId:e})},D=()=>{let e=s(r.steps,`New step`),t={id:e,name:`New step`};d(e),S({...r,steps:[...r.steps,t]})},O=()=>{let e=v.current.trim();!e||e===r.name||S({...r,name:e})},k=()=>{y.current!==(r.description??``)&&S({...r,description:y.current||void 0})},A=async()=>{h(!0),_(null);try{EFe({kind:`craftbook`,id:(await Q.createCraftbook({name:`${r.name} (copy)`,...r.description?{description:r.description}:{},...r.plan?{plan:r.plan}:{},steps:r.steps,entryStepId:r.entryStepId})).craftbook.id,source:`local`})}catch(e){_(e.message)}finally{h(!1)}};return(0,Z.jsxs)(`div`,{className:`craftbook-editor`,"data-testid":`craftbook-editor`,children:[(0,Z.jsxs)(`header`,{className:`craftbook-editor-header`,children:[(0,Z.jsxs)(`div`,{className:`craftbook-editor-title`,children:[b?(0,Z.jsx)(`h3`,{children:r.name}):(0,Z.jsx)(`input`,{className:`craftbook-name-input`,defaultValue:r.name,onChange:e=>{v.current=e.target.value},onBlur:O,"aria-label":`Craftbook name`}),(0,Z.jsx)(`span`,{className:`task-ref`,children:r.id}),(0,Z.jsx)(`span`,{className:`task-badge task-badge-${a}`,children:a}),b&&(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>void A(),disabled:m,children:`Copy to edit`})]}),g&&(0,Z.jsx)(`p`,{className:`error small`,children:g})]}),(0,Z.jsx)(`div`,{className:`task-bench-row craftbook-bench-row${u===null?``:` has-docked-panel has-selected-step`}`,children:(0,Z.jsx)(f$,{steps:r.steps,selectedStepId:u,onSelect:d,entryStepId:r.entryStepId,busy:m,ariaLabel:`Craftbook steps`,addLabel:`Add step`,variant:`bench`,...b?{}:{onAddStep:D,onReorder:w}})}),(0,Z.jsx)(wFe,{craftbookId:r.id,steps:r.steps,stepId:u,entryStepId:r.entryStepId,gezels:c,readOnly:b,busy:m,onPatch:C,onRemove:T,onSetEntry:E}),(0,Z.jsx)(`div`,{className:`craftbook-editor-tabs`,children:(0,Z.jsx)(kv,{value:f,onValueChange:e=>p(e),children:(0,Z.jsxs)(Av,{children:[(0,Z.jsx)(jv,{value:`editor`,children:`Overview`}),(0,Z.jsx)(jv,{value:`chat`,children:`AI assist`})]})})}),f===`editor`&&(0,Z.jsxs)(`div`,{className:`craftbook-overview`,children:[(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Description`}),(0,Z.jsx)(u$,{value:r.description??``,readOnly:b,placeholder:`What this craftbook is for and when to reach for it.`,onCommit:e=>{y.current=e,k()}},`cbdesc-${r.id}`)]}),r.plan&&(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Plan`}),(0,Z.jsx)(`p`,{className:`muted small`,children:r.plan})]})]}),f===`chat`&&(0,Z.jsx)(CFe,{craftbookId:r.id,craftbookName:r.name,readOnly:b})]})}function OFe({craftbookId:e,source:t,onChanged:n}){return(0,Z.jsx)(`div`,{className:`craftbook-tab`,children:(0,Z.jsx)(p$,{craftbookId:e,...t?{source:t}:{},...n?{onChanged:n}:{}},e)})}var m$=[{source:`local`,label:`My craftbooks`,hint:`editable`},{source:`project`,label:`Project`,hint:`read-only`},{source:`bundled`,label:`Gilde catalog`,hint:`read-only — copy to edit`}];function kFe(){let[e,t]=(0,X.useState)([]),[n,r]=(0,X.useState)(``),[i,a]=(0,X.useState)(null),[o,s]=(0,X.useState)(!1),[c,l]=(0,X.useState)(null),u=(0,X.useCallback)(async()=>{try{let e=await Q.listCraftbooks({source:`all`});t(e.craftbooks)}catch(e){l(e.message)}},[]);(0,X.useEffect)(()=>{u()},[u]);let d=(0,X.useMemo)(()=>{let t=n.trim().toLowerCase();return t?e.filter(e=>e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)||(e.description??``).toLowerCase().includes(t)):e},[e,n]),f=(0,X.useCallback)((e,t)=>{s(!1),a({id:e,source:t})},[]);(0,X.useEffect)(()=>{if(i||e.length===0)return;let t=m$.map(t=>e.find(e=>e.source===t.source)).find(Boolean)??e[0];t&&a({id:t.id,source:t.source})},[i,e]);let p=(0,X.useCallback)(async e=>{s(!1),await u(),f(e,`local`)},[u,f]),m=(0,X.useMemo)(()=>[...e].sort((e,t)=>e.name.localeCompare(t.name)),[e]);return(0,Z.jsxs)(`div`,{className:`tasks-view craftbooks-view`,"data-testid":`craftbooks-view`,children:[(0,Z.jsxs)(`div`,{className:`tasks-layout craftbooks-layout`,children:[(0,Z.jsxs)(`aside`,{className:`craftbooks-sidebar`,"aria-label":`Craftbook library`,children:[(0,Z.jsxs)(`div`,{className:`craftbooks-toolbar`,children:[(0,Z.jsxs)(`label`,{className:`craftbooks-search-field`,children:[(0,Z.jsx)(`span`,{className:`sr-only`,children:`Search craftbooks`}),(0,Z.jsx)(`input`,{type:`search`,className:`craftbook-search`,placeholder:`Search craftbooks…`,value:n,onChange:e=>r(e.target.value)})]}),(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>s(!0),children:`+ New craftbook`})]}),c&&(0,Z.jsx)(`p`,{className:`error craftbooks-list-error`,children:c}),(0,Z.jsxs)(`div`,{className:`tasks-list craftbooks-list`,children:[m$.map(e=>{let t=d.filter(t=>t.source===e.source);return t.length===0?null:(0,Z.jsxs)(`div`,{className:`craftbook-group`,children:[(0,Z.jsxs)(`div`,{className:`craftbook-group-header small muted`,children:[e.label,` `,(0,Z.jsxs)(`span`,{className:`craftbook-group-hint`,children:[`· `,e.hint]})]}),(0,Z.jsx)(`ul`,{children:t.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(`button`,{type:`button`,className:`task-row${i?.id===e.id&&i?.source===e.source?` task-row-selected`:``}`,onClick:()=>f(e.id,e.source),children:(0,Z.jsxs)(`span`,{className:`task-row-body`,children:[(0,Z.jsx)(`span`,{className:`task-title`,children:e.name}),(0,Z.jsxs)(`span`,{className:`task-row-meta`,children:[(0,Z.jsx)(`span`,{className:`task-ref`,children:e.id}),(0,Z.jsxs)(`span`,{className:`task-assignee`,children:[e.stepCount,` step`,e.stepCount===1?``:`s`]})]})]})})},`${e.source}:${e.id}`))})]},e.source)}),d.length===0&&(0,Z.jsxs)(`p`,{className:`muted craftbooks-empty`,children:[`No craftbooks`,n?` match your search`:` yet`,`.`]})]})]}),(0,Z.jsx)(`section`,{className:`task-detail-panel craftbooks-detail`,"aria-label":`Craftbook editor`,children:i?(0,Z.jsx)(p$,{craftbookId:i.id,source:i.source,onChanged:()=>void u()},`${i.source}:${i.id}`):(0,Z.jsx)(`p`,{className:`placeholder`,children:`Select a craftbook to edit it, or start a new one. Gilde books open read-only — make a copy to edit them.`})})]}),(0,Z.jsx)(AFe,{open:o,cloneSources:m,onClose:()=>s(!1),onCreated:p})]})}function AFe({open:e,cloneSources:t,onClose:n,onCreated:r}){let[i,a]=(0,X.useState)(`blank`),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(``),[f,p]=(0,X.useState)(`Build
|
|
789
|
+
`),r=!1):e.transcriptLineBreak&&(r=!0),c=e.end,l=c}return u(o.length),s}}}function IPe(e,t){let n=t;for(;n<e.length;){if(e.charCodeAt(n)===27){let t=WQ(e,n);if(t===null)return!1;n=t.end;continue}if(!/\s/.test(e[n]))return!0;n++}return!1}function GQ({text:e,renderText:t}){return(0,Z.jsx)(Z.Fragment,{children:(0,X.useMemo)(()=>FPe(t).feed(e),[e,t])})}function KQ(e){let t=RPe(e);return t===``?`/`:t.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(t)?t:`/${t}`}var LPe=/\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\x1b[@-_]|\uFFFD\[[0-9;?]*[ -/]*[@-~]/g;function RPe(e){let t=``;for(let n of e.replace(LPe,``)){let e=n.charCodeAt(0);e>=32&&e!==127&&(t+=n)}return t.trim()}var zPe={tabIndex:0};function BPe({entry:e,onOpenWorkspaceFile:t}){let n=KQ(e.cwd===void 0?e.workingDir:e.cwd);if(e.msgKind===`command`)return(0,Z.jsxs)(`div`,{className:`msg msg-user terminal-group terminal-group-command`,"data-terminal-message-id":e.messageId,"data-terminal-thread-id":e.threadId,children:[(0,Z.jsxs)(`div`,{className:`msg-header terminal-group-header`,children:[(0,Z.jsx)(`span`,{className:`terminal-folder-pill`,title:`Working folder`,children:n}),(0,Z.jsx)(`span`,{className:`msg-author`,children:`You · terminal`})]}),(0,Z.jsxs)(`div`,{className:`msg-body terminal-cmd-body`,children:[(0,Z.jsx)(`span`,{className:`terminal-prompt-sigil`,children:`>`}),` `,(0,Z.jsx)(`code`,{className:`terminal-cmd-code`,children:e.content})]}),e.resolvedFrom&&e.resolvedFrom!==e.content&&(0,Z.jsxs)(`div`,{className:`terminal-resolved-hint`,children:[`from: `,e.resolvedFrom]})]});let r=e.exitCode!==void 0&&e.exitCode!==0,i=e.exitCode===void 0?null:e.exitCode===0?`exit 0`:`exit ${e.exitCode}`,a=n=>VPe(n,e.fileReferences??[],t);return(0,Z.jsxs)(`div`,{className:`msg msg-assistant terminal-group terminal-group-output`,"data-terminal-message-id":e.messageId,"data-terminal-thread-id":e.threadId,children:[(0,Z.jsxs)(`div`,{className:`msg-header terminal-group-header`,children:[(0,Z.jsx)(`span`,{className:`terminal-folder-pill`,title:`Working folder`,children:n}),(0,Z.jsx)(`span`,{className:`msg-author`,children:`Terminal output`}),i&&(0,Z.jsx)(`span`,{className:`terminal-exit-pill ${r?`terminal-exit-fail`:`terminal-exit-ok`}`,children:i}),typeof e.durationMs==`number`&&(0,Z.jsx)(`span`,{className:`terminal-duration`,children:UPe(e.durationMs)}),e.truncated&&(0,Z.jsx)(`span`,{className:`terminal-truncated-pill`,title:`200KB output cap reached`,children:`truncated`})]}),e.errorMessage&&e.exitCode===-1&&(0,Z.jsx)(`div`,{className:`terminal-error-banner`,children:e.errorMessage}),(0,Z.jsx)(`section`,{className:`terminal-output-viewport`,"aria-label":`Terminal output`,...zPe,children:(0,Z.jsx)(`pre`,{className:`terminal-output-body`,children:e.content?(0,Z.jsx)(GQ,{text:e.content,renderText:a}):r?`(no output)`:``})})]})}function VPe(e,t,n){if(!n||t.length===0||!e)return e;let r=[...t].sort((e,t)=>t.label.length-e.label.length),i=e.toLowerCase(),a=[],o=0,s=0;for(;o<e.length;){let t=null;for(let n of r){let r=n.label.toLowerCase(),a=i.indexOf(r,o);for(;a>=0&&!HPe(e,a,n.label.length);)a=i.indexOf(r,a+Math.max(1,r.length));a>=0&&(!t||a<t.at)&&(t={at:a,reference:n})}if(!t)break;t.at>o&&a.push(e.slice(o,t.at));let c=e.slice(t.at,t.at+t.reference.label.length);a.push((0,Z.jsx)(`button`,{type:`button`,className:`terminal-file-link`,title:`Preview ${t.reference.path}`,onClick:()=>n(t.reference.path),children:c},`${t.reference.path}:${s++}`)),o=t.at+t.reference.label.length}return o===0?e:(o<e.length&&a.push(e.slice(o)),a)}function HPe(e,t,n){let r=t===0?``:e[t-1],i=t+n,a=i>=e.length?``:e[i];return(r===``||/[\s"'([{<]/.test(r))&&(a===``||/[\s"')\]}>:,;]/.test(a))}function UPe(e){if(e<1e3)return`${e}ms`;let t=e/1e3;if(t<60)return`${t.toFixed(1)}s`;let n=Math.floor(t/60);return`${n}m${Math.round(t-n*60).toString().padStart(2,`0`)}s`}var WPe=24,GPe={tabIndex:0};function KPe({content:e,cwd:t,startedAt:n,onCancel:r,awaitingInput:i,onSendInput:a}){let o=KQ(t),s=(0,X.useRef)(null),c=(0,X.useRef)(!0);(0,X.useLayoutEffect)(()=>{let e=s.current;!e||!c.current||(e.scrollTop=e.scrollHeight)},[e]);let l=()=>{let e=s.current;if(!e)return;let t=e.scrollHeight-e.clientHeight-e.scrollTop;c.current=t<=WPe};return(0,Z.jsxs)(`div`,{className:`msg msg-assistant terminal-group terminal-group-output terminal-group-streaming`,children:[(0,Z.jsxs)(`div`,{className:`msg-header terminal-group-header`,children:[(0,Z.jsx)(`span`,{className:`terminal-folder-pill`,title:`Working folder`,children:o}),(0,Z.jsx)(`span`,{className:`msg-author`,children:`Terminal output`}),(0,Z.jsx)(JPe,{startedAt:n}),r&&(0,Z.jsx)(`button`,{type:`button`,className:`terminal-cancel-btn`,onClick:r,title:`Stop the running command (Ctrl+C)`,children:`■ Stop`})]}),(0,Z.jsx)(`section`,{ref:s,className:`terminal-output-viewport`,"aria-label":`Live terminal output`,"aria-busy":`true`,...GPe,onScroll:l,children:(0,Z.jsx)(`pre`,{className:`terminal-output-body`,children:(0,Z.jsx)(GQ,{text:e})})}),i&&a&&(0,Z.jsx)(qPe,{awaitingInput:i,onSubmit:a})]})}function qPe({awaitingInput:e,onSubmit:t}){let[n,r]=(0,X.useState)(``),i=e=>{t(e),r(``)},a=e=>{e.key===`Enter`&&(e.preventDefault(),i(n))};if(e.mode===`yes-no`)return(0,Z.jsxs)(`div`,{className:`terminal-input-prompt`,children:[(0,Z.jsx)(`div`,{className:`terminal-input-prompt-line`,children:e.promptLine}),(0,Z.jsxs)(`div`,{className:`terminal-input-prompt-row`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`terminal-input-yesno-btn`,onClick:()=>i(`y`),children:`Yes`}),(0,Z.jsx)(`button`,{type:`button`,className:`terminal-input-yesno-btn`,onClick:()=>i(`n`),children:`No`}),(0,Z.jsx)(`input`,{type:`text`,className:`terminal-input-reply`,value:n,onChange:e=>r(e.target.value),onKeyDown:a,placeholder:`or type a custom reply`,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1})]})]});let o=e.mode===`password`;return(0,Z.jsxs)(`div`,{className:`terminal-input-prompt`,children:[(0,Z.jsx)(`div`,{className:`terminal-input-prompt-line`,children:e.promptLine}),(0,Z.jsxs)(`div`,{className:`terminal-input-prompt-row`,children:[(0,Z.jsx)(`input`,{type:o?`password`:`text`,className:`terminal-input-reply`,value:n,onChange:e=>r(e.target.value),onKeyDown:a,placeholder:o?`password (not echoed or saved)`:`reply…`,autoFocus:!0,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1}),(0,Z.jsx)(`button`,{type:`button`,className:`terminal-input-send-btn`,onClick:()=>i(n),children:`Send`})]}),o&&(0,Z.jsx)(`div`,{className:`terminal-input-hint`,children:`Your input is hidden and isn't kept in the timeline.`})]})}function JPe({startedAt:e}){let[,t]=(0,X.useState)(0);(0,X.useEffect)(()=>{let e=setInterval(()=>t(e=>e+1),1e3);return()=>clearInterval(e)},[]);let n=(0,X.useMemo)(()=>new Date(e).getTime(),[e]);return(0,Z.jsxs)(`span`,{className:`terminal-running-pill`,title:`Running…`,children:[`running `,YPe(Math.max(0,Date.now()-n))]})}function YPe(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m${(t%60).toString().padStart(2,`0`)}s`}var XPe=300*1e3;function qQ(e){let t=Date.parse(e);return Number.isFinite(t)?t+XPe:void 0}function ZPe(e,t){let n;for(let r of e){let e=qQ(r.at);e===void 0||e<t||(n===void 0||e<n)&&(n=e)}return n}function JQ(e,t){if(e.kind===`terminal-streaming`)return 2;if(e.kind===`terminal`){let n=qQ(e.at);if(n!==void 0&&t<=n)return 2}return+(e.kind===`streaming`)}function QPe(e,t,n){let r=JQ(e,n)-JQ(t,n);return r===0?e.at<t.at?-1:+(e.at>t.at):r}function $Pe(e){let t=new Map,n=new Map;for(let r of e){if(r.role!==`user`)continue;let e=r.content.trim(),i=Date.parse(r.at),a=t.get(e);if(a&&a.sessionId!==r.sessionId&&i-a.atMs<=5e3){n.set(r,a.row);continue}t.set(e,{atMs:i,sessionId:r.sessionId,row:r})}return n}function eFe(e){let t=$Pe(e.flatMap(e=>e.kind===`message`&&e.msg.role===`user`?[{at:e.msg.at,role:e.msg.role,content:e.msg.content,sessionId:e.msg.sessionId,ref:e}]:[])),n=new Map;for(let[e,r]of t)n.set(e.ref,r.ref);let r=[],i=new Map,a=new Map;for(let t of e){if(t.kind===`terminal`||t.kind===`terminal-streaming`){r.push(t);continue}if(t.kind===`message`&&t.msg.role===`user`){let e=n.get(t);if(e){let n=a.get(e);if(n){i.set(t.msg.sessionId,n);continue}}let o={kind:`thread`,sessionId:t.msg.sessionId,at:t.at,root:t,replies:[]};r.push(o),i.set(t.msg.sessionId,o),a.set(t,o);continue}let e=t.kind===`message`?t.msg.sessionId:t.sessionId,o=i.get(e);o||(o={kind:`thread`,sessionId:e,at:t.at,replies:[]},r.push(o),i.set(e,o)),o.replies.push(t)}return r}function tFe(){let[e,t]=(0,X.useState)(!1);return(0,X.useEffect)(()=>{let e=!1;Q.getConfig().then(n=>{e||t(n.narrateAssistantReplies??!1)}).catch(()=>{});let n=e=>{let n=e.detail;n&&typeof n.narrateAssistantReplies==`boolean`&&t(n.narrateAssistantReplies)};return window.addEventListener(`gezel:config-updated`,n),()=>{e=!0,window.removeEventListener(`gezel:config-updated`,n)}},[]),e}var YQ=100,nFe=new Set([`ollama`,`llama-cpp`,`mlx`,`ds4`]),rFe=1440*60*1e3,iFe=180*1e3,aFe=80,oFe=80,sFe=700,XQ=2e3,cFe=8e3;function ZQ(e){return e.replace(/["\\]/g,`\\$&`)}var lFe=7200*1e3;function QQ(e,t){let n=new Map((e??[]).map(e=>[e.messageId,e]));for(let e of t)n.set(e.messageId,e);return[...n.values()].sort((e,t)=>e.at<t.at?-1:+(e.at>t.at))}function $Q(e,t){let n=t.filter(e=>e.role===`user`),r=e.filter(e=>{if(!e.optimistic)return!0;let t=Date.parse(e.at);return!n.some(n=>{if(n.sessionId!==e.sessionId||n.content!==e.content)return!1;let r=Date.parse(n.at);return Number.isFinite(t)&&Number.isFinite(r)?Math.abs(r-t)<2*6e4:!0})}),i=new Set,a=[];for(let e of[...r,...t]){let t=`${e.sessionId}:${e.at}:${e.role}`;i.has(t)||(i.add(t),a.push(e))}return a.sort((e,t)=>e.at<t.at?-1:+(e.at>t.at)),a}var uFe={starting:`Starting engine`,loading_model:`Loading model`,prefill:`Thinking it through`,generating:`Generating`,ready:`Ready`};function dFe(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/@\[([^\]]+)\]\([^)]+\)/g,`@$1`).replace(/\[([^\]]+)\]\([^)]+\)/g,`$1`).replace(/\*\*([^*]+)\*\*/g,`$1`).replace(/__([^_]+)__/g,`$1`).replace(/(?<!\*)\*([^*]+)\*(?!\*)/g,`$1`).replace(/(?<!_)_([^_]+)_(?!_)/g,`$1`).replace(/~~([^~]+)~~/g,`$1`).replace(/`+([^`]+)`+/g,`$1`).replace(/^\s*#+\s+/gm,``).replace(/^\s*>\s+/gm,``).replace(/^\s*[-*+]\s+/gm,``).replace(/^\s*\d+\.\s+/gm,``).replace(/\s+/g,` `).trim()}function fFe(e,t,n){let r=[];for(let[i,a]of t){let t=e.get(i);!t||t!==a||!t.error&&!n.has(i)&&r.push(i)}return r}function e$({scopeKey:e,activeSessionId:t,onFocusSession:n,onToolActivity:r,onArtifactReference:a,onArtifactSeen:o,onWorkspaceReference:s,onWorkspaceSeen:c,onTaskReference:l,emptyPlaceholder:u,loadTimeline:f,streamUrl:m,terminalStreamUrl:h,terminalRefreshKey:g,terminalSubmission:_,terminalFocusRequest:v,sessionFocusRequest:y,onTerminalWorkingDirChanged:b,showProjectName:x,inflightScope:S,scopedSessionIds:C,onUnknownSession:w}){let T=fC(),E=(0,X.useRef)(C);E.current=C;let D=(0,X.useRef)(w);D.current=w;let O=tFe(),k=(0,X.useRef)(O);k.current=O;let A=(0,X.useRef)(null),j=(0,X.useRef)(null),M=(0,X.useRef)(new Map);(0,X.useEffect)(()=>()=>{a$(A,j)},[]);let[N,P]=(0,X.useState)([]),F=(0,X.useRef)([]);(0,X.useEffect)(()=>{F.current=N},[N]),(0,X.useEffect)(()=>{if(l)for(let e of N){if(e.taskRef){let n=!!t&&e.sessionId===t;l(e.taskRef,{scoped:n})}if(e.referencedTasks)for(let t of e.referencedTasks)l(t)}},[N,t,l]),(0,X.useEffect)(()=>{if(!(!o&&!c))for(let e of N){for(let t of e.referencedArtifacts??[])o?.(t,e.projectId);for(let t of e.toolCalls??[]){if(!t.success)continue;for(let n of[...t.images??[],...t.audios??[],...t.videos??[]])o?.(n.path,e.projectId);let n=t.paths?.length?t.paths:t.path?[t.path]:[];for(let r of n)t.name===`read_artifact`||t.name===`write_artifact`?o?.(r,e.projectId):(t.name===`read_file`||t.name===`read_files`||t.name===`write_file`)&&c?.(r,e.projectId)}}},[N,o,c]);let[I,L]=(0,X.useState)([]),[R,z]=(0,X.useState)(0),[B,V]=(0,X.useState)(!1),[H,U]=(0,X.useState)();(0,X.useEffect)(()=>{let e=ZPe(I,Date.now());if(e===void 0)return;let t=window.setTimeout(()=>z(e=>e+1),Math.max(0,e-Date.now()+1));return()=>window.clearTimeout(t)},[I,R]),(0,X.useEffect)(()=>{t&&Q.warmSessionCache(t).catch(()=>{})},[t]);let[te,W]=(0,X.useState)(!0),[G,ne]=(0,X.useState)(null),[K,q]=(0,X.useState)(new Map),[re,ie]=(0,X.useState)(new Map),[J,ae]=(0,X.useState)(new Map),[oe,se]=(0,X.useState)(0),Y=(0,X.useRef)(new Map),[ce,le]=(0,X.useState)(0),ue=(0,X.useRef)(new Map),de=(0,X.useRef)(new Map),fe=(0,X.useRef)(new Map),pe=(0,X.useRef)(null),me=(0,X.useRef)(null),[he,_e]=(0,X.useState)(!0),[ve,ye]=(0,X.useState)(null),[be,xe]=(0,X.useState)(null),Se=(0,X.useRef)(null),Ce=(0,X.useRef)(null),we=(0,X.useRef)(!1),[Te,Ee]=(0,X.useState)(null),De=(0,X.useRef)(null),Oe=(0,X.useRef)(60),ke=(0,X.useRef)(0),Ae=(0,X.useRef)(0),je=S?.projectId,Me=S?.gezelId;(0,X.useEffect)(()=>{let e=!1;return W(!0),ne(null),P([]),L([]),V(!1),U(void 0),Y.current.clear(),de.current.clear(),fe.current.clear(),_e(!0),ye(null),xe(null),ke.current=0,Ae.current=0,(async()=>{try{let t=await f({limit:YQ});if(e)return;P(t.messages),V(t.hasMore),U(t.nextCursor),L(e=>QQ(t.terminalEntries,e));try{let n=await Q.listInflightTurns({...je===void 0?{}:{projectId:je},...Me===void 0?{}:{gezelId:Me}});if(e)return;for(let e of n.inflight){if(Y.current.has(e.sessionId)||E.current&&!E.current.has(e.sessionId))continue;let n=t$(t.messages,e.sessionId);Y.current.set(e.sessionId,{gezelId:e.gezelId,projectId:e.projectId,segments:[],startedAt:e.startedAt,lastActivityAt:e.lastProgressAgoMs==null?e.startedAt:Date.now()-e.lastProgressAgoMs,hasProgress:e.lastProgressAgoMs!=null,anchorAt:n?n$(n.at):new Date().toISOString(),...n?{sessionTitle:n.sessionTitle,sessionCreatedAt:n.sessionCreatedAt,sessionProviderName:n.sessionProviderName,...n.sessionModel?{sessionModel:n.sessionModel}:{},...n.taskRef?{taskRef:n.taskRef}:{}}:{}})}n.inflight.length>0&&se(e=>e+1)}catch{}try{let t=await Q.getQueueStatus();if(e)return;for(let e of t.sessions)E.current&&!E.current.has(e.sessionId)||de.current.set(e.sessionId,e.entries.map(e=>({id:e.queueId,preview:e.preview,enqueuedAt:e.enqueuedAt,...e.nudge?{nudge:!0}:{}})));t.sessions.length>0&&se(e=>e+1)}catch{}try{let t=await f({limit:YQ});if(e)return;P(e=>$Q(e,t.messages)),L(e=>QQ(t.terminalEntries,e))}catch{}}catch(t){e||ne(t.message)}finally{e||W(!1)}})(),()=>{e=!0}},[e,f,je,Me]);let[Ne,Pe]=(0,X.useState)(`copilot`),[Fe,Ie]=(0,X.useState)({}),[Le,Re]=(0,X.useState)(!1);(0,X.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await Q.getConfig();if(e)return;Pe(t.provider),Ie(t.defaultModel??{}),Re(t.debugMode===!0)}catch{}})(),()=>{e=!0}},[]);let ze=(0,X.useCallback)((e,t,n=!1)=>{let r=t$(e,t.sessionId);return{sessionId:t.sessionId,gezelId:t.gezelId,projectId:t.projectId,sessionTitle:r?.sessionTitle??ge(t.content),sessionCreatedAt:r?.sessionCreatedAt??t.at,sessionLastActivityAt:t.at,sessionProviderName:r?.sessionProviderName??Ne,...r?.sessionModel?{sessionModel:r.sessionModel}:{},...r?.taskRef?{taskRef:r.taskRef}:{},...r?.stepId?{stepId:r.stepId}:{},role:`user`,content:t.content,at:t.at,...t.from?{from:t.from}:{},...n?{optimistic:!0}:{}}},[Ne]),Be=(0,X.useCallback)(e=>K.get(e)?.provider??Ne,[K,Ne]),Ve=(0,X.useCallback)(e=>{let t=K.get(e),n=Be(e),r=t?.model;return r?`Provider: ${o$(n)} (${r})`:`Provider: ${o$(n)}`},[K,Be]),He=(0,X.useCallback)((e,t)=>{let n=Fe[Ne],r=nFe.has(e);if(e!==Ne)return t&&!r?`${o$(e)} · ${t}`:o$(e);if(!r&&t&&n&&t!==n)return t},[Ne,Fe]),Ue=(0,X.useRef)(null),We=(0,X.useCallback)(()=>{if(Ue.current)return Ue.current;let e=(async()=>{try{let e=await Q.listGezels(),t=new Map;for(let n of e.gezels)t.set(n.id,n);q(t)}catch{}finally{Ue.current=null}})();return Ue.current=e,e},[]);(0,X.useEffect)(()=>{We()},[We]),(0,X.useEffect)(()=>{let e=e=>{let t=e.detail;t?.id&&q(e=>{let n=new Map(e);return n.set(t.id,{...n.get(t.id),...t}),n})};return window.addEventListener(`gezel:gezel-updated`,e),()=>window.removeEventListener(`gezel:gezel-updated`,e)},[]),(0,X.useEffect)(()=>{if(!x)return;let e=!1;return(async()=>{try{let t=await Q.listProjects();if(e)return;let n=new Map;for(let e of t.projects)n.set(e.id,e);ie(n)}catch{}})(),()=>{e=!0}},[x]);let Ge=(0,X.useCallback)(async()=>{try{let e=await Q.listQuestions({pending:!0});ae(t=>{let n=new Map(t);for(let[e,t]of n)t.answer||n.delete(e);for(let t of e.questions)n.set(t.id,t);return n})}catch{}},[]);(0,X.useEffect)(()=>{Ge()},[e,Ge]),(0,X.useEffect)(()=>{let e=new AbortController,t=!1,n=250;return(async()=>{for(;!t;){try{let r={url:m(),headers:Q.authHeader(),signal:e.signal,fetch:Q.getFetch()};for await(let e of Df(r)){if(t)return;qe(e),n=250}}catch(e){if(t||e.name===`AbortError`)return;console.warn(`[ChatTimelineView] envelope stream error (reconnecting in ${n}ms):`,e)}if(t)return;await new Promise(e=>setTimeout(e,n)),n=Math.min(n*2,5e3)}})(),()=>{t=!0,e.abort()}},[e,m]),(0,X.useEffect)(()=>{if(!h)return;let e=new AbortController,t=!1,n=250;return(async()=>{let{streamTerminalEvents:r}=await Wr(async()=>{let{streamTerminalEvents:e}=await import(`./dist-DYn91eSO.js`).then(e=>e.r);return{streamTerminalEvents:e}},__vite__mapDeps([57,4,23]));for(;!t;){try{for await(let i of r({url:h(),headers:Q.authHeader(),signal:e.signal,fetch:Q.getFetch()})){if(t)return;if(i.kind===`workingDirChanged`){b?.(i.threadId,i.newWorkingDir),n=250;continue}if(i.kind===`openFile`){s?.(i.path,i.projectId),n=250;continue}if(i.kind===`runStarted`){ue.current.set(i.runId,{projectId:i.projectId,threadId:i.threadId,commandMessageId:i.commandMessageId,startedAt:i.at,cwd:i.cwd,content:``}),le(e=>e+1),n=250;continue}if(i.kind===`outputChunk`){let e=ue.current.get(i.runId);e&&(e.content+=i.chunk,e.awaitingInput&&delete e.awaitingInput,le(e=>e+1)),n=250;continue}if(i.kind===`inputRequested`){let e=ue.current.get(i.runId);e&&(e.awaitingInput={promptLine:i.promptLine,mode:i.mode},le(e=>e+1)),n=250;continue}i.runId&&(ue.current.delete(i.runId),le(e=>e+1)),L(e=>{if(e.some(e=>e.messageId===i.message.id))return e;let t={threadId:i.threadId,projectId:i.projectId,workingDir:i.workingDir,threadCreatedAt:i.message.at,threadLastActivityAt:i.message.at,messageId:i.message.id,msgKind:i.message.kind,content:i.message.content,at:i.message.at,...i.message.resolvedFrom?{resolvedFrom:i.message.resolvedFrom}:{},...i.message.stdout===void 0?{}:{stdout:i.message.stdout},...i.message.stderr===void 0?{}:{stderr:i.message.stderr},...i.message.exitCode===void 0?{}:{exitCode:i.message.exitCode},...i.message.durationMs===void 0?{}:{durationMs:i.message.durationMs},...i.message.truncated?{truncated:!0}:{},...i.message.errorMessage?{errorMessage:i.message.errorMessage}:{},...i.message.fileReferences?{fileReferences:i.message.fileReferences}:{},...i.message.cwd===void 0?{}:{cwd:i.message.cwd}},n=[...e,t];return n.sort((e,t)=>e.at<t.at?-1:+(e.at>t.at)),n}),n=250}}catch(e){if(t||e.name===`AbortError`)return;console.warn(`[ChatTimelineView] terminal stream error (reconnecting in ${n}ms):`,e)}if(t)return;await new Promise(e=>setTimeout(e,n)),n=Math.min(n*2,5e3)}})(),()=>{t=!0,e.abort()}},[e,h,s]),(0,X.useEffect)(()=>{if(!g)return;let e=!1;return f({limit:YQ}).then(t=>{e||L(e=>QQ(t.terminalEntries,e))}).catch(()=>{}),()=>{e=!0}},[g,f]),(0,X.useEffect)(()=>{_&&(ye({kind:`terminal`,key:`terminal:${_.runId}`,runId:_.runId,threadId:_.threadId,input:_.input}),xe(null))},[_]);let Ke=(0,X.useCallback)(async()=>{try{let e=await f({limit:YQ});P(t=>$Q(t,e.messages))}catch{}},[f]);(0,X.useEffect)(()=>{let e=!1,t=!1,n=async()=>{if(t||Y.current.size===0)return;t=!0;let n=new Map(Y.current);try{let t=await Q.listInflightTurns({...je===void 0?{}:{projectId:je},...Me===void 0?{}:{gezelId:Me}});if(e)return;let r=new Set(t.inflight.map(e=>e.sessionId)),i=fFe(Y.current,n,r);if(i.length===0)return;for(let e of i)Y.current.delete(e),M.current.delete(e);se(e=>e+1),Ke()}catch{}finally{t=!1}},r=window.setInterval(()=>{n()},5e3);return()=>{e=!0,window.clearInterval(r)}},[je,Me,Ke]),(0,X.useEffect)(()=>OPe(e=>{if(je!==void 0&&e.projectId!==je||Me!==void 0&&e.gezelId!==Me||E.current&&!E.current.has(e.sessionId))return;let t=Date.parse(e.at);if(P(n=>{if(n.some(n=>{if(n.sessionId!==e.sessionId||n.role!==`user`||n.content!==e.content)return!1;let r=Date.parse(n.at);return Number.isFinite(t)&&Number.isFinite(r)?Math.abs(r-t)<2*6e4:!0}))return n;let r=[...n,ze(n,e,!0)];return r.sort((e,t)=>e.at<t.at?-1:+(e.at>t.at)),r}),!Y.current.has(e.sessionId)){let n=t$(F.current,e.sessionId),r=Number.isFinite(t)?t:Date.now();Y.current.set(e.sessionId,{gezelId:e.gezelId,projectId:e.projectId,segments:[],startedAt:r,lastActivityAt:r,hasProgress:!1,anchorAt:n$(e.at),...n?{sessionTitle:n.sessionTitle}:{sessionTitle:ge(e.content)},...n?{sessionCreatedAt:n.sessionCreatedAt}:{sessionCreatedAt:e.at},...n?{sessionProviderName:n.sessionProviderName,...n.sessionModel?{sessionModel:n.sessionModel}:{}}:{},...n?.taskRef?{taskRef:n.taskRef}:{},...n?.stepId?{stepId:n.stepId}:{}}),se(e=>e+1)}ye({kind:`chat`,key:`chat:${e.sessionId}:${e.at}`,sessionId:e.sessionId,content:e.content,at:e.at}),xe(null)}),[je,Me,ze]);let qe=(0,X.useCallback)(e=>{let{sessionId:t,gezelId:n,projectId:i,event:a}=e;if(je!==void 0&&i!==je||Me!==void 0&&n!==Me)return;let o=E.current;if(o&&!o.has(t)){D.current?.(t);return}if(K.has(n)||We(),a.type===`user_message`){!a.message.hidden&&!a.message.from&&(a$(A,j),M.current.delete(t));let e=t$(N,t),r={sessionId:t,gezelId:n,projectId:i,sessionTitle:e?.sessionTitle??ge(a.message.content),sessionCreatedAt:e?.sessionCreatedAt??a.message.at,sessionLastActivityAt:a.message.at,sessionProviderName:e?.sessionProviderName??Ne,...e?.sessionModel?{sessionModel:e.sessionModel}:{},...e?.taskRef?{taskRef:e.taskRef}:{},...e?.stepId?{stepId:e.stepId}:{},role:a.message.role,content:a.message.content,at:a.message.at,...a.message.from?{from:a.message.from}:{},...a.message.nudge?{nudge:!0}:{}},o=`${t}:${a.message.at}:${a.message.role}`;if(P(e=>{if(a.message.hidden)return e;let n=e.filter(e=>!e.optimistic||!(e.sessionId===t&&e.role===a.message.role&&e.content===a.message.content));if(n.some(e=>`${e.sessionId}:${e.at}:${e.role}`===o))return n;let i=[...n,r];return i.sort((e,t)=>e.at<t.at?-1:+(e.at>t.at)),i}),a.message.role===`user`&&Y.current.get(t)?.error&&Y.current.delete(t),a.message.role===`user`&&!Y.current.has(t)){let o=Date.parse(a.message.at),s=Number.isFinite(o)?o:Date.now();Y.current.set(t,{gezelId:n,projectId:i,segments:[],startedAt:s,lastActivityAt:s,hasProgress:!1,anchorAt:n$(a.message.at),...e?{sessionTitle:e.sessionTitle}:{sessionTitle:r.sessionTitle},...e?{sessionCreatedAt:e.sessionCreatedAt}:{sessionCreatedAt:r.sessionCreatedAt},...e?{sessionProviderName:e.sessionProviderName,...e.sessionModel?{sessionModel:e.sessionModel}:{}}:{},...e?.taskRef?{taskRef:e.taskRef}:{}}),se(e=>e+1)}}else if(a.type===`delta`){let e=Y.current.get(t)??s(n,i,t),r=e.segments[e.segments.length-1],o=Date.now(),c=o-e.lastActivityAt<5e3;r?.kind===`text`&&c?r.content+=a.content:e.segments.push({kind:`text`,content:a.content}),e.lastActivityAt=o,e.hasProgress=!0,delete e.queueAhead,e.wirePulseCount=0,e.thinkingLabel=void 0,delete e.thinkingProgress,delete e.thinkingDetail,delete e.liveToolArgs,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`reasoning_delta`){let e=Y.current.get(t)??s(n,i,t);e.liveReasoning=(e.liveReasoning??``)+a.content,e.lastActivityAt=Date.now(),e.hasProgress=!0,delete e.queueAhead,e.wirePulseCount=0,delete e.thinkingProgress,delete e.thinkingDetail,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`tool_args_delta`){let e=Y.current.get(t)??s(n,i,t),r=e.liveToolArgs,o=a.name.length>0?a.name:r?.name??``,c=((r?.head??``)+a.content).slice(0,400),l=((r?.tail??``)+a.content).slice(-2e3);e.liveToolArgs={name:o,chars:(r?.chars??0)+a.content.length,head:c,tail:l},e.lastActivityAt=Date.now(),e.hasProgress=!0,delete e.queueAhead,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`wire_pulse`){let e=Y.current.get(t)??s(n,i,t);e.wirePulseCount=(e.wirePulseCount??0)+1,e.lastActivityAt=Date.now(),e.hasProgress=!0,delete e.queueAhead,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`intent`){let e=Y.current.get(t)??s(n,i,t);e.segments.push({kind:`intent`,label:a.label}),e.lastActivityAt=Date.now(),e.hasProgress=!0,e.wirePulseCount=0,delete e.queueAhead,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`heartbeat`){let e=Y.current.get(t)??s(n,i,t);e.lastActivityAt=Date.now(),e.hasProgress=!0,e.wirePulseCount=0,e.thinkingLabel=a.label,delete e.queueAhead,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`warning`){let e=Y.current.get(t)??s(n,i,t);e.warnings=[...e.warnings??[],a],Y.current.set(t,e),se(e=>e+1)}else if(a.type===`queued`){let e=Y.current.get(t)??s(n,i,t);e.queueAhead=a.aheadOf,Y.current.set(t,e),se(e=>e+1)}else if(a.type===`queue_enqueued`){let e=de.current.get(t)??[],n={id:a.queueId,preview:a.preview,enqueuedAt:a.enqueuedAt,...a.nudge?{nudge:!0}:{}},r=e.findIndex(e=>e.id===a.queueId);r>=0?e[r]=n:e.push(n),de.current.set(t,e),se(e=>e+1)}else if(a.type===`queue_removed`){let e=de.current.get(t);if(e){let n=e.filter(e=>e.id!==a.queueId);n.length===0?de.current.delete(t):de.current.set(t,n),se(e=>e+1)}}else if(a.type===`tool`){let e=Y.current.get(t)??s(n,i,t),o={name:a.name,durationMs:a.durationMs,success:a.success,...a.errorMessage?{errorMessage:a.errorMessage}:{},...a.path?{path:a.path}:{},...a.paths&&a.paths.length>0?{paths:a.paths}:{},...a.argsSummary?{argsSummary:a.argsSummary}:{},...a.argsFull?{argsFull:a.argsFull}:{},...a.resultText?{resultText:a.resultText}:{},...a.resultTruncated?{resultTruncated:!0}:{},...a.images&&a.images.length>0?{images:a.images}:{},...a.diff===void 0?{}:{diff:a.diff},...a.addedLines===void 0?{}:{addedLines:a.addedLines},...a.removedLines===void 0?{}:{removedLines:a.removedLines},projectId:i};e.segments.push({kind:`tool`,tool:o}),e.lastActivityAt=Date.now(),e.hasProgress=!0,e.wirePulseCount=0,delete e.liveToolArgs,delete e.queueAhead,Y.current.set(t,e),se(e=>e+1),r?.(o)}else if(a.type===`complete`){let e=Y.current.get(t);e&&(e.segments=[],e.lastActivityAt=Date.now(),e.hasProgress=!0,e.anchorAt=n$(a.message.at),e.wirePulseCount=0,delete e.liveReasoning,delete e.liveToolArgs,delete e.queueAhead,delete e.error,Y.current.set(t,e)),se(e=>e+1),Ke();let r=a.message.content.trim().length;console.debug(`[narrate] complete event — contentLen=${r} gezelId=${n} projectId=${i} sessionId=${t} (buffering for done)`),r>0&&M.current.set(t,{content:a.message.content,gezelId:n,projectId:i})}else if(a.type===`error`){let e=Y.current.get(t);e&&(e.error=a.error,e.errorDetail=a.errorDetail,Y.current.set(t,e),se(e=>e+1))}else if(a.type===`cancelled`)Y.current.delete(t)&&se(e=>e+1),Ke();else if(a.type===`done`){let e=Y.current.get(t);e&&!e.error&&(Y.current.delete(t),se(e=>e+1));let n=M.current.get(t);n&&(M.current.delete(t),k.current&&(console.debug(`[narrate] done event — playing buffered narration chars=${n.content.length} sessionId=${t}`),SFe(n.content,n.gezelId,n.projectId,A,j))),Ke()}else if(a.type===`engine_phase`){let e=Y.current.get(t)??s(n,i,t);if(e.lastActivityAt=Date.now(),e.hasProgress=!0,a.phase===`ready`)delete e.thinkingLabel,delete e.thinkingProgress,delete e.thinkingDetail;else{let t=uFe[a.phase];a.progress===void 0?(e.thinkingLabel=a.detail??t,delete e.thinkingProgress,delete e.thinkingDetail):(e.thinkingLabel=t,e.thinkingProgress=a.progress,a.detail?e.thinkingDetail=a.detail:delete e.thinkingDetail)}Y.current.set(t,e),se(e=>e+1)}else if(a.type===`gpu_swap`){let e=Y.current.get(t)??s(n,i,t);e.lastActivityAt=Date.now(),a.state===`ended`?(delete e.gpuSwapTask,delete e.gpuSwapDetail,delete e.gpuSwapPrompt,delete e.gpuSwapProgress,delete e.gpuSwapStep,delete e.gpuSwapTotalSteps,delete e.gpuSwapSecondsPerStep):(e.gpuSwapTask=a.task,a.detail?e.gpuSwapDetail=a.detail:a.state===`started`&&delete e.gpuSwapDetail,a.prompt&&(e.gpuSwapPrompt=a.prompt),typeof a.progress==`number`&&(e.gpuSwapProgress=a.progress),typeof a.step==`number`&&(e.gpuSwapStep=a.step),typeof a.totalSteps==`number`&&(e.gpuSwapTotalSteps=a.totalSteps),typeof a.secondsPerStep==`number`&&(e.gpuSwapSecondsPerStep=a.secondsPerStep)),Y.current.set(t,e),se(e=>e+1)}else if(a.type===`awaiting_gezel`){let e=Y.current.get(t)??s(n,i,t);e.lastActivityAt=Date.now(),a.state===`ended`?delete e.awaitingGezelName:e.awaitingGezelName=a.targetGezelName,Y.current.set(t,e),se(e=>e+1)}else a.type===`context_warning`?fe.current.get(t)?.kind!==`compacted`&&(fe.current.set(t,{kind:`warning`,estimatedTokens:a.estimatedTokens,numCtx:a.numCtx,model:a.model,at:Date.now()}),se(e=>e+1)):a.type===`context_compacted`?(fe.current.set(t,{kind:`compacted`,model:a.model,removedCount:a.removedCount,at:Date.now()}),Ke(),se(e=>e+1)):(a.type===`question_asked`||a.type===`question_answered`)&&(ae(e=>{let t=new Map(e);return a.type===`question_answered`&&!a.question.answer?t.delete(a.question.id):t.set(a.question.id,a.question),t}),a.type===`question_asked`&&Ke());function s(e,t,n){let r=t$(N,n),i=Date.now();return{gezelId:e,projectId:t,segments:[],startedAt:i,lastActivityAt:i,hasProgress:!1,anchorAt:r?n$(r.at):vFe(),...r?{sessionTitle:r.sessionTitle}:{},...r?{sessionCreatedAt:r.sessionCreatedAt}:{},...r?.taskRef?{taskRef:r.taskRef}:{}}}},[N,r,Ke,K,We,Ne,je,Me]),Je=(0,X.useMemo)(()=>{let e=[];for(let[t,n]of Y.current.entries())e.push({kind:`streaming`,sessionId:t,slot:n});let t=N.map(e=>({kind:`message`,msg:e,at:e.at})),n=e.map(e=>({kind:`streaming`,sessionId:e.sessionId,slot:e.slot,at:e.slot.anchorAt})),r=I.map(e=>({kind:`terminal`,entry:e,at:e.at})),i=[];for(let[e,t]of ue.current.entries())i.push({kind:`terminal-streaming`,runId:e,slot:t,at:t.startedAt});let a=[...t,...n,...r,...i],o=Date.now();return a.sort((e,t)=>QPe(e,t,o)),a},[N,I,oe,ce,R]),Ye=(0,X.useMemo)(()=>eFe(Je),[Je]);(0,X.useEffect)(()=>{let e=pe.current;if(!e)return;let t=Je.length>ke.current,n=e.scrollHeight>Ae.current;ke.current=Je.length,Ae.current=e.scrollHeight,!(!t&&!n)&&he&&e.scrollTo({top:e.scrollHeight,behavior:`instant`})},[Je,he]),(0,X.useEffect)(()=>{let e=pe.current;if(!e||!ve||be===ve.key)return;let t=null;if(ve.kind===`chat`){let n=Date.parse(ve.at),r=N.filter(e=>e.sessionId===ve.sessionId&&e.role===`user`&&e.content===ve.content).sort((e,t)=>Math.abs(Date.parse(e.at)-n)-Math.abs(Date.parse(t.at)-n))[0];if(r){let n=ZQ(`msg:${r.sessionId}:${r.at}:${r.role}`);t=e.querySelector(`[data-msg-id="${n}"]`)}}else{let n=[...I].reverse().find(e=>e.threadId===ve.threadId&&e.msgKind===`command`&&(e.content===ve.input||e.resolvedFrom===ve.input));if(n){let r=ZQ(n.messageId);t=e.querySelector(`[data-terminal-message-id="${r}"]`)}}if(!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=Math.max(0,e.scrollTop+r.top-n.top-12);_e(!0),e.scrollTo({top:i}),xe(ve.key)},[N,I,ve,be]),(0,X.useEffect)(()=>{if(!v||Se.current===v.requestKey)return;let e=pe.current;if(!e)return;let t=ZQ(v.threadId),n=e.querySelectorAll(`[data-terminal-thread-id="${t}"]`),r=n[n.length-1];r&&(Se.current=v.requestKey,_e(!1),typeof r.scrollIntoView==`function`&&r.scrollIntoView({block:`center`}),r.classList.add(`timeline-focus-flash`),window.setTimeout(()=>r.classList.remove(`timeline-focus-flash`),XQ))},[v,I]);let Xe=(0,X.useCallback)((e,t)=>{let r=pe.current;if(!r)return!1;let i=ZQ(e),a=r.querySelector(`[data-session-error="${i}"]`),o=r.querySelectorAll(`[data-session-id="${i}"]`),s=a??o[o.length-1]??null;if(!s)return!1;if(_e(!1),typeof s.scrollIntoView==`function`&&s.scrollIntoView({block:`center`}),s.classList.add(`timeline-focus-flash`),window.setTimeout(()=>s.classList.remove(`timeline-focus-flash`),XQ),t?.notifyParent!==!1){let t=F.current.find(t=>t.sessionId===e);t&&n?.(e,t.gezelId,t.projectId)}return!0},[n]),Ze=(0,X.useRef)(null),[Qe,$e]=(0,X.useState)(0),et=(0,X.useCallback)((e,t)=>{Ze.current={sessionId:e,until:Date.now()+cFe,notifyParent:t?.notifyParent!==!1},$e(e=>e+1)},[]);(0,X.useEffect)(()=>{let e=Ze.current;if(e){if(Date.now()>e.until){Ze.current=null;return}Xe(e.sessionId,{notifyParent:e.notifyParent})&&(Ze.current=null)}},[Je,Qe,Xe]),(0,X.useEffect)(()=>{let e=e=>{let t=e.detail;t?.sessionId&&t.projectId===je&&(je&&lw(je),et(t.sessionId))};return window.addEventListener(`gezel:focus-session-error`,e),()=>window.removeEventListener(`gezel:focus-session-error`,e)},[je,et]);let tt=(0,X.useRef)(void 0);(0,X.useEffect)(()=>{if(tt.current!==je&&(tt.current=je,Ze.current=null),!je)return;let e=lw(je);e&&et(e.sessionId)},[je,et]),(0,X.useEffect)(()=>{y&&Ce.current!==y.requestKey&&(Ce.current=y.requestKey,et(y.sessionId,{notifyParent:!1}))},[y,et]);let nt=(0,X.useCallback)(()=>{let e=pe.current;if(!e){Ee(e=>e===null?e:null);return}let t=e.getBoundingClientRect(),n=e.parentElement;if(n){let t=e.offsetWidth-e.clientWidth;n.style.setProperty(`--chat-timeline-sb-width`,`${t}px`)}let r=e.parentElement?.querySelector(`.chat-sticky-header`);if(r){let e=r.getBoundingClientRect().height;e>0&&(Oe.current=e)}let i=Oe.current,a=t.top,o=t.top+i,s=null,c=0,l=null,u=null,d=null,f=e.querySelectorAll(`[data-msg-id]`);for(let e of f){let t=e.dataset.msgId,n=e.dataset.sessionId;if(!t)continue;let r=e.getBoundingClientRect(),i=r.top<a&&r.bottom>o,d=e.classList.contains(`msg-assistant`)||e.classList.contains(`msg-from-gezel`);i&&d&&(s=t,c=r.top,l=n??null,u=r)}if(n&&u){let e=n.getBoundingClientRect(),t=u.left-e.left;n.style.setProperty(`--chat-sticky-left`,`${t}px`),n.style.setProperty(`--chat-sticky-width`,`${u.width}px`)}if(s&&l)for(let e of f){let t=e.dataset.msgId,n=e.dataset.sessionId;!t||n!==l||e.classList.contains(`msg-user`)&&e.getBoundingClientRect().bottom<=c&&(d=t)}let p=s&&d?{userMessageId:d,assistantMessageId:s}:null;Ee(e=>e===p||e&&p&&e.userMessageId===p.userMessageId&&e.assistantMessageId===p.assistantMessageId?e:p)},[]),rt=(0,X.useCallback)(()=>{De.current===null&&(De.current=requestAnimationFrame(()=>{De.current=null,nt()}))},[nt]);(0,X.useEffect)(()=>{rt()},[Je,rt]),(0,X.useEffect)(()=>{let e=pe.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(rt);return t.observe(e),()=>t.disconnect()},[rt]),(0,X.useEffect)(()=>()=>{De.current!==null&&(cancelAnimationFrame(De.current),De.current=null),me.current!==null&&(window.clearTimeout(me.current),me.current=null)},[]);let it=(0,X.useCallback)(()=>{rt();let e=pe.current;if(!e)return;e.classList.add(`chat-timeline-scrolling`),me.current!==null&&window.clearTimeout(me.current),me.current=window.setTimeout(()=>{pe.current?.classList.remove(`chat-timeline-scrolling`),me.current=null},sFe);let t=e.scrollHeight-(e.scrollTop+e.clientHeight)<=aFe;if(_e(e=>e===t?e:t),e.scrollTop<=oFe&&B&&!te&&!we.current&&H){we.current=!0;let t=e.scrollHeight,n=e.scrollTop;(async()=>{try{let e=await f({limit:YQ,before:H});P(t=>[...e.messages,...t]),V(e.hasMore),U(e.nextCursor),requestAnimationFrame(()=>{let e=pe.current;e&&e.scrollTo({top:e.scrollHeight-t+n,behavior:`instant`}),we.current=!1})}catch{we.current=!1}})()}},[B,te,H,f,rt]),at=(0,X.useCallback)(()=>{_e(e=>{let t=!e;if(t){let e=pe.current;e&&e.scrollTo({top:e.scrollHeight,behavior:`instant`})}return t})},[]),ot=(0,X.useMemo)(()=>{if(!Te)return null;let e=N.find(e=>`msg:${e.sessionId}:${e.at}:${e.role}`===Te.userMessageId);if(!e)return null;let t=null;if(Te.assistantMessageId.startsWith(`live:`)){let e=Te.assistantMessageId.slice(5),n=Y.current.get(e);n&&(t={kind:`live`,sessionId:e,slot:n})}else{let e=N.find(e=>`msg:${e.sessionId}:${e.at}:${e.role}`===Te.assistantMessageId);e&&(t={kind:`message`,msg:e})}return t?{userMsg:e,assistantInfo:t}:null},[Te,N,oe]);if(te&&N.length===0)return(0,Z.jsx)(`div`,{className:`chat-timeline chat-timeline-loading`,children:(0,Z.jsx)(`p`,{className:`muted small`,children:`Loading…`})});if(G)return(0,Z.jsx)(`div`,{className:`chat-timeline chat-timeline-error`,children:(0,Z.jsx)(`p`,{className:`error`,children:G})});if(Je.length===0)return(0,Z.jsx)(`div`,{className:`chat-timeline`,ref:pe,"data-testid":`chat-timeline`,children:u&&(0,Z.jsx)(`p`,{className:`placeholder`,children:u})});let st=null,ct=null,lt=null,ut=new Set,dt=new Map,ft=new Set;for(let e of N)e.pendingQuestionId&&ft.add(e.pendingQuestionId);let pt=new Map;for(let e of J.values()){if(e.answer||ft.has(e.id))continue;let t=pt.get(e.sessionId);(!t||e.createdAt>t.createdAt)&&pt.set(e.sessionId,e)}let mt=[],ht=(e,t,n)=>{mt.push((0,Z.jsxs)(`div`,{className:`timeline-session-error-banner`,"data-session-error":e,children:[`✗ Last turn failed: `,t,_Fe(t)&&(0,Z.jsxs)(Z.Fragment,{children:[` `,(0,Z.jsx)(`button`,{type:`button`,className:`timeline-session-error-link`,onClick:()=>window.dispatchEvent(new CustomEvent(`gezel:navigate`,{detail:{view:`settings`,section:`defaults`}})),children:`Open Settings →`})]}),n&&(0,Z.jsxs)(Z.Fragment,{children:[` `,(0,Z.jsx)(`button`,{type:`button`,className:`timeline-session-error-link`,title:`Clear the failed-turn state across this project so ambient work resumes`,onClick:()=>{Q.clearProjectErrors(n).then(()=>{P(e=>e.map(e=>e.projectId===n?{...e,sessionLastTurnError:void 0}:e)),window.dispatchEvent(new CustomEvent(`gezel:session-error-cleared`,{detail:{projectId:n}}))}).catch(()=>{})},children:`Continue`})]}),` `,!ee(t)&&(0,Z.jsx)(Mx,{report:{surface:`session-error`,message:t}})]},`session-error:${e}`))},gt=(e,n)=>{let r=K.get(e.gezelId),o=e.sessionId===t,s=yFe(e.sessionLastActivityAt,rFe),c=!o&&!s,l=x&&e.projectId!=="default"?re.get(e.projectId):void 0,u=e.from?e.from.gezelId:e.gezelId,f=K.get(u)?.font,m=p(f),h=d(f);return(0,Z.jsx)(Nle,{dataMsgId:`msg:${e.sessionId}:${e.at}:${e.role}`,dataSessionId:e.sessionId,debugMode:Le,sessionId:e.sessionId,messageAt:e.at,role:e.role,content:e.content,authorLabel:r?i({name:r.name,roleBasedName:r.roleBasedName},T):`Gezel`,authorIcon:r?.icon??null,...r?.poppetje?{authorPoppetje:r.poppetje}:{},...r?.iconOverride?{authorIconOverride:!0}:{},authorTooltip:Ve(e.gezelId),...(()=>{let t=He(e.sessionProviderName,e.sessionModel);return t?{driftLabel:t}:{}})(),...!T&&r?.role?{authorRole:r.role}:{},...e.from?{from:e.from}:{},...e.nudge?{nudge:!0}:{},receiverLabel:r?i({name:r.name,roleBasedName:r.roleBasedName},T):`Gezel`,...m?{fontFamily:m}:{},...h===1?{}:{fontScale:h},...l?{projectLabel:l.name}:{},extraClass:c?`timeline-msg-faded`:void 0,mediaProvider:AQ(e.projectId,e.sessionId),...e.referencedArtifacts?{referencedArtifacts:e.referencedArtifacts}:{},...e.referencedTasks?{referencedTasks:e.referencedTasks}:{},...e.toolCalls&&e.toolCalls.length>0?{toolCalls:e.toolCalls,projectId:e.projectId}:{},...e.reasoning?{reasoning:e.reasoning}:{},...e.reasoningDurationMs===void 0?{}:{reasoningDurationMs:e.reasoningDurationMs},...e.attemptedToolCalls&&e.attemptedToolCalls.length>0?{attemptedToolCalls:e.attemptedToolCalls}:{},...n?.recoveredInNextTurn?{recoveredInNextTurn:!0}:{},...n?.suppressHeader?{suppressHeader:!0}:{},...n?.timestampLabel?{timestampLabel:n.timestampLabel}:{},...e.intents&&e.intents.length>0?{intents:e.intents}:{},...e.warnings&&e.warnings.length>0?{warnings:e.warnings}:{},...e.pendingQuestionId&&J.get(e.pendingQuestionId)?{question:J.get(e.pendingQuestionId),onQuestionAnswered:e=>ae(t=>{let n=new Map(t);return n.set(e.id,e),n})}:{},...a?{onArtifactReference:t=>a(t,e.projectId)}:{},onTaskReference:e=>window.dispatchEvent(new CustomEvent(`gezel:open-tab`,{detail:{kind:`task`,ref:e}}))},`msg:${e.sessionId}:${e.at}:${e.role}`)},_t=(e,t)=>{let n=[],r=K.get(t.gezelId),a=p(r?.font),o=d(r?.font);n.push((0,Z.jsx)(Lle,{dataMsgId:`live:${e}`,dataSessionId:e,authorLabel:r?i({name:r.name,roleBasedName:r.roleBasedName},T):`Gezel`,authorIcon:r?.icon??null,...r?.poppetje?{authorPoppetje:r.poppetje}:{},...r?.iconOverride?{authorIconOverride:!0}:{},authorTooltip:Ve(t.gezelId),...(()=>{if(!t.sessionProviderName)return{};let e=He(t.sessionProviderName,t.sessionModel);return e?{driftLabel:e}:{}})(),...!T&&r?.role?{authorRole:r.role}:{},segments:t.segments,startedAt:t.startedAt,lastActivityAt:t.lastActivityAt,hasProgress:t.hasProgress,...Be(t.gezelId)===`ollama`?{onProbeOllama:()=>Q.ollamaProbe()}:{},...Be(t.gezelId)===`ollama`?{localEngine:`ollama`}:Be(t.gezelId)===`llama-cpp`?{localEngine:`llama-cpp`}:Be(t.gezelId)===`ds4`?{localEngine:`ds4`}:{},onCancel:async()=>{try{await Q.cancelChatSessionTurn(e)}catch(e){console.warn(`[timeline] failed to cancel turn:`,e)}},onReEngage:async()=>{try{await Q.cancelChatSessionTurn(e)}catch(e){console.warn(`[timeline] re-engage: cancel failed:`,e)}try{await Q.sendToChatSession(e,{message:`Please continue where you left off and finish the work you started.`})}catch(e){console.warn(`[timeline] re-engage: send failed:`,e)}},...a?{fontFamily:a}:{},...o===1?{}:{fontScale:o},...t.error?{error:t.error}:{},...t.errorDetail?{errorDetail:t.errorDetail}:{},...t.queueAhead===void 0?{}:{queueAhead:t.queueAhead},...t.wirePulseCount&&t.wirePulseCount>0?{wirePulseCount:t.wirePulseCount}:{},...t.thinkingLabel?{thinkingLabel:t.thinkingLabel}:{},...t.thinkingProgress===void 0?{}:{thinkingProgress:t.thinkingProgress},...t.thinkingDetail?{thinkingDetail:t.thinkingDetail}:{},...t.liveReasoning?{liveReasoning:t.liveReasoning}:{},...t.liveToolArgs?{liveToolArgs:t.liveToolArgs}:{},...t.gpuSwapTask?{gpuSwapTask:t.gpuSwapTask}:{},...t.gpuSwapDetail?{gpuSwapDetail:t.gpuSwapDetail}:{},...t.gpuSwapPrompt?{gpuSwapPrompt:t.gpuSwapPrompt}:{},...t.gpuSwapProgress===void 0?{}:{gpuSwapProgress:t.gpuSwapProgress},...t.gpuSwapStep===void 0?{}:{gpuSwapStep:t.gpuSwapStep},...t.gpuSwapTotalSteps===void 0?{}:{gpuSwapTotalSteps:t.gpuSwapTotalSteps},...t.gpuSwapSecondsPerStep===void 0?{}:{gpuSwapSecondsPerStep:t.gpuSwapSecondsPerStep},...t.awaitingGezelName?{awaitingGezelName:t.awaitingGezelName}:{},...t.warnings&&t.warnings.length>0?{warnings:t.warnings}:{},...pt.get(e)?{question:pt.get(e),onQuestionAnswered:e=>ae(t=>{let n=new Map(t);return n.set(e.id,e),n})}:{},debugMode:Le,sessionId:e},`live:${e}`));let s=de.current.get(e);if(s&&s.length>0)for(let r of s)n.push((0,Z.jsx)(zle,{sessionId:e,queueId:r.id,preview:r.preview,enqueuedAt:r.enqueuedAt,mediaProvider:AQ(t.projectId,e),...r.nudge?{nudge:!0}:{},onDiscard:async()=>{try{await Q.cancelQueuedMessage(e,r.id)}catch(e){console.warn(`[timeline] failed to discard queued message:`,e)}},onCancelCurrent:async()=>{try{await Q.cancelChatSessionTurn(e)}catch(e){console.warn(`[timeline] failed to cancel current turn:`,e)}},onLoadText:async()=>{try{return(await Q.listSessionQueue(e)).entries.find(e=>e.queueId===r.id)?.text??null}catch{return null}},onSaveEdit:async t=>{try{return await Q.updateQueuedMessage(e,r.id,{message:t}),!0}catch(e){if(/not found/i.test(e.message??``))return!1;throw e}}},`ghost:${r.id}`));return n};for(let e of Ye){if(e.kind===`terminal`){let t=e.entry,n=dt.get(t.threadId),r=!n,i=n?Math.max(0,new Date(t.at).getTime()-new Date(n.at).getTime()):0;(r||i>lFe)&&mt.push(mFe({entry:t,key:`terminal-divider:${t.threadId}:${t.messageId}`})),mt.push((0,Z.jsx)(BPe,{entry:t,...s?{onOpenWorkspaceFile:e=>s(e,t.projectId)}:{}},`terminal:${t.threadId}:${t.messageId}`)),dt.set(t.threadId,t);continue}if(e.kind===`terminal-streaming`){let t=e.slot.projectId,n=e.runId;mt.push((0,Z.jsx)(KPe,{content:e.slot.content,cwd:e.slot.cwd,startedAt:e.slot.startedAt,...e.slot.awaitingInput?{awaitingInput:e.slot.awaitingInput}:{},onCancel:()=>{Q.cancelTerminalRun(t,n).catch(()=>{})},onSendInput:e=>{let r=ue.current.get(n);r&&(delete r.awaitingInput,le(e=>e+1)),Q.sendTerminalInput(t,n,e).catch(e=>{console.warn(`[ChatTimelineView] sendTerminalInput failed`,e)})}},`terminal-streaming:${n}`));continue}let r=e.sessionId,i=e.root??e.replies[0];if(!i)continue;if(r!==st){st&&ct&&!Y.current.has(st)&&ht(st,ct,lt);let a=ut.has(r);mt.push(pFe({row:i,gezels:K,projects:re,showProjectName:x,activeSessionId:t,onFocusSession:n,continuing:a,key:`divider:${r}:${e.at}`,roleBasedNameOnlyMode:T})),ut.add(r),st=r,ct=null,lt=null}let a=e.root??e.replies.find(e=>e.kind===`message`);a&&a.kind===`message`&&a.msg.sessionLastTurnError&&(ct=a.msg.sessionLastTurnError,lt=a.msg.projectId);let o=[];if(e.root&&o.push(gt(e.root.msg,{timestampLabel:r$(e.root.at)})),e.replies.length>0){let t=[];for(let n=0;n<e.replies.length;n++){let r=e.replies[n];if(r.kind===`streaming`){t.push(..._t(r.sessionId,r.slot));continue}let i=r.msg,a=n>0?e.replies[n-1]:void 0,o=a?a.at:e.root?.at,s=(o?Math.max(0,Date.parse(i.at)-Date.parse(o)):0)>iFe,c=a?.kind===`message`&&a.msg.gezelId===i.gezelId,l=e.replies[n+1],u=i.role===`assistant`&&i.content.trim().length===0&&!!i.toolCalls&&i.toolCalls.length>0&&l!==void 0&&l.kind===`message`&&l.msg.sessionId===i.sessionId&&l.msg.role===`assistant`&&l.msg.content.trim().length>0;t.push(gt(i,{...c&&!s?{suppressHeader:!0}:{},...s?{timestampLabel:r$(i.at)}:{},...u?{recoveredInNextTurn:!0}:{}}))}o.push((0,Z.jsx)(`div`,{className:`timeline-thread-replies`,children:t},`replies`))}let c=e.replies.length>0&&(!e.root||!e.root.msg.from);mt.push((0,Z.jsx)(`div`,{className:`timeline-thread${e.root?``:` timeline-thread-rootless`}${c?` timeline-thread-railed`:``}`,children:o},`thread:${r}:${e.at}`))}st&&ct&&!Y.current.has(st)&&ht(st,ct,lt);let vt=t?fe.current.get(t):void 0,yt=vt?.kind===`warning`&&typeof vt.estimatedTokens==`number`&&typeof vt.numCtx==`number`&&vt.numCtx>0?Math.round(100*vt.estimatedTokens/vt.numCtx):null,bt=ve?.kind===`chat`?Y.current.has(ve.sessionId):ve?.kind===`terminal`&&ue.current.has(ve.runId),xt=ve!==null&&(be!==ve.key||bt);return(0,Z.jsxs)(`div`,{className:`chat-timeline-viewport`,children:[vt&&(0,Z.jsx)(`output`,{className:`chat-context-banner chat-context-banner-${vt.kind}`,children:vt.kind===`warning`?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`chat-context-banner-icon`,"aria-hidden":!0,children:`⚠`}),(0,Z.jsxs)(`span`,{className:`chat-context-banner-body`,children:[(0,Z.jsx)(`strong`,{children:`Context window getting full`}),` — this thread`,` `,yt===null?`is approaching`:yt>100?`has exceeded`:`has used about ${yt}% of`,` `,`the model's available context. Earlier context may become less reliable — consider starting fresh for better recall.`]})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`chat-context-banner-icon`,"aria-hidden":!0,children:`✦`}),(0,Z.jsxs)(`span`,{className:`chat-context-banner-body`,children:[(0,Z.jsx)(`strong`,{children:`Compacted older messages`}),` to fit the model context.`,` `,vt.removedCount??0,` earlier turn`,vt.removedCount===1?``:`s`,` were summarized into a single bubble; the gezel will continue from the synthesis.`]})]})}),ot&&(0,Z.jsx)(bFe,{payload:ot,gezels:K}),(0,Z.jsxs)(`div`,{className:`chat-timeline`,ref:pe,onScroll:it,"data-testid":`chat-timeline`,children:[B&&(0,Z.jsx)(`div`,{className:`timeline-loading-pill muted small`,children:we.current?`Loading older messages…`:`Scroll up for older messages`}),mt,xt&&(0,Z.jsx)(`div`,{className:`timeline-response-runway`,"aria-hidden":`true`})]}),!he&&(0,Z.jsx)(`button`,{type:`button`,className:`chat-timeline-pin-toggle`,onClick:at,title:`Jump to newest and follow`,"aria-label":`Jump to newest and follow`,children:(0,Z.jsxs)(`svg`,{className:`chat-timeline-pin-glyph`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,role:`img`,"aria-hidden":!0,children:[(0,Z.jsx)(`title`,{children:`Jump to newest`}),(0,Z.jsx)(`line`,{x1:`12`,y1:`4`,x2:`12`,y2:`15`}),(0,Z.jsx)(`polyline`,{points:`6 10 12 16 18 10`}),(0,Z.jsx)(`line`,{x1:`5`,y1:`20`,x2:`19`,y2:`20`})]})})]})}function pFe(e){let{row:t,gezels:n,projects:r,showProjectName:a,activeSessionId:o,onFocusSession:s,continuing:c,key:l,roleBasedNameOnlyMode:u}=e,d=t.kind===`streaming`?t.sessionId:t.msg.sessionId,f=t.kind===`streaming`?t.slot.gezelId:t.msg.gezelId,p=t.kind===`streaming`?t.slot.projectId:t.msg.projectId,m=n.get(f),h=a&&p!=="default"?r.get(p):void 0,g=d===o,_=t.kind===`message`?t.msg.sessionCreatedAt:t.slot.sessionCreatedAt??new Date(t.slot.startedAt).toISOString(),v=t.kind===`message`?t.msg.taskRef:t.slot.taskRef,y=t.kind===`message`?t.msg.handoffFrom:void 0,b=y?(()=>{let e=n.get(y.gezelId);return e?i({name:e.name,roleBasedName:e.roleBasedName},u):void 0})():void 0,x=m?i({name:m.name,roleBasedName:m.roleBasedName},u):`Gezel`;return(0,Z.jsxs)(`button`,{type:`button`,className:`timeline-session-divider${g?` timeline-session-divider-active`:``}${c?` timeline-session-divider-continuing`:``}`,onClick:()=>s?.(d,f,p),title:`Focus this thread — composer will post here`,children:[(0,Z.jsx)(Up,{svg:m?.icon??null,poppetje:m?.poppetje,iconOverride:m?.iconOverride,name:x,size:16}),(0,Z.jsxs)(`span`,{className:`timeline-divider-meta`,children:[c?(0,Z.jsxs)(Z.Fragment,{children:[`↩ continuing with `,x,h&&(0,Z.jsxs)(Z.Fragment,{children:[` · in `,h.name]})]}):(0,Z.jsxs)(Z.Fragment,{children:[`new thread with `,x,h&&(0,Z.jsxs)(Z.Fragment,{children:[` · in `,h.name]}),` · `,`started `,r$(_)]}),v&&(0,Z.jsxs)(Z.Fragment,{children:[` · task `,v]})]}),y&&b&&(0,Z.jsxs)(`span`,{className:`timeline-divider-handoff`,children:[(0,Z.jsxs)(`svg`,{className:`timeline-divider-handoff-icon`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,focusable:`false`,children:[(0,Z.jsx)(`path`,{d:`M2.5 4.25v2.1a4.4 4.4 0 0 0 4.4 4.4H13`}),(0,Z.jsx)(`path`,{d:`m10.5 8.25 2.75 2.5-2.75 2.5`})]}),`handoff from `,b]})]},l)}function mFe(e){let{entry:t,key:n}=e;return(0,Z.jsxs)(`div`,{className:`timeline-session-divider timeline-terminal-session-divider`,children:[(0,Z.jsx)(`span`,{className:`terminal-folder-pill`,title:`Working folder`,children:t.workingDir===``?`/`:t.workingDir}),(0,Z.jsxs)(`span`,{className:`timeline-divider-meta`,children:[`terminal session · started `,r$(t.at)]})]},n)}function hFe(e){for(let t of e)if(t.kind===`text`&&t.content.length>0)return!0;return!1}function gFe(e){let t=0;for(let n of e)n.kind===`tool`&&t++;return t}function t$(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].sessionId===t)return e[n];return null}function _Fe(e){return/model\s+.*\bnot available\b/i.test(e)||/\bunknown model\b/i.test(e)}function n$(e){try{let t=new Date(e).getTime();return new Date(t+1).toISOString()}catch{return e}}function vFe(){return new Date().toISOString()}function yFe(e,t){if(!e)return!1;try{let n=new Date(e).getTime();return Date.now()-n<=t}catch{return!1}}function bFe({payload:e,gezels:t}){let{userMsg:n,assistantInfo:r}=e,a=dFe(n.content),o=r.kind===`live`,s=o?r.slot:null,c=WS(o?s?.startedAt??null:null),l=o?r.sessionId:r.msg.gezelId,u=t.get(o?s?.gezelId??``:r.msg.gezelId),d=fC(),f=u?i({name:u.name,roleBasedName:u.roleBasedName},d):`Gezel`;return(0,Z.jsxs)(`div`,{className:`chat-sticky-header`,"aria-live":`polite`,children:[(0,Z.jsxs)(`div`,{className:`chat-sticky-header-user`,title:n.content,children:[(0,Z.jsx)(`span`,{className:`chat-sticky-header-author`,children:`YOU`}),(0,Z.jsx)(`span`,{className:`chat-sticky-header-preview`,children:a})]}),(0,Z.jsxs)(`div`,{className:`chat-sticky-header-assistant`,children:[(0,Z.jsx)(Up,{svg:u?.icon??null,poppetje:u?.poppetje,iconOverride:u?.iconOverride,name:f,size:18}),(0,Z.jsx)(`span`,{className:`chat-sticky-header-author`,children:f}),!d&&u?.role&&(0,Z.jsx)(PS,{role:u.role}),o&&s&&(0,Z.jsx)(zS,{failed:!!s.error,queued:s.queueAhead!==void 0&&!hFe(s.segments),queueAhead:s.queueAhead,elapsedSeconds:c,toolCount:gFe(s.segments),wirePulseCount:s.wirePulseCount,...s.thinkingLabel?{thinkingLabel:s.thinkingLabel}:{},...s.thinkingProgress===void 0?{}:{thinkingProgress:s.thinkingProgress},...s.thinkingDetail?{thinkingDetail:s.thinkingDetail}:{},...s.awaitingGezelName?{awaitingGezelName:s.awaitingGezelName}:{}})]},l)]})}function r$(e){try{let t=new Date(e).getTime(),n=Math.max(0,Date.now()-t),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}catch{return e}}var i$=280;function a$(e,t){t?.current&&(t.current.abort(),t.current=null);let n=e.current;if(n){try{n.pause(),n.removeAttribute(`src`),n.load()}catch{}e.current=null}}function xFe(e){let t=e.trim();if(t.length<=i$)return t;let n=t.slice(0,i$),r=Math.max(n.lastIndexOf(`. `),n.lastIndexOf(`! `),n.lastIndexOf(`? `));return r>=i$/2?n.slice(0,r+1).trim():`${n.trim()}…`}async function SFe(e,t,n,r,i){a$(r,i);let a=new AbortController;i.current=a;let o=xFe(e);console.debug(`[narrate] synth start chars=${o.length} (of ${e.length}) gezelId=${t}`);let s;try{s=await Q.synthesizeSpeech({text:o,gezelId:t,projectId:n,inline:!0,signal:a.signal})}catch(e){if(a.signal.aborted){console.debug(`[narrate] synth aborted (superseded by newer turn)`);return}console.warn(`[narrate] synth failed:`,e);return}if(a.signal.aborted){console.debug(`[narrate] synth resolved but aborted — dropping`);return}if(console.debug(`[narrate] synth ok b64Len=${s.b64Wav?.length??0} meta=`,s.meta),!s.b64Wav){console.warn(`[narrate] synth returned no b64Wav — narration skipped`);return}let c=new Audio(`data:audio/wav;base64,${s.b64Wav}`);r.current=c,c.addEventListener(`ended`,()=>{console.debug(`[narrate] playback ended`),r.current===c&&(r.current=null),i.current===a&&(i.current=null)});try{await c.play(),console.debug(`[narrate] playback started`)}catch(e){console.warn(`[narrate] playback rejected:`,e),r.current===c&&(r.current=null),i.current===a&&(i.current=null)}}function o$(e){switch(e){case`copilot`:return`Copilot`;case`openai`:return`OpenAI`;case`anthropic`:return`Claude`;case`anthropic-cli`:return`Claude CLI`;case`codex-cli`:return`Codex CLI`;case`ollama`:return`Ollama`;case`llama-cpp`:return`On-device`;case`mlx`:return`MLX`;case`ds4`:return`DwarfStar`;case`remote`:return`Remote`}}function s$({projectId:e,gezelId:t,taskRef:n,activeSessionId:r,onFocusSession:i,onToolActivity:a,onArtifactReference:o,onArtifactSeen:s,onWorkspaceReference:c,onWorkspaceSeen:l,onTaskReference:u,emptyPlaceholder:d,onTerminalWorkingDirChanged:f,terminalRefreshKey:p,terminalSubmission:m,terminalFocusRequest:h,sessionFocusRequest:g}){let _=(0,X.useCallback)(r=>Q.listProjectTimeline(e,{...r,...t?{gezelId:t}:{},...n?{taskRef:n}:{}}),[e,t,n]),v=(0,X.useCallback)(()=>t?Q.gezelEventsUrl(t):Q.projectEventsUrl(e),[e,t]),y=(0,X.useCallback)(()=>Q.terminalEventsUrl(e),[e]),b=(0,X.useMemo)(()=>t?{projectId:e,gezelId:t}:{projectId:e},[e,t]),[x,S]=(0,X.useState)(c$),[C,w]=(0,X.useState)(0);(0,X.useEffect)(()=>{if(!n){S(c$);return}let e=Fe(n);if(!e){S(c$);return}let t=!1;return Q.listTaskSessions(e.projectId,e.num).then(e=>{t||S(new Set(e.sessions.filter(e=>!e.archived).map(e=>e.id)))}).catch(()=>{}),()=>{t=!0}},[n,C]);let T=(0,X.useMemo)(()=>{if(n)return!r||x.has(r)?x:new Set([...x,r])},[n,x,r]),E=(0,X.useRef)(!1),D=(0,X.useCallback)(()=>{E.current||(E.current=!0,setTimeout(()=>{E.current=!1,w(e=>e+1)},500))},[]);return(0,Z.jsx)(e$,{scopeKey:n?`project:${e}:task:${n}`:t?`project:${e}:gezel:${t}`:`project:${e}`,activeSessionId:r,onFocusSession:i,onToolActivity:a,onArtifactReference:o,onArtifactSeen:s,onWorkspaceReference:c,onWorkspaceSeen:l,...u?{onTaskReference:u}:{},emptyPlaceholder:d,loadTimeline:_,streamUrl:v,...t||n?{}:{terminalStreamUrl:y},...p===void 0?{}:{terminalRefreshKey:p},...m?{terminalSubmission:m}:{},...h?{terminalFocusRequest:h}:{},...g?{sessionFocusRequest:g}:{},...t||n||!f?{}:{onTerminalWorkingDirChanged:f},inflightScope:b,...T?{scopedSessionIds:T,onUnknownSession:D}:{}})}var c$=new Set,l$=`default`;function CFe({craftbookId:e,craftbookName:t,readOnly:n}){let[r,i]=(0,X.useState)([]),[a,o]=(0,X.useState)(``);(0,X.useEffect)(()=>{Q.listGezels().then(e=>i(e.gezels)).catch(()=>{})},[]),(0,X.useEffect)(()=>{o(``)},[e]);let s=(0,X.useMemo)(()=>r.find(e=>e.role===`voorman`)??r.find(e=>e.role===`meester`)??r[0],[r]),c=t=>{t?.startsWith(`craftbook_`)&&window.dispatchEvent(new CustomEvent(`gezel:craftbook-edited`,{detail:{id:e}}))};return n?(0,Z.jsx)(`div`,{className:`craftbook-chat-pane muted small`,children:`This craftbook is read-only — fork it to a local copy to edit it with AI.`}):s?(0,Z.jsxs)(`div`,{className:`craftbook-chat-pane task-detail-chat`,children:[(0,Z.jsx)(s$,{projectId:l$,activeSessionId:a||void 0,onFocusSession:(e,t)=>{t===s.id&&o(e)},onToolActivity:e=>c(e.name)}),(0,Z.jsx)(BQ,{gezelId:s.id,gezelName:s.name,gezelIcon:s.icon??null,...s.poppetje?{gezelPoppetje:s.poppetje}:{},...s.iconOverride?{gezelIconOverride:s.iconOverride}:{},projectId:l$,sessionId:a||void 0,onSessionCreated:e=>o(e),onToolActivity:e=>c(e.name),craftbookRef:e,placeholder:`Ask ${s.name} to shape “${t}” — add steps, set roles, wire gates…`})]}):(0,Z.jsx)(`div`,{className:`craftbook-chat-pane muted small`,children:`No gezel available yet. Create a voorman or the Meester first, then come back.`})}function u$({value:e,readOnly:t,placeholder:n,minHeight:r=`80px`,maxHeight:i=`40vh`,onCommit:a}){let o=Ax(),s=(0,X.useRef)(e),c=(0,X.useRef)(e),l=(0,X.useCallback)(e=>{s.current=e},[]),u=(0,X.useCallback)(()=>{t||s.current!==c.current&&(c.current=s.current,a(s.current))},[t,a]),d=(0,X.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||u()},[u]),f=(0,X.useRef)(u);return f.current=u,(0,X.useEffect)(()=>()=>f.current(),[]),(0,Z.jsx)(`div`,{className:`markdown-field`,onBlur:d,children:(0,Z.jsx)(uQ,{initialMarkdown:e,initialView:`wysiwyg`,onChange:l,readOnly:t??!1,colorScheme:o,uxFont:`var(--font-ui)`,...n?{placeholder:n}:{},minHeight:r,maxHeight:i,showPlayTab:!1,showStatusBar:!1,showFilesToggle:!1,fullWidth:!0,thinMargins:!0})})}function d$(e){window.dispatchEvent(new CustomEvent(`gezel:open-tab`,{detail:e}))}function wFe({craftbookId:e,steps:t,stepId:n,entryStepId:r,gezels:i,readOnly:a,busy:o,onPatch:s,onRemove:c,onSetEntry:l}){let u=n?t.find(e=>e.id===n)??null:null,[d,f]=(0,X.useState)(n),p=(0,X.useRef)(u?.name??``),m=(0,X.useRef)(u?.description??``),h=(0,X.useRef)(u?.prompt??``),g=(0,X.useRef)(u?.suggestedRole??``);if((0,X.useEffect)(()=>{p.current=u?.name??``,m.current=u?.description??``,h.current=u?.prompt??``,g.current=u?.suggestedRole??``,f(u?.id??null)},[u?.id,u?.name,u?.description,u?.prompt,u?.suggestedRole]),!u)return(0,Z.jsx)(`section`,{className:`task-step-panel empty`,children:(0,Z.jsx)(`p`,{className:`muted small`,children:t.length===0?`No steps yet — add one with the + button to begin.`:`Select a step above to view and edit it.`})});let _=u.id===r,v=e=>{a||s(u.id,e)},y=()=>{let e=p.current.trim();!e||e===u.name||v({name:e})},b=()=>{m.current!==(u.description??``)&&v({description:m.current})},x=()=>{h.current!==(u.prompt??``)&&v({prompt:h.current})},S=()=>{let e=g.current.trim();e!==(u.suggestedRole??``)&&v({suggestedRole:e||null})},C=u.assignee?u.assignee.kind===`user`?`__user`:u.assignee.gezelId:u.suggestedGezelId?u.suggestedGezelId:`__none`,w=e=>{v(e===`__user`?{assignee:{kind:`user`},suggestedGezelId:null}:e===`__none`?{assignee:null,suggestedGezelId:null}:{assignee:null,suggestedGezelId:e})},T=u.terminal?`__terminal`:u.next??`__linear`,E=e=>{v(e===`__terminal`?{terminal:!0,next:null}:e===`__linear`?{terminal:!1,next:null}:{terminal:!1,next:e})},D=t=>{let n=pe(t===`enter`?u.onEnter:u.onExit),r=t===`enter`?`onEnter`:`onExit`,i=e=>v({[r]:e.length>0?e:null});return(0,Z.jsxs)(`div`,{className:`step-script-row`,children:[(0,Z.jsx)(`span`,{className:`step-script-moment muted small`,children:t===`enter`?`when it starts`:`when it finishes`}),n.length===0&&a&&(0,Z.jsx)(`span`,{className:`muted small`,children:`—`}),n.map((t,r)=>(0,Z.jsxs)(`span`,{className:`step-script-chip`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`link-button`,onClick:()=>{(t.scope===void 0||t.scope===`craftbook`)&&d$({kind:`craftbook-script`,craftbookId:e,name:t.name})},title:t.scope?`${t.scope} script`:`Open this script in the editor`,children:[`⚙ `,t.name,t.scope&&t.scope!==`craftbook`?` (${t.scope})`:``]}),!a&&(0,Z.jsx)(`button`,{type:`button`,className:`link-button muted`,onClick:()=>i(n.filter((e,t)=>t!==r)),children:`detach`})]},`${t.scope??`craftbook`}:${t.name}:${r}`)),!a&&(0,Z.jsx)(`button`,{type:`button`,className:`link-button`,onClick:()=>{let r=`${u.id}-${t}${n.length>0?`-${n.length+1}`:``}`;i([...n,{name:r}]),d$({kind:`craftbook-script`,craftbookId:e,name:r})},children:`+ attach script`})]})},O=[];if(u.gate){let e=K(u.gate),t=[...e.checks.length>0?[`${e.checks.length} check(s)`]:[],...e.scripts.length>0?[`${e.scripts.length} script(s)`]:[]];O.push(`gate at ${e.at}: ${t.join(` + `)||`empty`}`)}return u.advanceWhen&&O.push(`auto-advance on ${u.advanceWhen.file}`),u.branches&&u.branches.length>0&&O.push(`${u.branches.length} branch(es)`),(0,Z.jsxs)(`section`,{className:`task-step-panel`,children:[(0,Z.jsxs)(`header`,{className:`task-step-panel-header`,children:[(0,Z.jsxs)(`div`,{className:`task-step-panel-title`,children:[(0,Z.jsx)(`h4`,{children:u.name}),_&&(0,Z.jsx)(`span`,{className:`step-status-pill status-active`,children:`Entry`})]}),!a&&(0,Z.jsxs)(`div`,{className:`task-step-panel-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`secondary`,onClick:()=>void l(u.id),disabled:o||_,title:`Make this the craftbook's entry step`,children:`Set as entry`}),(0,Z.jsx)(`button`,{type:`button`,className:`danger`,onClick:()=>void c(u.id),disabled:o||t.length<=1,title:t.length<=1?`A craftbook needs at least one step`:`Delete this step`,children:`Delete`})]})]}),(0,Z.jsxs)(`div`,{className:`task-step-panel-grid`,children:[(0,Z.jsxs)(`label`,{className:`task-step-field`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Name`}),(0,Z.jsx)(`input`,{defaultValue:u.name,disabled:a,onChange:e=>{p.current=e.target.value},onBlur:y},`name-${d}`)]}),(0,Z.jsxs)(`label`,{className:`task-step-field`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Suggested role`}),(0,Z.jsx)(`input`,{defaultValue:u.suggestedRole??``,disabled:a,placeholder:`developer, reviewer, designer…`,onChange:e=>{g.current=e.target.value},onBlur:S},`role-${d}`)]}),(0,Z.jsxs)(`label`,{className:`task-step-field`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Assignee (override)`}),(0,Z.jsxs)(gv,{value:C,disabled:a||o,onValueChange:w,children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsxs)(xv,{children:[(0,Z.jsx)(Sv,{value:`__none`,children:`— by role —`}),(0,Z.jsx)(Sv,{value:`__user`,children:`→ You`}),i.map(e=>(0,Z.jsxs)(Sv,{value:e.id,children:[`→ `,e.name]},e.id))]})]})]}),(0,Z.jsxs)(`label`,{className:`task-step-field`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Next step`}),(0,Z.jsxs)(gv,{value:T,disabled:a||o,onValueChange:E,children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsxs)(xv,{children:[(0,Z.jsx)(Sv,{value:`__linear`,children:`→ next in order`}),(0,Z.jsx)(Sv,{value:`__terminal`,children:`■ terminal (ends here)`}),t.filter(e=>e.id!==u.id).map(e=>(0,Z.jsxs)(Sv,{value:e.id,children:[`→ `,e.name]},e.id))]})]})]}),(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Description`}),(0,Z.jsx)(u$,{value:u.description??``,readOnly:a,placeholder:`What this step produces, who it's for, what 'done' looks like.`,onCommit:e=>{m.current=e,b()}},`desc-${d}`)]}),(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsxs)(`span`,{className:`task-step-field-label`,children:[`Prompt `,(0,Z.jsx)(`span`,{className:`muted small`,children:`— step-specific guidance for the assignee`})]}),(0,Z.jsx)(u$,{value:u.prompt??``,readOnly:a,placeholder:`Instructions the assignee can lean on for this step.`,onCommit:e=>{h.current=e,x()}},`prompt-${d}`)]}),(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Scripts`}),(0,Z.jsxs)(`div`,{className:`step-scripts`,children:[D(`enter`),D(`exit`)]})]}),O.length>0&&(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Routing`}),(0,Z.jsxs)(`p`,{className:`muted small`,children:[O.join(` · `),` — edit gates/branches/auto-advance via the AI assist.`]})]})]})]})}function TFe(e){switch(e){case`done`:return`✓`;case`active`:return`▶`;case`pending`:return``}}function f$({steps:e,selectedStepId:t,onSelect:n,statusOf:r,entryStepId:i,onAddStep:a,onReorder:o,busy:s=!1,ariaLabel:c=`Steps`,addLabel:l=`Add`,variant:u=`compact`,stepOf:d,terminal:f}){let p=(0,X.useRef)(null),m=(0,X.useRef)(null),[h,g]=(0,X.useState)({left:0,client:0,scroll:0}),_=Math.max(0,h.scroll-h.client),v=_>1,y=h.scroll>0?Math.min(1,h.client/h.scroll):1,b=_>0?h.left/_:0,x=(0,X.useCallback)(()=>{let e=m.current;e&&g({left:e.scrollLeft,client:e.clientWidth,scroll:e.scrollWidth})},[]);(0,X.useLayoutEffect)(()=>{x();let e=m.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(x);return t.observe(e),()=>t.disconnect()},[x,e.length]);let S=(0,X.useRef)(null),C=e=>{S.current={x:e.clientX,left:h.left},e.currentTarget.setPointerCapture(e.pointerId),e.preventDefault()},w=e=>{let t=S.current,n=m.current;if(!t||!n)return;let r=h.client*(1-y);r<=0||(n.scrollLeft=t.left+(e.clientX-t.x)/r*_)},T=()=>{S.current=null},E=(t,n,r)=>{if(!o||t===n)return;let i=e.map(e=>e.id).filter(e=>e!==t),a=i.indexOf(n);a<0||(i.splice(r?a+1:a,0,t),o(i))},D=(t,r)=>{if(t.key!==`ArrowLeft`&&t.key!==`ArrowRight`)return;t.preventDefault();let i=t.key===`ArrowRight`?1:-1;if(t.altKey&&o){let t=e[r+i];t&&E(e[r].id,t.id,i>0);return}let a=e[r+i];a&&n(a.id)},O=e=>({draggable:o!=null&&!s,onDragStart:()=>{p.current=e},onDragOver:e=>{o&&p.current&&e.preventDefault()},onDrop:t=>{t.preventDefault();let n=p.current;if(p.current=null,n){let r=t.currentTarget.getBoundingClientRect();E(n,e,t.clientX>r.left+r.width/2)}}}),k=(e,t,n)=>`${e.name}${n?` (entry step)`:``}${t===`active`?` (active)`:t===`done`?` (completed)`:``}${o?` — drag or Alt+Arrow to reorder`:``}`;return u===`bench`?(0,Z.jsxs)(`div`,{className:`bench-scroll`,children:[v&&(0,Z.jsx)(`div`,{className:`bench-scrollbar`,"aria-hidden":`true`,children:(0,Z.jsx)(`div`,{className:`bench-scrollbar-thumb`,style:{width:`${y*100}%`,left:`${b*(1-y)*100}%`},onPointerDown:C,onPointerMove:w,onPointerUp:T,onPointerCancel:T})}),(0,Z.jsx)(`div`,{className:`bench-viewport`,ref:m,onScroll:x,children:(0,Z.jsxs)(`nav`,{className:`step-tracker step-bench`,"aria-label":c,role:`tablist`,children:[(0,Z.jsx)(`span`,{className:`step-rail`,"aria-hidden":`true`}),e.length===0&&(0,Z.jsx)(`span`,{className:`step-tracker-empty muted small`,children:`No steps yet —`}),e.map((e,a)=>{let o=r?r(e,a):`pending`,c=e.id===t,l=i!=null&&e.id===i,u=d?.(e,a)??{},f=String(a+1).padStart(2,`0`);return(0,Z.jsxs)(`div`,{className:[`bench-step`,`status-${o}`,c?`selected`:``,l?`entry`:``].filter(Boolean).join(` `),children:[(0,Z.jsx)(`span`,{className:`bench-step-assignee`,children:u.assigneeControl??(u.assigneeName&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`bench-step-assignee-name`,children:u.assigneeName}),u.assigneeRole&&(0,Z.jsx)(`span`,{className:`bench-step-assignee-role`,children:u.assigneeRole})]}))}),(0,Z.jsx)(`span`,{className:`bench-step-stage`,children:(0,Z.jsx)(`button`,{type:`button`,className:`bench-step-marker`,onClick:()=>n(e.id),onKeyDown:e=>D(e,a),disabled:s,role:`tab`,"aria-selected":c,...O(e.id),title:k(e,o,l),children:u.figure??(0,Z.jsx)(`span`,{className:`bench-peg`,"aria-hidden":`true`,children:o===`done`?`✓`:l&&o===`pending`?`▸`:``})})}),(0,Z.jsxs)(`button`,{type:`button`,className:`bench-step-foot`,onClick:()=>n(e.id),disabled:s,tabIndex:-1,title:k(e,o,l),children:[(0,Z.jsx)(`span`,{className:`bench-step-num`,children:f}),(0,Z.jsx)(`span`,{className:`bench-step-name`,children:e.name}),u.statusWord&&(0,Z.jsx)(`span`,{className:`bench-step-status`,children:u.statusWord})]})]},e.id)}),a&&(0,Z.jsxs)(`div`,{className:`bench-step bench-step-add`,children:[(0,Z.jsx)(`span`,{className:`bench-step-assignee`}),(0,Z.jsx)(`span`,{className:`bench-step-stage`,children:(0,Z.jsx)(`button`,{type:`button`,className:`bench-step-marker`,onClick:a,disabled:s,title:`Add a step`,"aria-label":`Add a step`,children:(0,Z.jsx)(`span`,{className:`bench-peg is-add`,"aria-hidden":`true`,children:`+`})})}),(0,Z.jsxs)(`span`,{className:`bench-step-foot`,children:[(0,Z.jsx)(`span`,{className:`bench-step-num`,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`bench-step-name muted`,children:l})]})]}),f&&(0,Z.jsxs)(`div`,{className:`bench-step bench-step-terminal terminal-${f.tone}`,children:[(0,Z.jsx)(`span`,{className:`bench-step-assignee`}),(0,Z.jsx)(`span`,{className:`bench-step-stage`,children:(0,Z.jsx)(`span`,{className:`bench-peg bench-peg-terminal`,"aria-hidden":`true`,children:f.tone===`complete`?`✓`:`✕`})}),(0,Z.jsxs)(`span`,{className:`bench-step-foot`,children:[(0,Z.jsx)(`span`,{className:`bench-step-num`,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`bench-step-status`,children:f.word})]})]})]})})]}):(0,Z.jsxs)(`nav`,{className:`step-tracker`,"aria-label":c,role:`tablist`,children:[e.length===0&&(0,Z.jsx)(`span`,{className:`step-tracker-empty muted small`,children:`No steps yet —`}),e.map((a,o)=>{let c=r?r(a,o):`pending`,l=a.id===t,u=i!=null&&a.id===i;return(0,Z.jsxs)(`span`,{className:`step-dot-wrap`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:[`step-dot`,`status-${c}`,l?`selected`:``,u?`entry`:``].filter(Boolean).join(` `),onClick:()=>n(a.id),onKeyDown:e=>D(e,o),disabled:s,role:`tab`,"aria-selected":l,...O(a.id),title:k(a,c,u),children:[(0,Z.jsx)(`span`,{className:`step-dot-badge`,"aria-hidden":`true`,children:u&&c===`pending`?`▸`:TFe(c)}),(0,Z.jsx)(`span`,{className:`step-dot-label`,children:a.name})]}),o<e.length-1&&(0,Z.jsx)(`span`,{className:`step-dot-connector status-${c}`,"aria-hidden":`true`})]},a.id)}),a&&(0,Z.jsxs)(Z.Fragment,{children:[e.length>0&&(0,Z.jsx)(`span`,{className:`step-dot-connector status-pending`,"aria-hidden":`true`}),(0,Z.jsxs)(`button`,{type:`button`,className:`step-dot step-dot-add`,onClick:a,disabled:s,title:`Add a step`,"aria-label":`Add a step`,children:[(0,Z.jsx)(`span`,{className:`step-dot-badge`,"aria-hidden":`true`,children:`+`}),(0,Z.jsx)(`span`,{className:`step-dot-label muted small`,children:l})]})]})]})}function EFe(e){window.dispatchEvent(new CustomEvent(`gezel:open-tab`,{detail:e}))}function DFe(e){return{name:e.name,description:e.description??null,plan:e.plan??null,defaultAssignee:e.defaultAssignee??null,steps:e.steps,entryStepId:e.entryStepId}}function p$({craftbookId:e,source:t,onChanged:n}){let[r,i]=(0,X.useState)(null),[a,o]=(0,X.useState)(t??`local`),[c,l]=(0,X.useState)([]),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)(`editor`),[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(null),v=(0,X.useRef)(``),y=(0,X.useRef)(``),b=a!==`local`,x=(0,X.useCallback)(async()=>{try{let n=await Q.getCraftbook(e,t?{source:t}:{});i(n.craftbook),v.current=n.craftbook.name,y.current=n.craftbook.description??``,d(e=>e&&n.craftbook.steps.some(t=>t.id===e)?e:n.craftbook.entryStepId??n.craftbook.steps[0]?.id??null)}catch(e){_(e.message)}},[e,t]);(0,X.useEffect)(()=>{x()},[x]),(0,X.useEffect)(()=>{Q.listGezels().then(e=>l(e.gezels)).catch(()=>{})},[]),(0,X.useEffect)(()=>{if(t){o(t);return}Q.listCraftbooks({source:`all`}).then(t=>{let n=t.craftbooks.find(t=>t.id===e);n&&o(n.source)}).catch(()=>{})},[e,t]),(0,X.useEffect)(()=>{let t=t=>{let n=t.detail;(!n?.id||n.id===e)&&x()};return window.addEventListener(`gezel:craftbook-edited`,t),()=>window.removeEventListener(`gezel:craftbook-edited`,t)},[e,x]);let S=(0,X.useCallback)(async e=>{if(i(e),!b){h(!0),_(null);try{let t=await Q.updateCraftbook(e.id,DFe(e));i(t.craftbook),n?.()}catch(e){_(e.message),await x()}finally{h(!1)}}},[b,n,x]);if(g&&!r)return(0,Z.jsx)(`p`,{className:`error`,children:g});if(!r)return(0,Z.jsx)(`p`,{className:`placeholder`,children:`Loading…`});let C=(e,t)=>{S({...r,steps:r.steps.map(n=>n.id===e?q(n,t):n)})},w=e=>{S({...r,steps:ze(r.steps,e)})},T=e=>{try{let t=I(r.steps,e),n=r.entryStepId===e?t[0].id:r.entryStepId;u===e&&d(n),S({...r,steps:t,entryStepId:n})}catch(e){_(e.message)}},E=e=>{S({...r,entryStepId:e})},D=()=>{let e=s(r.steps,`New step`),t={id:e,name:`New step`};d(e),S({...r,steps:[...r.steps,t]})},O=()=>{let e=v.current.trim();!e||e===r.name||S({...r,name:e})},k=()=>{y.current!==(r.description??``)&&S({...r,description:y.current||void 0})},A=async()=>{h(!0),_(null);try{EFe({kind:`craftbook`,id:(await Q.createCraftbook({name:`${r.name} (copy)`,...r.description?{description:r.description}:{},...r.plan?{plan:r.plan}:{},steps:r.steps,entryStepId:r.entryStepId})).craftbook.id,source:`local`})}catch(e){_(e.message)}finally{h(!1)}};return(0,Z.jsxs)(`div`,{className:`craftbook-editor`,"data-testid":`craftbook-editor`,children:[(0,Z.jsxs)(`header`,{className:`craftbook-editor-header`,children:[(0,Z.jsxs)(`div`,{className:`craftbook-editor-title`,children:[b?(0,Z.jsx)(`h3`,{children:r.name}):(0,Z.jsx)(`input`,{className:`craftbook-name-input`,defaultValue:r.name,onChange:e=>{v.current=e.target.value},onBlur:O,"aria-label":`Craftbook name`}),(0,Z.jsx)(`span`,{className:`task-ref`,children:r.id}),(0,Z.jsx)(`span`,{className:`task-badge task-badge-${a}`,children:a}),b&&(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>void A(),disabled:m,children:`Copy to edit`})]}),g&&(0,Z.jsx)(`p`,{className:`error small`,children:g})]}),(0,Z.jsx)(`div`,{className:`task-bench-row craftbook-bench-row${u===null?``:` has-docked-panel has-selected-step`}`,children:(0,Z.jsx)(f$,{steps:r.steps,selectedStepId:u,onSelect:d,entryStepId:r.entryStepId,busy:m,ariaLabel:`Craftbook steps`,addLabel:`Add step`,variant:`bench`,...b?{}:{onAddStep:D,onReorder:w}})}),(0,Z.jsx)(wFe,{craftbookId:r.id,steps:r.steps,stepId:u,entryStepId:r.entryStepId,gezels:c,readOnly:b,busy:m,onPatch:C,onRemove:T,onSetEntry:E}),(0,Z.jsx)(`div`,{className:`craftbook-editor-tabs`,children:(0,Z.jsx)(kv,{value:f,onValueChange:e=>p(e),children:(0,Z.jsxs)(Av,{children:[(0,Z.jsx)(jv,{value:`editor`,children:`Overview`}),(0,Z.jsx)(jv,{value:`chat`,children:`AI assist`})]})})}),f===`editor`&&(0,Z.jsxs)(`div`,{className:`craftbook-overview`,children:[(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Description`}),(0,Z.jsx)(u$,{value:r.description??``,readOnly:b,placeholder:`What this craftbook is for and when to reach for it.`,onCommit:e=>{y.current=e,k()}},`cbdesc-${r.id}`)]}),r.plan&&(0,Z.jsxs)(`div`,{className:`task-step-field full-width`,children:[(0,Z.jsx)(`span`,{className:`task-step-field-label`,children:`Plan`}),(0,Z.jsx)(`p`,{className:`muted small`,children:r.plan})]})]}),f===`chat`&&(0,Z.jsx)(CFe,{craftbookId:r.id,craftbookName:r.name,readOnly:b})]})}function OFe({craftbookId:e,source:t,onChanged:n}){return(0,Z.jsx)(`div`,{className:`craftbook-tab`,children:(0,Z.jsx)(p$,{craftbookId:e,...t?{source:t}:{},...n?{onChanged:n}:{}},e)})}var m$=[{source:`local`,label:`My craftbooks`,hint:`editable`},{source:`project`,label:`Project`,hint:`read-only`},{source:`bundled`,label:`Gilde catalog`,hint:`read-only — copy to edit`}];function kFe(){let[e,t]=(0,X.useState)([]),[n,r]=(0,X.useState)(``),[i,a]=(0,X.useState)(null),[o,s]=(0,X.useState)(!1),[c,l]=(0,X.useState)(null),u=(0,X.useCallback)(async()=>{try{let e=await Q.listCraftbooks({source:`all`});t(e.craftbooks)}catch(e){l(e.message)}},[]);(0,X.useEffect)(()=>{u()},[u]);let d=(0,X.useMemo)(()=>{let t=n.trim().toLowerCase();return t?e.filter(e=>e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)||(e.description??``).toLowerCase().includes(t)):e},[e,n]),f=(0,X.useCallback)((e,t)=>{s(!1),a({id:e,source:t})},[]);(0,X.useEffect)(()=>{if(i||e.length===0)return;let t=m$.map(t=>e.find(e=>e.source===t.source)).find(Boolean)??e[0];t&&a({id:t.id,source:t.source})},[i,e]);let p=(0,X.useCallback)(async e=>{s(!1),await u(),f(e,`local`)},[u,f]),m=(0,X.useMemo)(()=>[...e].sort((e,t)=>e.name.localeCompare(t.name)),[e]);return(0,Z.jsxs)(`div`,{className:`tasks-view craftbooks-view`,"data-testid":`craftbooks-view`,children:[(0,Z.jsxs)(`div`,{className:`tasks-layout craftbooks-layout`,children:[(0,Z.jsxs)(`aside`,{className:`craftbooks-sidebar`,"aria-label":`Craftbook library`,children:[(0,Z.jsxs)(`div`,{className:`craftbooks-toolbar`,children:[(0,Z.jsxs)(`label`,{className:`craftbooks-search-field`,children:[(0,Z.jsx)(`span`,{className:`sr-only`,children:`Search craftbooks`}),(0,Z.jsx)(`input`,{type:`search`,className:`craftbook-search`,placeholder:`Search craftbooks…`,value:n,onChange:e=>r(e.target.value)})]}),(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>s(!0),children:`+ New craftbook`})]}),c&&(0,Z.jsx)(`p`,{className:`error craftbooks-list-error`,children:c}),(0,Z.jsxs)(`div`,{className:`tasks-list craftbooks-list`,children:[m$.map(e=>{let t=d.filter(t=>t.source===e.source);return t.length===0?null:(0,Z.jsxs)(`div`,{className:`craftbook-group`,children:[(0,Z.jsxs)(`div`,{className:`craftbook-group-header small muted`,children:[e.label,` `,(0,Z.jsxs)(`span`,{className:`craftbook-group-hint`,children:[`· `,e.hint]})]}),(0,Z.jsx)(`ul`,{children:t.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(`button`,{type:`button`,className:`task-row${i?.id===e.id&&i?.source===e.source?` task-row-selected`:``}`,onClick:()=>f(e.id,e.source),children:(0,Z.jsxs)(`span`,{className:`task-row-body`,children:[(0,Z.jsx)(`span`,{className:`task-title`,children:e.name}),(0,Z.jsxs)(`span`,{className:`task-row-meta`,children:[(0,Z.jsx)(`span`,{className:`task-ref`,children:e.id}),(0,Z.jsxs)(`span`,{className:`task-assignee`,children:[e.stepCount,` step`,e.stepCount===1?``:`s`]})]})]})})},`${e.source}:${e.id}`))})]},e.source)}),d.length===0&&(0,Z.jsxs)(`p`,{className:`muted craftbooks-empty`,children:[`No craftbooks`,n?` match your search`:` yet`,`.`]})]})]}),(0,Z.jsx)(`section`,{className:`task-detail-panel craftbooks-detail`,"aria-label":`Craftbook editor`,children:i?(0,Z.jsx)(p$,{craftbookId:i.id,source:i.source,onChanged:()=>void u()},`${i.source}:${i.id}`):(0,Z.jsx)(`p`,{className:`placeholder`,children:`Select a craftbook to edit it, or start a new one. Gilde books open read-only — make a copy to edit them.`})})]}),(0,Z.jsx)(AFe,{open:o,cloneSources:m,onClose:()=>s(!1),onCreated:p})]})}function AFe({open:e,cloneSources:t,onClose:n,onCreated:r}){let[i,a]=(0,X.useState)(`blank`),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(``),[f,p]=(0,X.useState)(`Build
|
|
790
790
|
Review`),[m,h]=(0,X.useState)(``),[g,_]=(0,X.useState)(null),[v,y]=(0,X.useState)(!1),[b,x]=(0,X.useState)(null);(0,X.useEffect)(()=>{e&&(a(`blank`),s(``),l(!1),d(``),p(`Build
|
|
791
791
|
Review`),h(``),_(null),y(!1),x(null))},[e]);let S=(0,X.useMemo)(()=>{let e=m.trim().toLowerCase();return e?t.filter(t=>t.name.toLowerCase().includes(e)||t.id.toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)):t},[t,m]),C=e=>{_(e),c||s(`${e.name} copy`)},w=!v&&o.trim().length>0&&(i===`blank`||g!==null),T=async()=>{if(o.trim()){y(!0),x(null);try{let e;if(i===`existing`){if(!g){x(`Pick a craftbook to base this on.`),y(!1);return}let{craftbook:t}=await Q.getCraftbook(g.id,{source:g.source}),n=t.steps.map(e=>({...e}));e={name:o.trim(),...u.trim()?{description:u.trim()}:t.description?{description:t.description}:{},steps:n,entryStepId:t.entryStepId,...t.plan?{plan:t.plan}:{},...t.defaultAssignee?{defaultAssignee:t.defaultAssignee}:{},...t.paramSchema?{paramSchema:t.paramSchema}:{},...t.requirements?{requirements:t.requirements}:{},...t.toolsets?{toolsets:t.toolsets}:{}}}else{let t=f.split(/\n|,/).map(e=>e.trim()).filter(Boolean).map(e=>({name:e}));if(t.length===0){x(`A craftbook needs at least one step.`),y(!1);return}e={name:o.trim(),...u.trim()?{description:u.trim()}:{},steps:t}}r((await Q.createCraftbook(e)).craftbook.id)}catch(e){x(e.message)}finally{y(!1)}}};return(0,Z.jsx)(dm,{open:e,onOpenChange:e=>{!e&&!v&&n()},children:(0,Z.jsxs)(fm,{children:[(0,Z.jsx)(gm,{}),(0,Z.jsxs)(_m,{className:`new-craftbook-dialog`,children:[(0,Z.jsx)(mm,{asChild:!0,children:(0,Z.jsx)(`h3`,{children:`New craftbook`})}),(0,Z.jsxs)(`div`,{className:`new-craftbook-modes`,role:`radiogroup`,"aria-label":`How to start the craftbook`,children:[(0,Z.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":i===`blank`,className:`new-craftbook-mode${i===`blank`?` active`:``}`,onClick:()=>a(`blank`),disabled:v,children:[(0,Z.jsx)(`strong`,{children:`Blank`}),(0,Z.jsx)(`span`,{className:`muted small`,children:`Start from a fresh list of steps.`})]}),(0,Z.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":i===`existing`,className:`new-craftbook-mode${i===`existing`?` active`:``}`,onClick:()=>a(`existing`),disabled:v,children:[(0,Z.jsx)(`strong`,{children:`Based on existing`}),(0,Z.jsx)(`span`,{className:`muted small`,children:`Copy another craftbook's steps, then edit.`})]})]}),i===`existing`&&(0,Z.jsxs)(`div`,{className:`new-craftbook-picker`,children:[(0,Z.jsx)(`span`,{className:`new-craftbook-field-label`,children:`Base craftbook`}),(0,Z.jsx)(`input`,{type:`text`,className:`craftbook-search`,placeholder:`Search craftbooks…`,value:m,onChange:e=>h(e.target.value),disabled:v}),(0,Z.jsxs)(`ul`,{className:`new-craftbook-picker-list`,"aria-label":`Pick a craftbook to copy`,children:[S.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,"aria-pressed":g?.id===e.id&&g?.source===e.source,className:`new-craftbook-picker-row${g?.id===e.id&&g?.source===e.source?` active`:``}`,onClick:()=>C(e),disabled:v,children:[(0,Z.jsx)(`span`,{className:`new-craftbook-picker-name`,children:e.name}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[e.source,` · `,e.stepCount,` step`,e.stepCount===1?``:`s`]})]})},`${e.source}:${e.id}`)),S.length===0&&(0,Z.jsx)(`li`,{className:`muted small new-craftbook-picker-empty`,children:`No craftbooks match.`})]})]}),(0,Z.jsxs)(`label`,{children:[`Name`,(0,Z.jsx)(`input`,{type:`text`,value:o,onChange:e=>{s(e.target.value),l(!0)},disabled:v})]}),(0,Z.jsxs)(`label`,{children:[`Description`,(0,Z.jsx)(`textarea`,{value:u,onChange:e=>d(e.target.value),rows:2,placeholder:i===`existing`?`Leave blank to keep the original's description.`:`What this craftbook is for.`,disabled:v})]}),i===`blank`&&(0,Z.jsxs)(`label`,{children:[`Steps (one per line)`,(0,Z.jsx)(`textarea`,{value:f,onChange:e=>p(e.target.value),rows:4,disabled:v})]}),b&&(0,Z.jsx)(`p`,{className:`gz-dialog-error`,children:b}),(0,Z.jsxs)(vm,{children:[(0,Z.jsx)(`button`,{type:`button`,onClick:n,disabled:v,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`button`,className:`primary`,disabled:!w,onClick:()=>void T(),children:v?`Creating…`:`Create`})]})]})]})})}function h$({autosave:e}){let{phase:t}=e;return(0,Z.jsxs)(`output`,{className:`autosave-status autosave-status-${t}`,"aria-live":`polite`,children:[t===`dirty`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`autosave-status-dot`,title:`Unsaved changes`,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Unsaved changes`})]}),t===`saving`&&`Saving…`,t===`saved`&&`Saved`,t===`error`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{title:e.error?.message??`unknown error`,children:`Save failed`}),(0,Z.jsx)(`button`,{type:`button`,className:`link-btn`,onClick:()=>void e.retry().catch(()=>{}),children:`Retry`})]})]})}var jFe={docx:`Word Document (.docx)`,pdf:`PDF (.pdf)`,pptx:`PowerPoint (.pptx)`,md:`Markdown (.md)`,html:`HTML (.html)`},g$={docx:`.docx`,pdf:`.pdf`,pptx:`.pptx`,md:`.md`,html:`.html`},_$=`gezel-export-options`,v$={format:`pdf`,themeId:`standard`,transformStyle:`documentary`,pageSize:`letter`,htmlStyle:`plain`,htmlBundle:`single`},MFe=new Set([`docx`,`pdf`,`pptx`,`md`,`html`]),NFe=new Set([`letter`,`a4`]),PFe=new Set([`rendered`,`plain`]),FFe=new Set([`single`,`zip`]);function y$(e){if(!e||typeof e!=`object`)return null;let t=e;if(!t.format||!MFe.has(t.format))return null;let n={...v$,...t};return typeof n.themeId!=`string`||!n.themeId||typeof n.transformStyle!=`string`||!n.transformStyle||!NFe.has(n.pageSize)||!PFe.has(n.htmlStyle)||!FFe.has(n.htmlBundle)?null:n}function b$(e){try{localStorage.setItem(_$,JSON.stringify(e))}catch{}}function x$(){try{let e=localStorage.getItem(_$);return e?y$(JSON.parse(e)):null}catch{return null}}async function IFe(e){b$(e),await Q.updateConfig({documentExportOptions:e}).catch(()=>{})}async function LFe(){let e=x$();try{let t=y$((await Q.getConfig()).documentExportOptions);return t?(b$(t),t):e}catch{return e}}var RFe=[`pdf`,`docx`,`pptx`,`html`,`md`],zFe={pdf:`PDF`,docx:`Word`,pptx:`PowerPoint`,html:`HTML`,md:`Markdown`},S$=[{key:`plain`,label:`Plain`,hint:`A lightweight static HTML document.`},{key:`rendered`,label:`Rendered`,hint:`Renders via SquisqPlayer with themes and playback support.`}],C$=[{key:`single`,label:`Single file`,hint:`One .html file with images embedded as base64 data URIs.`},{key:`zip`,label:`ZIP archive`,hint:`A .zip with index.html plus separate image (and JS) files.`}];function w$({name:e,value:t,options:n,onChange:r}){return(0,Z.jsx)(`fieldset`,{className:`gezel-export-choice-tray gz-tray`,"aria-label":e,children:n.map(n=>{let i=n.key===t;return(0,Z.jsxs)(`label`,{className:`gz-key${i?` gz-key-active`:``}`,title:n.title,children:[(0,Z.jsx)(`input`,{type:`radio`,className:`gezel-export-choice-radio`,name:e,value:n.key,checked:i,onChange:()=>r(n.key)}),n.label]},n.key)})})}function BFe({initial:e,exporting:t,error:n=null,onExport:r,onClose:i}){let[a,o]=(0,X.useState)(e.format),[s,c]=(0,X.useState)(e.themeId),[l,u]=(0,X.useState)(e.transformStyle),[d,f]=(0,X.useState)(e.pageSize),[p,m]=(0,X.useState)(e.htmlStyle),[h,g]=(0,X.useState)(e.htmlBundle),_=sr(),v=Jr(),y=a===`docx`||a===`pdf`||a===`pptx`||a===`html`&&p===`rendered`,b=a===`pptx`,x=a===`pdf`,S=a===`html`,C=(0,X.useCallback)(e=>{e.preventDefault(),r({format:a,themeId:s,transformStyle:l,pageSize:d,htmlStyle:p,htmlBundle:h})},[a,s,l,d,p,h,r]);return(0,Z.jsx)(dm,{open:!0,onOpenChange:e=>!e&&i(),children:(0,Z.jsxs)(fm,{children:[(0,Z.jsx)(gm,{}),(0,Z.jsx)(_m,{className:`gezel-export-dialog`,children:(0,Z.jsxs)(`form`,{onSubmit:C,children:[(0,Z.jsxs)(`div`,{className:`gezel-export-dialog-header`,children:[(0,Z.jsx)(mm,{children:`Export document`}),(0,Z.jsx)(pm,{asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,className:`gezel-export-dialog-close`,"aria-label":`Close`,children:`×`})})]}),(0,Z.jsxs)(`div`,{className:`gezel-export-dialog-body`,children:[(0,Z.jsxs)(`div`,{className:`gezel-export-field`,children:[(0,Z.jsx)(`span`,{className:`gezel-export-label`,children:`Format`}),(0,Z.jsx)(w$,{name:`Format`,value:a,options:RFe.map(e=>({key:e,label:zFe[e],title:jFe[e]})),onChange:o})]}),S&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`gezel-export-field`,children:[(0,Z.jsx)(`span`,{className:`gezel-export-label`,children:`Style`}),(0,Z.jsx)(w$,{name:`Style`,value:p,options:S$,onChange:m}),(0,Z.jsx)(`span`,{className:`gezel-export-hint`,children:S$.find(e=>e.key===p)?.hint})]}),(0,Z.jsxs)(`div`,{className:`gezel-export-field`,children:[(0,Z.jsx)(`span`,{className:`gezel-export-label`,children:`Bundle`}),(0,Z.jsx)(w$,{name:`Bundle`,value:h,options:C$,onChange:g}),(0,Z.jsx)(`span`,{className:`gezel-export-hint`,children:C$.find(e=>e.key===h)?.hint})]})]}),y&&(0,Z.jsxs)(`div`,{className:`gezel-export-field`,children:[(0,Z.jsx)(`label`,{className:`gezel-export-label`,htmlFor:`gezel-export-theme`,children:`Theme`}),(0,Z.jsx)(`select`,{id:`gezel-export-theme`,className:`gezel-export-select`,value:s,onChange:e=>c(e.target.value),children:_.map(e=>(0,Z.jsx)(`option`,{value:e.id,children:e.name},e.id))}),(0,Z.jsx)(`span`,{className:`gezel-export-hint`,children:_.find(e=>e.id===s)?.description})]}),b&&(0,Z.jsxs)(`div`,{className:`gezel-export-field`,children:[(0,Z.jsx)(`label`,{className:`gezel-export-label`,htmlFor:`gezel-export-transform`,children:`Transform`}),(0,Z.jsx)(`select`,{id:`gezel-export-transform`,className:`gezel-export-select`,value:l,onChange:e=>u(e.target.value),children:v.map(e=>(0,Z.jsx)(`option`,{value:e.id,children:e.name},e.id))}),(0,Z.jsx)(`span`,{className:`gezel-export-hint`,children:v.find(e=>e.id===l)?.description})]}),x&&(0,Z.jsxs)(`div`,{className:`gezel-export-field`,children:[(0,Z.jsx)(`label`,{className:`gezel-export-label`,htmlFor:`gezel-export-pagesize`,children:`Page size`}),(0,Z.jsxs)(`select`,{id:`gezel-export-pagesize`,className:`gezel-export-select`,value:d,onChange:e=>f(e.target.value),children:[(0,Z.jsx)(`option`,{value:`letter`,children:`US Letter`}),(0,Z.jsx)(`option`,{value:`a4`,children:`A4`})]})]}),n&&(0,Z.jsx)(`p`,{className:`error small`,role:`alert`,children:n})]}),(0,Z.jsxs)(vm,{children:[(0,Z.jsx)(pm,{asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,disabled:t,children:`Cancel`})}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,disabled:t,children:t?`Exporting…`:`Export`})]})]})})]})})}var VFe=`.fa,.fa-brands,.fa-classic,.fa-regular,.fa-solid,.fab,.far,.fas{--_fa-family:var(--fa-family,var(--fa-style-family,"Font Awesome 7 Free"));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:var(--fa-display,inline-block);font-family:var(--_fa-family);font-feature-settings:normal;font-style:normal;font-synthesis:none;font-variant:normal;font-weight:var(--fa-style,900);line-height:1;text-align:center;text-rendering:auto;width:var(--fa-width,1.25em)}:is(.fas,.far,.fab,.fa-solid,.fa-regular,.fa-brands,.fa-classic,.fa):before{content:var(--fa)/""}@supports not (content:""/""){:is(.fas,.far,.fab,.fa-solid,.fa-regular,.fa-brands,.fa-classic,.fa):before{content:var(--fa)}}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-width-auto{--fa-width:auto}.fa-fw,.fa-width-fixed{--fa-width:1.25em}.fa-ul{list-style-type:none;margin-inline-start:var(--fa-li-margin,2.5em);padding-inline-start:0}.fa-ul>li{position:relative}.fa-li{inset-inline-start:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.0625em) var(--fa-border-style,solid) var(--fa-border-color,#eee);box-sizing:var(--fa-border-box-sizing,content-box);padding:var(--fa-border-padding,.1875em .25em)}.fa-pull-left,.fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.fa-pull-end,.fa-pull-right{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media(prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation:none!important;transition:none!important}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{--fa-width:100%;inset:0;position:absolute;text-align:center;width:var(--fa-width);z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0{--fa:"0"}.fa-1{--fa:"1"}.fa-2{--fa:"2"}.fa-3{--fa:"3"}.fa-4{--fa:"4"}.fa-5{--fa:"5"}.fa-6{--fa:"6"}.fa-7{--fa:"7"}.fa-8{--fa:"8"}.fa-9{--fa:"9"}.fa-exclamation{--fa:"!"}.fa-hashtag{--fa:"#"}.fa-dollar,.fa-dollar-sign,.fa-usd{--fa:"$"}.fa-percent,.fa-percentage{--fa:"%"}.fa-asterisk{--fa:"*"}.fa-add,.fa-plus{--fa:"+"}.fa-less-than{--fa:"<"}.fa-equals{--fa:"="}.fa-greater-than{--fa:">"}.fa-question{--fa:"?"}.fa-at{--fa:"@"}.fa-a{--fa:"A"}.fa-b{--fa:"B"}.fa-c{--fa:"C"}.fa-d{--fa:"D"}.fa-e{--fa:"E"}.fa-f{--fa:"F"}.fa-g{--fa:"G"}.fa-h{--fa:"H"}.fa-i{--fa:"I"}.fa-j{--fa:"J"}.fa-k{--fa:"K"}.fa-l{--fa:"L"}.fa-m{--fa:"M"}.fa-n{--fa:"N"}.fa-o{--fa:"O"}.fa-p{--fa:"P"}.fa-q{--fa:"Q"}.fa-r{--fa:"R"}.fa-s{--fa:"S"}.fa-t{--fa:"T"}.fa-u{--fa:"U"}.fa-v{--fa:"V"}.fa-w{--fa:"W"}.fa-x{--fa:"X"}.fa-y{--fa:"Y"}.fa-z{--fa:"Z"}.fa-faucet{--fa:"\\e005"}.fa-faucet-drip{--fa:"\\e006"}.fa-house-chimney-window{--fa:"\\e00d"}.fa-house-signal{--fa:"\\e012"}.fa-temperature-arrow-down,.fa-temperature-down{--fa:"\\e03f"}.fa-temperature-arrow-up,.fa-temperature-up{--fa:"\\e040"}.fa-trailer{--fa:"\\e041"}.fa-bacteria{--fa:"\\e059"}.fa-bacterium{--fa:"\\e05a"}.fa-box-tissue{--fa:"\\e05b"}.fa-hand-holding-medical{--fa:"\\e05c"}.fa-hand-sparkles{--fa:"\\e05d"}.fa-hands-bubbles,.fa-hands-wash{--fa:"\\e05e"}.fa-handshake-alt-slash,.fa-handshake-simple-slash,.fa-handshake-slash{--fa:"\\e060"}.fa-head-side-cough{--fa:"\\e061"}.fa-head-side-cough-slash{--fa:"\\e062"}.fa-head-side-mask{--fa:"\\e063"}.fa-head-side-virus{--fa:"\\e064"}.fa-house-chimney-user{--fa:"\\e065"}.fa-house-laptop,.fa-laptop-house{--fa:"\\e066"}.fa-lungs-virus{--fa:"\\e067"}.fa-people-arrows,.fa-people-arrows-left-right{--fa:"\\e068"}.fa-plane-slash{--fa:"\\e069"}.fa-pump-medical{--fa:"\\e06a"}.fa-pump-soap{--fa:"\\e06b"}.fa-shield-virus{--fa:"\\e06c"}.fa-sink{--fa:"\\e06d"}.fa-soap{--fa:"\\e06e"}.fa-stopwatch-20{--fa:"\\e06f"}.fa-shop-slash,.fa-store-alt-slash{--fa:"\\e070"}.fa-store-slash{--fa:"\\e071"}.fa-toilet-paper-slash{--fa:"\\e072"}.fa-users-slash{--fa:"\\e073"}.fa-virus{--fa:"\\e074"}.fa-virus-slash{--fa:"\\e075"}.fa-viruses{--fa:"\\e076"}.fa-vest{--fa:"\\e085"}.fa-vest-patches{--fa:"\\e086"}.fa-arrow-trend-down{--fa:"\\e097"}.fa-arrow-trend-up{--fa:"\\e098"}.fa-arrow-up-from-bracket{--fa:"\\e09a"}.fa-austral-sign{--fa:"\\e0a9"}.fa-baht-sign{--fa:"\\e0ac"}.fa-bitcoin-sign{--fa:"\\e0b4"}.fa-bolt-lightning{--fa:"\\e0b7"}.fa-book-bookmark{--fa:"\\e0bb"}.fa-camera-rotate{--fa:"\\e0d8"}.fa-cedi-sign{--fa:"\\e0df"}.fa-chart-column{--fa:"\\e0e3"}.fa-chart-gantt{--fa:"\\e0e4"}.fa-clapperboard{--fa:"\\e131"}.fa-closed-captioning-slash{--fa:"\\e135"}.fa-clover{--fa:"\\e139"}.fa-code-compare{--fa:"\\e13a"}.fa-code-fork{--fa:"\\e13b"}.fa-code-pull-request{--fa:"\\e13c"}.fa-colon-sign{--fa:"\\e140"}.fa-cruzeiro-sign{--fa:"\\e152"}.fa-display{--fa:"\\e163"}.fa-dong-sign{--fa:"\\e169"}.fa-elevator{--fa:"\\e16d"}.fa-filter-circle-xmark{--fa:"\\e17b"}.fa-florin-sign{--fa:"\\e184"}.fa-folder-closed{--fa:"\\e185"}.fa-franc-sign{--fa:"\\e18f"}.fa-guarani-sign{--fa:"\\e19a"}.fa-gun{--fa:"\\e19b"}.fa-hands-clapping{--fa:"\\e1a8"}.fa-home-user,.fa-house-user{--fa:"\\e1b0"}.fa-indian-rupee,.fa-indian-rupee-sign,.fa-inr{--fa:"\\e1bc"}.fa-kip-sign{--fa:"\\e1c4"}.fa-lari-sign{--fa:"\\e1c8"}.fa-litecoin-sign{--fa:"\\e1d3"}.fa-manat-sign{--fa:"\\e1d5"}.fa-mask-face{--fa:"\\e1d7"}.fa-mill-sign{--fa:"\\e1ed"}.fa-money-bills{--fa:"\\e1f3"}.fa-naira-sign{--fa:"\\e1f6"}.fa-notdef{--fa:"\\e1fe"}.fa-panorama{--fa:"\\e209"}.fa-peseta-sign{--fa:"\\e221"}.fa-peso-sign{--fa:"\\e222"}.fa-plane-up{--fa:"\\e22d"}.fa-rupiah-sign{--fa:"\\e23d"}.fa-stairs{--fa:"\\e289"}.fa-timeline{--fa:"\\e29c"}.fa-truck-front{--fa:"\\e2b7"}.fa-try,.fa-turkish-lira,.fa-turkish-lira-sign{--fa:"\\e2bb"}.fa-vault{--fa:"\\e2c5"}.fa-magic-wand-sparkles,.fa-wand-magic-sparkles{--fa:"\\e2ca"}.fa-wheat-alt,.fa-wheat-awn{--fa:"\\e2cd"}.fa-wheelchair-alt,.fa-wheelchair-move{--fa:"\\e2ce"}.fa-bangladeshi-taka-sign{--fa:"\\e2e6"}.fa-bowl-rice{--fa:"\\e2eb"}.fa-person-pregnant{--fa:"\\e31e"}.fa-home-lg,.fa-house-chimney{--fa:"\\e3af"}.fa-house-crack{--fa:"\\e3b1"}.fa-house-medical{--fa:"\\e3b2"}.fa-cent-sign{--fa:"\\e3f5"}.fa-plus-minus{--fa:"\\e43c"}.fa-sailboat{--fa:"\\e445"}.fa-section{--fa:"\\e447"}.fa-shrimp{--fa:"\\e448"}.fa-brazilian-real-sign{--fa:"\\e46c"}.fa-chart-simple{--fa:"\\e473"}.fa-diagram-next{--fa:"\\e476"}.fa-diagram-predecessor{--fa:"\\e477"}.fa-diagram-successor{--fa:"\\e47a"}.fa-earth-oceania,.fa-globe-oceania{--fa:"\\e47b"}.fa-bug-slash{--fa:"\\e490"}.fa-file-circle-plus{--fa:"\\e494"}.fa-shop-lock{--fa:"\\e4a5"}.fa-virus-covid{--fa:"\\e4a8"}.fa-virus-covid-slash{--fa:"\\e4a9"}.fa-anchor-circle-check{--fa:"\\e4aa"}.fa-anchor-circle-exclamation{--fa:"\\e4ab"}.fa-anchor-circle-xmark{--fa:"\\e4ac"}.fa-anchor-lock{--fa:"\\e4ad"}.fa-arrow-down-up-across-line{--fa:"\\e4af"}.fa-arrow-down-up-lock{--fa:"\\e4b0"}.fa-arrow-right-to-city{--fa:"\\e4b3"}.fa-arrow-up-from-ground-water{--fa:"\\e4b5"}.fa-arrow-up-from-water-pump{--fa:"\\e4b6"}.fa-arrow-up-right-dots{--fa:"\\e4b7"}.fa-arrows-down-to-line{--fa:"\\e4b8"}.fa-arrows-down-to-people{--fa:"\\e4b9"}.fa-arrows-left-right-to-line{--fa:"\\e4ba"}.fa-arrows-spin{--fa:"\\e4bb"}.fa-arrows-split-up-and-left{--fa:"\\e4bc"}.fa-arrows-to-circle{--fa:"\\e4bd"}.fa-arrows-to-dot{--fa:"\\e4be"}.fa-arrows-to-eye{--fa:"\\e4bf"}.fa-arrows-turn-right{--fa:"\\e4c0"}.fa-arrows-turn-to-dots{--fa:"\\e4c1"}.fa-arrows-up-to-line{--fa:"\\e4c2"}.fa-bore-hole{--fa:"\\e4c3"}.fa-bottle-droplet{--fa:"\\e4c4"}.fa-bottle-water{--fa:"\\e4c5"}.fa-bowl-food{--fa:"\\e4c6"}.fa-boxes-packing{--fa:"\\e4c7"}.fa-bridge{--fa:"\\e4c8"}.fa-bridge-circle-check{--fa:"\\e4c9"}.fa-bridge-circle-exclamation{--fa:"\\e4ca"}.fa-bridge-circle-xmark{--fa:"\\e4cb"}.fa-bridge-lock{--fa:"\\e4cc"}.fa-bridge-water{--fa:"\\e4ce"}.fa-bucket{--fa:"\\e4cf"}.fa-bugs{--fa:"\\e4d0"}.fa-building-circle-arrow-right{--fa:"\\e4d1"}.fa-building-circle-check{--fa:"\\e4d2"}.fa-building-circle-exclamation{--fa:"\\e4d3"}.fa-building-circle-xmark{--fa:"\\e4d4"}.fa-building-flag{--fa:"\\e4d5"}.fa-building-lock{--fa:"\\e4d6"}.fa-building-ngo{--fa:"\\e4d7"}.fa-building-shield{--fa:"\\e4d8"}.fa-building-un{--fa:"\\e4d9"}.fa-building-user{--fa:"\\e4da"}.fa-building-wheat{--fa:"\\e4db"}.fa-burst{--fa:"\\e4dc"}.fa-car-on{--fa:"\\e4dd"}.fa-car-tunnel{--fa:"\\e4de"}.fa-child-combatant,.fa-child-rifle{--fa:"\\e4e0"}.fa-children{--fa:"\\e4e1"}.fa-circle-nodes{--fa:"\\e4e2"}.fa-clipboard-question{--fa:"\\e4e3"}.fa-cloud-showers-water{--fa:"\\e4e4"}.fa-computer{--fa:"\\e4e5"}.fa-cubes-stacked{--fa:"\\e4e6"}.fa-envelope-circle-check{--fa:"\\e4e8"}.fa-explosion{--fa:"\\e4e9"}.fa-ferry{--fa:"\\e4ea"}.fa-file-circle-exclamation{--fa:"\\e4eb"}.fa-file-circle-minus{--fa:"\\e4ed"}.fa-file-circle-question{--fa:"\\e4ef"}.fa-file-shield{--fa:"\\e4f0"}.fa-fire-burner{--fa:"\\e4f1"}.fa-fish-fins{--fa:"\\e4f2"}.fa-flask-vial{--fa:"\\e4f3"}.fa-glass-water{--fa:"\\e4f4"}.fa-glass-water-droplet{--fa:"\\e4f5"}.fa-group-arrows-rotate{--fa:"\\e4f6"}.fa-hand-holding-hand{--fa:"\\e4f7"}.fa-handcuffs{--fa:"\\e4f8"}.fa-hands-bound{--fa:"\\e4f9"}.fa-hands-holding-child{--fa:"\\e4fa"}.fa-hands-holding-circle{--fa:"\\e4fb"}.fa-heart-circle-bolt{--fa:"\\e4fc"}.fa-heart-circle-check{--fa:"\\e4fd"}.fa-heart-circle-exclamation{--fa:"\\e4fe"}.fa-heart-circle-minus{--fa:"\\e4ff"}.fa-heart-circle-plus{--fa:"\\e500"}.fa-heart-circle-xmark{--fa:"\\e501"}.fa-helicopter-symbol{--fa:"\\e502"}.fa-helmet-un{--fa:"\\e503"}.fa-hill-avalanche{--fa:"\\e507"}.fa-hill-rockslide{--fa:"\\e508"}.fa-house-circle-check{--fa:"\\e509"}.fa-house-circle-exclamation{--fa:"\\e50a"}.fa-house-circle-xmark{--fa:"\\e50b"}.fa-house-fire{--fa:"\\e50c"}.fa-house-flag{--fa:"\\e50d"}.fa-house-flood-water{--fa:"\\e50e"}.fa-house-flood-water-circle-arrow-right{--fa:"\\e50f"}.fa-house-lock{--fa:"\\e510"}.fa-house-medical-circle-check{--fa:"\\e511"}.fa-house-medical-circle-exclamation{--fa:"\\e512"}.fa-house-medical-circle-xmark{--fa:"\\e513"}.fa-house-medical-flag{--fa:"\\e514"}.fa-house-tsunami{--fa:"\\e515"}.fa-jar{--fa:"\\e516"}.fa-jar-wheat{--fa:"\\e517"}.fa-jet-fighter-up{--fa:"\\e518"}.fa-jug-detergent{--fa:"\\e519"}.fa-kitchen-set{--fa:"\\e51a"}.fa-land-mine-on{--fa:"\\e51b"}.fa-landmark-flag{--fa:"\\e51c"}.fa-laptop-file{--fa:"\\e51d"}.fa-lines-leaning{--fa:"\\e51e"}.fa-location-pin-lock{--fa:"\\e51f"}.fa-locust{--fa:"\\e520"}.fa-magnifying-glass-arrow-right{--fa:"\\e521"}.fa-magnifying-glass-chart{--fa:"\\e522"}.fa-mars-and-venus-burst{--fa:"\\e523"}.fa-mask-ventilator{--fa:"\\e524"}.fa-mattress-pillow{--fa:"\\e525"}.fa-mobile-retro{--fa:"\\e527"}.fa-money-bill-transfer{--fa:"\\e528"}.fa-money-bill-trend-up{--fa:"\\e529"}.fa-money-bill-wheat{--fa:"\\e52a"}.fa-mosquito{--fa:"\\e52b"}.fa-mosquito-net{--fa:"\\e52c"}.fa-mound{--fa:"\\e52d"}.fa-mountain-city{--fa:"\\e52e"}.fa-mountain-sun{--fa:"\\e52f"}.fa-oil-well{--fa:"\\e532"}.fa-people-group{--fa:"\\e533"}.fa-people-line{--fa:"\\e534"}.fa-people-pulling{--fa:"\\e535"}.fa-people-robbery{--fa:"\\e536"}.fa-people-roof{--fa:"\\e537"}.fa-person-arrow-down-to-line{--fa:"\\e538"}.fa-person-arrow-up-from-line{--fa:"\\e539"}.fa-person-breastfeeding{--fa:"\\e53a"}.fa-person-burst{--fa:"\\e53b"}.fa-person-cane{--fa:"\\e53c"}.fa-person-chalkboard{--fa:"\\e53d"}.fa-person-circle-check{--fa:"\\e53e"}.fa-person-circle-exclamation{--fa:"\\e53f"}.fa-person-circle-minus{--fa:"\\e540"}.fa-person-circle-plus{--fa:"\\e541"}.fa-person-circle-question{--fa:"\\e542"}.fa-person-circle-xmark{--fa:"\\e543"}.fa-person-dress-burst{--fa:"\\e544"}.fa-person-drowning{--fa:"\\e545"}.fa-person-falling{--fa:"\\e546"}.fa-person-falling-burst{--fa:"\\e547"}.fa-person-half-dress{--fa:"\\e548"}.fa-person-harassing{--fa:"\\e549"}.fa-person-military-pointing{--fa:"\\e54a"}.fa-person-military-rifle{--fa:"\\e54b"}.fa-person-military-to-person{--fa:"\\e54c"}.fa-person-rays{--fa:"\\e54d"}.fa-person-rifle{--fa:"\\e54e"}.fa-person-shelter{--fa:"\\e54f"}.fa-person-walking-arrow-loop-left{--fa:"\\e551"}.fa-person-walking-arrow-right{--fa:"\\e552"}.fa-person-walking-dashed-line-arrow-right{--fa:"\\e553"}.fa-person-walking-luggage{--fa:"\\e554"}.fa-plane-circle-check{--fa:"\\e555"}.fa-plane-circle-exclamation{--fa:"\\e556"}.fa-plane-circle-xmark{--fa:"\\e557"}.fa-plane-lock{--fa:"\\e558"}.fa-plate-wheat{--fa:"\\e55a"}.fa-plug-circle-bolt{--fa:"\\e55b"}.fa-plug-circle-check{--fa:"\\e55c"}.fa-plug-circle-exclamation{--fa:"\\e55d"}.fa-plug-circle-minus{--fa:"\\e55e"}.fa-plug-circle-plus{--fa:"\\e55f"}.fa-plug-circle-xmark{--fa:"\\e560"}.fa-ranking-star{--fa:"\\e561"}.fa-road-barrier{--fa:"\\e562"}.fa-road-bridge{--fa:"\\e563"}.fa-road-circle-check{--fa:"\\e564"}.fa-road-circle-exclamation{--fa:"\\e565"}.fa-road-circle-xmark{--fa:"\\e566"}.fa-road-lock{--fa:"\\e567"}.fa-road-spikes{--fa:"\\e568"}.fa-rug{--fa:"\\e569"}.fa-sack-xmark{--fa:"\\e56a"}.fa-school-circle-check{--fa:"\\e56b"}.fa-school-circle-exclamation{--fa:"\\e56c"}.fa-school-circle-xmark{--fa:"\\e56d"}.fa-school-flag{--fa:"\\e56e"}.fa-school-lock{--fa:"\\e56f"}.fa-sheet-plastic{--fa:"\\e571"}.fa-shield-cat{--fa:"\\e572"}.fa-shield-dog{--fa:"\\e573"}.fa-shield-heart{--fa:"\\e574"}.fa-square-nfi{--fa:"\\e576"}.fa-square-person-confined{--fa:"\\e577"}.fa-square-virus{--fa:"\\e578"}.fa-rod-asclepius,.fa-rod-snake,.fa-staff-aesculapius,.fa-staff-snake{--fa:"\\e579"}.fa-sun-plant-wilt{--fa:"\\e57a"}.fa-tarp{--fa:"\\e57b"}.fa-tarp-droplet{--fa:"\\e57c"}.fa-tent{--fa:"\\e57d"}.fa-tent-arrow-down-to-line{--fa:"\\e57e"}.fa-tent-arrow-left-right{--fa:"\\e57f"}.fa-tent-arrow-turn-left{--fa:"\\e580"}.fa-tent-arrows-down{--fa:"\\e581"}.fa-tents{--fa:"\\e582"}.fa-toilet-portable{--fa:"\\e583"}.fa-toilets-portable{--fa:"\\e584"}.fa-tower-cell{--fa:"\\e585"}.fa-tower-observation{--fa:"\\e586"}.fa-tree-city{--fa:"\\e587"}.fa-trowel{--fa:"\\e589"}.fa-trowel-bricks{--fa:"\\e58a"}.fa-truck-arrow-right{--fa:"\\e58b"}.fa-truck-droplet{--fa:"\\e58c"}.fa-truck-field{--fa:"\\e58d"}.fa-truck-field-un{--fa:"\\e58e"}.fa-truck-plane{--fa:"\\e58f"}.fa-users-between-lines{--fa:"\\e591"}.fa-users-line{--fa:"\\e592"}.fa-users-rays{--fa:"\\e593"}.fa-users-rectangle{--fa:"\\e594"}.fa-users-viewfinder{--fa:"\\e595"}.fa-vial-circle-check{--fa:"\\e596"}.fa-vial-virus{--fa:"\\e597"}.fa-wheat-awn-circle-exclamation{--fa:"\\e598"}.fa-worm{--fa:"\\e599"}.fa-xmarks-lines{--fa:"\\e59a"}.fa-child-dress{--fa:"\\e59c"}.fa-child-reaching{--fa:"\\e59d"}.fa-file-circle-check{--fa:"\\e5a0"}.fa-file-circle-xmark{--fa:"\\e5a1"}.fa-person-through-window{--fa:"\\e5a9"}.fa-plant-wilt{--fa:"\\e5aa"}.fa-stapler{--fa:"\\e5af"}.fa-train-tram{--fa:"\\e5b4"}.fa-table-cells-column-lock{--fa:"\\e678"}.fa-table-cells-row-lock{--fa:"\\e67a"}.fa-thumb-tack-slash,.fa-thumbtack-slash{--fa:"\\e68f"}.fa-table-cells-row-unlock{--fa:"\\e691"}.fa-chart-diagram{--fa:"\\e695"}.fa-comment-nodes{--fa:"\\e696"}.fa-file-fragment{--fa:"\\e697"}.fa-file-half-dashed{--fa:"\\e698"}.fa-hexagon-nodes{--fa:"\\e699"}.fa-hexagon-nodes-bolt{--fa:"\\e69a"}.fa-square-binary{--fa:"\\e69b"}.fa-pentagon{--fa:"\\e790"}.fa-non-binary{--fa:"\\e807"}.fa-spiral{--fa:"\\e80a"}.fa-picture-in-picture{--fa:"\\e80b"}.fa-mobile-vibrate{--fa:"\\e816"}.fa-single-quote-left{--fa:"\\e81b"}.fa-single-quote-right{--fa:"\\e81c"}.fa-bus-side{--fa:"\\e81d"}.fa-heptagon,.fa-septagon{--fa:"\\e820"}.fa-aquarius{--fa:"\\e845"}.fa-aries{--fa:"\\e846"}.fa-cancer{--fa:"\\e847"}.fa-capricorn{--fa:"\\e848"}.fa-gemini{--fa:"\\e849"}.fa-leo{--fa:"\\e84a"}.fa-libra{--fa:"\\e84b"}.fa-pisces{--fa:"\\e84c"}.fa-sagittarius{--fa:"\\e84d"}.fa-scorpio{--fa:"\\e84e"}.fa-taurus{--fa:"\\e84f"}.fa-virgo{--fa:"\\e850"}.fa-glass-martini,.fa-martini-glass-empty{--fa:"\\f000"}.fa-music{--fa:"\\f001"}.fa-magnifying-glass,.fa-search{--fa:"\\f002"}.fa-heart{--fa:"\\f004"}.fa-star{--fa:"\\f005"}.fa-user,.fa-user-alt,.fa-user-large{--fa:"\\f007"}.fa-film,.fa-film-alt,.fa-film-simple{--fa:"\\f008"}.fa-table-cells-large,.fa-th-large{--fa:"\\f009"}.fa-table-cells,.fa-th{--fa:"\\f00a"}.fa-table-list,.fa-th-list{--fa:"\\f00b"}.fa-check{--fa:"\\f00c"}.fa-close,.fa-multiply,.fa-remove,.fa-times,.fa-xmark{--fa:"\\f00d"}.fa-magnifying-glass-plus,.fa-search-plus{--fa:"\\f00e"}.fa-magnifying-glass-minus,.fa-search-minus{--fa:"\\f010"}.fa-power-off{--fa:"\\f011"}.fa-signal,.fa-signal-5,.fa-signal-perfect{--fa:"\\f012"}.fa-cog,.fa-gear{--fa:"\\f013"}.fa-home,.fa-home-alt,.fa-home-lg-alt,.fa-house{--fa:"\\f015"}.fa-clock,.fa-clock-four{--fa:"\\f017"}.fa-road{--fa:"\\f018"}.fa-download{--fa:"\\f019"}.fa-inbox{--fa:"\\f01c"}.fa-arrow-right-rotate,.fa-arrow-rotate-forward,.fa-arrow-rotate-right,.fa-redo{--fa:"\\f01e"}.fa-arrows-rotate,.fa-refresh,.fa-sync{--fa:"\\f021"}.fa-list-alt,.fa-rectangle-list{--fa:"\\f022"}.fa-lock{--fa:"\\f023"}.fa-flag{--fa:"\\f024"}.fa-headphones,.fa-headphones-alt,.fa-headphones-simple{--fa:"\\f025"}.fa-volume-off{--fa:"\\f026"}.fa-volume-down,.fa-volume-low{--fa:"\\f027"}.fa-volume-high,.fa-volume-up{--fa:"\\f028"}.fa-qrcode{--fa:"\\f029"}.fa-barcode{--fa:"\\f02a"}.fa-tag{--fa:"\\f02b"}.fa-tags{--fa:"\\f02c"}.fa-book{--fa:"\\f02d"}.fa-bookmark{--fa:"\\f02e"}.fa-print{--fa:"\\f02f"}.fa-camera,.fa-camera-alt{--fa:"\\f030"}.fa-font{--fa:"\\f031"}.fa-bold{--fa:"\\f032"}.fa-italic{--fa:"\\f033"}.fa-text-height{--fa:"\\f034"}.fa-text-width{--fa:"\\f035"}.fa-align-left{--fa:"\\f036"}.fa-align-center{--fa:"\\f037"}.fa-align-right{--fa:"\\f038"}.fa-align-justify{--fa:"\\f039"}.fa-list,.fa-list-squares{--fa:"\\f03a"}.fa-dedent,.fa-outdent{--fa:"\\f03b"}.fa-indent{--fa:"\\f03c"}.fa-video,.fa-video-camera{--fa:"\\f03d"}.fa-image{--fa:"\\f03e"}.fa-location-pin,.fa-map-marker{--fa:"\\f041"}.fa-adjust,.fa-circle-half-stroke{--fa:"\\f042"}.fa-droplet,.fa-tint{--fa:"\\f043"}.fa-edit,.fa-pen-to-square{--fa:"\\f044"}.fa-arrows,.fa-arrows-up-down-left-right{--fa:"\\f047"}.fa-backward-step,.fa-step-backward{--fa:"\\f048"}.fa-backward-fast,.fa-fast-backward{--fa:"\\f049"}.fa-backward{--fa:"\\f04a"}.fa-play{--fa:"\\f04b"}.fa-pause{--fa:"\\f04c"}.fa-stop{--fa:"\\f04d"}.fa-forward{--fa:"\\f04e"}.fa-fast-forward,.fa-forward-fast{--fa:"\\f050"}.fa-forward-step,.fa-step-forward{--fa:"\\f051"}.fa-eject{--fa:"\\f052"}.fa-chevron-left{--fa:"\\f053"}.fa-chevron-right{--fa:"\\f054"}.fa-circle-plus,.fa-plus-circle{--fa:"\\f055"}.fa-circle-minus,.fa-minus-circle{--fa:"\\f056"}.fa-circle-xmark,.fa-times-circle,.fa-xmark-circle{--fa:"\\f057"}.fa-check-circle,.fa-circle-check{--fa:"\\f058"}.fa-circle-question,.fa-question-circle{--fa:"\\f059"}.fa-circle-info,.fa-info-circle{--fa:"\\f05a"}.fa-crosshairs{--fa:"\\f05b"}.fa-ban,.fa-cancel{--fa:"\\f05e"}.fa-arrow-left{--fa:"\\f060"}.fa-arrow-right{--fa:"\\f061"}.fa-arrow-up{--fa:"\\f062"}.fa-arrow-down{--fa:"\\f063"}.fa-mail-forward,.fa-share{--fa:"\\f064"}.fa-expand{--fa:"\\f065"}.fa-compress{--fa:"\\f066"}.fa-minus,.fa-subtract{--fa:"\\f068"}.fa-circle-exclamation,.fa-exclamation-circle{--fa:"\\f06a"}.fa-gift{--fa:"\\f06b"}.fa-leaf{--fa:"\\f06c"}.fa-fire{--fa:"\\f06d"}.fa-eye{--fa:"\\f06e"}.fa-eye-slash{--fa:"\\f070"}.fa-exclamation-triangle,.fa-triangle-exclamation,.fa-warning{--fa:"\\f071"}.fa-plane{--fa:"\\f072"}.fa-calendar-alt,.fa-calendar-days{--fa:"\\f073"}.fa-random,.fa-shuffle{--fa:"\\f074"}.fa-comment{--fa:"\\f075"}.fa-magnet{--fa:"\\f076"}.fa-chevron-up{--fa:"\\f077"}.fa-chevron-down{--fa:"\\f078"}.fa-retweet{--fa:"\\f079"}.fa-cart-shopping,.fa-shopping-cart{--fa:"\\f07a"}.fa-folder,.fa-folder-blank{--fa:"\\f07b"}.fa-folder-open{--fa:"\\f07c"}.fa-arrows-up-down,.fa-arrows-v{--fa:"\\f07d"}.fa-arrows-h,.fa-arrows-left-right{--fa:"\\f07e"}.fa-bar-chart,.fa-chart-bar{--fa:"\\f080"}.fa-camera-retro{--fa:"\\f083"}.fa-key{--fa:"\\f084"}.fa-cogs,.fa-gears{--fa:"\\f085"}.fa-comments{--fa:"\\f086"}.fa-star-half{--fa:"\\f089"}.fa-arrow-right-from-bracket,.fa-sign-out{--fa:"\\f08b"}.fa-thumb-tack,.fa-thumbtack{--fa:"\\f08d"}.fa-arrow-up-right-from-square,.fa-external-link{--fa:"\\f08e"}.fa-arrow-right-to-bracket,.fa-sign-in{--fa:"\\f090"}.fa-trophy{--fa:"\\f091"}.fa-upload{--fa:"\\f093"}.fa-lemon{--fa:"\\f094"}.fa-phone{--fa:"\\f095"}.fa-phone-square,.fa-square-phone{--fa:"\\f098"}.fa-unlock{--fa:"\\f09c"}.fa-credit-card,.fa-credit-card-alt{--fa:"\\f09d"}.fa-feed,.fa-rss{--fa:"\\f09e"}.fa-hard-drive,.fa-hdd{--fa:"\\f0a0"}.fa-bullhorn{--fa:"\\f0a1"}.fa-certificate{--fa:"\\f0a3"}.fa-hand-point-right{--fa:"\\f0a4"}.fa-hand-point-left{--fa:"\\f0a5"}.fa-hand-point-up{--fa:"\\f0a6"}.fa-hand-point-down{--fa:"\\f0a7"}.fa-arrow-circle-left,.fa-circle-arrow-left{--fa:"\\f0a8"}.fa-arrow-circle-right,.fa-circle-arrow-right{--fa:"\\f0a9"}.fa-arrow-circle-up,.fa-circle-arrow-up{--fa:"\\f0aa"}.fa-arrow-circle-down,.fa-circle-arrow-down{--fa:"\\f0ab"}.fa-globe{--fa:"\\f0ac"}.fa-wrench{--fa:"\\f0ad"}.fa-list-check,.fa-tasks{--fa:"\\f0ae"}.fa-filter{--fa:"\\f0b0"}.fa-briefcase{--fa:"\\f0b1"}.fa-arrows-alt,.fa-up-down-left-right{--fa:"\\f0b2"}.fa-users{--fa:"\\f0c0"}.fa-chain,.fa-link{--fa:"\\f0c1"}.fa-cloud{--fa:"\\f0c2"}.fa-flask{--fa:"\\f0c3"}.fa-cut,.fa-scissors{--fa:"\\f0c4"}.fa-copy{--fa:"\\f0c5"}.fa-paperclip{--fa:"\\f0c6"}.fa-floppy-disk,.fa-save{--fa:"\\f0c7"}.fa-square{--fa:"\\f0c8"}.fa-bars,.fa-navicon{--fa:"\\f0c9"}.fa-list-dots,.fa-list-ul{--fa:"\\f0ca"}.fa-list-1-2,.fa-list-numeric,.fa-list-ol{--fa:"\\f0cb"}.fa-strikethrough{--fa:"\\f0cc"}.fa-underline{--fa:"\\f0cd"}.fa-table{--fa:"\\f0ce"}.fa-magic,.fa-wand-magic{--fa:"\\f0d0"}.fa-truck{--fa:"\\f0d1"}.fa-money-bill{--fa:"\\f0d6"}.fa-caret-down{--fa:"\\f0d7"}.fa-caret-up{--fa:"\\f0d8"}.fa-caret-left{--fa:"\\f0d9"}.fa-caret-right{--fa:"\\f0da"}.fa-columns,.fa-table-columns{--fa:"\\f0db"}.fa-sort,.fa-unsorted{--fa:"\\f0dc"}.fa-sort-desc,.fa-sort-down{--fa:"\\f0dd"}.fa-sort-asc,.fa-sort-up{--fa:"\\f0de"}.fa-envelope{--fa:"\\f0e0"}.fa-arrow-left-rotate,.fa-arrow-rotate-back,.fa-arrow-rotate-backward,.fa-arrow-rotate-left,.fa-undo{--fa:"\\f0e2"}.fa-gavel,.fa-legal{--fa:"\\f0e3"}.fa-bolt,.fa-zap{--fa:"\\f0e7"}.fa-sitemap{--fa:"\\f0e8"}.fa-umbrella{--fa:"\\f0e9"}.fa-file-clipboard,.fa-paste{--fa:"\\f0ea"}.fa-lightbulb{--fa:"\\f0eb"}.fa-arrow-right-arrow-left,.fa-exchange{--fa:"\\f0ec"}.fa-cloud-arrow-down,.fa-cloud-download,.fa-cloud-download-alt{--fa:"\\f0ed"}.fa-cloud-arrow-up,.fa-cloud-upload,.fa-cloud-upload-alt{--fa:"\\f0ee"}.fa-user-doctor,.fa-user-md{--fa:"\\f0f0"}.fa-stethoscope{--fa:"\\f0f1"}.fa-suitcase{--fa:"\\f0f2"}.fa-bell{--fa:"\\f0f3"}.fa-coffee,.fa-mug-saucer{--fa:"\\f0f4"}.fa-hospital,.fa-hospital-alt,.fa-hospital-wide{--fa:"\\f0f8"}.fa-ambulance,.fa-truck-medical{--fa:"\\f0f9"}.fa-medkit,.fa-suitcase-medical{--fa:"\\f0fa"}.fa-fighter-jet,.fa-jet-fighter{--fa:"\\f0fb"}.fa-beer,.fa-beer-mug-empty{--fa:"\\f0fc"}.fa-h-square,.fa-square-h{--fa:"\\f0fd"}.fa-plus-square,.fa-square-plus{--fa:"\\f0fe"}.fa-angle-double-left,.fa-angles-left{--fa:"\\f100"}.fa-angle-double-right,.fa-angles-right{--fa:"\\f101"}.fa-angle-double-up,.fa-angles-up{--fa:"\\f102"}.fa-angle-double-down,.fa-angles-down{--fa:"\\f103"}.fa-angle-left{--fa:"\\f104"}.fa-angle-right{--fa:"\\f105"}.fa-angle-up{--fa:"\\f106"}.fa-angle-down{--fa:"\\f107"}.fa-laptop{--fa:"\\f109"}.fa-tablet-button{--fa:"\\f10a"}.fa-mobile-button{--fa:"\\f10b"}.fa-quote-left,.fa-quote-left-alt{--fa:"\\f10d"}.fa-quote-right,.fa-quote-right-alt{--fa:"\\f10e"}.fa-spinner{--fa:"\\f110"}.fa-circle{--fa:"\\f111"}.fa-face-smile,.fa-smile{--fa:"\\f118"}.fa-face-frown,.fa-frown{--fa:"\\f119"}.fa-face-meh,.fa-meh{--fa:"\\f11a"}.fa-gamepad{--fa:"\\f11b"}.fa-keyboard{--fa:"\\f11c"}.fa-flag-checkered{--fa:"\\f11e"}.fa-terminal{--fa:"\\f120"}.fa-code{--fa:"\\f121"}.fa-mail-reply-all,.fa-reply-all{--fa:"\\f122"}.fa-location-arrow{--fa:"\\f124"}.fa-crop{--fa:"\\f125"}.fa-code-branch{--fa:"\\f126"}.fa-chain-broken,.fa-chain-slash,.fa-link-slash,.fa-unlink{--fa:"\\f127"}.fa-info{--fa:"\\f129"}.fa-superscript{--fa:"\\f12b"}.fa-subscript{--fa:"\\f12c"}.fa-eraser{--fa:"\\f12d"}.fa-puzzle-piece{--fa:"\\f12e"}.fa-microphone{--fa:"\\f130"}.fa-microphone-slash{--fa:"\\f131"}.fa-shield,.fa-shield-blank{--fa:"\\f132"}.fa-calendar{--fa:"\\f133"}.fa-fire-extinguisher{--fa:"\\f134"}.fa-rocket{--fa:"\\f135"}.fa-chevron-circle-left,.fa-circle-chevron-left{--fa:"\\f137"}.fa-chevron-circle-right,.fa-circle-chevron-right{--fa:"\\f138"}.fa-chevron-circle-up,.fa-circle-chevron-up{--fa:"\\f139"}.fa-chevron-circle-down,.fa-circle-chevron-down{--fa:"\\f13a"}.fa-anchor{--fa:"\\f13d"}.fa-unlock-alt,.fa-unlock-keyhole{--fa:"\\f13e"}.fa-bullseye{--fa:"\\f140"}.fa-ellipsis,.fa-ellipsis-h{--fa:"\\f141"}.fa-ellipsis-v,.fa-ellipsis-vertical{--fa:"\\f142"}.fa-rss-square,.fa-square-rss{--fa:"\\f143"}.fa-circle-play,.fa-play-circle{--fa:"\\f144"}.fa-ticket{--fa:"\\f145"}.fa-minus-square,.fa-square-minus{--fa:"\\f146"}.fa-arrow-turn-up,.fa-level-up{--fa:"\\f148"}.fa-arrow-turn-down,.fa-level-down{--fa:"\\f149"}.fa-check-square,.fa-square-check{--fa:"\\f14a"}.fa-pen-square,.fa-pencil-square,.fa-square-pen{--fa:"\\f14b"}.fa-external-link-square,.fa-square-arrow-up-right{--fa:"\\f14c"}.fa-share-from-square,.fa-share-square{--fa:"\\f14d"}.fa-compass{--fa:"\\f14e"}.fa-caret-square-down,.fa-square-caret-down{--fa:"\\f150"}.fa-caret-square-up,.fa-square-caret-up{--fa:"\\f151"}.fa-caret-square-right,.fa-square-caret-right{--fa:"\\f152"}.fa-eur,.fa-euro,.fa-euro-sign{--fa:"\\f153"}.fa-gbp,.fa-pound-sign,.fa-sterling-sign{--fa:"\\f154"}.fa-rupee,.fa-rupee-sign{--fa:"\\f156"}.fa-cny,.fa-jpy,.fa-rmb,.fa-yen,.fa-yen-sign{--fa:"\\f157"}.fa-rouble,.fa-rub,.fa-ruble,.fa-ruble-sign{--fa:"\\f158"}.fa-krw,.fa-won,.fa-won-sign{--fa:"\\f159"}.fa-file{--fa:"\\f15b"}.fa-file-alt,.fa-file-lines,.fa-file-text{--fa:"\\f15c"}.fa-arrow-down-a-z,.fa-sort-alpha-asc,.fa-sort-alpha-down{--fa:"\\f15d"}.fa-arrow-up-a-z,.fa-sort-alpha-up{--fa:"\\f15e"}.fa-arrow-down-wide-short,.fa-sort-amount-asc,.fa-sort-amount-down{--fa:"\\f160"}.fa-arrow-up-wide-short,.fa-sort-amount-up{--fa:"\\f161"}.fa-arrow-down-1-9,.fa-sort-numeric-asc,.fa-sort-numeric-down{--fa:"\\f162"}.fa-arrow-up-1-9,.fa-sort-numeric-up{--fa:"\\f163"}.fa-thumbs-up{--fa:"\\f164"}.fa-thumbs-down{--fa:"\\f165"}.fa-arrow-down-long,.fa-long-arrow-down{--fa:"\\f175"}.fa-arrow-up-long,.fa-long-arrow-up{--fa:"\\f176"}.fa-arrow-left-long,.fa-long-arrow-left{--fa:"\\f177"}.fa-arrow-right-long,.fa-long-arrow-right{--fa:"\\f178"}.fa-female,.fa-person-dress{--fa:"\\f182"}.fa-male,.fa-person{--fa:"\\f183"}.fa-sun{--fa:"\\f185"}.fa-moon{--fa:"\\f186"}.fa-archive,.fa-box-archive{--fa:"\\f187"}.fa-bug{--fa:"\\f188"}.fa-caret-square-left,.fa-square-caret-left{--fa:"\\f191"}.fa-circle-dot,.fa-dot-circle{--fa:"\\f192"}.fa-wheelchair{--fa:"\\f193"}.fa-lira-sign{--fa:"\\f195"}.fa-shuttle-space,.fa-space-shuttle{--fa:"\\f197"}.fa-envelope-square,.fa-square-envelope{--fa:"\\f199"}.fa-bank,.fa-building-columns,.fa-institution,.fa-museum,.fa-university{--fa:"\\f19c"}.fa-graduation-cap,.fa-mortar-board{--fa:"\\f19d"}.fa-language{--fa:"\\f1ab"}.fa-fax{--fa:"\\f1ac"}.fa-building{--fa:"\\f1ad"}.fa-child{--fa:"\\f1ae"}.fa-paw{--fa:"\\f1b0"}.fa-cube{--fa:"\\f1b2"}.fa-cubes{--fa:"\\f1b3"}.fa-recycle{--fa:"\\f1b8"}.fa-automobile,.fa-car{--fa:"\\f1b9"}.fa-cab,.fa-taxi{--fa:"\\f1ba"}.fa-tree{--fa:"\\f1bb"}.fa-database{--fa:"\\f1c0"}.fa-file-pdf{--fa:"\\f1c1"}.fa-file-word{--fa:"\\f1c2"}.fa-file-excel{--fa:"\\f1c3"}.fa-file-powerpoint{--fa:"\\f1c4"}.fa-file-image{--fa:"\\f1c5"}.fa-file-archive,.fa-file-zipper{--fa:"\\f1c6"}.fa-file-audio{--fa:"\\f1c7"}.fa-file-video{--fa:"\\f1c8"}.fa-file-code{--fa:"\\f1c9"}.fa-life-ring{--fa:"\\f1cd"}.fa-circle-notch{--fa:"\\f1ce"}.fa-paper-plane{--fa:"\\f1d8"}.fa-clock-rotate-left,.fa-history{--fa:"\\f1da"}.fa-header,.fa-heading{--fa:"\\f1dc"}.fa-paragraph{--fa:"\\f1dd"}.fa-sliders,.fa-sliders-h{--fa:"\\f1de"}.fa-share-alt,.fa-share-nodes{--fa:"\\f1e0"}.fa-share-alt-square,.fa-square-share-nodes{--fa:"\\f1e1"}.fa-bomb{--fa:"\\f1e2"}.fa-futbol,.fa-futbol-ball,.fa-soccer-ball{--fa:"\\f1e3"}.fa-teletype,.fa-tty{--fa:"\\f1e4"}.fa-binoculars{--fa:"\\f1e5"}.fa-plug{--fa:"\\f1e6"}.fa-newspaper{--fa:"\\f1ea"}.fa-wifi,.fa-wifi-3,.fa-wifi-strong{--fa:"\\f1eb"}.fa-calculator{--fa:"\\f1ec"}.fa-bell-slash{--fa:"\\f1f6"}.fa-trash{--fa:"\\f1f8"}.fa-copyright{--fa:"\\f1f9"}.fa-eye-dropper,.fa-eye-dropper-empty,.fa-eyedropper{--fa:"\\f1fb"}.fa-paint-brush,.fa-paintbrush{--fa:"\\f1fc"}.fa-birthday-cake,.fa-cake,.fa-cake-candles{--fa:"\\f1fd"}.fa-area-chart,.fa-chart-area{--fa:"\\f1fe"}.fa-chart-pie,.fa-pie-chart{--fa:"\\f200"}.fa-chart-line,.fa-line-chart{--fa:"\\f201"}.fa-toggle-off{--fa:"\\f204"}.fa-toggle-on{--fa:"\\f205"}.fa-bicycle{--fa:"\\f206"}.fa-bus{--fa:"\\f207"}.fa-closed-captioning{--fa:"\\f20a"}.fa-ils,.fa-shekel,.fa-shekel-sign,.fa-sheqel,.fa-sheqel-sign{--fa:"\\f20b"}.fa-cart-plus{--fa:"\\f217"}.fa-cart-arrow-down{--fa:"\\f218"}.fa-diamond{--fa:"\\f219"}.fa-ship{--fa:"\\f21a"}.fa-user-secret{--fa:"\\f21b"}.fa-motorcycle{--fa:"\\f21c"}.fa-street-view{--fa:"\\f21d"}.fa-heart-pulse,.fa-heartbeat{--fa:"\\f21e"}.fa-venus{--fa:"\\f221"}.fa-mars{--fa:"\\f222"}.fa-mercury{--fa:"\\f223"}.fa-mars-and-venus{--fa:"\\f224"}.fa-transgender,.fa-transgender-alt{--fa:"\\f225"}.fa-venus-double{--fa:"\\f226"}.fa-mars-double{--fa:"\\f227"}.fa-venus-mars{--fa:"\\f228"}.fa-mars-stroke{--fa:"\\f229"}.fa-mars-stroke-up,.fa-mars-stroke-v{--fa:"\\f22a"}.fa-mars-stroke-h,.fa-mars-stroke-right{--fa:"\\f22b"}.fa-neuter{--fa:"\\f22c"}.fa-genderless{--fa:"\\f22d"}.fa-server{--fa:"\\f233"}.fa-user-plus{--fa:"\\f234"}.fa-user-times,.fa-user-xmark{--fa:"\\f235"}.fa-bed{--fa:"\\f236"}.fa-train{--fa:"\\f238"}.fa-subway,.fa-train-subway{--fa:"\\f239"}.fa-battery,.fa-battery-5,.fa-battery-full{--fa:"\\f240"}.fa-battery-4,.fa-battery-three-quarters{--fa:"\\f241"}.fa-battery-3,.fa-battery-half{--fa:"\\f242"}.fa-battery-2,.fa-battery-quarter{--fa:"\\f243"}.fa-battery-0,.fa-battery-empty{--fa:"\\f244"}.fa-arrow-pointer,.fa-mouse-pointer{--fa:"\\f245"}.fa-i-cursor{--fa:"\\f246"}.fa-object-group{--fa:"\\f247"}.fa-object-ungroup{--fa:"\\f248"}.fa-note-sticky,.fa-sticky-note{--fa:"\\f249"}.fa-clone{--fa:"\\f24d"}.fa-balance-scale,.fa-scale-balanced{--fa:"\\f24e"}.fa-hourglass-1,.fa-hourglass-start{--fa:"\\f251"}.fa-hourglass-2,.fa-hourglass-half{--fa:"\\f252"}.fa-hourglass-3,.fa-hourglass-end{--fa:"\\f253"}.fa-hourglass,.fa-hourglass-empty{--fa:"\\f254"}.fa-hand-back-fist,.fa-hand-rock{--fa:"\\f255"}.fa-hand,.fa-hand-paper{--fa:"\\f256"}.fa-hand-scissors{--fa:"\\f257"}.fa-hand-lizard{--fa:"\\f258"}.fa-hand-spock{--fa:"\\f259"}.fa-hand-pointer{--fa:"\\f25a"}.fa-hand-peace{--fa:"\\f25b"}.fa-trademark{--fa:"\\f25c"}.fa-registered{--fa:"\\f25d"}.fa-television,.fa-tv,.fa-tv-alt{--fa:"\\f26c"}.fa-calendar-plus{--fa:"\\f271"}.fa-calendar-minus{--fa:"\\f272"}.fa-calendar-times,.fa-calendar-xmark{--fa:"\\f273"}.fa-calendar-check{--fa:"\\f274"}.fa-industry{--fa:"\\f275"}.fa-map-pin{--fa:"\\f276"}.fa-map-signs,.fa-signs-post{--fa:"\\f277"}.fa-map{--fa:"\\f279"}.fa-comment-alt,.fa-message{--fa:"\\f27a"}.fa-circle-pause,.fa-pause-circle{--fa:"\\f28b"}.fa-circle-stop,.fa-stop-circle{--fa:"\\f28d"}.fa-bag-shopping,.fa-shopping-bag{--fa:"\\f290"}.fa-basket-shopping,.fa-shopping-basket{--fa:"\\f291"}.fa-universal-access{--fa:"\\f29a"}.fa-blind,.fa-person-walking-with-cane{--fa:"\\f29d"}.fa-audio-description{--fa:"\\f29e"}.fa-phone-volume,.fa-volume-control-phone{--fa:"\\f2a0"}.fa-braille{--fa:"\\f2a1"}.fa-assistive-listening-systems,.fa-ear-listen{--fa:"\\f2a2"}.fa-american-sign-language-interpreting,.fa-asl-interpreting,.fa-hands-american-sign-language-interpreting,.fa-hands-asl-interpreting{--fa:"\\f2a3"}.fa-deaf,.fa-deafness,.fa-ear-deaf,.fa-hard-of-hearing{--fa:"\\f2a4"}.fa-hands,.fa-sign-language,.fa-signing{--fa:"\\f2a7"}.fa-eye-low-vision,.fa-low-vision{--fa:"\\f2a8"}.fa-handshake,.fa-handshake-alt,.fa-handshake-simple{--fa:"\\f2b5"}.fa-envelope-open{--fa:"\\f2b6"}.fa-address-book,.fa-contact-book{--fa:"\\f2b9"}.fa-address-card,.fa-contact-card,.fa-vcard{--fa:"\\f2bb"}.fa-circle-user,.fa-user-circle{--fa:"\\f2bd"}.fa-id-badge{--fa:"\\f2c1"}.fa-drivers-license,.fa-id-card{--fa:"\\f2c2"}.fa-temperature-4,.fa-temperature-full,.fa-thermometer-4,.fa-thermometer-full{--fa:"\\f2c7"}.fa-temperature-3,.fa-temperature-three-quarters,.fa-thermometer-3,.fa-thermometer-three-quarters{--fa:"\\f2c8"}.fa-temperature-2,.fa-temperature-half,.fa-thermometer-2,.fa-thermometer-half{--fa:"\\f2c9"}.fa-temperature-1,.fa-temperature-quarter,.fa-thermometer-1,.fa-thermometer-quarter{--fa:"\\f2ca"}.fa-temperature-0,.fa-temperature-empty,.fa-thermometer-0,.fa-thermometer-empty{--fa:"\\f2cb"}.fa-shower{--fa:"\\f2cc"}.fa-bath,.fa-bathtub{--fa:"\\f2cd"}.fa-podcast{--fa:"\\f2ce"}.fa-window-maximize{--fa:"\\f2d0"}.fa-window-minimize{--fa:"\\f2d1"}.fa-window-restore{--fa:"\\f2d2"}.fa-square-xmark,.fa-times-square,.fa-xmark-square{--fa:"\\f2d3"}.fa-microchip{--fa:"\\f2db"}.fa-snowflake{--fa:"\\f2dc"}.fa-spoon,.fa-utensil-spoon{--fa:"\\f2e5"}.fa-cutlery,.fa-utensils{--fa:"\\f2e7"}.fa-rotate-back,.fa-rotate-backward,.fa-rotate-left,.fa-undo-alt{--fa:"\\f2ea"}.fa-trash-alt,.fa-trash-can{--fa:"\\f2ed"}.fa-rotate,.fa-sync-alt{--fa:"\\f2f1"}.fa-stopwatch{--fa:"\\f2f2"}.fa-right-from-bracket,.fa-sign-out-alt{--fa:"\\f2f5"}.fa-right-to-bracket,.fa-sign-in-alt{--fa:"\\f2f6"}.fa-redo-alt,.fa-rotate-forward,.fa-rotate-right{--fa:"\\f2f9"}.fa-poo{--fa:"\\f2fe"}.fa-images{--fa:"\\f302"}.fa-pencil,.fa-pencil-alt{--fa:"\\f303"}.fa-pen{--fa:"\\f304"}.fa-pen-alt,.fa-pen-clip{--fa:"\\f305"}.fa-octagon{--fa:"\\f306"}.fa-down-long,.fa-long-arrow-alt-down{--fa:"\\f309"}.fa-left-long,.fa-long-arrow-alt-left{--fa:"\\f30a"}.fa-long-arrow-alt-right,.fa-right-long{--fa:"\\f30b"}.fa-long-arrow-alt-up,.fa-up-long{--fa:"\\f30c"}.fa-hexagon{--fa:"\\f312"}.fa-file-edit,.fa-file-pen{--fa:"\\f31c"}.fa-expand-arrows-alt,.fa-maximize{--fa:"\\f31e"}.fa-clipboard{--fa:"\\f328"}.fa-arrows-alt-h,.fa-left-right{--fa:"\\f337"}.fa-arrows-alt-v,.fa-up-down{--fa:"\\f338"}.fa-alarm-clock{--fa:"\\f34e"}.fa-arrow-alt-circle-down,.fa-circle-down{--fa:"\\f358"}.fa-arrow-alt-circle-left,.fa-circle-left{--fa:"\\f359"}.fa-arrow-alt-circle-right,.fa-circle-right{--fa:"\\f35a"}.fa-arrow-alt-circle-up,.fa-circle-up{--fa:"\\f35b"}.fa-external-link-alt,.fa-up-right-from-square{--fa:"\\f35d"}.fa-external-link-square-alt,.fa-square-up-right{--fa:"\\f360"}.fa-exchange-alt,.fa-right-left{--fa:"\\f362"}.fa-repeat{--fa:"\\f363"}.fa-code-commit{--fa:"\\f386"}.fa-code-merge{--fa:"\\f387"}.fa-desktop,.fa-desktop-alt{--fa:"\\f390"}.fa-gem{--fa:"\\f3a5"}.fa-level-down-alt,.fa-turn-down{--fa:"\\f3be"}.fa-level-up-alt,.fa-turn-up{--fa:"\\f3bf"}.fa-lock-open{--fa:"\\f3c1"}.fa-location-dot,.fa-map-marker-alt{--fa:"\\f3c5"}.fa-microphone-alt,.fa-microphone-lines{--fa:"\\f3c9"}.fa-mobile-alt,.fa-mobile-screen-button{--fa:"\\f3cd"}.fa-mobile,.fa-mobile-android,.fa-mobile-phone{--fa:"\\f3ce"}.fa-mobile-android-alt,.fa-mobile-screen{--fa:"\\f3cf"}.fa-money-bill-1,.fa-money-bill-alt{--fa:"\\f3d1"}.fa-phone-slash{--fa:"\\f3dd"}.fa-image-portrait,.fa-portrait{--fa:"\\f3e0"}.fa-mail-reply,.fa-reply{--fa:"\\f3e5"}.fa-shield-alt,.fa-shield-halved{--fa:"\\f3ed"}.fa-tablet-alt,.fa-tablet-screen-button{--fa:"\\f3fa"}.fa-tablet,.fa-tablet-android{--fa:"\\f3fb"}.fa-ticket-alt,.fa-ticket-simple{--fa:"\\f3ff"}.fa-rectangle-times,.fa-rectangle-xmark,.fa-times-rectangle,.fa-window-close{--fa:"\\f410"}.fa-compress-alt,.fa-down-left-and-up-right-to-center{--fa:"\\f422"}.fa-expand-alt,.fa-up-right-and-down-left-from-center{--fa:"\\f424"}.fa-baseball-bat-ball{--fa:"\\f432"}.fa-baseball,.fa-baseball-ball{--fa:"\\f433"}.fa-basketball,.fa-basketball-ball{--fa:"\\f434"}.fa-bowling-ball{--fa:"\\f436"}.fa-chess{--fa:"\\f439"}.fa-chess-bishop{--fa:"\\f43a"}.fa-chess-board{--fa:"\\f43c"}.fa-chess-king{--fa:"\\f43f"}.fa-chess-knight{--fa:"\\f441"}.fa-chess-pawn{--fa:"\\f443"}.fa-chess-queen{--fa:"\\f445"}.fa-chess-rook{--fa:"\\f447"}.fa-dumbbell{--fa:"\\f44b"}.fa-football,.fa-football-ball{--fa:"\\f44e"}.fa-golf-ball,.fa-golf-ball-tee{--fa:"\\f450"}.fa-hockey-puck{--fa:"\\f453"}.fa-broom-ball,.fa-quidditch,.fa-quidditch-broom-ball{--fa:"\\f458"}.fa-square-full{--fa:"\\f45c"}.fa-ping-pong-paddle-ball,.fa-table-tennis,.fa-table-tennis-paddle-ball{--fa:"\\f45d"}.fa-volleyball,.fa-volleyball-ball{--fa:"\\f45f"}.fa-allergies,.fa-hand-dots{--fa:"\\f461"}.fa-band-aid,.fa-bandage{--fa:"\\f462"}.fa-box{--fa:"\\f466"}.fa-boxes,.fa-boxes-alt,.fa-boxes-stacked{--fa:"\\f468"}.fa-briefcase-medical{--fa:"\\f469"}.fa-burn,.fa-fire-flame-simple{--fa:"\\f46a"}.fa-capsules{--fa:"\\f46b"}.fa-clipboard-check{--fa:"\\f46c"}.fa-clipboard-list{--fa:"\\f46d"}.fa-diagnoses,.fa-person-dots-from-line{--fa:"\\f470"}.fa-dna{--fa:"\\f471"}.fa-dolly,.fa-dolly-box{--fa:"\\f472"}.fa-cart-flatbed,.fa-dolly-flatbed{--fa:"\\f474"}.fa-file-medical{--fa:"\\f477"}.fa-file-medical-alt,.fa-file-waveform{--fa:"\\f478"}.fa-first-aid,.fa-kit-medical{--fa:"\\f479"}.fa-circle-h,.fa-hospital-symbol{--fa:"\\f47e"}.fa-id-card-alt,.fa-id-card-clip{--fa:"\\f47f"}.fa-notes-medical{--fa:"\\f481"}.fa-pallet{--fa:"\\f482"}.fa-pills{--fa:"\\f484"}.fa-prescription-bottle{--fa:"\\f485"}.fa-prescription-bottle-alt,.fa-prescription-bottle-medical{--fa:"\\f486"}.fa-bed-pulse,.fa-procedures{--fa:"\\f487"}.fa-shipping-fast,.fa-truck-fast{--fa:"\\f48b"}.fa-smoking{--fa:"\\f48d"}.fa-syringe{--fa:"\\f48e"}.fa-tablets{--fa:"\\f490"}.fa-thermometer{--fa:"\\f491"}.fa-vial{--fa:"\\f492"}.fa-vials{--fa:"\\f493"}.fa-warehouse{--fa:"\\f494"}.fa-weight,.fa-weight-scale{--fa:"\\f496"}.fa-x-ray{--fa:"\\f497"}.fa-box-open{--fa:"\\f49e"}.fa-comment-dots,.fa-commenting{--fa:"\\f4ad"}.fa-comment-slash{--fa:"\\f4b3"}.fa-couch{--fa:"\\f4b8"}.fa-circle-dollar-to-slot,.fa-donate{--fa:"\\f4b9"}.fa-dove{--fa:"\\f4ba"}.fa-hand-holding{--fa:"\\f4bd"}.fa-hand-holding-heart{--fa:"\\f4be"}.fa-hand-holding-dollar,.fa-hand-holding-usd{--fa:"\\f4c0"}.fa-hand-holding-droplet,.fa-hand-holding-water{--fa:"\\f4c1"}.fa-hands-holding{--fa:"\\f4c2"}.fa-hands-helping,.fa-handshake-angle{--fa:"\\f4c4"}.fa-parachute-box{--fa:"\\f4cd"}.fa-people-carry,.fa-people-carry-box{--fa:"\\f4ce"}.fa-piggy-bank{--fa:"\\f4d3"}.fa-ribbon{--fa:"\\f4d6"}.fa-route{--fa:"\\f4d7"}.fa-seedling,.fa-sprout{--fa:"\\f4d8"}.fa-sign,.fa-sign-hanging{--fa:"\\f4d9"}.fa-face-smile-wink,.fa-smile-wink{--fa:"\\f4da"}.fa-tape{--fa:"\\f4db"}.fa-truck-loading,.fa-truck-ramp-box{--fa:"\\f4de"}.fa-truck-moving{--fa:"\\f4df"}.fa-video-slash{--fa:"\\f4e2"}.fa-wine-glass{--fa:"\\f4e3"}.fa-user-astronaut{--fa:"\\f4fb"}.fa-user-check{--fa:"\\f4fc"}.fa-user-clock{--fa:"\\f4fd"}.fa-user-cog,.fa-user-gear{--fa:"\\f4fe"}.fa-user-edit,.fa-user-pen{--fa:"\\f4ff"}.fa-user-friends,.fa-user-group{--fa:"\\f500"}.fa-user-graduate{--fa:"\\f501"}.fa-user-lock{--fa:"\\f502"}.fa-user-minus{--fa:"\\f503"}.fa-user-ninja{--fa:"\\f504"}.fa-user-shield{--fa:"\\f505"}.fa-user-alt-slash,.fa-user-large-slash,.fa-user-slash{--fa:"\\f506"}.fa-user-tag{--fa:"\\f507"}.fa-user-tie{--fa:"\\f508"}.fa-users-cog,.fa-users-gear{--fa:"\\f509"}.fa-balance-scale-left,.fa-scale-unbalanced{--fa:"\\f515"}.fa-balance-scale-right,.fa-scale-unbalanced-flip{--fa:"\\f516"}.fa-blender{--fa:"\\f517"}.fa-book-open{--fa:"\\f518"}.fa-broadcast-tower,.fa-tower-broadcast{--fa:"\\f519"}.fa-broom{--fa:"\\f51a"}.fa-blackboard,.fa-chalkboard{--fa:"\\f51b"}.fa-chalkboard-teacher,.fa-chalkboard-user{--fa:"\\f51c"}.fa-church{--fa:"\\f51d"}.fa-coins{--fa:"\\f51e"}.fa-compact-disc{--fa:"\\f51f"}.fa-crow{--fa:"\\f520"}.fa-crown{--fa:"\\f521"}.fa-dice{--fa:"\\f522"}.fa-dice-five{--fa:"\\f523"}.fa-dice-four{--fa:"\\f524"}.fa-dice-one{--fa:"\\f525"}.fa-dice-six{--fa:"\\f526"}.fa-dice-three{--fa:"\\f527"}.fa-dice-two{--fa:"\\f528"}.fa-divide{--fa:"\\f529"}.fa-door-closed{--fa:"\\f52a"}.fa-door-open{--fa:"\\f52b"}.fa-feather{--fa:"\\f52d"}.fa-frog{--fa:"\\f52e"}.fa-gas-pump{--fa:"\\f52f"}.fa-glasses{--fa:"\\f530"}.fa-greater-than-equal{--fa:"\\f532"}.fa-helicopter{--fa:"\\f533"}.fa-infinity{--fa:"\\f534"}.fa-kiwi-bird{--fa:"\\f535"}.fa-less-than-equal{--fa:"\\f537"}.fa-memory{--fa:"\\f538"}.fa-microphone-alt-slash,.fa-microphone-lines-slash{--fa:"\\f539"}.fa-money-bill-wave{--fa:"\\f53a"}.fa-money-bill-1-wave,.fa-money-bill-wave-alt{--fa:"\\f53b"}.fa-money-check{--fa:"\\f53c"}.fa-money-check-alt,.fa-money-check-dollar{--fa:"\\f53d"}.fa-not-equal{--fa:"\\f53e"}.fa-palette{--fa:"\\f53f"}.fa-parking,.fa-square-parking{--fa:"\\f540"}.fa-diagram-project,.fa-project-diagram{--fa:"\\f542"}.fa-receipt{--fa:"\\f543"}.fa-robot{--fa:"\\f544"}.fa-ruler{--fa:"\\f545"}.fa-ruler-combined{--fa:"\\f546"}.fa-ruler-horizontal{--fa:"\\f547"}.fa-ruler-vertical{--fa:"\\f548"}.fa-school{--fa:"\\f549"}.fa-screwdriver{--fa:"\\f54a"}.fa-shoe-prints{--fa:"\\f54b"}.fa-skull{--fa:"\\f54c"}.fa-ban-smoking,.fa-smoking-ban{--fa:"\\f54d"}.fa-store{--fa:"\\f54e"}.fa-shop,.fa-store-alt{--fa:"\\f54f"}.fa-bars-staggered,.fa-reorder,.fa-stream{--fa:"\\f550"}.fa-stroopwafel{--fa:"\\f551"}.fa-toolbox{--fa:"\\f552"}.fa-shirt,.fa-t-shirt,.fa-tshirt{--fa:"\\f553"}.fa-person-walking,.fa-walking{--fa:"\\f554"}.fa-wallet{--fa:"\\f555"}.fa-angry,.fa-face-angry{--fa:"\\f556"}.fa-archway{--fa:"\\f557"}.fa-atlas,.fa-book-atlas{--fa:"\\f558"}.fa-award{--fa:"\\f559"}.fa-backspace,.fa-delete-left{--fa:"\\f55a"}.fa-bezier-curve{--fa:"\\f55b"}.fa-bong{--fa:"\\f55c"}.fa-brush{--fa:"\\f55d"}.fa-bus-alt,.fa-bus-simple{--fa:"\\f55e"}.fa-cannabis{--fa:"\\f55f"}.fa-check-double{--fa:"\\f560"}.fa-cocktail,.fa-martini-glass-citrus{--fa:"\\f561"}.fa-bell-concierge,.fa-concierge-bell{--fa:"\\f562"}.fa-cookie{--fa:"\\f563"}.fa-cookie-bite{--fa:"\\f564"}.fa-crop-alt,.fa-crop-simple{--fa:"\\f565"}.fa-digital-tachograph,.fa-tachograph-digital{--fa:"\\f566"}.fa-dizzy,.fa-face-dizzy{--fa:"\\f567"}.fa-compass-drafting,.fa-drafting-compass{--fa:"\\f568"}.fa-drum{--fa:"\\f569"}.fa-drum-steelpan{--fa:"\\f56a"}.fa-feather-alt,.fa-feather-pointed{--fa:"\\f56b"}.fa-file-contract{--fa:"\\f56c"}.fa-file-arrow-down,.fa-file-download{--fa:"\\f56d"}.fa-arrow-right-from-file,.fa-file-export{--fa:"\\f56e"}.fa-arrow-right-to-file,.fa-file-import{--fa:"\\f56f"}.fa-file-invoice{--fa:"\\f570"}.fa-file-invoice-dollar{--fa:"\\f571"}.fa-file-prescription{--fa:"\\f572"}.fa-file-signature{--fa:"\\f573"}.fa-file-arrow-up,.fa-file-upload{--fa:"\\f574"}.fa-fill{--fa:"\\f575"}.fa-fill-drip{--fa:"\\f576"}.fa-fingerprint{--fa:"\\f577"}.fa-fish{--fa:"\\f578"}.fa-face-flushed,.fa-flushed{--fa:"\\f579"}.fa-face-frown-open,.fa-frown-open{--fa:"\\f57a"}.fa-glass-martini-alt,.fa-martini-glass{--fa:"\\f57b"}.fa-earth-africa,.fa-globe-africa{--fa:"\\f57c"}.fa-earth,.fa-earth-america,.fa-earth-americas,.fa-globe-americas{--fa:"\\f57d"}.fa-earth-asia,.fa-globe-asia{--fa:"\\f57e"}.fa-face-grimace,.fa-grimace{--fa:"\\f57f"}.fa-face-grin,.fa-grin{--fa:"\\f580"}.fa-face-grin-wide,.fa-grin-alt{--fa:"\\f581"}.fa-face-grin-beam,.fa-grin-beam{--fa:"\\f582"}.fa-face-grin-beam-sweat,.fa-grin-beam-sweat{--fa:"\\f583"}.fa-face-grin-hearts,.fa-grin-hearts{--fa:"\\f584"}.fa-face-grin-squint,.fa-grin-squint{--fa:"\\f585"}.fa-face-grin-squint-tears,.fa-grin-squint-tears{--fa:"\\f586"}.fa-face-grin-stars,.fa-grin-stars{--fa:"\\f587"}.fa-face-grin-tears,.fa-grin-tears{--fa:"\\f588"}.fa-face-grin-tongue,.fa-grin-tongue{--fa:"\\f589"}.fa-face-grin-tongue-squint,.fa-grin-tongue-squint{--fa:"\\f58a"}.fa-face-grin-tongue-wink,.fa-grin-tongue-wink{--fa:"\\f58b"}.fa-face-grin-wink,.fa-grin-wink{--fa:"\\f58c"}.fa-grid-horizontal,.fa-grip,.fa-grip-horizontal{--fa:"\\f58d"}.fa-grid-vertical,.fa-grip-vertical{--fa:"\\f58e"}.fa-headset{--fa:"\\f590"}.fa-highlighter{--fa:"\\f591"}.fa-hot-tub,.fa-hot-tub-person{--fa:"\\f593"}.fa-hotel{--fa:"\\f594"}.fa-joint{--fa:"\\f595"}.fa-face-kiss,.fa-kiss{--fa:"\\f596"}.fa-face-kiss-beam,.fa-kiss-beam{--fa:"\\f597"}.fa-face-kiss-wink-heart,.fa-kiss-wink-heart{--fa:"\\f598"}.fa-face-laugh,.fa-laugh{--fa:"\\f599"}.fa-face-laugh-beam,.fa-laugh-beam{--fa:"\\f59a"}.fa-face-laugh-squint,.fa-laugh-squint{--fa:"\\f59b"}.fa-face-laugh-wink,.fa-laugh-wink{--fa:"\\f59c"}.fa-cart-flatbed-suitcase,.fa-luggage-cart{--fa:"\\f59d"}.fa-map-location,.fa-map-marked{--fa:"\\f59f"}.fa-map-location-dot,.fa-map-marked-alt{--fa:"\\f5a0"}.fa-marker{--fa:"\\f5a1"}.fa-medal{--fa:"\\f5a2"}.fa-face-meh-blank,.fa-meh-blank{--fa:"\\f5a4"}.fa-face-rolling-eyes,.fa-meh-rolling-eyes{--fa:"\\f5a5"}.fa-monument{--fa:"\\f5a6"}.fa-mortar-pestle{--fa:"\\f5a7"}.fa-paint-roller{--fa:"\\f5aa"}.fa-passport{--fa:"\\f5ab"}.fa-pen-fancy{--fa:"\\f5ac"}.fa-pen-nib{--fa:"\\f5ad"}.fa-pen-ruler,.fa-pencil-ruler{--fa:"\\f5ae"}.fa-plane-arrival{--fa:"\\f5af"}.fa-plane-departure{--fa:"\\f5b0"}.fa-prescription{--fa:"\\f5b1"}.fa-face-sad-cry,.fa-sad-cry{--fa:"\\f5b3"}.fa-face-sad-tear,.fa-sad-tear{--fa:"\\f5b4"}.fa-shuttle-van,.fa-van-shuttle{--fa:"\\f5b6"}.fa-signature{--fa:"\\f5b7"}.fa-face-smile-beam,.fa-smile-beam{--fa:"\\f5b8"}.fa-solar-panel{--fa:"\\f5ba"}.fa-spa{--fa:"\\f5bb"}.fa-splotch{--fa:"\\f5bc"}.fa-spray-can{--fa:"\\f5bd"}.fa-stamp{--fa:"\\f5bf"}.fa-star-half-alt,.fa-star-half-stroke{--fa:"\\f5c0"}.fa-suitcase-rolling{--fa:"\\f5c1"}.fa-face-surprise,.fa-surprise{--fa:"\\f5c2"}.fa-swatchbook{--fa:"\\f5c3"}.fa-person-swimming,.fa-swimmer{--fa:"\\f5c4"}.fa-ladder-water,.fa-swimming-pool,.fa-water-ladder{--fa:"\\f5c5"}.fa-droplet-slash,.fa-tint-slash{--fa:"\\f5c7"}.fa-face-tired,.fa-tired{--fa:"\\f5c8"}.fa-tooth{--fa:"\\f5c9"}.fa-umbrella-beach{--fa:"\\f5ca"}.fa-weight-hanging{--fa:"\\f5cd"}.fa-wine-glass-alt,.fa-wine-glass-empty{--fa:"\\f5ce"}.fa-air-freshener,.fa-spray-can-sparkles{--fa:"\\f5d0"}.fa-apple-alt,.fa-apple-whole{--fa:"\\f5d1"}.fa-atom{--fa:"\\f5d2"}.fa-bone{--fa:"\\f5d7"}.fa-book-open-reader,.fa-book-reader{--fa:"\\f5da"}.fa-brain{--fa:"\\f5dc"}.fa-car-alt,.fa-car-rear{--fa:"\\f5de"}.fa-battery-car,.fa-car-battery{--fa:"\\f5df"}.fa-car-burst,.fa-car-crash{--fa:"\\f5e1"}.fa-car-side{--fa:"\\f5e4"}.fa-charging-station{--fa:"\\f5e7"}.fa-diamond-turn-right,.fa-directions{--fa:"\\f5eb"}.fa-draw-polygon,.fa-vector-polygon{--fa:"\\f5ee"}.fa-laptop-code{--fa:"\\f5fc"}.fa-layer-group{--fa:"\\f5fd"}.fa-location,.fa-location-crosshairs{--fa:"\\f601"}.fa-lungs{--fa:"\\f604"}.fa-microscope{--fa:"\\f610"}.fa-oil-can{--fa:"\\f613"}.fa-poop{--fa:"\\f619"}.fa-shapes,.fa-triangle-circle-square{--fa:"\\f61f"}.fa-star-of-life{--fa:"\\f621"}.fa-dashboard,.fa-gauge,.fa-gauge-med,.fa-tachometer-alt-average{--fa:"\\f624"}.fa-gauge-high,.fa-tachometer-alt,.fa-tachometer-alt-fast{--fa:"\\f625"}.fa-gauge-simple,.fa-gauge-simple-med,.fa-tachometer-average{--fa:"\\f629"}.fa-gauge-simple-high,.fa-tachometer,.fa-tachometer-fast{--fa:"\\f62a"}.fa-teeth{--fa:"\\f62e"}.fa-teeth-open{--fa:"\\f62f"}.fa-masks-theater,.fa-theater-masks{--fa:"\\f630"}.fa-traffic-light{--fa:"\\f637"}.fa-truck-monster{--fa:"\\f63b"}.fa-truck-pickup{--fa:"\\f63c"}.fa-ad,.fa-rectangle-ad{--fa:"\\f641"}.fa-ankh{--fa:"\\f644"}.fa-bible,.fa-book-bible{--fa:"\\f647"}.fa-briefcase-clock,.fa-business-time{--fa:"\\f64a"}.fa-city{--fa:"\\f64f"}.fa-comment-dollar{--fa:"\\f651"}.fa-comments-dollar{--fa:"\\f653"}.fa-cross{--fa:"\\f654"}.fa-dharmachakra{--fa:"\\f655"}.fa-envelope-open-text{--fa:"\\f658"}.fa-folder-minus{--fa:"\\f65d"}.fa-folder-plus{--fa:"\\f65e"}.fa-filter-circle-dollar,.fa-funnel-dollar{--fa:"\\f662"}.fa-gopuram{--fa:"\\f664"}.fa-hamsa{--fa:"\\f665"}.fa-bahai,.fa-haykal{--fa:"\\f666"}.fa-jedi{--fa:"\\f669"}.fa-book-journal-whills,.fa-journal-whills{--fa:"\\f66a"}.fa-kaaba{--fa:"\\f66b"}.fa-khanda{--fa:"\\f66d"}.fa-landmark{--fa:"\\f66f"}.fa-envelopes-bulk,.fa-mail-bulk{--fa:"\\f674"}.fa-menorah{--fa:"\\f676"}.fa-mosque{--fa:"\\f678"}.fa-om{--fa:"\\f679"}.fa-pastafarianism,.fa-spaghetti-monster-flying{--fa:"\\f67b"}.fa-peace{--fa:"\\f67c"}.fa-place-of-worship{--fa:"\\f67f"}.fa-poll,.fa-square-poll-vertical{--fa:"\\f681"}.fa-poll-h,.fa-square-poll-horizontal{--fa:"\\f682"}.fa-person-praying,.fa-pray{--fa:"\\f683"}.fa-hands-praying,.fa-praying-hands{--fa:"\\f684"}.fa-book-quran,.fa-quran{--fa:"\\f687"}.fa-magnifying-glass-dollar,.fa-search-dollar{--fa:"\\f688"}.fa-magnifying-glass-location,.fa-search-location{--fa:"\\f689"}.fa-socks{--fa:"\\f696"}.fa-square-root-alt,.fa-square-root-variable{--fa:"\\f698"}.fa-star-and-crescent{--fa:"\\f699"}.fa-star-of-david{--fa:"\\f69a"}.fa-synagogue{--fa:"\\f69b"}.fa-scroll-torah,.fa-torah{--fa:"\\f6a0"}.fa-torii-gate{--fa:"\\f6a1"}.fa-vihara{--fa:"\\f6a7"}.fa-volume,.fa-volume-medium{--fa:"\\f6a8"}.fa-volume-mute,.fa-volume-times,.fa-volume-xmark{--fa:"\\f6a9"}.fa-yin-yang{--fa:"\\f6ad"}.fa-blender-phone{--fa:"\\f6b6"}.fa-book-dead,.fa-book-skull{--fa:"\\f6b7"}.fa-campground{--fa:"\\f6bb"}.fa-cat{--fa:"\\f6be"}.fa-chair{--fa:"\\f6c0"}.fa-cloud-moon{--fa:"\\f6c3"}.fa-cloud-sun{--fa:"\\f6c4"}.fa-cow{--fa:"\\f6c8"}.fa-dice-d20{--fa:"\\f6cf"}.fa-dice-d6{--fa:"\\f6d1"}.fa-dog{--fa:"\\f6d3"}.fa-dragon{--fa:"\\f6d5"}.fa-drumstick-bite{--fa:"\\f6d7"}.fa-dungeon{--fa:"\\f6d9"}.fa-file-csv{--fa:"\\f6dd"}.fa-fist-raised,.fa-hand-fist{--fa:"\\f6de"}.fa-ghost{--fa:"\\f6e2"}.fa-hammer{--fa:"\\f6e3"}.fa-hanukiah{--fa:"\\f6e6"}.fa-hat-wizard{--fa:"\\f6e8"}.fa-hiking,.fa-person-hiking{--fa:"\\f6ec"}.fa-hippo{--fa:"\\f6ed"}.fa-horse{--fa:"\\f6f0"}.fa-house-chimney-crack,.fa-house-damage{--fa:"\\f6f1"}.fa-hryvnia,.fa-hryvnia-sign{--fa:"\\f6f2"}.fa-mask{--fa:"\\f6fa"}.fa-mountain{--fa:"\\f6fc"}.fa-network-wired{--fa:"\\f6ff"}.fa-otter{--fa:"\\f700"}.fa-ring{--fa:"\\f70b"}.fa-person-running,.fa-running{--fa:"\\f70c"}.fa-scroll{--fa:"\\f70e"}.fa-skull-crossbones{--fa:"\\f714"}.fa-slash{--fa:"\\f715"}.fa-spider{--fa:"\\f717"}.fa-toilet-paper,.fa-toilet-paper-alt,.fa-toilet-paper-blank{--fa:"\\f71e"}.fa-tractor{--fa:"\\f722"}.fa-user-injured{--fa:"\\f728"}.fa-vr-cardboard{--fa:"\\f729"}.fa-wand-sparkles{--fa:"\\f72b"}.fa-wind{--fa:"\\f72e"}.fa-wine-bottle{--fa:"\\f72f"}.fa-cloud-meatball{--fa:"\\f73b"}.fa-cloud-moon-rain{--fa:"\\f73c"}.fa-cloud-rain{--fa:"\\f73d"}.fa-cloud-showers-heavy{--fa:"\\f740"}.fa-cloud-sun-rain{--fa:"\\f743"}.fa-democrat{--fa:"\\f747"}.fa-flag-usa{--fa:"\\f74d"}.fa-hurricane{--fa:"\\f751"}.fa-landmark-alt,.fa-landmark-dome{--fa:"\\f752"}.fa-meteor{--fa:"\\f753"}.fa-person-booth{--fa:"\\f756"}.fa-poo-bolt,.fa-poo-storm{--fa:"\\f75a"}.fa-rainbow{--fa:"\\f75b"}.fa-republican{--fa:"\\f75e"}.fa-smog{--fa:"\\f75f"}.fa-temperature-high{--fa:"\\f769"}.fa-temperature-low{--fa:"\\f76b"}.fa-cloud-bolt,.fa-thunderstorm{--fa:"\\f76c"}.fa-tornado{--fa:"\\f76f"}.fa-volcano{--fa:"\\f770"}.fa-check-to-slot,.fa-vote-yea{--fa:"\\f772"}.fa-water{--fa:"\\f773"}.fa-baby{--fa:"\\f77c"}.fa-baby-carriage,.fa-carriage-baby{--fa:"\\f77d"}.fa-biohazard{--fa:"\\f780"}.fa-blog{--fa:"\\f781"}.fa-calendar-day{--fa:"\\f783"}.fa-calendar-week{--fa:"\\f784"}.fa-candy-cane{--fa:"\\f786"}.fa-carrot{--fa:"\\f787"}.fa-cash-register{--fa:"\\f788"}.fa-compress-arrows-alt,.fa-minimize{--fa:"\\f78c"}.fa-dumpster{--fa:"\\f793"}.fa-dumpster-fire{--fa:"\\f794"}.fa-ethernet{--fa:"\\f796"}.fa-gifts{--fa:"\\f79c"}.fa-champagne-glasses,.fa-glass-cheers{--fa:"\\f79f"}.fa-glass-whiskey,.fa-whiskey-glass{--fa:"\\f7a0"}.fa-earth-europe,.fa-globe-europe{--fa:"\\f7a2"}.fa-grip-lines{--fa:"\\f7a4"}.fa-grip-lines-vertical{--fa:"\\f7a5"}.fa-guitar{--fa:"\\f7a6"}.fa-heart-broken,.fa-heart-crack{--fa:"\\f7a9"}.fa-holly-berry{--fa:"\\f7aa"}.fa-horse-head{--fa:"\\f7ab"}.fa-icicles{--fa:"\\f7ad"}.fa-igloo{--fa:"\\f7ae"}.fa-mitten{--fa:"\\f7b5"}.fa-mug-hot{--fa:"\\f7b6"}.fa-radiation{--fa:"\\f7b9"}.fa-circle-radiation,.fa-radiation-alt{--fa:"\\f7ba"}.fa-restroom{--fa:"\\f7bd"}.fa-satellite{--fa:"\\f7bf"}.fa-satellite-dish{--fa:"\\f7c0"}.fa-sd-card{--fa:"\\f7c2"}.fa-sim-card{--fa:"\\f7c4"}.fa-person-skating,.fa-skating{--fa:"\\f7c5"}.fa-person-skiing,.fa-skiing{--fa:"\\f7c9"}.fa-person-skiing-nordic,.fa-skiing-nordic{--fa:"\\f7ca"}.fa-sleigh{--fa:"\\f7cc"}.fa-comment-sms,.fa-sms{--fa:"\\f7cd"}.fa-person-snowboarding,.fa-snowboarding{--fa:"\\f7ce"}.fa-snowman{--fa:"\\f7d0"}.fa-snowplow{--fa:"\\f7d2"}.fa-tenge,.fa-tenge-sign{--fa:"\\f7d7"}.fa-toilet{--fa:"\\f7d8"}.fa-screwdriver-wrench,.fa-tools{--fa:"\\f7d9"}.fa-cable-car,.fa-tram{--fa:"\\f7da"}.fa-fire-alt,.fa-fire-flame-curved{--fa:"\\f7e4"}.fa-bacon{--fa:"\\f7e5"}.fa-book-medical{--fa:"\\f7e6"}.fa-bread-slice{--fa:"\\f7ec"}.fa-cheese{--fa:"\\f7ef"}.fa-clinic-medical,.fa-house-chimney-medical{--fa:"\\f7f2"}.fa-clipboard-user{--fa:"\\f7f3"}.fa-comment-medical{--fa:"\\f7f5"}.fa-crutch{--fa:"\\f7f7"}.fa-disease{--fa:"\\f7fa"}.fa-egg{--fa:"\\f7fb"}.fa-folder-tree{--fa:"\\f802"}.fa-burger,.fa-hamburger{--fa:"\\f805"}.fa-hand-middle-finger{--fa:"\\f806"}.fa-hard-hat,.fa-hat-hard,.fa-helmet-safety{--fa:"\\f807"}.fa-hospital-user{--fa:"\\f80d"}.fa-hotdog{--fa:"\\f80f"}.fa-ice-cream{--fa:"\\f810"}.fa-laptop-medical{--fa:"\\f812"}.fa-pager{--fa:"\\f815"}.fa-pepper-hot{--fa:"\\f816"}.fa-pizza-slice{--fa:"\\f818"}.fa-sack-dollar{--fa:"\\f81d"}.fa-book-tanakh,.fa-tanakh{--fa:"\\f827"}.fa-bars-progress,.fa-tasks-alt{--fa:"\\f828"}.fa-trash-arrow-up,.fa-trash-restore{--fa:"\\f829"}.fa-trash-can-arrow-up,.fa-trash-restore-alt{--fa:"\\f82a"}.fa-user-nurse{--fa:"\\f82f"}.fa-wave-square{--fa:"\\f83e"}.fa-biking,.fa-person-biking{--fa:"\\f84a"}.fa-border-all{--fa:"\\f84c"}.fa-border-none{--fa:"\\f850"}.fa-border-style,.fa-border-top-left{--fa:"\\f853"}.fa-digging,.fa-person-digging{--fa:"\\f85e"}.fa-fan{--fa:"\\f863"}.fa-heart-music-camera-bolt,.fa-icons{--fa:"\\f86d"}.fa-phone-alt,.fa-phone-flip{--fa:"\\f879"}.fa-phone-square-alt,.fa-square-phone-flip{--fa:"\\f87b"}.fa-photo-film,.fa-photo-video{--fa:"\\f87c"}.fa-remove-format,.fa-text-slash{--fa:"\\f87d"}.fa-arrow-down-z-a,.fa-sort-alpha-desc,.fa-sort-alpha-down-alt{--fa:"\\f881"}.fa-arrow-up-z-a,.fa-sort-alpha-up-alt{--fa:"\\f882"}.fa-arrow-down-short-wide,.fa-sort-amount-desc,.fa-sort-amount-down-alt{--fa:"\\f884"}.fa-arrow-up-short-wide,.fa-sort-amount-up-alt{--fa:"\\f885"}.fa-arrow-down-9-1,.fa-sort-numeric-desc,.fa-sort-numeric-down-alt{--fa:"\\f886"}.fa-arrow-up-9-1,.fa-sort-numeric-up-alt{--fa:"\\f887"}.fa-spell-check{--fa:"\\f891"}.fa-voicemail{--fa:"\\f897"}.fa-hat-cowboy{--fa:"\\f8c0"}.fa-hat-cowboy-side{--fa:"\\f8c1"}.fa-computer-mouse,.fa-mouse{--fa:"\\f8cc"}.fa-radio{--fa:"\\f8d7"}.fa-record-vinyl{--fa:"\\f8d9"}.fa-walkie-talkie{--fa:"\\f8ef"}.fa-caravan{--fa:"\\f8ff"}:host,:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}@font-face{font-family:"Font Awesome 7 Brands";font-style:normal;font-weight:400;font-display:block;src:url(data:font/woff2;base64,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)}.fa-brands,.fa-classic.fa-brands,.fab{--fa-family:var(--fa-family-brands);--fa-style:400}.fa-firefox-browser{--fa:"\\e007"}.fa-ideal{--fa:"\\e013"}.fa-microblog{--fa:"\\e01a"}.fa-pied-piper-square,.fa-square-pied-piper{--fa:"\\e01e"}.fa-unity{--fa:"\\e049"}.fa-dailymotion{--fa:"\\e052"}.fa-instagram-square,.fa-square-instagram{--fa:"\\e055"}.fa-mixer{--fa:"\\e056"}.fa-shopify{--fa:"\\e057"}.fa-deezer{--fa:"\\e077"}.fa-edge-legacy{--fa:"\\e078"}.fa-google-pay{--fa:"\\e079"}.fa-rust{--fa:"\\e07a"}.fa-tiktok{--fa:"\\e07b"}.fa-unsplash{--fa:"\\e07c"}.fa-cloudflare{--fa:"\\e07d"}.fa-guilded{--fa:"\\e07e"}.fa-hive{--fa:"\\e07f"}.fa-42-group,.fa-innosoft{--fa:"\\e080"}.fa-instalod{--fa:"\\e081"}.fa-octopus-deploy{--fa:"\\e082"}.fa-perbyte{--fa:"\\e083"}.fa-uncharted{--fa:"\\e084"}.fa-watchman-monitoring{--fa:"\\e087"}.fa-wodu{--fa:"\\e088"}.fa-wirsindhandwerk,.fa-wsh{--fa:"\\e2d0"}.fa-bots{--fa:"\\e340"}.fa-cmplid{--fa:"\\e360"}.fa-bilibili{--fa:"\\e3d9"}.fa-golang{--fa:"\\e40f"}.fa-pix{--fa:"\\e43a"}.fa-sitrox{--fa:"\\e44a"}.fa-hashnode{--fa:"\\e499"}.fa-meta{--fa:"\\e49b"}.fa-padlet{--fa:"\\e4a0"}.fa-nfc-directional{--fa:"\\e530"}.fa-nfc-symbol{--fa:"\\e531"}.fa-screenpal{--fa:"\\e570"}.fa-space-awesome{--fa:"\\e5ac"}.fa-square-font-awesome{--fa:"\\e5ad"}.fa-gitlab-square,.fa-square-gitlab{--fa:"\\e5ae"}.fa-odysee{--fa:"\\e5c6"}.fa-stubber{--fa:"\\e5c7"}.fa-debian{--fa:"\\e60b"}.fa-shoelace{--fa:"\\e60c"}.fa-threads{--fa:"\\e618"}.fa-square-threads{--fa:"\\e619"}.fa-square-x-twitter{--fa:"\\e61a"}.fa-x-twitter{--fa:"\\e61b"}.fa-opensuse{--fa:"\\e62b"}.fa-letterboxd{--fa:"\\e62d"}.fa-square-letterboxd{--fa:"\\e62e"}.fa-mintbit{--fa:"\\e62f"}.fa-google-scholar{--fa:"\\e63b"}.fa-brave{--fa:"\\e63c"}.fa-brave-reverse{--fa:"\\e63d"}.fa-pixiv{--fa:"\\e640"}.fa-upwork{--fa:"\\e641"}.fa-webflow{--fa:"\\e65c"}.fa-signal-messenger{--fa:"\\e663"}.fa-bluesky{--fa:"\\e671"}.fa-jxl{--fa:"\\e67b"}.fa-square-upwork{--fa:"\\e67c"}.fa-web-awesome{--fa:"\\e682"}.fa-square-web-awesome{--fa:"\\e683"}.fa-square-web-awesome-stroke{--fa:"\\e684"}.fa-dart-lang{--fa:"\\e693"}.fa-flutter{--fa:"\\e694"}.fa-files-pinwheel{--fa:"\\e69f"}.fa-css{--fa:"\\e6a2"}.fa-square-bluesky{--fa:"\\e6a3"}.fa-openai{--fa:"\\e7cf"}.fa-square-linkedin{--fa:"\\e7d0"}.fa-cash-app{--fa:"\\e7d4"}.fa-disqus{--fa:"\\e7d5"}.fa-11ty,.fa-eleventy{--fa:"\\e7d6"}.fa-kakao-talk{--fa:"\\e7d7"}.fa-linktree{--fa:"\\e7d8"}.fa-notion{--fa:"\\e7d9"}.fa-pandora{--fa:"\\e7da"}.fa-pixelfed{--fa:"\\e7db"}.fa-tidal{--fa:"\\e7dc"}.fa-vsco{--fa:"\\e7dd"}.fa-w3c{--fa:"\\e7de"}.fa-lumon{--fa:"\\e7e2"}.fa-lumon-drop{--fa:"\\e7e3"}.fa-square-figma{--fa:"\\e7e4"}.fa-tex{--fa:"\\e7ff"}.fa-duolingo{--fa:"\\e812"}.fa-supportnow{--fa:"\\e833"}.fa-tor-browser{--fa:"\\e838"}.fa-typescript{--fa:"\\e840"}.fa-square-deskpro{--fa:"\\e844"}.fa-circle-zulip{--fa:"\\e851"}.fa-julia{--fa:"\\e852"}.fa-zulip{--fa:"\\e853"}.fa-unison{--fa:"\\e854"}.fa-bgg,.fa-board-game-geek{--fa:"\\e855"}.fa-ko-fi{--fa:"\\e856"}.fa-kubernetes{--fa:"\\e857"}.fa-postgresql{--fa:"\\e858"}.fa-scaleway{--fa:"\\e859"}.fa-venmo{--fa:"\\e85a"}.fa-venmo-v{--fa:"\\e85b"}.fa-unreal-engine{--fa:"\\e85c"}.fa-globaleaks{--fa:"\\e85d"}.fa-solana{--fa:"\\e85e"}.fa-threema{--fa:"\\e85f"}.fa-forgejo{--fa:"\\e860"}.fa-claude{--fa:"\\e861"}.fa-gitee{--fa:"\\e863"}.fa-xmpp{--fa:"\\e864"}.fa-fediverse{--fa:"\\e865"}.fa-tailwind-css{--fa:"\\e866"}.fa-arch-linux{--fa:"\\e867"}.fa-svelte{--fa:"\\e868"}.fa-hugging-face{--fa:"\\e869"}.fa-leetcode{--fa:"\\e86a"}.fa-openstreetmap{--fa:"\\e86b"}.fa-ultralytics{--fa:"\\e86d"}.fa-ultralytics-hub{--fa:"\\e86e"}.fa-ultralytics-yolo{--fa:"\\e86f"}.fa-obsidian{--fa:"\\e879"}.fa-zoom{--fa:"\\e87b"}.fa-vim{--fa:"\\e88a"}.fa-symfonycasts{--fa:"\\e8ab"}.fa-square-twitter,.fa-twitter-square{--fa:"\\f081"}.fa-facebook-square,.fa-square-facebook{--fa:"\\f082"}.fa-linkedin{--fa:"\\f08c"}.fa-github-square,.fa-square-github{--fa:"\\f092"}.fa-twitter{--fa:"\\f099"}.fa-facebook{--fa:"\\f09a"}.fa-github{--fa:"\\f09b"}.fa-pinterest{--fa:"\\f0d2"}.fa-pinterest-square,.fa-square-pinterest{--fa:"\\f0d3"}.fa-google-plus-square,.fa-square-google-plus{--fa:"\\f0d4"}.fa-google-plus-g{--fa:"\\f0d5"}.fa-linkedin-in{--fa:"\\f0e1"}.fa-github-alt{--fa:"\\f113"}.fa-maxcdn{--fa:"\\f136"}.fa-html5{--fa:"\\f13b"}.fa-css3{--fa:"\\f13c"}.fa-btc{--fa:"\\f15a"}.fa-youtube{--fa:"\\f167"}.fa-xing{--fa:"\\f168"}.fa-square-xing,.fa-xing-square{--fa:"\\f169"}.fa-dropbox{--fa:"\\f16b"}.fa-stack-overflow{--fa:"\\f16c"}.fa-instagram{--fa:"\\f16d"}.fa-flickr{--fa:"\\f16e"}.fa-adn{--fa:"\\f170"}.fa-bitbucket{--fa:"\\f171"}.fa-tumblr{--fa:"\\f173"}.fa-square-tumblr,.fa-tumblr-square{--fa:"\\f174"}.fa-apple{--fa:"\\f179"}.fa-windows{--fa:"\\f17a"}.fa-android{--fa:"\\f17b"}.fa-linux{--fa:"\\f17c"}.fa-dribbble{--fa:"\\f17d"}.fa-skype{--fa:"\\f17e"}.fa-foursquare{--fa:"\\f180"}.fa-trello{--fa:"\\f181"}.fa-gratipay{--fa:"\\f184"}.fa-vk{--fa:"\\f189"}.fa-weibo{--fa:"\\f18a"}.fa-renren{--fa:"\\f18b"}.fa-pagelines{--fa:"\\f18c"}.fa-stack-exchange{--fa:"\\f18d"}.fa-square-vimeo,.fa-vimeo-square{--fa:"\\f194"}.fa-slack,.fa-slack-hash{--fa:"\\f198"}.fa-wordpress{--fa:"\\f19a"}.fa-openid{--fa:"\\f19b"}.fa-yahoo{--fa:"\\f19e"}.fa-google{--fa:"\\f1a0"}.fa-reddit{--fa:"\\f1a1"}.fa-reddit-square,.fa-square-reddit{--fa:"\\f1a2"}.fa-stumbleupon-circle{--fa:"\\f1a3"}.fa-stumbleupon{--fa:"\\f1a4"}.fa-delicious{--fa:"\\f1a5"}.fa-digg{--fa:"\\f1a6"}.fa-pied-piper-pp{--fa:"\\f1a7"}.fa-pied-piper-alt{--fa:"\\f1a8"}.fa-drupal{--fa:"\\f1a9"}.fa-joomla{--fa:"\\f1aa"}.fa-behance{--fa:"\\f1b4"}.fa-behance-square,.fa-square-behance{--fa:"\\f1b5"}.fa-steam{--fa:"\\f1b6"}.fa-square-steam,.fa-steam-square{--fa:"\\f1b7"}.fa-spotify{--fa:"\\f1bc"}.fa-deviantart{--fa:"\\f1bd"}.fa-soundcloud{--fa:"\\f1be"}.fa-vine{--fa:"\\f1ca"}.fa-codepen{--fa:"\\f1cb"}.fa-jsfiddle{--fa:"\\f1cc"}.fa-rebel{--fa:"\\f1d0"}.fa-empire{--fa:"\\f1d1"}.fa-git-square,.fa-square-git{--fa:"\\f1d2"}.fa-git{--fa:"\\f1d3"}.fa-hacker-news{--fa:"\\f1d4"}.fa-tencent-weibo{--fa:"\\f1d5"}.fa-qq{--fa:"\\f1d6"}.fa-weixin{--fa:"\\f1d7"}.fa-slideshare{--fa:"\\f1e7"}.fa-twitch{--fa:"\\f1e8"}.fa-yelp{--fa:"\\f1e9"}.fa-paypal{--fa:"\\f1ed"}.fa-google-wallet{--fa:"\\f1ee"}.fa-cc-visa{--fa:"\\f1f0"}.fa-cc-mastercard{--fa:"\\f1f1"}.fa-cc-discover{--fa:"\\f1f2"}.fa-cc-amex{--fa:"\\f1f3"}.fa-cc-paypal{--fa:"\\f1f4"}.fa-cc-stripe{--fa:"\\f1f5"}.fa-lastfm{--fa:"\\f202"}.fa-lastfm-square,.fa-square-lastfm{--fa:"\\f203"}.fa-ioxhost{--fa:"\\f208"}.fa-angellist{--fa:"\\f209"}.fa-buysellads{--fa:"\\f20d"}.fa-connectdevelop{--fa:"\\f20e"}.fa-dashcube{--fa:"\\f210"}.fa-forumbee{--fa:"\\f211"}.fa-leanpub{--fa:"\\f212"}.fa-sellsy{--fa:"\\f213"}.fa-shirtsinbulk{--fa:"\\f214"}.fa-simplybuilt{--fa:"\\f215"}.fa-skyatlas{--fa:"\\f216"}.fa-pinterest-p{--fa:"\\f231"}.fa-whatsapp{--fa:"\\f232"}.fa-viacoin{--fa:"\\f237"}.fa-medium,.fa-medium-m{--fa:"\\f23a"}.fa-y-combinator{--fa:"\\f23b"}.fa-optin-monster{--fa:"\\f23c"}.fa-opencart{--fa:"\\f23d"}.fa-expeditedssl{--fa:"\\f23e"}.fa-cc-jcb{--fa:"\\f24b"}.fa-cc-diners-club{--fa:"\\f24c"}.fa-creative-commons{--fa:"\\f25e"}.fa-gg{--fa:"\\f260"}.fa-gg-circle{--fa:"\\f261"}.fa-odnoklassniki{--fa:"\\f263"}.fa-odnoklassniki-square,.fa-square-odnoklassniki{--fa:"\\f264"}.fa-get-pocket{--fa:"\\f265"}.fa-wikipedia-w{--fa:"\\f266"}.fa-safari{--fa:"\\f267"}.fa-chrome{--fa:"\\f268"}.fa-firefox{--fa:"\\f269"}.fa-opera{--fa:"\\f26a"}.fa-internet-explorer{--fa:"\\f26b"}.fa-contao{--fa:"\\f26d"}.fa-500px{--fa:"\\f26e"}.fa-amazon{--fa:"\\f270"}.fa-houzz{--fa:"\\f27c"}.fa-vimeo-v{--fa:"\\f27d"}.fa-black-tie{--fa:"\\f27e"}.fa-fonticons{--fa:"\\f280"}.fa-reddit-alien{--fa:"\\f281"}.fa-edge{--fa:"\\f282"}.fa-codiepie{--fa:"\\f284"}.fa-modx{--fa:"\\f285"}.fa-fort-awesome{--fa:"\\f286"}.fa-usb{--fa:"\\f287"}.fa-product-hunt{--fa:"\\f288"}.fa-mixcloud{--fa:"\\f289"}.fa-scribd{--fa:"\\f28a"}.fa-bluetooth{--fa:"\\f293"}.fa-bluetooth-b{--fa:"\\f294"}.fa-gitlab{--fa:"\\f296"}.fa-wpbeginner{--fa:"\\f297"}.fa-wpforms{--fa:"\\f298"}.fa-envira{--fa:"\\f299"}.fa-glide{--fa:"\\f2a5"}.fa-glide-g{--fa:"\\f2a6"}.fa-viadeo{--fa:"\\f2a9"}.fa-square-viadeo,.fa-viadeo-square{--fa:"\\f2aa"}.fa-snapchat,.fa-snapchat-ghost{--fa:"\\f2ab"}.fa-snapchat-square,.fa-square-snapchat{--fa:"\\f2ad"}.fa-pied-piper{--fa:"\\f2ae"}.fa-first-order{--fa:"\\f2b0"}.fa-yoast{--fa:"\\f2b1"}.fa-themeisle{--fa:"\\f2b2"}.fa-google-plus{--fa:"\\f2b3"}.fa-font-awesome,.fa-font-awesome-flag,.fa-font-awesome-logo-full{--fa:"\\f2b4"}.fa-linode{--fa:"\\f2b8"}.fa-quora{--fa:"\\f2c4"}.fa-free-code-camp{--fa:"\\f2c5"}.fa-telegram,.fa-telegram-plane{--fa:"\\f2c6"}.fa-bandcamp{--fa:"\\f2d5"}.fa-grav{--fa:"\\f2d6"}.fa-etsy{--fa:"\\f2d7"}.fa-imdb{--fa:"\\f2d8"}.fa-ravelry{--fa:"\\f2d9"}.fa-sellcast{--fa:"\\f2da"}.fa-superpowers{--fa:"\\f2dd"}.fa-wpexplorer{--fa:"\\f2de"}.fa-meetup{--fa:"\\f2e0"}.fa-font-awesome-alt,.fa-square-font-awesome-stroke{--fa:"\\f35c"}.fa-accessible-icon{--fa:"\\f368"}.fa-accusoft{--fa:"\\f369"}.fa-adversal{--fa:"\\f36a"}.fa-affiliatetheme{--fa:"\\f36b"}.fa-algolia{--fa:"\\f36c"}.fa-amilia{--fa:"\\f36d"}.fa-angrycreative{--fa:"\\f36e"}.fa-app-store{--fa:"\\f36f"}.fa-app-store-ios{--fa:"\\f370"}.fa-apper{--fa:"\\f371"}.fa-asymmetrik{--fa:"\\f372"}.fa-audible{--fa:"\\f373"}.fa-avianex{--fa:"\\f374"}.fa-aws{--fa:"\\f375"}.fa-bimobject{--fa:"\\f378"}.fa-bitcoin{--fa:"\\f379"}.fa-bity{--fa:"\\f37a"}.fa-blackberry{--fa:"\\f37b"}.fa-blogger{--fa:"\\f37c"}.fa-blogger-b{--fa:"\\f37d"}.fa-buromobelexperte{--fa:"\\f37f"}.fa-centercode{--fa:"\\f380"}.fa-cloudscale{--fa:"\\f383"}.fa-cloudsmith{--fa:"\\f384"}.fa-cloudversify{--fa:"\\f385"}.fa-cpanel{--fa:"\\f388"}.fa-css3-alt{--fa:"\\f38b"}.fa-cuttlefish{--fa:"\\f38c"}.fa-d-and-d{--fa:"\\f38d"}.fa-deploydog{--fa:"\\f38e"}.fa-deskpro{--fa:"\\f38f"}.fa-digital-ocean{--fa:"\\f391"}.fa-discord{--fa:"\\f392"}.fa-discourse{--fa:"\\f393"}.fa-dochub{--fa:"\\f394"}.fa-docker{--fa:"\\f395"}.fa-draft2digital{--fa:"\\f396"}.fa-dribbble-square,.fa-square-dribbble{--fa:"\\f397"}.fa-dyalog{--fa:"\\f399"}.fa-earlybirds{--fa:"\\f39a"}.fa-erlang{--fa:"\\f39d"}.fa-facebook-f{--fa:"\\f39e"}.fa-facebook-messenger{--fa:"\\f39f"}.fa-firstdraft{--fa:"\\f3a1"}.fa-fonticons-fi{--fa:"\\f3a2"}.fa-fort-awesome-alt{--fa:"\\f3a3"}.fa-freebsd{--fa:"\\f3a4"}.fa-gitkraken{--fa:"\\f3a6"}.fa-gofore{--fa:"\\f3a7"}.fa-goodreads{--fa:"\\f3a8"}.fa-goodreads-g{--fa:"\\f3a9"}.fa-google-drive{--fa:"\\f3aa"}.fa-google-play{--fa:"\\f3ab"}.fa-gripfire{--fa:"\\f3ac"}.fa-grunt{--fa:"\\f3ad"}.fa-gulp{--fa:"\\f3ae"}.fa-hacker-news-square,.fa-square-hacker-news{--fa:"\\f3af"}.fa-hire-a-helper{--fa:"\\f3b0"}.fa-hotjar{--fa:"\\f3b1"}.fa-hubspot{--fa:"\\f3b2"}.fa-itunes{--fa:"\\f3b4"}.fa-itunes-note{--fa:"\\f3b5"}.fa-jenkins{--fa:"\\f3b6"}.fa-joget{--fa:"\\f3b7"}.fa-js{--fa:"\\f3b8"}.fa-js-square,.fa-square-js{--fa:"\\f3b9"}.fa-keycdn{--fa:"\\f3ba"}.fa-kickstarter,.fa-square-kickstarter{--fa:"\\f3bb"}.fa-kickstarter-k{--fa:"\\f3bc"}.fa-laravel{--fa:"\\f3bd"}.fa-line{--fa:"\\f3c0"}.fa-lyft{--fa:"\\f3c3"}.fa-magento{--fa:"\\f3c4"}.fa-medapps{--fa:"\\f3c6"}.fa-medrt{--fa:"\\f3c8"}.fa-microsoft{--fa:"\\f3ca"}.fa-mix{--fa:"\\f3cb"}.fa-mizuni{--fa:"\\f3cc"}.fa-monero{--fa:"\\f3d0"}.fa-napster{--fa:"\\f3d2"}.fa-node-js{--fa:"\\f3d3"}.fa-npm{--fa:"\\f3d4"}.fa-ns8{--fa:"\\f3d5"}.fa-nutritionix{--fa:"\\f3d6"}.fa-page4{--fa:"\\f3d7"}.fa-palfed{--fa:"\\f3d8"}.fa-patreon{--fa:"\\f3d9"}.fa-periscope{--fa:"\\f3da"}.fa-phabricator{--fa:"\\f3db"}.fa-phoenix-framework{--fa:"\\f3dc"}.fa-playstation{--fa:"\\f3df"}.fa-pushed{--fa:"\\f3e1"}.fa-python{--fa:"\\f3e2"}.fa-red-river{--fa:"\\f3e3"}.fa-rendact,.fa-wpressr{--fa:"\\f3e4"}.fa-replyd{--fa:"\\f3e6"}.fa-resolving{--fa:"\\f3e7"}.fa-rocketchat{--fa:"\\f3e8"}.fa-rockrms{--fa:"\\f3e9"}.fa-schlix{--fa:"\\f3ea"}.fa-searchengin{--fa:"\\f3eb"}.fa-servicestack{--fa:"\\f3ec"}.fa-sistrix{--fa:"\\f3ee"}.fa-speakap{--fa:"\\f3f3"}.fa-staylinked{--fa:"\\f3f5"}.fa-steam-symbol{--fa:"\\f3f6"}.fa-sticker-mule{--fa:"\\f3f7"}.fa-studiovinari{--fa:"\\f3f8"}.fa-supple{--fa:"\\f3f9"}.fa-uber{--fa:"\\f402"}.fa-uikit{--fa:"\\f403"}.fa-uniregistry{--fa:"\\f404"}.fa-untappd{--fa:"\\f405"}.fa-ussunnah{--fa:"\\f407"}.fa-vaadin{--fa:"\\f408"}.fa-viber{--fa:"\\f409"}.fa-vimeo{--fa:"\\f40a"}.fa-vnv{--fa:"\\f40b"}.fa-square-whatsapp,.fa-whatsapp-square{--fa:"\\f40c"}.fa-whmcs{--fa:"\\f40d"}.fa-wordpress-simple{--fa:"\\f411"}.fa-xbox{--fa:"\\f412"}.fa-yandex{--fa:"\\f413"}.fa-yandex-international{--fa:"\\f414"}.fa-apple-pay{--fa:"\\f415"}.fa-cc-apple-pay{--fa:"\\f416"}.fa-fly{--fa:"\\f417"}.fa-node{--fa:"\\f419"}.fa-osi{--fa:"\\f41a"}.fa-react{--fa:"\\f41b"}.fa-autoprefixer{--fa:"\\f41c"}.fa-less{--fa:"\\f41d"}.fa-sass{--fa:"\\f41e"}.fa-vuejs{--fa:"\\f41f"}.fa-angular{--fa:"\\f420"}.fa-aviato{--fa:"\\f421"}.fa-ember{--fa:"\\f423"}.fa-gitter{--fa:"\\f426"}.fa-hooli{--fa:"\\f427"}.fa-strava{--fa:"\\f428"}.fa-stripe{--fa:"\\f429"}.fa-stripe-s{--fa:"\\f42a"}.fa-typo3{--fa:"\\f42b"}.fa-amazon-pay{--fa:"\\f42c"}.fa-cc-amazon-pay{--fa:"\\f42d"}.fa-ethereum{--fa:"\\f42e"}.fa-korvue{--fa:"\\f42f"}.fa-elementor{--fa:"\\f430"}.fa-square-youtube,.fa-youtube-square{--fa:"\\f431"}.fa-flipboard{--fa:"\\f44d"}.fa-hips{--fa:"\\f452"}.fa-php{--fa:"\\f457"}.fa-quinscape{--fa:"\\f459"}.fa-readme{--fa:"\\f4d5"}.fa-java{--fa:"\\f4e4"}.fa-pied-piper-hat{--fa:"\\f4e5"}.fa-creative-commons-by{--fa:"\\f4e7"}.fa-creative-commons-nc{--fa:"\\f4e8"}.fa-creative-commons-nc-eu{--fa:"\\f4e9"}.fa-creative-commons-nc-jp{--fa:"\\f4ea"}.fa-creative-commons-nd{--fa:"\\f4eb"}.fa-creative-commons-pd{--fa:"\\f4ec"}.fa-creative-commons-pd-alt{--fa:"\\f4ed"}.fa-creative-commons-remix{--fa:"\\f4ee"}.fa-creative-commons-sa{--fa:"\\f4ef"}.fa-creative-commons-sampling{--fa:"\\f4f0"}.fa-creative-commons-sampling-plus{--fa:"\\f4f1"}.fa-creative-commons-share{--fa:"\\f4f2"}.fa-creative-commons-zero{--fa:"\\f4f3"}.fa-ebay{--fa:"\\f4f4"}.fa-keybase{--fa:"\\f4f5"}.fa-mastodon{--fa:"\\f4f6"}.fa-r-project{--fa:"\\f4f7"}.fa-researchgate{--fa:"\\f4f8"}.fa-teamspeak{--fa:"\\f4f9"}.fa-first-order-alt{--fa:"\\f50a"}.fa-fulcrum{--fa:"\\f50b"}.fa-galactic-republic{--fa:"\\f50c"}.fa-galactic-senate{--fa:"\\f50d"}.fa-jedi-order{--fa:"\\f50e"}.fa-mandalorian{--fa:"\\f50f"}.fa-old-republic{--fa:"\\f510"}.fa-phoenix-squadron{--fa:"\\f511"}.fa-sith{--fa:"\\f512"}.fa-trade-federation{--fa:"\\f513"}.fa-wolf-pack-battalion{--fa:"\\f514"}.fa-hornbill{--fa:"\\f592"}.fa-mailchimp{--fa:"\\f59e"}.fa-megaport{--fa:"\\f5a3"}.fa-nimblr{--fa:"\\f5a8"}.fa-rev{--fa:"\\f5b2"}.fa-shopware{--fa:"\\f5b5"}.fa-squarespace{--fa:"\\f5be"}.fa-themeco{--fa:"\\f5c6"}.fa-weebly{--fa:"\\f5cc"}.fa-wix{--fa:"\\f5cf"}.fa-ello{--fa:"\\f5f1"}.fa-hackerrank{--fa:"\\f5f7"}.fa-kaggle{--fa:"\\f5fa"}.fa-markdown{--fa:"\\f60f"}.fa-neos{--fa:"\\f612"}.fa-zhihu{--fa:"\\f63f"}.fa-alipay{--fa:"\\f642"}.fa-the-red-yeti{--fa:"\\f69d"}.fa-critical-role{--fa:"\\f6c9"}.fa-d-and-d-beyond{--fa:"\\f6ca"}.fa-dev{--fa:"\\f6cc"}.fa-fantasy-flight-games{--fa:"\\f6dc"}.fa-wizards-of-the-coast{--fa:"\\f730"}.fa-think-peaks{--fa:"\\f731"}.fa-reacteurope{--fa:"\\f75d"}.fa-artstation{--fa:"\\f77a"}.fa-atlassian{--fa:"\\f77b"}.fa-canadian-maple-leaf{--fa:"\\f785"}.fa-centos{--fa:"\\f789"}.fa-confluence{--fa:"\\f78d"}.fa-dhl{--fa:"\\f790"}.fa-diaspora{--fa:"\\f791"}.fa-fedex{--fa:"\\f797"}.fa-fedora{--fa:"\\f798"}.fa-figma{--fa:"\\f799"}.fa-intercom{--fa:"\\f7af"}.fa-invision{--fa:"\\f7b0"}.fa-jira{--fa:"\\f7b1"}.fa-mendeley{--fa:"\\f7b3"}.fa-raspberry-pi{--fa:"\\f7bb"}.fa-redhat{--fa:"\\f7bc"}.fa-sketch{--fa:"\\f7c6"}.fa-sourcetree{--fa:"\\f7d3"}.fa-suse{--fa:"\\f7d6"}.fa-ubuntu{--fa:"\\f7df"}.fa-ups{--fa:"\\f7e0"}.fa-usps{--fa:"\\f7e1"}.fa-yarn{--fa:"\\f7e3"}.fa-airbnb{--fa:"\\f834"}.fa-battle-net{--fa:"\\f835"}.fa-bootstrap{--fa:"\\f836"}.fa-buffer{--fa:"\\f837"}.fa-chromecast{--fa:"\\f838"}.fa-evernote{--fa:"\\f839"}.fa-itch-io{--fa:"\\f83a"}.fa-salesforce{--fa:"\\f83b"}.fa-speaker-deck{--fa:"\\f83c"}.fa-symfony{--fa:"\\f83d"}.fa-waze{--fa:"\\f83f"}.fa-yammer{--fa:"\\f840"}.fa-git-alt{--fa:"\\f841"}.fa-stackpath{--fa:"\\f842"}.fa-cotton-bureau{--fa:"\\f89e"}.fa-buy-n-large{--fa:"\\f8a6"}.fa-mdb{--fa:"\\f8ca"}.fa-orcid{--fa:"\\f8d2"}.fa-swift{--fa:"\\f8e1"}.fa-umbraco{--fa:"\\f8e8"}:host,:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-regular:normal 400 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}@font-face{font-family:"Font Awesome 7 Free";font-style:normal;font-weight:400;font-display:block;src:url(data:font/woff2;base64,d09GMk9UVE8AAEnsAAkAAAAAuy8AAEmkA4IBAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYCJAQGBmADhSgFiAUAqRgHIA2CvgoFl101yrZdRMrtAFAl0TtGUcJZ7TPS601KAPz/ZyQnYwjTGFN71vtZQkKhFZaHecI222mtE2MUf0TLlBcSe7cmFAk65n2Ie+6VV7/nEElbHS5k9IUikbTWaypVlalUsrCvfnO1jF/yXGlTwv8yKxSvTm+DIwklTiXECXX/hY9aMhBOIZskzLZFgDte6TxOOH2AtvnvCAMwqTCAM+N/MXK6EqvAxEWk2YuoOpv9cAfrvKV27Y02NkAvTebp2/X+ThYkkEJ4Inq2876rVXbSMSNdKV3P+qxB8OJhMAsyi1gwzzl40dnznHlPfI/Xc/CeflnPwefMi+i0LXPCRaUSMksjerSBz/NFjsiShGx94gT6+MXtcAdr/xti1YJQ1SToTQNVO9OMA/XAA7yb2a33v3T2fXSqTr7VQbgRAQyuPWDPs8iWLbJa4hYN38+Y/m/pWuqTFaa5+Cp5Vj5Qp8DTB6EMsP/xqav/6iq++s//O8Vmb+FieIkxTGKyJ5ssg2FMsJGNcUhIVuhudbd0pG6puyXZlgPGBhvkBGLwYJHCMprMRDxs8uxjdj2Z4l1VXT3/X1X/vz/hrLWLRl0/KWW/G6JlSQQJgORhAEEwKtiSZcnhOs+NL6df/amm6ZOPv6bqtXpwduqEWXJt3TieVUnIZqoEhzhmz3qNJ80TBr/4Ad/y8fP04ctib56eNLqn7ovMYfgOYS3aG2B0ELhH6g/fx7F/OjMLsqB06TWmRf7sjAKIUvd+pZkt2uKRfSKDwDpzm+Tj35uatm/J0ZJyXJ4SxhUcMAM6KhQNiTvlzqFoYlEDf/9b3GLJZQYPAAEGnOg5Uom3ZFbA7oJ3wPJ05oVEhZxI4EiDUAyUdAoxcCincA4xdKlas3auZFUeF5XHlXuF6d26bNS06lyr6ay+Ms9bG2Z5Yp3o8IUQ1yEnukkFuKoT0cnJaE0pRIklH+BwuK/im0KJCyRtt93Hlmn9LFEkH3WYDnPVtr0qRoBTRXSKCB9n6A59yNTF2u49DZggfC8RCIBeBgAg74R0Y9MAAB+2zDqWOvz53lkqeDvKzUAiElRz+v+BgBLLnyclBijqtkLiV00ZxA9aiummcCmiTU7xi1FxJMSkw/cmrJksJfKlxBOna0v/SHOdCyLAbn6ifclTsmEtRVBGjGUAHdJq0SBWD99jxLyKjtClNdKgRZybDq1ahq7eOjxUfFGehmcRqcusl9RqvH5f0NkQWN39VuVV43q1rv6ot/7uWiFiG8DPi4g4nNmS7lm0UeusOz+DeQOqBYTlKSUoQWvfRoCLKzYaTLHNRocDntsYkEJkY8IXfjYTiAAbC+4otrEhxN5YaxmZNoPRQTDMAfjT7KyNAElrttFgSUux0RGVAzYGAgkPGxOGKbKZwBv/21jInEs2NjxpBbHWNiPGCWKU6S/fnN7QYxglFnJvmUaEtThZioa7AtzwhtOHaFomL4qKJeqyhiQIz/km293FvOyroAa/iXHJHXG6P4UwXYufnPNvwiSDw2JRcP43RJbYU8gZVVB9VV0ynBRsZ0nXr6d0tLtD4pQbFhoyqbOyG8epIib7lxsaji93cHpb91zEto4YI9xEvIpwc4TiqCIe/VLAwQmfyWIfT1x9CuudppNp6qySUuKvnCRbboAnx0bKgE/J3Hw7xOVDySWd+In5Sc51ckUwsNfHf+LEcmm5UweIFJNyZ2KRIMAjGi0+OhsDHp/e6owiVHT6qvcBHuc7y1+fDa+1cAgyfusDPIp63d+XZ8ZhEcvtaz6AwQy9QNUvMXl8ScS2Eh0sjmGy//9MiagAMEWFLXZeZyWl7FT2qVerb6n/Vf9HgiRIG1JOBpHZZA6pI/VkLplHFpNbyW3kCfKVE9PJ3IntxHGKcYp1MrhJ3WRuKrfENzcL/AnZ64N8gVAilTuqPb3DYj77fHZ+EUR73fRKh1Hs6mZ+sNp+dOHyndcfPn7rzMvPJKG+dk428eInSZY8ZX7FFFtcA9OWnK7iqjKKZ5Vqutvd6HFPeta7vtbT3tv+u4NlgIHiJUqWQ2+SaWaYqRxExRgGnTXvnAV5511w0WVnnXPXfc/9GG3O8512Oduwj29y66tnaHZpusK7IommH3HomM0ObvKUj6Y71Bk2aDroMc/4jpc96+VhGTl/yiExcUZ+Vf6MSZuZOZ51aWJfHYvWGt/E5tTQyszExK9kxTGpzHhH0x2fYc44ur1OZOZMd+5bSzluzhxFE8UsgFVfMv8zFPwiIanVB9/73Gfe9MqYdKiVfJ1rXe0ql7rItii2sFTVK50jvWTTzVOvzlRjZwKhVoFtztfKo8xK6vx8K17IZdln+TM/kn3N53zKqzzOkTlxFysXpCxzM3ls2sgUJzumZaZ/OBDNx8BMS4Yl3YICi++FS3wO6VmPOSDuA7NX2jPK7GTW5F68ataklTCQq4UD5/HsKHDGYvjYiZrIiZhwThjHFWA/ZWZnUz+2km3LtozLksnqY7Wzfvan/thvCgAI4jGvOUgPcZ/zrGQzS1nMYdpOTRtYzneoNec9HztmU0cN65mh+qaxEcMf5ygx3OU24wgDiEJmApmNzChxra+3rlItkUoiJts/6wU4EFEugDEXIUEfxIuIqrrwz1B0BiG+XRkEr+IlZXwH3xxnQgX30Ymf3bxDbCbgOXrxaV+OGeYzdwO3MaflA25Cui6L0TEXs+4WpfaYCFipLrLTZTfwVrkL1gECHLCuKHaigwEmzMB0DcyGJaxgDR74EOCsiSGFHRygghokXOAKN7hf/hDW8YrxRwA0CEYIQhGGcERpaunoGpqYWdtwLnWv6EAoEkukcmcXdw9PL28/f6XKlKtQqUo1zvEOTpMP/L5ZuKXeuaS185QPlM4IeANKKjANKDsDmUDZFwgH1KsDKkB9K+AOqP+95uY/TEAFkAiEASRxwwEbNvzJydkJEsRTtmylcuSooKNTSU+vRK5cZfLkKVesGM1WW7n3NlU74QTtvBJQA07MG/6YM0diY8vGwZEnRoxJHauMQYAGuEkDVeAmu1BRcZ9EATrwpjJAABT9BgkDE21MbMwZUxuGJzAZUPwAE6AEAQ1ACTf2GYnAdEBJA7MAJQ/4ApTjxlkflUMdMAMozwALoLwDbIAKC3AAKiZgAVD9AgEAFfsCf4DKOLIClgClu2p6elbGGMPGOOPYmmgirskm45lpFr4SJYSqVBGpVi1EjRqhatUSd53qu/nmk1hoIVUvUr2wwgpSq60ms9ZaLtbbRD5nBRwA6sJGzz+XHJcDSoC6E1AD1OvrT/QH9eb+qN7mq2+culOdrUePYL16RTEycp0+ATegnRNwB9ptrhoPDx8fn4CIhAcZGW9ycmaUlMT8+PERI4bvxNqY03EqBhrIXzytAImS/SWHjoZBsRCVqoRp0mSmFi1maNUmoheqXthhhyhnXBE9NwQGg/bHG3frJ6ruZ6p33nlH66uvEvTokdi9KvNbIAl0sG4kE2eAFAMNlCZevHSJEmVKlixD6jdnjJ5evvEmKTDNNMWmf2cw00zVypWTqldvqIbVoFGjYZpWk+WWs7bfQcMdcshIRxwxytF11DHHjHZ8HXfCCWP6ZIrTTmM446yxzjlnnNvuGu++++Z67rlJ80NgMuik3ZiCM2dT+fLFpqU1TaYc022wwey5IzAHdJkEGECX9Y25qKkNp6FRIly4UpEilYkWrVw//VSIE6eSjk6V2WZztcMO1S66aISnnqqZjwLDQXf6jVqGGqrOdDPUm6tBo2bNzC203DLrbbDWPvutd9hhG5122iZnnbV5LgtsASMrwASMnBOYIDrFf4QbZBCJTTYx79dqjbfeivLBB67d5QxmILoifwCbiBcvhJZWKAMDhiZNZltiCZqla6lla5nla7k11nC23XbV9tlH6qSTlM44g++sswTOO0/jggt8+qLimmumolBHwtPN88YFH18iAQEWEZFI/vy5d4AiRQoTZcqQFlpIb731aLbaSmm//WSOOCLYMcfEOeUUvjPOELjmGk3fVOs98MAEDz003hdf8Hz1laj/cYZipR78gKYgEFahoVmIjq4ZA0MLJqZWJkzMY85cDRaWjSxYaGPNmhchoWVERFYQE1tOSmoRGZkl5OQWs2evliNHG5BIDdy42cKdu0YePKznydNmfvzUCxRorShRPMSIsc5SSw/10/ta/Zun943/9FvFu/Wu3ys++KCqPyr9SenPSn9R+qvS31ye3xbe0FguSxIS2eTkRlBSms+FiwX9RvUE74cfnne3B4KOLzsCDAaIWRLn7kmHyzDvJ4VRRhjlNKOCbrRjKN6ywhVvsLoKPNBK0d81nFm/5ABhbbXLoRU9SmAyl2nVsjXKOFB8kHhx6Ar1xj8coGBBnGKbV1///f6YYwomQfjFD5tZVgyILsEfdb5e7wv3/u4BP/4dsjUgMHPExJVDw1FBv7Xl7dr9/WntmWn67XLkuq2z+tft0rxY7/LAfL/e620ibINs93B38sbyIwVrRBAXSM5IZ8liZP/J8xRtdiH2PvZPHMqVKSpzVZE6iLQhH7hwXY646l0/uVW7L/QI93jqOdnLxmu59yRfU79dAeyAtkD3wA1/3Q7y1sg1/wTfCTkYejsc4S8irn1sGfWOnhCztF9ZLBmn6981aA3aM7ggPlkrT3BNHJ90OLk5ZXeab/r+jImZ2VmCrL7sc2bQmeq++kH6Mwte3ub881dHCyuK+hukhtGGBcUhQ266a4ftHp434pw/ZJT5qM/opNEPghVjk8ZpxptMeE4kJvXkbfJrSvLUgdMKppfPuFS3zFo6u3CO69zokm1l9PKq+CpXV/NqvGun1/Xg5nZjNz/ti1uvx41ty8fuqWT/1P7NXXve3e2fycz8/5b26wfkiz7wH0sFn2Jy94BuNXgHZC2hYD4xLUD8ZvHvU2Qjv4eiOJ8f2bh+uTxikGU6joMHHAMlDA49zCIwbNcCfSAbKP6HhFik7aoEjYTAsgMIUcQGjIAUBIKRIaYSNlgGjrWOQaXGQB6nEU4fpP7gVM4ZVGcc2IAF4KISSqEiNDM4PuYLgAww8x/HHpPrjIIgVTn2TCJgj0zL5FJTj+A/xAPYAvXHwYVALMYq0CHHo1qzwQU1FGifISPIdYH6PDyjSRsya2D/vZwD287ml0uc2fbe4jyCETZRwUjApFmKmePvvvzPdzF79uwdfhdY+PvrcyZLgsZvvz14wfgUc/PjY+C5v/rBXbB208mFE9IvNapmetCYznHfxMnrxYfcP7/8XNYLPn1hbjt0FrcP12sMdNLAERJnyapcjktlfHyaB0Ug3DaB1lzusRpDbx00RMNYUw5GI/biEaRulAJlO5Rdgpe72VYEJ6zzyjXhQEMkDOnGNa9YQVvWGcLdoEsQbF/rOqHPeS2BULDejtDJLF+zjpRltGTpJAg+4Vk6tQjBGnJkEqqXtVa+vujEGXjD1thYI4A3FbGCUDjCg5eXLxnzuPxHXgC1/+guhLVwL+UliFnh7UXTnwafwcHvyKfAM58cbIo+wfSzsVnYTlfx289Ob4aWwSeY7vftWCb46r5l9KGuuQVswndj7vZCKQd/xJh16HW/QkUy6lg5bR07H7Q+GUkpGYoBUnAYDw6yReC5oP4/Ao/HCTNRvruB5iIrFJSGyVhBSiZ95UDrg5HZNmCcCHA7kGzgGHkQHsjOnZ3dbkiWw9m/8gpYKeR5mwpIcTu9EBu7SiktA1n6JvUIXK/mQz/hUX9ikQUV0tdvFa/oFblWfes/X8n+8dsVvaLk236e2lJi9nLl4auNcpdYQ/jCZyovYh7FVIDFNLm8ZAKi1nSJNSDnvtVYriKl9JmtYaXCfmLxX9cBxUaGL13EAuUkORBPL4tZk2/35FyKxQmsYEqDVHkU7jg+vmBIMRXNAkFn2s/dUggIJxWO32tLIVnbTuawdt2ccay7PS7hXlb7EC7Jg6MibPpQE7GLb9KPmIzJyvPB8d9X1y0DDPseArEiX3WRoU+UGHM90H9kcYQzyZf6+jHmO967fzPDdB/1xcuGW4BeAUfv9ZlHSaWa9mO5WHH/4MrYHv+rE0wQ1pd9dx3HE9twPcbV5qWHqWsE3kGbhAa//Qt/RtfYUXE64nM9AG1BrMgHF379+PA59B0OOb7JTuq1axOSRzHz6npFhtwyO5qcmXaX0fuCPwBycu549x8z7mLX/XfIeHEp4c0vlh90z3UcBwe8ARg+9nAZIbY7jEq1fsk7lGgcSCNHivEYgy5ZIjcrHGgoKDTBVZQxIq1EbnGFnLEeEtml7svSstPov5IrfoYr+gidvcHf5AgodqeQ4b0UpQIo8JEwmDrg6QTHTccKKBZ8LV8WJpEmV6xuV2LYRcsevGkUWKG2Kqy4cNVAy2kEMk9dweSkUbYMYjvTJGNQ0lxBOroQU9vJVEpdMj5avSxMndoQFghzx3c/3TbKPLeYPk8RDD7OQ7rtkXf5y0LWlSPfMa2zP5bvsJV3Z1+KqghQCqmEcoMysxexolCBQLLOeslhnfWxs15yWGe97IAThAdKxPTF8kKQNlmOrTIBFlnDVFhoH5riq2OC8fwlCb7RJTSbnSlxbZF4wuYlw4bVRmKwlc7dJW6VpmSIxTG1SOmTKSnxrjfi4EHsOIfJSXKcKTsBvi0zIjVUzu0gVlNF13WkY7xxGIM3iJppnmWgnnGbOJMZJElOwgkO/k4IS6koJBIhF7kUP06SMurCOVAmMkxM8OudLf1pNE9ccLhDfmPLYLutv5M5wCbYfmO9IyDTdB43N/wOQACtkM3A0vGk1CJ7c3WgnMvS+RNejtH5fAkA9QVCi1xtI5KoSEo8SkVP1M42k1KPNACpHqU/JZ3Gu27E1Y1sJNzgRM2UnauXXCXpzRmWJPeC2QhXfQ5P0TToDHkUaHZJfsnZXRpFErMHh3QPhAm3vXE3SL7Vocg0HWGC3h9X2Syh5fT7Nkf4CUdlX9CnlY+Ukg6DHhxLHS0kwyCGh5fOoPoaJId7VyHp9CzRanY/PbxQZSMFfNEdE5dujTtyjn4Sn1gbIgBoItA8aLk0S6/5xzyfCJ3QOxl6chV334Ztwkjf9wZWrMiMQdzMCq6Aob2uZLqZyoihlPEe4NMt0Es+/vcnNvfuj67aHfubNstrD2f2frhbFr2HiZu7r3FqZvOiO0Hviei5fcm3Th2ffM3kyQeo/INf33VsfY3lbYMLnNt1dtq7MGT2Qx/e/f7pxZI1tV87b6M8htlXZy+546z/fnNJ3eYyKzEwe/b+6xegyblO87685JfAid31vmPk9T+Z//jI/rZ1fSKoXJLhlDOGQuU33ZWxV9v9+72NCAbnwqfUzjptGA7K2EUAmBPGdX/fKX8PPPM7B58KX8HPL7pPGXZixw5IJXVWAVFmTpA+e3H+ooE4e+Z/Vogpka/vWEWzaeIEp+wqOA73okL5MjEjS7MU5+bP3u8vYNjswhLeWf/9ixd0zX9z9TbKm5g/WcX87U9yaKkpe8VV85yy3MHdtrV+s+x2yqZoaXvUfwyGne+gf6Rc8wZu6/I7hL2f7XHPadDIHCmWCCCVaLOWRe7GvtDIHiwirIbb4d6XWn0ATWY/99G//+z0zRILtV87x6I5nJenLfbOoSuU6ZT5Eo5Pnlxz70z0wpwweXR+enSMCAZiBYUrlf9SWkfeTBA58lsi9sVm9fzELaeCNiEui2VTerRJZEVOucAagErhDsgQFD7ZBksTWHNmJbMIUNVn0zUuYbZlqroD9ovUSWEofGMVGaq2mRjztSE3C/K2Cx5dDuKld3Xg3uI9+bCACsMXkhiDxBRCkafDemb2w7N+S/avFLRwyJrhFV3oPHEzcR3g/DfMnRikW9JMVOg5gJvjpOIdNwrjwWN5wqCg//ltfPr9S+u3GfQK/pBXP4ouK7Crt442EAt5e7ysQeLRXD2oi7Z6LYRjOglxdnwTXGZx9T/LOueChsS5+tGq2n8tims2su6TyRqpxNnv230hMMWYhW28Z0rpaOJqRROMI1h0xT66TJ88ee/UZ65j24li7yZHx/MAtUXhkGWcypnJWVbg/U4ehJmdY5fJgYj7mBI1xHxRk7WEPyy1l+7LuRZTdlEsVQUn4xjTHzwYImK2ExjiQz+8D1QNNs6dECCgPsGgr2MTzCc2cfaLmKDEJdFctPCOTIe8Bj54cf409FfMzYsvgRd+8/s3UDxo0jZnwJzEnsa2LqQm6AnyCfs2m/0QTU8hoseaQ8DbdL3AQJ5kCZZPMazuh/uMh9mvPo7ngu+G3u2I8giGrkOvFUXYBDriRbYwWN6LEcnjjDGApuEe2HStoukzjEw0z/gSuDd3/c2REjmsG9Wg4O094UOg1d/v5Qz6orJokGqmbSMImhP2QniRJqqZG3D02nxEj16/NWTWfjX3gaWS0d7KlDrHCh772e+HICnf1+CaCdmEj873CRJP1qaO0MQxtax46u/+AqBnESuKYM2R7pQxukORCi3fGPjywWzGb1r95d9+gtWsIlkAehzS9GU9XTtfMeMUw4mN2Qa44V3978i7QPLldy0zVCbMplgg2k8wuyHkB4r5dMlxEAVQPVGV1xhZ3zj89QUcA77ROHakeMwqqhU9lbGfqTh9sBObWsQz6UxP0fXV/86en1UMeFY5OFYZbZZODeKySUoGR7KLtrRcXjan1PyjyeT0m1Obtxj54Nnp1byOp+7nY5i+wIzuKBZp5BRElLkpP8Zmia459BkGQuLoQsIptgOkhAIrxJFKaOEVKgfx+VWdgAgRck+HBbZKMw557R7Eo0ViciVgYhPn63EoPWwIveOVuOUV0R5xXFAITuRyiJah5auVNVS7cLtO4WvLdiIgOS3LwRGnjaiaSFaAh4iMFF+CvKF465y1AS/i+PflK8BF2Hy+eFMjwn1fjiNu3jdQnbDiGhgwnashpVTHPYw2EkY4XLpF3IsKpiHMZOtBI2oEgzFrB3oJWoc662koScA+0CXKYce4lHk8AYA1nzKrMOFHcl+QJ3z7/u59aAxU4JzmV1R1BnBMnoL5BzLlzFitc8U0PcbYDcBDbVWqDlizO7TZiwVyROlgRI1JzDAytmCXyEJcZH6Y1e9jYuH+eXHORjkxH64cdzJOdWI1J2UE84MN5SgoIWiZWWsPKmkYxm8UI+neQOmN6/XByroSc67sJ6hSiACwVP0tdhs3Yfd5aGOq1PNDwtClPAhoLnkal6jEsIEeUrbBmHEOWLO7OBZ+bnklw+LNtDi2yoBARL7wJFVnmEc4yjbCix8er2gE5WX0nU/fQNt+qTK6ULqup6R64YThRWt6h4C0pxpmXb7MMHfCoTJRpVswYaiYVckwYBo5DXntQLuOYzmsM1iGJh3VCOaiGcKJV1kNYL9GwKonJzwf4+LmQzBGlHvF84vwOyP82HomlyqdNLdpghljN2VAhTZjM7Bmd6mNyLU2Yq4SKWJgNYM5wRD6M23GCO8/NdG4f56es1FOdMOV417GqV6s4uwZtc+iwQK4ZGatPUVVGWBkSEH5S/cGSm9cXx+srNuYc03PqVXoBpCXWJcu3E/J80wbzNYQHrlgpIQxiVUjo8ElJoEGDRgp22DM+F5gze72YyTOLoY4V9+8s3UVWsDzRycbJI0mrRm6YEhfZHSHtzu3S55FkGeMbbMOs76Wo4Lrtw2/vUIkzmsrEA6g5No5khOR+oj5g25yhz3+0JUlUp/1ZJtY98fu3J2ztaMclUVooVtJmVtYqbzlDsj969mKGYAXehpBdZRdV+ia2CxsplhRhAHENAN4rkk1JvIoC3HjDQw91awAzlDhIJmuVkTtNmQ+DQeD2bjhGzfgT9e2YrKazNw1hiGcABXCQIZcmkQ4nv4opUzotf09QHIRdg5qRnmY4cnPgUeFFEYvxn68Yhk3sBjwlRG8i7ztxSgRCTs/Iw1iGjRjfPm4kPbbmiuAd6YktztOnhQl5wCqOyfLOutlh3XIlBZjp518WQ7rUBgsOLowpzhLHtZaRgOUmjvf3DJyOH+rdvBzlvhgNe1qgB50bsAqNUoOr274F2OZeL+brpKHmU1Ari6zYhs+BXVQYN8/RythHdab/gq/2XgS9O8FKgIWcJQQP1vJ6nLQDZ0qxsYwXcRdfiBlcISxFxmnmZwzBigfTaxRz9Oamxt9MtdMspZPRCMwL5exVPR90oh/LkIdcLgjGyDyc7cCIG+1DoRoSwdMvbVdM0uqKdakYeuZ+sIpKNScQU62vZTTQ5whOpbw60JrUdgHVDsLheRgeDXSYQQelhq9wZzbChCd9ViUs4FYyMnG8fqzlJcLgQmA6zGMBPrNmwGfVZPJKu2rqdXhYUvbqW1tMOmDJpZ/iDEylvf8swbJ6t2WhyEkH1gspmsPvbWJ/JuVlGRWF/ujVWPX9zfNNXB39vI7KOsw61fk3RXY23vrGEfaV1tn4ecszunV6XKF6QOD9iPynXhAD1V1g27g9SxiiDDz6CRd88B0/kbeAx6e/uon6uWGouNYbX10vlmTx0WZ3PBdPH9z847vjhzVRqwgXmkcf7cK0mOBOT8vr6+Al7DPcx5v2LEPeigKWAKds+pAUPRbOILZjA+ARGTDAh1z6J4arvga6Cf8bc7G26mCpLd47khvAnHOpEdpLNe84tfAgAEXDNA15iXsaC4PV0h3EG/uXZY8dJOfCk5is19twZoRZ4lUqloWd5GLdVgzrqjvZZPNDF08F/RUKS5QMae8oQoZe6cExZplTDSukG72At6eXOluUwZjzZg7Qd5md3AxVnKye43JqoZeWfL9d5+HgToiwh2GHPffYTIExlHHeoTvBAOC5fVEfObLRCLMm4nALns+zV5rO4Yzsl14hSq3GgpzRSFU7LOKCsVrXxUgaciTOasjZsV+s9DQOWqgcVRdC07haNZP4Tg9VwKOlAy9AR3t9v5EuBn2oV5RSnLvXFFoux8gT1VlOxO9taBp2pmd87OpyHtpPLOZexE/bWpK0jAeKpS1vm4ePXp9+IF1Ge17yxTJYDwUI4LSkEcHnhRDP7t/Fck+MQuhomL0V5T4K9k4PDkg6ht8wTQdGZ7+TgTc/Tw6QQJ3fsTZS08mTvPTiVMHFIjK+ke6y3m4nFlDG+4ov1kPLM6zbr/MsvoJyYHfQZRjNnfNbHuBQRVL2pDK7Zmaj79ZCrtXBJzUrqLEyLsF+xqKpnwxYsgFNb7VsDXHpQGhb7DMvOQSsHUZGHD1GTUig7+lxDy1Dvgnn+3EGtJq7NyJXJzliNBwb8GwkNIB4DL7Vg9/x6LbBl6bkGa22L+OkdI6SYWGRHrw7mbV5AIexZSflVdWoGZ/s0phS05aiWSoYVfCttNGVtASkeMGmD0+vmQsgFBNCBrfaThanVoL0kK7YsPD//dj/bEMV9NX64X15MWoV5vmGWArlv/cXlBLxhXand1+bORLp0/JTpt32iuNEBVpqb1wX/UikRCRxxAGejGcl6ZthJ5hW2WsKNp5BUlbze8/2TZcqnHBPppmrlpMt1IsfrfANarCsK0tM1DVM5Rd4hRU833c63IQ+CG6PzJLhLfm41IxhT4DkWvTusN+at6/EMxfUYplpgxWEiBkRVXuYNquwAms/yRKmfswpciTgQ/4H7qqyjBgV/Qi8NnKchEahQdXAAkl9bSAJvvSK772L0EUuoTmpFVhAy40xuNFZiVy96BwFXqph7rwPAUBvkhVzIUzQqkUGHQWlJAXiRyyKUuuksvDOIUrczhmFVkJ8iniaiY5iHEPglQkBiN7aQnmFefeYA2og38mt8ASVJZAFffB8xEXfFjNn/1C2CI1hbUTimY0U1P00GceUV6E+fkClJiBNeG6M/+2dlANNlwOVvBQ+H4UhI/V/f7C85pwsw9h/EaYSeaEsX9ewT60M45GNI+4A1xjUTifDeUu2pMFDayNGrnjVXf1BJZOM53d5ROHAPU2gfIsWKA5bftv7AA+3ckeiUA+ZgP0BNXEIKomiiXQOtKFYbh+J/DuqIBWgh6UWWWpGASQYlAkSv4E/FZfeg7aoft5KHQDjUjWcpozsZxcr08he0FSqEInceH/ZEfJiFM0SuzPRmnWJOEjrOU6B/CZyINiEU2FR30WqS3K5W0t1bSHsEZvcgRNiazo3U4jsAxkirkXu5MGqRBZGqXVNuwYD7LEQH1RV3MDGARwEicIp21T50ga1nENmHEe5Qilsq62MMAWKyyUk6xhwRblWXFB8zHOsr1jxCiSFm6SQAdxjZHh59pCtdhlFicKWANyPiqpx0ikqxexLNOMtv2P1MOQv8lTDYRIkzeoRDJgh0kNqFQtdnE581JPKRP27WydSviOkvMs9DeRIVNf/d5qk1PRaN/hy79mF0SU9DghSo0FSD2Pu6wuzmQajXYB+o4s5qsW6QRFQZZZqWA3ZhLzfF5qA690ye8u6hXUMNHJAeRX0OQtdg8+IJf5LxiNIKV+HuA6R4hpZPvmN71FLEZ9VjFVPSIGNRWgWYnLLeKWzUsG1ZoYKB11LmmAGKHgXmy+IJY0LGAH6rxUWTrfqyvUvHC1HcP6yB9LumvXLlO1r498yO3K5iko97r9bVBttTsUTcxuZYj04I1i7yGWJvd9Bt/UuHgcMcsgZFkMVz2p2EnQ+WCth1vljMXko3iHKEmUBHuGVQ6SgGwZuW+sDtksvCrZVSQ3alLOvsE1BSc0fo8rrQ03bGa/ofpZ64Lr7O+AA99ZmiPTNLbTcpuI0xlG4rvQJ2JHOIphNkInnpU4WnFfKt3QU4yhd2TpJjA0FMvHCj5apmVcl/Bl2SsWe2pQNq20PlY+wDthSytHvViRhtoVr8Rb8e4xcoHnp/Wijz+UlSKHa3jx94+/Eu45rDr78Aran/pzOOu/UU8zOpG21Ur9Sh6+GtmJ3fgiTOGs3HZYeXTcff95Ct6/YfbBHvC2nM98XBHDWEQLjaRu/cRDNKg8ofFa09W38gnwm3sjf84WHVOnBEk4ZbxBO3vi78OO2u+iz0Umu6cif+tgvFYPmtsnUzVgJdRhowJxdRadCfwjtyaq1PH2UwvBQi9YF5S+z4g28dKgAPuwizGnWa8SbGuzl5CDwOUHeuUbg/b+FZ8Am/9qeSIcDHWGZGoYiMwkZFG4QU0GhcJ7aRHGC0aHFZSs/jjsXXZNtPNkWXce9+GWJUKXKiL+KWa0mo44Mc2SGQejX2RLuqgyk91iUKrqcKEyusvv+CWaJ/aiT2HzFm+AA29FG6EfQDMhIMSEEYBwXKNFLCnnakW2sixld2BqSrjJOdPXURq0vEhQMYnVfQ7Uv+GD99Mg53qUkjOUZWPYAgVwBpRaxpqNviCJiTxIHpSCEzxBqg5tM4A2mjhkXJvy8YIvS/8JPyf9opE1IX369Sgz5fAcI4gFXVDHSEYqm1U49iHjz5MZrIIqQSrqbFohSxCjL2hHGX2GCe5H6N2MzqvQk6LwGEEIGXro3Ijeyxl+LhI/8OOSLximg4+AHA3LAXPbaN82yMF0WE9Iyn1a1pg8RZN7yQ70UVUiZae9X2HfBcxdIDsZ9ZMSQXsYTRMc3IuDpzIYu8Rhz5UhXsyTaZ92p3BywteWU/9+YsMW/6U1Za3UONd4x405TCk9oCMDNa0HppUpkEiL3ODDf+B4snPnd1CyMvBhwFRTpavVOzK1bPeaYILq8aH+vJmVho8OM1keLyojOsxmuRcvVFv7JrvAeAK8Ts6r6PrwVCnTHpVZ13hROrc4dc0npZ5qxtUdhqX2EWugfVQUI4OqmhgP8WCjKoPswOoZ3wCn7z/b9AzGJ0p54OC226KXm0p5tMcbyNBMZBhoy+4x/qwCpEJFocahBngACk0vS+62M6utp4PaM1BMfxz9O1EGNi8zf4YtW1cUMQWXwTsZxmimngzdRPlN4ymTIv5rcn4pPFqWW4eorwfGWolc3pTGiQw+0B9e2Sfn/HjqlQg6u/HkwVUNWeK9ckS+muzgNK4cknYyFRUacpjO0WLW8vm7ySAQlONdN2C6jhrqIAWSYTUhJfVJWSF/DdvhzndwXYNYVG5S/aGX1Vy4HZczb8vFRQbkqZLZndTMdCUWK4UP4bkHl58gKVsfPe30MZ2WjiJaSOn3o3buYAmyrDt4sHAQfxpAImXaT/tq9QH+sm55cLU4TY2bI4QTz+/7RC+IbmP66r6rBx6mFyTPJA3TqnIRu9/Murc6NfX7ZKeeqJ9d8hzY/vQy9NhA7zirKgUvYregB1nrak05M/Fq9g7jPF49vQjBi1cSNXHzTPVK3gHOz15tL7Iclr2q7kqTm6psMXN+gBsODjadC/eQI4q89R1C9qeGcJBP8G8HFs2ImXBhU+Z50qE+sUk8I2fC/d6kKEchpZ7ZSzRvhPBXnkfc144dYwCtMx0oXbdjJKPat1CsSeZplLZnGp86jLgBep1pbyEWC2K1tB3axAZhk4vUYPovdI0m87Dlc29A01WkGCpUqjM8dwPNvqTMNaf/R4ipLCONiKqVjvCEC6OxCvoE3yRIWC+JyJ9adKIw+h/CgNbHPWMAfdpnGP0H0XiW5xlMo0gN45sQA+PVcXaKJ/JwQdwsIbJ64pPiNq+RfWY+CT10V2O3OhF4jNeA1QkbVui+htXldVkgP0Oja7iUyNeTSHoFgz7YRyHHIgxAhwaIxckGZ1JfXkIaqudK+3RRXt7XSUZSQIcCXjJ/0autru5f/ZWwBOopHMds30N50LvCRe8Y1+1/EHmi1JGKqP1CUtuf4Wh9zDZH1BkC4DshrFliyGh7XtjtRNgEfYbYHXIexj45GEEolSmN3nQ+vzHe+YrcAfD22M5rvErDtzXX2TVqFgCNQw6tirJp19i78uC00TdK/+CgCZBplXn9baW5ar5RXm+3oH14zdsdFN/maxY+wJo/I6zywcIa7MN/yeAbwHpbNTdfSLjFnnQbvI5YlB2uBNuBJlOXGEnwRaRhWo26/uTd9VZmyN2VbbNKAY3rZPOfxFqOqFXHorbwpwU0aFGauDhdowWD9NP1rZkvut/F2dz/QIDJBc+/PsjsadtiCjphEp7WTG8AfhxPyIxuarBiF8qM2roASlbUI6ZDTp+O6eHW0tH7s4hZ1o2HZulqJNGyXaruS4SSVxzHauZWl9mL076qNmbcjcefrlJHvuVRZ7biDWpl/tuqkr7bS3peBcZs96J+JBEF7wtTS7rKra0BuIacgxjIG/igPA/kO/wNrDyM7/Bo4ciI0LY1eLUJOhy/TPMM6Yg4FKRu+mP+PyHDURlNl9+3FYYVLiT7HPYQMmQRWbgMVcSz8sg2SbOMHm5CJTqcFSoCy4X02fzQrjbVTIoe2fLM8j6UGxTM2u43efRkITHbDeN0GQQxIvhYCdzPWDybxayiKNOzPYoj7k2CdERaNJs6i2il3dX+TVzrTD+FNgMIUipQjooWE6CbNjZG43XzsZ2LFDlTaxUiFJaJzqGaUZEUiCZyY1IkYkVsNEwtlbEEHT7Jyg5ZcEkSbE4mgRdkeEyJ8zt4w5D9ZFw6YGIc7u4fJTKxRlGzuAZMQIX04dhNA1eK90YeWmoLObZpmLCm7YxnvShjSq62JD60IlmNAXO7X2qArLIgZflLidNoIbgIGdQ3YdFTP+dgbuHUd1VGEaZna1s+k8C7cAEd4eKGucH/S1wGoZtQt2uFAdc+JtxbK0w0Ty1eAd1kswoOc8togzBMyE1vjrf4+h6Pfc3ByfpGboFhks84w+TJf5Szz9Eq1KDRhm5qE2ZYm4nWCk2vqcjZrFhft5w41SvNZBPn4LUGDQpTHDe3X+H2bXL5QeLivOcpMEzM89DZkzdFC5rjTPd1baXK0EI7p9zUOoav4bFVDjbXIGupTh3mCuXA7d6EsBburTIxOY23z8CSSkN6vqV7o4Thrjrm8FKFnLmGifpof1FcPnyofLWukf6It4WUn2nNk/hx/vsgvyt/ae+cWReJK/xh8+QKI2vPq/dM5RIhWzuugClCpmn7DOmoMymRv7wTElqwYa4QV4vQ7uH9XqD6yO/AKoS+cFagC+sCZixPckYKLsg8mIEmaFLEogmnA8zdpEKAN2yDDlt+L1wBuS9IjZglL4H74NS/n9kpfcO6TZghqFjF8KUqWzJ96HQvEUiMc8O8cxWvU7M/D6XYVwKho8z6GheqSaT7KlWL9XDIoBh+EjD2I2zr/fZBN6h1/Aknd0kjl9U6wdIaIe/6JloTDYKiSDlh3Le2303cFmShHiBy42DSvIjt/CTI8OMgRPDIgz5hesrLgPatslHenaDv1Ff1Hf9vrMVzqBnf2RIMIhJh5hj6/2wjuKMdX2cfsBEnS+uG0x5JKMFVUSCRqLmQmN9FCaWOXAbHLOp7AWjd1TGFdy0RNFCRO7YnFwkMkByjBktf/O4c9sz5wUUAGrQFMSPNsgxDIzQ4dFgfMlKgKxj5j80Fojr1t9uII4ATaPeKVooeeaD3FlJ0pcyBHI5lVxiDk2dTH9ltHi9RGLLkwGeBqGSlY1D33SSjTubCjAaCVmE90qxhqehTz6lbYiH97HDMhqEHWbSIv5lSAgyruZgiHKOe7HrfYQZAAUxU4AOg7k4AccyM673Y4cKPBMKykCLFf43AE+6HHBMy8hGWCr+MQOM3IhkuReIBEYISSa2gqUEoY/C4MyHeoZzBhaGO+YWVWtEg9SkVRx7nIQp1WFrusw+0ESPXNkU1k+AqATHOKI0fIJsN9WifsrTQOIdXD7Yu7v5OOHKo3vAaYOkq/+snCTjqr/bmXP8jXeO73mfyQkOkkuqRdPv+xXmFaefiUbXGiV8JfR9jzTxbXkicDC134i2SRs1ViBnp4J+Fh428hsPPf3/+ubABeBNHi8sLVnxC8+jt7XKLIxO3ZvsAgz7aSgX4pv5+/axBKl4ndYQvjzi8Vxg/hBRWIvNxlUdh+AMzvqNfM8Vtg60E0W0v90PIuvYyH5/yWNJN/xTF/+bLF6DEvVgGUJXEsxL3n2Hu4KvmtWAatIDnZ/VrXKW1GI4s/RRSzFehj5aVQtg/mcbMw+j6X00xSfVEHVWKFFLUV5FAI/dF93vTmBmAsGGNN2gWYgXhCllFvNvOQ9B6LkRSr7OihGGazMTRP57CRiHTAFG5CMoQ1OCSwsATTmxOWw7LDbI5sOz74M2zM77wk3yWlVbWwIpXkQlw+g1KSLWuMnOVvdALZApzwBG10TnmmegJm7qn1f4OH/xWOFH7bvSBiAKQbV5v76VwBzgiDSrWDP9AWWVMBTIOIgQyj2vNZOXrY+C7E/rMsw3qdVg+ZZn8jDYG0ljARQ81UgtX3Ko6SfU7/bv3HpRX6fB5+Kfd2XrMA4HyH/68wWWux+sdck7vL8uqzyfcy3nMN59Z9JLilxH09NbAkYd9jD3vOUhcw5y5c+blBLdIOVWPpTO0m5ZUGH8KKCB1gAapB7DLYR/DiRR+/C1UWi1w6du6kk10ABo06xhbqYqwnbsyg2M4nQkQ6diQDF0A26HzdJolJnnMslkLELsQDL/4B8dfyoDQ4oIXP3N9NzNaxB3rI5P9s9h21+iuCUHHY2yjTGyGTyecEM2kmlVqElctnTMksrVE15gGnXmeLH/PnJxq2sp6WaPxIsZTszUf25I0qwR3ysvQWT1dY3l/i2zM6fl6JiVZFjy62INREgPqivsipIMRL00pIE5CcMe4k1VP1mTcMcpC41X6p6eB/cucUxnv07WhAdMN5EjsjtYi7fLoa5iG5CxwQx4Q7iRO12F6MYen2CdXs1NCR4kkr8yxmZynqEpr//OjCZRTtyX9ujXTU+wceFBCVQ4FxjAMx+fBg55Hr9nERpYUC5E0JR6y69D2Tmqpjm0Ggi9A/RfRr/VJW4Diz+GYxrEDyJWbYP8y5EHKdwI6yPI75PmoEIchuB7wIRg+AJG4U8uPAD4Qu8s+RJozS+FDZ+w9BEX12DdIBgVu0zu4AQuoIHGsoEgxCZZQQeZYQy1PDluoeInCA6VtT5VVDAq7YGV5b3Ycu7IcronJ2DgXiIal1/9Kt9HU0ZPl8T661b7ddMyxlzHSWux/BAHHNWlquXJyKhPOdPPASoK/iqCG9Q6TZyD8wjJAuVAOxPvkKhfvraa8ACbvrwLmQaT3JQAOl00zAqWe5EEoUFRNP5qGO8B01DXtFSrlNgeiRiJBfurpHzctsxS14GdbCAFdzOLiTqh+bo1BniXwxSzij8XfakCp1rT3ayipYdr7eHITJIu6+lK7Z74OREBcaQ4hFtkuN1xCwB5G1xPIgXRYX2OpiqTSJmUJ06S+vkW5YJwDVVQIXq/EfYNohFQETY8fp+//IAxIMNwsGKTGk+rRnCAPx2yimQ4HcplH3H5ec/rhG/CSBtqPdRcfkZVQ4lwRpKTCTP2b4m3BJVA0QtEoJUDn8XpxcYGREYp+EJGEfZjbg/+Vtwk2bYLWFzRehdoWrjBkbS1aDl09Biv+8EMOwa4D6GJNpO9042PMQ3aoTsoCS4Wu5JDdOsB+O4Hrc/pbxl1goOxbBxoTkBMjt3zyCDQ2IWmpHHID8F2UaMPrn5/CLgesjW0L2WZwJLwrdRHFk+Ix0ZneZMmtxzNkvzQ6y+gP7nNX4QMxRSxCt1uoW1mCUrmeLR2+S9lWttp19qxFz0G5nQubEMp26TdQCYIvfCncdarWLvoHe/I8NDz/j5cLcPHuJTuYkx2CBo82ChLZnhlG9AiAqmfhy2NDSpSiPJ2qzoMG7UAokQJa15f3NSPQzN1oUYBHWEhANyMmEYsN7ep65PLZMflHbzMu/qU45/5T+l35GLH7vT5UP5h5Nt9yK/exTvdE+Bacxt+nNXu2vWEUwGmc7ZQuIhhw3ujesx5kypMx9WLsH8XcEQN6Og6uyck3suAXucX5v7uZM30nE7M1RnjRcA0TU7Vt9wxVGbOpjXzfiVUAi60QTqGC8fen7fUGffgG25YVTMGZBevK5+4mW4QxhMXZ/FlXXV7kDksiiUW0AWwmEca7O2imCNvipL/y2CD9n0bGe46fd2LH/RL2P7jwXMse+0MixpQBG1hklSXGieNNjf0bonYllyYPL7leslhK513x+f5X4C/rUDKxRr3A7SiPBbQPbAcUcf3VHWSakH0U6ZU6g3F5Dy8YcKUJpsfUDYs30IFKC2pDn2x76SvAMnmVFyMxjja8fwT3IeLleVguTELD0kgpGn7KmTHifEMKAmG5e/FTpq8zoELjYB6FR/vQ8zseC5cOiXmcky07Wz4R5tzLF0JJO/k5uMd1Q0pTgvK7d8wW75H6KI10zezfFgMN6Cj/STl9ArTstGdmbfWMJ4Ey9223xHduh/0S7k/DDv5GEylhur70FQEU7g+/oUmD4syRyvkufEZz62UolzuIlkf5OGw8KfP8lMqw9iXhBbUgLh9NXL8+/De0twNfTa9X36cy+dz5t7vo2YVyGYRxEZXmsk3vOQu1b1xOB8F/rFlNLKRt5ibZbZFE0Lahw9A34cnMrGMiEaa3u3HJCJeP9yw8VU2amLjIJ7b7IgOka1cqP1tqa2CEbuJklAqwY51weBxqIsgRRIm0kqiuFFQ5FhJzv1yq5IDxqe2gNLmFabPTFpWkwafPznvRvnQaX9VnxV7Naek+xot9XB+uMnrabrjYpxwdXIM5n27zS8cL82a38mJdv2aN5v7T8Ipm8S16UXU02krQCj0yBZs1nD27zUR2i9fTPFD3V1MrFDpXsspAopxpETDDriowkJwXC8aleR6cXrjesFMdtOBecuOgxXWhDTQzLpICiAUFcOzhQWwWN5JYxyh5R5Qpp+3FdxXUdNhyC1x68eJ9h32c7L2zFgr3JncI6TJUIVRdskyhwScToAXZQ4mB8HMgREOxChVUVTtboFiZzVogR3hV/fHumNVDiBPiLvU8RHsOnhfOVbY0X9gn3LUbgggUNyjPvk2Np4t3JrVT4n/8wSu6FPyxekinzY/nO4tv75ZhrLorxlPefRaIDDgQLwt9hTNvkbwDo4yZKw/NDC0XwAPBw76IJBqDKaDONHGHQ5H5LEkQKH3ZAkVzSRzTjQ+ltzwCxdM2k2Rehiff0qWmRYLzkIBsupObHk6BRpk6IQdkaIxVKrqX4gT/6aqAtCculbjZEVmEtfU0pAtwi8ASYIJBu9RnsomOqIJiorOiVw/6Qr+nnRpMF0PRc91kBIF3SJA0K6oqlm/fLQ0CTOxMLwwjt14NJp3/J7i+CxS4T0B5LNW6aAqkgo7e6OehF6b+JTdZTTdSb5VSGIdtYkuvTOdl1q+G9Y9+wtK38BCDlh2mNowTSDFvfokLnBBfzELpnLaBqOPr7ysCPD1U9eNCMb1Z8foUQH6E/zvLECcj29xaBwKRwkygVcEgeNCSXEqQHSwpHgUTRJ+cczUQAmOuJkSWQxCEA8/gLEwGay+VisZ6NHQFmvI/ngWyOg06jVB4alXAAprSELS+i0TLoAn7gwEn8Fhq+BejVXzIDvCYewWp4JmVXkKmprYW84RPlKT6auchaXRvvvl5goY7KVezK3DHZiKvjuVyVWFAOtMe4N4fhPGm1mEL2PX0arulJNGC9kzKPQNbWh5mcQPfaLTYY3/pHgGpvC5KLNxAcqjxZPVcXgCnu6vDE9z7Hs8YeMMSsMDRZoN2LgKtNXZeR8giDlsIKfQuHdPaPwjenjEN90CQ0NgES42hHqKwhcSHTymMHmlO+BRIUnhQzfwOrpoSSHrpElV9Ad0kXSMne7FcfqyvOghXCtTDsx73lLMPXolkKPGf3JXzr1FCzie5d/hWkvO3+E/qip6IkNfTHZnNDhgU5wOL6gc2d1lWlIi0s6nmNdBeU80taCbxaCOaH8BEIw2AviIE/7QvZZQfZv0ykcffDETmFTAE3bKcNFBDtO8tTNUlublGetujYv/uqoHajGJfDt9gn9bmFghjhPFqNZ/i3VscBgDq6txdR5ahKDWmss39GWARooQRu2h7fPENWCDEKNpXu4axDLihaYj2mvbmwQuNvS7cLWLhzEhphbV/EtRQ6LMAIgSVYn431BrxCCXDdVaWsCwyDTKNPDGMJZCEk5nAHbf41W8FWVEZOlmaa5w5RzGD4onMcSnwnPrX6WtvDHT74KbshkF5q2uan8HX08plO93QLJLdHAwdEjyJVxbB0oNzvfJCxTu833/lA/6JidTxkCnrqgyekXHNW3C3+MTzXczW2aB7TFsL4JSZpTHqzGIoaqGTiolYtB5EFMrRdOT3Df9dXFL27m6iMsDpOjJ1cpQmrFMsOGREyUYZmgBxOfG0D5ZzFhefoZhOppIG7APtTxqEdHAxp+zpw5NcxKSoQbAzm1tc+gSWYxaanVSmRMJyuYuwIFGf3prKIZcjwyAnUcdOIuemWJgGgoukq5HLkhEjxvmJamaDXjTVFMCjDKqJLWo88upxe8CQSW3DaGtFV1c4RjmXuCs0zFiirrTqsc1n1ExqG0d7Nzb+r2p3Jah5I7P5itZltXuRYu/Scino1Ub0qK8BGGg/A3E51Z5cqc0PdCjkDlMz9FK2gJO5vMSZDwEB6hcgp1TLHUClEG2cnJwxuzlXOI8QSeKEQR2mKBICjJz2/Rm81Nj3KkBvCecmYRIhGiaAZmoo6UtIgKgv05Dso5mFwyXR2ChLMpOqfYlRBZi0zPLYoVKOLUaqlq/qWrhvWBFi0A0YMFy1IogJSxc/P1th+6NCWIs1K6C37nuGiSzJE5D/MSHru7i+ZKsm/z+ZIqaQlXAJm7P9L9blXBYdjHu2TDU38gL45cdv/4Ir0vAr0Ph/vfrR8NmiCUGRVPTHW+4VXm/F0BRdIM0V39pA873oJjEuu3zsq9fpQny3ndpsnjEymHatKMipuBkbkzKoJw1CGvPBuCthBfqotgBnZVCj44S778VZ6T7KdpQDgOgXppSt9w0dNIeMyuUKqwUldfombUxWw0zKepKjPEvQmCg9gR40k1pjMkiaGgYc+GUcYWtklcFkklKGacIKWmpivBDlbgKamlhmjkUtqxxJgwBqMWZtEmdY/Uu5/nA6doxsu+HShy3z2J/QUoeWYWUe+deQ5TFPJVqOIekOZ1gsbkvmGBzz2dwAyTy2iJrurj/LqnyQI7tqVq+bu1DO7RKpaNkEbvvya9VBeiLxuukQOoYAd91NRKhCRByGwHBlOJSI4wtXeNrOhD4BJ5Ir96yTkbBZW9r330ZmZ/nPaqvfNMjMXh09Z5zF5Z2pi7h/b+gM25OJiZktSFTqcS8NccGKPUm3HadMIZFPFOmOIo8NfLVB4BaHi4A8BcLC4zH+2uaC1GbkQ1Z4iccuyJWndlhvN0mLapJCCnCvb9bDVTVrGjSa9nYHgdxuZ4IHlpZZq/X7b0X/2rL0zkboMbqqT1bfCl/GyW3+MbVUUzUhZgI38jnjbdwUFzX45p+2cSIvW6iNPGG/vSCVtLbKu+Oskdrc9uUqH8Pzxoe8KKdFVF4bRLGh7KZFYRNOnZxwCbvh5N/ZjmUZGLf1nkeFh4oITQjRWP2U+1wlki4Q1cRBNzSHIQKS8MQE3p5Gyx7Yvw0vBbPYbvkSGBsumzm58DQduNR2lqwvIcbCw2AJv9ZFrR0s6OOYkejKNWtu4+40g2diO0RsyPS2wzF+X+aFY9eFrA9Y8oq5G1bh1fQbnfj1GCPVH6wWRe9i/N78x4V3BRAuaduekUFT5FR8Q170gX5JgnuxC9qx9jwaf6MiggmJbqz8ZBqcc47evmZ/WCHUGaacFiVUrOBNfjRcyQNI7bt5a7jdUBrllFF6T5u3CXafOJ0fMqtx+uRqx/5IoxuJfqvPpwwD5MDFZYi00SbjZJI2bkLYhktclLHOoNddAJN3qozfmPfryajM1LjqQm6nedItttJu/m5Z7GDqBecZRtPfWYahYdfF0UE+GDV4kCSSHAomR8YweXyL+nYm0Bofbu4nstujUuYel1mNxTrieq5YAiEtVYTKOhRNpNpCtVJXGExN0IEJhOKRMxb0yDGDA4diqpkSaipUAE0RUZCjMoca0wUXQCIvTIrFHJbpojxAXImEVBCLNQ/pg9dzH7M/5lyczKhJ8gTzf/JkYMz6FevXcaDxp/kSPdYO8Tm6W/vxQEs68bE4pq8++gtc9u/1iihl+tVQ99G6+a7+GV+SOnRPz49ZsU/FcDmuE9T++x9//o/uivZlYWqMu3un+uFmq/FVasF0+qvh+IY1J937wtPx/68/f3h4+Do9Xxz6uMBoflFN9O8cs40lYEvJDY5MDAovXhK86dus2M8mLYPXbR0UkooFyWk828Y3mk+CyXuRSCyDqLrkC7I9tlS565u+Fh3x1WongRgHK55XOPyxTu5ZoyAYFi6pYS2QMb5cHDEmsLrPIUqL84rySCulok5EHpQa0lsfFLGwGelKtsCxxXKdQQRR4WazdUcYOkzqIdLaKj01SD7yzQiS9EKS/u3nmW//Zf1uqQ+hHafBQXJaTMABwBXpS+9iy52Cyesmao3nv5dFmiNtUOBo4jBfM8ZxqFcSSkgGWiDQSb1GkzZM8uc9zfGXh3rodiUunLEZY6yGLsnUFza7YsTefXC2UMy3N/QFasaxoxX+UFv9soVzifbNIeiYaZvikk1jC8TTrChgEm6b4o/F9p/lnNh0/YSdT761rR/KKoy8sO5HHLCbxnWYefGHl0eiRaw/1Pi2DFJKrd+8815vlHKMfunIV1YE4uPURPRFcIzkv05GxCv4s+rPPa9Pufii8MW6aFB4iUMqHFqMOD7M7PGThJk/nl+FRkaEQ++nobAFenG/hrJAkaRzVYwFhcb1xQOO8f/Qap3Rtt/oOsWGp26+/tRZLIwpjntcJtjnd3JaWj8xhTx+6xlgM0FlGSvcmOt8452SxwDpH/v7RxpLtycZQuYhxFUx5SMnx/7gPz8fv+hynzDWnsy8wXNXyWU3jScswOA8P0qq+57IfYtwyisnx+q86MYVY7Bvmbgoy8fyxJmZX9hpqajhZh2bg33vl/1RF/a4Ndf9rfemacHkBxoMNjItlw4hb1k4lzX0yFUDcLEIZmTYUZ/j+wrzXZ5Ly6LNyZrsK7siahZts4SnbKsASc4bc5au1nvIp/7u658c7nlWPXzpo//05Uxn2f/R7x8uL8Oeo2HDmMC6WkwhU0xJVssrSH65pukhZk2h8lOr4ZtL1hhLVWV9zD+AJtTz+KjxuZiV0WLtwlNvbTYitKoDiCRsqiildLNw4o169d6EflR/6hsgMjD//NLEkknTCkd2YniQ/VFfhvSrLphgSWbC4xoxdC86aphBkc5mT6y/ROX5KflfHxmNQvkLUnV/Svwo/1jMb9PBls3oCjTTy74/0Ei59Ed61fqIRT5OAMxuysPPzRncVuczhPrkVE3B+ZHSkl1q/KF6Va4ZEysmC6jpnFZ14GDZZkzD2VOR+5wFcOXVKDtG6kH1fth3/vctjcomhS+fzHYdmzOuV+9Q16ht1/8/nG0QD1ayZswZ/723/AKGSZkJ73JnSo9TpJXPoEaR1DoazxIILizTLqrbnkHrjQHUI23Q8/rR8mvhSzh6UX7GYxS9Vc2Xg8eNG6TeV6YtkTUkxpeFLq67KayGzKfInmzRvm22/kn4Bmbn6bsM0yAxVyafm48DLdicY7NpZf2LrgRGSZMqM4kJMHrDjebHXMF/qj0EMCXJnMwVFkZv2/d+JrPrrFVCyQQL44UFQJ166U+E3kvwmIpFdL8QQayYFY0c9PoTz2zxy6CfOzXGO5ZB9pxKPpBZrv2E9/rdE8smo46FuqOupM/GmkU58Fh23c/+XFNT02mxnMWjolQyupt6Oe5urKUPe+fN+o1gPLiR2zshzKR32dxZjn0GdEVG90EHJyZ5/Voxh8tHyx2sQDScTAgow/S6Ru9Q1uyZbP3SObwbyfy6KYemlVmnF2sYTm/tHruq+WFaCrxY7KQG65nrkLCL0paIGd42/ikykUVpaDjxOBKh0qGw8yx9WhdJbfPhCIx0IbSPpxjB+HCkSCBDAV3KRCFBP+4W02qNSJkorZZaxSVDDFltrUqs1Y5nLmZaM8hqJVIXWnUnKATDzNO/XLCDPUJ28LutjFCSqBWV0mD1P6HklVhRazKL6ffJc4cQHUy/SIZiVRmDEseyerWgqqGfBhjmJL+7yJuZvxHPt6vSVsG87fRCzVbDl2+7M0YW2739EsM97Z41oIZKIxg4FatntfXY6EgmJmG2IlHaY48MLSwTlUEzQsMGGO0OF3Nsou5MS4PYp9ghAwMA)}.far{--fa-style:400}.fa-classic,.far{--fa-family:var(--fa-family-classic)}.fa-regular{--fa-style:400}:host,:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-solid:normal 900 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}@font-face{font-family:"Font Awesome 7 Free";font-style:normal;font-weight:900;font-display:block;src:url(data:font/woff2;base64,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)}.fas{--fa-style:900}.fa-classic,.fas{--fa-family:var(--fa-family-classic)}.fa-solid{--fa-style:900}
|
|
792
792
|
/*! Bundled license information:
|
|
@@ -820,7 +820,7 @@ Review`),h(``),_(null),y(!1),x(null))},[e]);let S=(0,X.useMemo)(()=>{let e=m.tri
|
|
|
820
820
|
${r}
|
|
821
821
|
</body>
|
|
822
822
|
</html>`}function j$(e,t){if(!e)return``;switch(e.type){case`heading`:{let n=`h${e.depth??1}`;return`<${n}>${M$(e,t)}</${n}>`}case`paragraph`:return`<p>${M$(e,t)}</p>`;case`text`:return N$(e.value??``);case`strong`:return`<strong>${M$(e,t)}</strong>`;case`emphasis`:return`<em>${M$(e,t)}</em>`;case`delete`:return`<del>${M$(e,t)}</del>`;case`inlineCode`:return`<code>${N$(e.value??``)}</code>`;case`code`:return`<pre><code>${N$(e.value??``)}</code></pre>`;case`blockquote`:return`<blockquote>${M$(e,t)}</blockquote>`;case`list`:{let n=e.ordered?`ol`:`ul`;return`<${n}>${M$(e,t)}</${n}>`}case`listItem`:return`<li>${M$(e,t)}</li>`;case`link`:return`<a href="${P$(e.url??``)}">${M$(e,t)}</a>`;case`image`:{let n=e.url??``;return`<img src="${P$(t?.get(n)??n)}" alt="${P$(e.alt??``)}" />`}case`thematicBreak`:return`<hr />`;default:return e.children?M$(e,t):N$(e.value??``)}}function M$(e,t){return e.children?e.children.map(e=>j$(e,t)).join(``):e.value?N$(e.value):``}function N$(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}function P$(e){return N$(e).replace(/"/g,`"`)}var F$={png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,bmp:`image/bmp`,svg:`image/svg+xml`};function I$(e){return e.startsWith(`http://`)||e.startsWith(`https://`)||e.startsWith(`data:`)||e.startsWith(`blob:`)}function WFe(e,t){let n=F$[t.slice(t.lastIndexOf(`.`)+1).toLowerCase()]??`application/octet-stream`,r=new Uint8Array(e),i=``,a=32768;for(let e=0;e<r.length;e+=a)i+=String.fromCharCode(...r.subarray(e,e+a));return`data:${n};base64,${btoa(i)}`}function L$(e){let t=[];function n(e){for(let r of e)if(`children`in r&&Array.isArray(r.children))for(let e of r.children)e.type===`image`?t.push(e.url):`children`in e&&Array.isArray(e.children)&&n(e.children)}return n(e.children),Array.from(new Set(t))}async function GFe(e,t){let n=L$(e),r=new Map;for(let e of n){if(r.has(e)||I$(e))continue;let n=await t.readFile(e);if(!n)continue;let i=F$[e.slice(e.lastIndexOf(`.`)+1).toLowerCase()]||`image/png`;r.set(e,{data:n,contentType:i})}return r}async function KFe(e,t){let n=ai(e),r=new Map;for(let e of n){let n=await t.readFile(e);n&&r.set(e,n)}return r}function R$(e){let t=e instanceof Error?e.message.trim():``;return t?`Export failed: ${t}`:`Export failed. The document was not exported.`}function qFe(e){let t=g$[e.format].toUpperCase().replace(`.`,``),n=e.format===`html`&&e.htmlBundle===`zip`?`ZIP`:t,r=[];if(e.format===`html`&&e.htmlStyle===`rendered`&&r.push(`rendered`),e.themeId!==`standard`&&(e.format!==`html`||e.htmlStyle===`rendered`)){let t=sr().find(t=>t.id===e.themeId);t&&r.push(t.name)}if(e.format===`pptx`&&e.transformStyle){let t=Jr().find(t=>t.id===e.transformStyle);t&&r.push(t.name)}return r.length>0?`Export ${n} with ${r.join(` + `)}`:`Export ${n}`}function z$({selectedFile:e,mediaContainer:t,mediaSource:n}){let{markdownSource:r}=mB(),[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)(!1),[c,l]=(0,X.useState)(null),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)(!1),[m,h]=(0,X.useState)(null),[g,_]=(0,X.useState)(()=>x$()),v=(0,X.useRef)(null);(0,X.useEffect)(()=>()=>v.current?.abort(),[]),(0,X.useEffect)(()=>{let e=!1;return LFe().then(t=>{e||_(t)}),()=>{e=!0}},[]);let y=(0,X.useCallback)(()=>{a(!1),h(null),s(!0)},[]),b=(0,X.useCallback)(()=>{f||(s(!1),h(null))},[f]),x=(0,X.useCallback)(async t=>{if(!e||!n)return;let i=new AbortController;v.current?.abort(),v.current=i,a(!1),l(t),d(null);try{let a=await Q.exportDocumentMedia({markdown:r,selectedFile:e,format:t,source:n},i.signal);if(i.signal.aborted)return;O$(a,`${(e.split(`/`).pop()??e).replace(/\.[^.]+$/,``)||`document`}.${t}`),l(null)}catch(e){if(i.signal.aborted)return;d(R$(e))}finally{v.current===i&&(v.current=null)}},[r,n,e]),S=(0,X.useCallback)(()=>{v.current?.abort(),v.current=null,l(null),d(null)},[]),C=(0,X.useCallback)(async n=>{p(!0),h(null),_(n);try{await IFe(n),await k$(r,e,n,t),s(!1)}catch(e){h(R$(e))}finally{p(!1)}},[r,e,t]),w=(0,X.useCallback)(async()=>{if(g){a(!1),p(!0),h(null);try{await k$(r,e,g,t)}catch(e){h(R$(e)),s(!0)}finally{p(!1)}}},[g,r,e,t]);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(O_,{open:i,onOpenChange:a,children:[(0,Z.jsx)(k_,{asChild:!0,children:(0,Z.jsxs)(`button`,{type:`button`,className:`squisq-toolbar-button gezel-export-trigger`,"aria-label":`Export document`,title:`Export document`,disabled:f,children:[(0,Z.jsx)(JFe,{}),(0,Z.jsx)(`span`,{children:`Export`})]})}),(0,Z.jsx)(A_,{children:(0,Z.jsxs)(j_,{className:`app-nav-menu gezel-export-menu`,sideOffset:4,align:`end`,children:[g&&(0,Z.jsx)(M_,{className:`app-nav-menu-item`,onSelect:()=>void w(),disabled:f,children:qFe(g)}),(0,Z.jsx)(M_,{className:`app-nav-menu-item`,onSelect:y,children:`Export…`}),e&&n&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`gezel-export-menu-divider`,role:`separator`,tabIndex:-1}),(0,Z.jsx)(M_,{className:`app-nav-menu-item`,onSelect:()=>void x(`mp4`),children:`Export video…`}),(0,Z.jsx)(M_,{className:`app-nav-menu-item`,onSelect:()=>void x(`gif`),children:`Export animated GIF…`})]})]})})]}),o&&(0,Z.jsx)(BFe,{initial:g??v$,exporting:f,error:m,onExport:e=>void C(e),onClose:b}),(c||u)&&(0,Z.jsx)(dm,{open:!0,onOpenChange:e=>!e&&S(),children:(0,Z.jsxs)(fm,{children:[(0,Z.jsx)(gm,{}),(0,Z.jsxs)(_m,{className:`gezel-export-loading-dialog`,children:[(0,Z.jsx)(mm,{children:c===`gif`?`Exporting animated GIF`:`Exporting video`}),(0,Z.jsx)(`p`,{className:u?`error`:`muted`,role:u?`alert`:`status`,children:u??`Rendering with the ffmpeg installed on this computer. This can take a while…`}),(0,Z.jsx)(vm,{children:(0,Z.jsx)(`button`,{type:`button`,onClick:S,children:u?`Close`:`Cancel`})})]})]})})]})}function JFe(){return(0,Z.jsxs)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M8 10.5V1.75`}),(0,Z.jsx)(`path`,{d:`M5.25 4.5 8 1.75l2.75 2.75`}),(0,Z.jsx)(`path`,{d:`M4.25 6.75h-1a1.5 1.5 0 0 0-1.5 1.5v4.5a1.5 1.5 0 0 0 1.5 1.5h9.5a1.5 1.5 0 0 0 1.5-1.5v-4.5a1.5 1.5 0 0 0-1.5-1.5h-1`})]})}var YFe={md:`text/markdown`,markdown:`text/markdown`,txt:`text/plain`,json:`application/json`,jpg:`image/jpeg`,jpeg:`image/jpeg`,png:`image/png`,gif:`image/gif`,svg:`image/svg+xml`,webp:`image/webp`,avif:`image/avif`,bmp:`image/bmp`,mp4:`video/mp4`,webm:`video/webm`,mp3:`audio/mpeg`,wav:`audio/wav`,ogg:`audio/ogg`,css:`text/css`,html:`text/html`,js:`application/javascript`};function B$(e){let t=e.lastIndexOf(`.`);return t===-1?`application/octet-stream`:YFe[e.slice(t+1).toLowerCase()]??`application/octet-stream`}function V$(e){return e===`text/markdown`||e===`text/plain`||e===`application/json`||e===`text/css`||e===`text/html`||e===`application/javascript`||e===`image/svg+xml`}function H$(e,t){return e?t?`${e.replace(/\/+$/,``)}/${t.replace(/^\/+/,``)}`:e:t}function XFe(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function U$(e){let{root:t,client:n,primaryDocumentFilename:r}=e;return{async readFile(e){let r=H$(t,e),i=B$(e);try{if(V$(i)){let e=await n.readDocument(r);return new TextEncoder().encode(e.content).buffer}return await(await n.fetchDocumentBlob(r)).arrayBuffer()}catch{return null}},async writeFile(e,r,i){let a=H$(t,e),o=i??B$(e);if(V$(o)){let e=new TextDecoder().decode(r);await n.writeDocument(a,e);return}await n.writeDocumentBinary(a,r,o)},async removeFile(e){let r=H$(t,e);try{await n.deleteDocument(r)}catch{}},async listFiles(e){let r=e?H$(t,e):t||void 0,i=await n.listDocuments(r,!0),a=[],o=t?`${t.replace(/\/+$/,``)}/`:``;for(let e of i.files){if(e.isDirectory)continue;let t=o&&e.path.startsWith(o)?e.path.slice(o.length):e.path;a.push({path:t,mimeType:B$(t),size:0})}return a},async exists(e){return await this.readFile(e)!==null},async getDocumentPath(){if(r)return r;let e=(await this.listFiles()).filter(e=>!e.path.includes(`/`));for(let t of[`index.md`,`doc.md`,`document.md`]){let n=e.find(e=>e.path.toLowerCase()===t);if(n)return n.path}return e.find(e=>e.path.toLowerCase().endsWith(`.md`))?.path??null},async readDocument(){let e=await this.getDocumentPath();if(!e)return null;let t=await this.readFile(e);return t?new TextDecoder().decode(t):null},async writeDocument(e,t){let n=t??r??`index.md`,i=new TextEncoder().encode(e);await this.writeFile(n,i,`text/markdown`)}}}function ZFe(e){let t=e.replace(/^\/+/,``),n=t.lastIndexOf(`/`);return n===-1?{root:``,primaryDocumentFilename:t}:{root:t.slice(0,n),primaryDocumentFilename:XFe(t)}}var QFe={md:`text/markdown`,markdown:`text/markdown`,txt:`text/plain`,json:`application/json`,jpg:`image/jpeg`,jpeg:`image/jpeg`,png:`image/png`,gif:`image/gif`,svg:`image/svg+xml`,webp:`image/webp`,avif:`image/avif`,bmp:`image/bmp`,mp4:`video/mp4`,webm:`video/webm`,mp3:`audio/mpeg`,wav:`audio/wav`,ogg:`audio/ogg`,css:`text/css`,html:`text/html`,js:`application/javascript`,pdf:`application/pdf`,docx:`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,pptx:`application/vnd.openxmlformats-officedocument.presentationml.presentation`,xlsx:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`};function W$(e){let t=e.lastIndexOf(`.`);return t===-1?`application/octet-stream`:QFe[e.slice(t+1).toLowerCase()]??`application/octet-stream`}function G$(e){return e===`text/markdown`||e===`text/plain`||e===`application/json`||e===`text/css`||e===`text/html`||e===`application/javascript`||e===`image/svg+xml`}function K$(e,t){return e?t?`${e.replace(/\/+$/,``)}/${t.replace(/^\/+/,``)}`:e:t}function q$(e){let{projectId:t,root:n,client:r,primaryDocumentFilename:i,source:a=`artifacts`}=e;return{async readFile(e){let i=K$(n,e),o=W$(e);try{if(G$(o)){let e=a===`workspace`?await r.readProjectWorkspaceFile(t,i):await r.readProjectArtifact(t,i);return new TextEncoder().encode(e.content).buffer}return await(a===`workspace`?await r.fetchProjectWorkspaceBlob(t,i):await r.fetchProjectArtifactBlob(t,i)).arrayBuffer()}catch{return null}},async writeFile(e,i,o){let s=K$(n,e),c=o??W$(e);if(G$(c)){let e=new TextDecoder().decode(i);a===`workspace`?await r.writeProjectWorkspaceFile(t,{path:s,content:e}):await r.writeProjectArtifact(t,s,e);return}a===`workspace`?await r.writeProjectWorkspaceBinary(t,s,i,c):await r.writeProjectArtifactBinary(t,s,i,c)},async removeFile(e){let i=K$(n,e);try{a===`workspace`?await r.rmProjectWorkspacePath(t,i,{recursive:!0}):await r.deleteProjectArtifact(t,i)}catch{}},async listFiles(e){let i=e?K$(n,e):n||void 0,o=a===`workspace`?await r.listProjectWorkspace(t,i,!0):await r.listProjectArtifacts(t,i,!0),s=[],c=n?`${n.replace(/\/+$/,``)}/`:``;for(let e of o.files){if(e.isDirectory||c&&!e.path.startsWith(c))continue;let t=c&&e.path.startsWith(c)?e.path.slice(c.length):e.path;s.push({path:t,mimeType:W$(t),size:0})}return s},async exists(e){return await this.readFile(e)!==null},async getDocumentPath(){if(i)return i;let e=(await this.listFiles()).filter(e=>!e.path.includes(`/`));for(let t of[`index.md`,`doc.md`,`document.md`]){let n=e.find(e=>e.path.toLowerCase()===t);if(n)return n.path}return e.find(e=>e.path.toLowerCase().endsWith(`.md`))?.path??null},async readDocument(){let e=await this.getDocumentPath();if(!e)return null;let t=await this.readFile(e);return t?new TextDecoder().decode(t):null},async writeDocument(e,t){let n=t??i??`index.md`,r=new TextEncoder().encode(e);await this.writeFile(n,r,`text/markdown`)}}}function $Fe(e){return q$({...e,source:`artifacts`})}var eIe=Object.freeze({maxInputBytes:256*1024*1024,maxMarkdownBytes:16*1024*1024,maxMarkdownNodes:25e4,maxMarkdownDepth:128,maxTableCells:1e5,maxBlocks:5e4,maxBlockDepth:128,maxDurationSeconds:1440*60,maxAudioSegments:1e4});function J$(e){let t={...eIe,...e};for(let[e,n]of Object.entries(t))if(!Number.isSafeInteger(n)||n<0)throw RangeError(`${e} must be a non-negative safe integer`);return t}function Y$(e){if(e===!1)return!1;let t=J$(e);return{maxSourceBytes:t.maxMarkdownBytes,maxNodes:t.maxMarkdownNodes,maxDepth:t.maxMarkdownDepth,maxTableCells:t.maxTableCells}}function X$(e,t,n){if(t===!1)return;let r=J$(t);if(!Number.isFinite(e.duration)||e.duration<0||e.duration>r.maxDurationSeconds)throw RangeError(`Document duration must be between 0 and ${r.maxDurationSeconds} seconds`);if(e.audio.segments.length>r.maxAudioSegments)throw RangeError(`Document exceeds the ${r.maxAudioSegments}-audio-segment safety limit`);let i=0;for(let t of e.audio.segments){if(!Number.isFinite(t.duration)||t.duration<0)throw RangeError(`Audio segment durations must be non-negative finite numbers`);if(i+=t.duration,i>r.maxDurationSeconds)throw RangeError(`Narration exceeds the ${r.maxDurationSeconds}-second safety limit`)}let a=[];for(let t=e.blocks.length-1;t>=0;t--)a.push({block:e.blocks[t],depth:0});let o=0;for(;a.length>0;){o&1023||n?.throwIfAborted();let{block:e,depth:t}=a.pop();if(++o>r.maxBlocks)throw RangeError(`Document exceeds the ${r.maxBlocks}-block safety limit`);if(t>r.maxBlockDepth)throw RangeError(`Document exceeds the ${r.maxBlockDepth}-level block nesting safety limit`);for(let n=(e.children?.length??0)-1;n>=0;n--)a.push({block:e.children[n],depth:t+1})}}var tIe={heading:!0,paragraph:!0,blockquote:!0,list:!0,code:!0,thematicBreak:!0,table:!0,htmlBlock:!0,math:!0,definition:!0,footnoteDefinition:!0,containerDirective:!0,leafDirective:!0,definitionList:!0,text:!0,emphasis:!0,strong:!0,delete:!0,inlineCode:!0,link:!0,image:!0,break:!0,htmlInline:!0,inlineMath:!0,footnoteReference:!0,linkReference:!0,imageReference:!0,textDirective:!0,mention:!0,inlineIcon:!0},Z$=[`heading`,`paragraph`,`blockquote`,`list`,`code`,`thematicBreak`,`table`,`htmlBlock`,`math`,`text`,`emphasis`,`strong`,`delete`,`inlineCode`,`link`,`image`,`break`,`htmlInline`,`inlineMath`],nIe={docx:new Set([...Z$,`footnoteDefinition`,`footnoteReference`]),pdf:new Set([...Z$,`footnoteDefinition`,`footnoteReference`]),pptx:new Set(Z$),epub:new Set(Z$)},rIe={docx:`DOCX`,pdf:`PDF`,pptx:`PPTX`,epub:`EPUB`};function Q$(e,t){let n=nIe[t],r=new Map,i=e=>{if(!e||typeof e!=`object`)return;let t=e,a=t.type;if(a&&Object.prototype.hasOwnProperty.call(tIe,a)&&!n.has(a)){r.set(a,(r.get(a)??0)+1);return}if(Array.isArray(t.children))for(let e of t.children)i(e)};for(let t of e.children)i(t);if(r.size===0)return[];let a=[...r.values()].reduce((e,t)=>e+t,0),o=[...r].map(([e,t])=>`${e} (${t})`).join(`, `);return[`${rIe[t]} export omitted ${a} unsupported Markdown node(s): ${o}.`]}var $$={md:`text/markdown`,docx:`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,pdf:`application/pdf`,pptx:`application/vnd.openxmlformats-officedocument.presentationml.presentation`,xlsx:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,csv:`text/csv`,html:`text/html`,zip:`application/zip`,epub:`application/epub+zip`};async function e1(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(typeof e.arrayBuffer==`function`)return new Uint8Array(await e.arrayBuffer());let t=await new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsArrayBuffer(e)});return new Uint8Array(t)}function t1(e,t){return t.themeId??e.doc.themeId}function n1(e,t){return{...e.formatOptions?.[t]??{},...e.signal?{signal:e.signal}:{}}}async function r1(e){if(e.markdownDoc)return e.markdownDoc;let{docToMarkdown:t}=await Wr(async()=>{let{docToMarkdown:e}=await import(`./doc-B7NXSLxH.js`).then(e=>e.t);return{docToMarkdown:e}},__vite__mapDeps([43,4,44,39,40,38,45,46]));return t(e.doc)}async function i1(e,t){let n=new Map,r=await e.listFiles();for(let i=0;i<r.length;i++){i&63||t?.throwIfAborted();let a=r[i];if(!/\.(jpg|jpeg|png|gif|webp|svg|bmp|avif)$/i.test(a.path))continue;let o=await e.readFile(a.path);if(!o)continue;n.set(a.path,o);let s=a.path.lastIndexOf(`/`);s!==-1&&n.set(a.path.slice(s+1),o)}return n}async function iIe(e,t){let n=await i1(e,t),{extToMime:r}=await Wr(async()=>{let{extToMime:e}=await import(`./images-ESPQKVTW-D7SgdVJ_.js`);return{extToMime:e}},__vite__mapDeps([58,54]));return new Map([...n].map(([e,t])=>[e,{data:t,contentType:r(e.split(`.`).pop()??``)}]))}async function aIe(e,t){let{MemoryContentContainer:n}=await Wr(async()=>{let{MemoryContentContainer:e}=await import(`./storage-DUIC1aL6.js`).then(e=>e.t);return{MemoryContentContainer:e}},__vite__mapDeps([53,4])),r=new n,i=await e.container.listFiles();for(let n=0;n<i.length;n++){n&63||t?.throwIfAborted();let a=i[n],o=await e.container.readFile(a.path);o&&await r.writeFile(a.path,new Uint8Array(o),a.mimeType)}let{stringifyMarkdown:a}=await Wr(async()=>{let{stringifyMarkdown:e}=await import(`./markdown-ekej7NJt.js`).then(e=>e.t);return{stringifyMarkdown:e}},__vite__mapDeps([47,4,44,40,45])),o=await e.container.getDocumentPath()??`index.md`;return await r.writeDocument(a(await r1(e)),o),r}async function a1(e,t){let n=await e.resolvePlayerScript?.();if(!n)throw new ci(`missing-dependency`,`HTML export needs a player script.`,{format:t,hint:`pass resolvePlayerScript, e.g. () => import('@bendyline/squisq-react/standalone-source').then(m => m.PLAYER_BUNDLE)`});return n}function o1(e,t,n=[]){return{bytes:e,mimeType:t,suggestedFilename:``,warnings:n}}function s1(e){let t=n1(e,`pptx`);return{...t,inferTheme:t?.inferTheme!==!1,inferLayouts:t?.inferLayouts!==!1}}function oIe(){return[{id:`md`,templateAnnotationHandling:`preserved`,label:`Markdown`,mimeType:$$.md,extensions:[`.md`,`.markdown`],async importDoc(e,t){let{parseMarkdown:n}=await Wr(async()=>{let{parseMarkdown:e}=await import(`./markdown-ekej7NJt.js`).then(e=>e.t);return{parseMarkdown:e}},__vite__mapDeps([47,4,44,40,45])),r=n1(t,`md`).parse??{};return n(new TextDecoder().decode(e),{...r,signal:t.signal,limits:r.limits??Y$(t.limits)})},async exportDoc(e,t){let{stringifyMarkdown:n}=await Wr(async()=>{let{stringifyMarkdown:e}=await import(`./markdown-ekej7NJt.js`).then(e=>e.t);return{stringifyMarkdown:e}},__vite__mapDeps([47,4,44,40,45])),r=n1(t,`md`).stringify??{},i=n(await r1(e),{...r,signal:t.signal,limits:r.limits??Y$(t.limits)});return o1(new TextEncoder().encode(i),$$.md)}},{id:`docx`,templateAnnotationHandling:`ignored`,label:`Word (DOCX)`,mimeType:$$.docx,extensions:[`.docx`],async importContainer(e,t){let{docxToContainer:n}=await Wr(async()=>{let{docxToContainer:e}=await import(`./docx-BEJpkI6I.js`).then(e=>e.t);return{docxToContainer:e}},__vite__mapDeps([42,4,43,44,39,40,38,45,46,47,41,48,32,33,49,50,34,51,52,53,54]));return n(e,n1(t,`docx`))},async importDoc(e,t){let{docxToMarkdownDoc:n}=await Wr(async()=>{let{docxToMarkdownDoc:e}=await import(`./docx-BEJpkI6I.js`).then(e=>e.t);return{docxToMarkdownDoc:e}},__vite__mapDeps([42,4,43,44,39,40,38,45,46,47,41,48,32,33,49,50,34,51,52,53,54]));return n(e,n1(t,`docx`))},async exportDoc(e,t){let{markdownDocToDocx:n}=await Wr(async()=>{let{markdownDocToDocx:e}=await import(`./docx-BEJpkI6I.js`).then(e=>e.t);return{markdownDocToDocx:e}},__vite__mapDeps([42,4,43,44,39,40,38,45,46,47,41,48,32,33,49,50,34,51,52,53,54])),r=n1(t,`docx`),i=await r1(e),a=await iIe(e.container,t.signal),o=new Map([...a,...r.images??new Map]);return o1(await e1(await n(i,{...r,...t.title===void 0?{}:{title:t.title},themeId:t1(e,t),themeRegistry:t.themeRegistry??r.themeRegistry,images:o})),$$.docx,Q$(i,`docx`))}},{id:`pdf`,templateAnnotationHandling:`ignored`,label:`PDF`,mimeType:$$.pdf,extensions:[`.pdf`],async importContainer(e,t){let{pdfToContainer:n}=await Wr(async()=>{let{pdfToContainer:e}=await import(`./pdf-66KslaXf.js`).then(e=>e.t);return{pdfToContainer:e}},__vite__mapDeps([59,4,43,44,39,40,38,45,46,47,1,48,52,53]));return n(e,n1(t,`pdf`))},async importDoc(e,t){let{pdfToMarkdownDoc:n}=await Wr(async()=>{let{pdfToMarkdownDoc:e}=await import(`./pdf-66KslaXf.js`).then(e=>e.t);return{pdfToMarkdownDoc:e}},__vite__mapDeps([59,4,43,44,39,40,38,45,46,47,1,48,52,53]));return n(e,n1(t,`pdf`))},async exportDoc(e,t){let{markdownDocToPdf:n}=await Wr(async()=>{let{markdownDocToPdf:e}=await import(`./pdf-66KslaXf.js`).then(e=>e.t);return{markdownDocToPdf:e}},__vite__mapDeps([59,4,43,44,39,40,38,45,46,47,1,48,52,53])),r=n1(t,`pdf`),i=await r1(e),a=[];return o1(await e1(await n(i,{...r,...t.title===void 0?{}:{title:t.title},themeId:t1(e,t),themeRegistry:t.themeRegistry??r.themeRegistry,onWarning:e=>a.push(e)})),$$.pdf,[...Q$(i,`pdf`),...a])}},{id:`pptx`,templateAnnotationHandling:`rendered`,label:`PowerPoint (PPTX)`,mimeType:$$.pptx,extensions:[`.pptx`],async importContainer(e,t){let{pptxToContainer:n}=await Wr(async()=>{let{pptxToContainer:e}=await import(`./pptx-DZdEoDP9.js`).then(e=>e.t);return{pptxToContainer:e}},__vite__mapDeps([60,4,43,44,39,40,38,45,46,47,41,1,48,32,33,49,50,34,51,52,53,54,56,61]));return n(e,s1(t))},async importDoc(e,t){let{pptxToMarkdownDoc:n}=await Wr(async()=>{let{pptxToMarkdownDoc:e}=await import(`./pptx-DZdEoDP9.js`).then(e=>e.t);return{pptxToMarkdownDoc:e}},__vite__mapDeps([60,4,43,44,39,40,38,45,46,47,41,1,48,32,33,49,50,34,51,52,53,54,56,61]));return n(e,s1(t))},async exportDoc(e,t){let{docToPptx:n}=await Wr(async()=>{let{docToPptx:e}=await import(`./pptx-DZdEoDP9.js`).then(e=>e.t);return{docToPptx:e}},__vite__mapDeps([60,4,43,44,39,40,38,45,46,47,41,1,48,32,33,49,50,34,51,52,53,54,56,61])),r=n1(t,`pptx`),i=await r1(e),a=await i1(e.container,t.signal),o=new Map([...a,...r.images??new Map]),s=[];return o1(await e1(await n(e.doc,{...r,...t.title===void 0?{}:{title:t.title},themeId:t1(e,t),themeRegistry:t.themeRegistry??r.themeRegistry,images:o,onWarning:e=>{s.push(e),r.onWarning?.(e)}})),$$.pptx,[...Q$(i,`pptx`),...s])}},{id:`xlsx`,templateAnnotationHandling:`ignored`,label:`Excel (XLSX)`,mimeType:$$.xlsx,extensions:[`.xlsx`],async importDoc(e,t){let{xlsxToMarkdownDoc:n}=await Wr(async()=>{let{xlsxToMarkdownDoc:e}=await import(`./xlsx-DDBRN-IU.js`);return{xlsxToMarkdownDoc:e}},__vite__mapDeps([62,43,4,44,39,40,38,45,46,32,33,49,34,51]));return n(e,n1(t,`xlsx`))},async exportDoc(e,t){let{markdownDocToXlsx:n}=await Wr(async()=>{let{markdownDocToXlsx:e}=await import(`./xlsx-DDBRN-IU.js`);return{markdownDocToXlsx:e}},__vite__mapDeps([62,43,4,44,39,40,38,45,46,32,33,49,34,51])),r=await r1(e),i=r.children.filter(e=>e.type!==`table`&&e.type!==`heading`).length,a=i>0?[`XLSX export is tables-only; ${i} non-table block(s) were omitted.`]:[];return o1(await e1(await n(r,{...n1(t,`xlsx`),...t.title===void 0?{}:{title:t.title}})),$$.xlsx,a)}},{id:`csv`,templateAnnotationHandling:`ignored`,label:`CSV`,mimeType:$$.csv,extensions:[`.csv`],async importDoc(e,t){let{csvToMarkdownDoc:n}=await Wr(async()=>{let{csvToMarkdownDoc:e}=await import(`./csv-RAgECoUg.js`);return{csvToMarkdownDoc:e}},__vite__mapDeps([63,43,4,44,39,40,38,45,46]));return n(e,n1(t,`csv`))},async exportDoc(e,t){let{markdownDocToCsv:n}=await Wr(async()=>{let{markdownDocToCsv:e}=await import(`./csv-RAgECoUg.js`);return{markdownDocToCsv:e}},__vite__mapDeps([63,43,4,44,39,40,38,45,46])),r=await r1(e),i=n1(t,`csv`),a=r.children.filter(e=>e.type===`table`).length,o=[];a>1&&i.tableIndex===void 0&&o.push(`Document has ${a} tables; CSV export emitted only the first. Use the csv converter's tableIndex option to select another.`);let s=n(r,i);return o1(new TextEncoder().encode(s),$$.csv,o)}},{id:`html`,templateAnnotationHandling:`rendered`,label:`HTML (single file)`,mimeType:$$.html,extensions:[`.html`,`.htm`],async importDoc(e,t){let{htmlToMarkdownDoc:n}=await Wr(async()=>{let{htmlToMarkdownDoc:e}=await import(`./html-Cgejr9YM.js`).then(e=>e.t);return{htmlToMarkdownDoc:e}},__vite__mapDeps([55,4,43,44,39,40,38,45,46,47,41,33,56,54]));return n(e,n1(t,`html`))},async exportDoc(e,t){let n=n1(t,`html`);if(n.playerScriptPath){let{generateExternalHtml:r}=await Wr(async()=>{let{generateExternalHtml:e}=await import(`./html-Cgejr9YM.js`).then(e=>e.t);return{generateExternalHtml:e}},__vite__mapDeps([55,4,43,44,39,40,38,45,46,47,41,33,56,54])),i=r(e.doc,{...n,playerScriptPath:n.playerScriptPath,title:t.title??e.baseName,mode:n.mode??`static`,themeId:t1(e,t),themeRegistry:t.themeRegistry??n.themeRegistry});return o1(new TextEncoder().encode(i),$$.html)}let r=await a1(t,`html`),{docToHtml:i}=await Wr(async()=>{let{docToHtml:e}=await import(`./html-Cgejr9YM.js`).then(e=>e.t);return{docToHtml:e}},__vite__mapDeps([55,4,43,44,39,40,38,45,46,47,41,33,56,54])),a=await i1(e.container,t.signal),o=new Map([...a,...n.images??new Map]),s=i(e.doc,{...n,playerScript:r,images:o,title:t.title??e.baseName,mode:n.mode??`static`,themeId:t1(e,t),themeRegistry:t.themeRegistry??n.themeRegistry});return o1(new TextEncoder().encode(s),$$.html)}},{id:`htmlzip`,templateAnnotationHandling:`rendered`,label:`HTML (ZIP archive)`,mimeType:$$.zip,extensions:[`.html.zip`],async exportDoc(e,t){let n=await a1(t,`htmlzip`),{docToHtmlZip:r}=await Wr(async()=>{let{docToHtmlZip:e}=await import(`./html-Cgejr9YM.js`).then(e=>e.t);return{docToHtmlZip:e}},__vite__mapDeps([55,4,43,44,39,40,38,45,46,47,41,33,56,54])),i=n1(t,`htmlzip`),a=await i1(e.container,t.signal),o=new Map([...a,...i.images??new Map]);return o1(await e1(await r(e.doc,{...i,playerScript:n,images:o,title:t.title??e.baseName,mode:i.mode??`static`,themeId:t1(e,t),themeRegistry:t.themeRegistry??i.themeRegistry})),$$.zip)}},{id:`epub`,templateAnnotationHandling:`ignored`,label:`EPUB`,mimeType:$$.epub,extensions:[`.epub`],async exportDoc(e,t){let{markdownDocToEpub:n}=await Wr(async()=>{let{markdownDocToEpub:e}=await import(`./epub-00L2M424.js`);return{markdownDocToEpub:e}},__vite__mapDeps([64,4,43,44,39,40,38,45,46,47,41,48,33,49,56,54])),r=n1(t,`epub`),i=await r1(e),a=await i1(e.container,t.signal),o=new Map([...a,...r.images??new Map]);return o1(await e1(await n(i,{...r,title:t.title??e.baseName,themeId:t1(e,t),themeRegistry:t.themeRegistry??r.themeRegistry,images:o})),$$.epub,Q$(i,`epub`))}},{id:`dbk`,templateAnnotationHandling:`preserved`,label:`Squisq container (DBK)`,mimeType:$$.zip,extensions:[`.dbk`,`.zip`],async importContainer(e,t){let{zipToContainer:n}=await Wr(async()=>{let{zipToContainer:e}=await import(`./container-CKiqsJHV.js`).then(e=>e.n);return{zipToContainer:e}},__vite__mapDeps([65,4,53,33,32]));return n(e,n1(t,`dbk`))},async exportDoc(e,t){let{containerToZip:n}=await Wr(async()=>{let{containerToZip:e}=await import(`./container-CKiqsJHV.js`).then(e=>e.n);return{containerToZip:e}},__vite__mapDeps([65,4,53,33,32]));return o1(await e1(await n(await aIe(e,t.signal),n1(t,`dbk`))),$$.zip)}}]}function c1(e){return e.replace(/^\.+/,``).toLowerCase()}function sIe(){let e=new Map;return{register(t){e.set(t.id,t)},get(t){return e.get(t)},byExtension(t){let n=c1(t);if(n){for(let t of e.values())if(t.extensions.some(e=>c1(e)===n))return t}},list(){return[...e.values()]}}}function l1(){let e=sIe();for(let t of oIe())e.register(t);return e}function u1(e){return e.formatOptions?.md??{}}function d1(e){let t=u1(e).parse??{};return{...t,signal:e.signal,limits:t.limits??Y$(e.limits)}}function f1(e){let t=u1(e).stringify??{};return{...t,signal:e.signal,limits:t.limits??Y$(e.limits)}}function p1(e){if(!e?.aborted)return;if(e.reason!==void 0)throw e.reason;let t=Error(`Document conversion was cancelled.`);throw t.name=`AbortError`,t}function m1(e,t){if(e.length<t.length)return!1;for(let n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0}var cIe=[80,75,3,4],lIe=[37,80,68,70],uIe=[`docx`,`pptx`,`xlsx`,`dbk`];function dIe(e){let t=uIe.map(t=>Qr(e.formatOptions?.[t]??{}));return{signal:e.signal,maxEntries:Math.max(...t.map(e=>e.maxEntries)),maxUncompressedBytes:Math.max(...t.map(e=>e.maxUncompressedBytes)),maxEntryUncompressedBytes:Math.max(...t.map(e=>e.maxEntryUncompressedBytes)),maxCompressionRatio:Math.max(...t.map(e=>e.maxCompressionRatio))}}async function fIe(e,t){let n=await $r(e,dIe(t)).catch(e=>{throw e instanceof ei&&e.code!==`invalid-archive`?e:new ci(`invalid-input`,`Input is not a readable ZIP archive.`,{cause:e})}),r=n.entries.find(e=>e.path===`[Content_Types].xml`);if(!r)return`dbk`;let i=1024*1024;if((r.declaredSize??0)>i)throw new ci(`invalid-input`,`OOXML content-types metadata is too large.`);let a=await n.read(r.path,i);if(!a)return`dbk`;let o=new TextDecoder().decode(a);return o.includes(`wordprocessingml`)?`docx`:o.includes(`presentationml`)?`pptx`:o.includes(`spreadsheetml`)?`xlsx`:`dbk`}async function pIe(e,t,n,r){if(n.from)return n.from;let i=t?mIe(t):void 0;if(i){let e=r.byExtension(i);if(e)return e.id}return m1(e,lIe)?`pdf`:m1(e,cIe)?fIe(e,n):`md`}function mIe(e){let t=e.replace(/\\/g,`/`),n=t.split(`/`).pop()??t,r=n.lastIndexOf(`.`);return r<=0?``:n.slice(r+1).toLowerCase()}function hIe(e){let t=e.replace(/\\/g,`/`),n=t.split(`/`).pop()??t,r=n.lastIndexOf(`.`);return r>0?n.slice(0,r):n}async function gIe(e,t,n){let r=e.data instanceof Uint8Array?e.data:new Uint8Array(e.data);if(t.limits!==!1&&r.byteLength>J$(t.limits).maxInputBytes)throw new ci(`invalid-input`,`Input exceeds the ${J$(t.limits).maxInputBytes}-byte safety limit.`);let i=r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength),a=await pIe(r,e.filename,t,n),o=n.get(a);if(!o)throw new ci(`unknown-format`,`Unknown source format "${a}".`,{format:a});if(!o.importContainer&&!o.importDoc)throw new ci(`unsupported-input`,`Format "${o.label}" cannot be used as a conversion source.`,{format:a,hint:`This format is export-only.`});let{markdownToDoc:s}=await Wr(async()=>{let{markdownToDoc:e}=await import(`./doc-B7NXSLxH.js`).then(e=>e.t);return{markdownToDoc:e}},__vite__mapDeps([43,4,44,39,40,38,45,46])),{parseMarkdown:c,stringifyMarkdown:l}=await Wr(async()=>{let{parseMarkdown:e,stringifyMarkdown:t}=await import(`./markdown-ekej7NJt.js`).then(e=>e.t);return{parseMarkdown:e,stringifyMarkdown:t}},__vite__mapDeps([47,4,44,40,45])),u=[],d,f;if(o.importContainer){f=await o.importContainer(i,t);let e=await f.readDocument();d=e?c(e,d1(t)):{type:`document`,children:[]}}else{d=await o.importDoc(i,t);let{MemoryContentContainer:e}=await Wr(async()=>{let{MemoryContentContainer:e}=await import(`./storage-DUIC1aL6.js`).then(e=>e.t);return{MemoryContentContainer:e}},__vite__mapDeps([53,4])),n=new e;await n.writeDocument(l(d,f1(t))),f=n}let{assertMarkdownDocumentWithinLimits:p}=await Wr(async()=>{let{assertMarkdownDocumentWithinLimits:e}=await import(`./markdown-ekej7NJt.js`).then(e=>e.t);return{assertMarkdownDocumentWithinLimits:e}},__vite__mapDeps([47,4,44,40,45]));p(d,Y$(t.limits),t.signal);let m=s(d,{autoTemplates:t.autoTemplates});X$(m,t.limits,t.signal);let h=e.filename?hIe(e.filename):`document`;return{input:{doc:m,markdownDoc:d,container:f,baseName:h},warnings:u}}async function _Ie(e,t){let{markdownToDoc:n}=await Wr(async()=>{let{markdownToDoc:e}=await import(`./doc-B7NXSLxH.js`).then(e=>e.t);return{markdownToDoc:e}},__vite__mapDeps([43,4,44,39,40,38,45,46])),{parseMarkdown:r}=await Wr(async()=>{let{parseMarkdown:e}=await import(`./markdown-ekej7NJt.js`).then(e=>e.t);return{parseMarkdown:e}},__vite__mapDeps([47,4,44,40,45])),{stringifyMarkdown:i}=await Wr(async()=>{let{stringifyMarkdown:e}=await import(`./markdown-ekej7NJt.js`).then(e=>e.t);return{stringifyMarkdown:e}},__vite__mapDeps([47,4,44,40,45])),a=typeof e.markdown==`string`?r(e.markdown,d1(t)):e.markdown,{assertMarkdownDocumentWithinLimits:o}=await Wr(async()=>{let{assertMarkdownDocumentWithinLimits:e}=await import(`./markdown-ekej7NJt.js`).then(e=>e.t);return{assertMarkdownDocumentWithinLimits:e}},__vite__mapDeps([47,4,44,40,45]));o(a,Y$(t.limits),t.signal);let s=e.container;if(!s){let{MemoryContentContainer:e}=await Wr(async()=>{let{MemoryContentContainer:e}=await import(`./storage-DUIC1aL6.js`).then(e=>e.t);return{MemoryContentContainer:e}},__vite__mapDeps([53,4])),n=new e;await n.writeDocument(i(a,f1(t))),s=n}let c=n(a,{autoTemplates:t.autoTemplates});X$(c,t.limits,t.signal);let l=e.baseName??`document`;return{input:{doc:c,markdownDoc:a,container:s,baseName:l},warnings:[]}}async function vIe(e,t){X$(e.doc,t.limits,t.signal);let n=e.container;if(!n){let{MemoryContentContainer:r}=await Wr(async()=>{let{MemoryContentContainer:e}=await import(`./storage-DUIC1aL6.js`).then(e=>e.t);return{MemoryContentContainer:e}},__vite__mapDeps([53,4])),{docToMarkdown:i}=await Wr(async()=>{let{docToMarkdown:e}=await import(`./doc-B7NXSLxH.js`).then(e=>e.t);return{docToMarkdown:e}},__vite__mapDeps([43,4,44,39,40,38,45,46])),{stringifyMarkdown:a}=await Wr(async()=>{let{stringifyMarkdown:e}=await import(`./markdown-ekej7NJt.js`).then(e=>e.t);return{stringifyMarkdown:e}},__vite__mapDeps([47,4,44,40,45])),o=new r;await o.writeDocument(a(i(e.doc),f1(t))),n=o}let r=e.baseName??`document`;return{input:{doc:e.doc,container:n,baseName:r},warnings:[]}}async function yIe(e,t,n){switch(e.kind){case`bytes`:return gIe(e,t,n);case`markdown`:return _Ie(e,t);case`doc`:return vIe(e,t)}}async function bIe(e,t,n,r){let{applyTransform:i,extractDocImages:a}=await Wr(async()=>{let{applyTransform:e,extractDocImages:t}=await import(`./transform-MBfVXq54.js`).then(e=>e.t);return{applyTransform:e,extractDocImages:t}},__vite__mapDeps([66,4,44,39,46])),{docToMarkdown:o,markdownToDoc:s}=await Wr(async()=>{let{docToMarkdown:e,markdownToDoc:t}=await import(`./doc-B7NXSLxH.js`).then(e=>e.t);return{docToMarkdown:e,markdownToDoc:t}},__vite__mapDeps([43,4,44,39,40,38,45,46])),c=a(e.doc.blocks),l=i(e.doc,t,{themeId:n,images:c,registry:r});e.doc=l.doc;let u=o(l.doc);return e.markdownDoc=u,s(u,{autoTemplates:!1}).blocks.length<l.doc.blocks.length?[`Transform produced blocks that don’t round-trip to markdown; export may be incomplete.`]:[]}async function xIe(e,t,n){p1(t.signal);let r=t.registry??l1(),i;try{i=await yIe(e,t,r),p1(t.signal)}catch(e){throw p1(t.signal),e instanceof ci?e:new ci(`invalid-input`,e instanceof Error?e.message:String(e),{format:t.from,cause:e})}let{input:a,warnings:o}=i;t.themeId&&!a.doc.themeId&&(a.doc={...a.doc,themeId:t.themeId});try{t.transformStyle&&(o.push(...await bIe(a,t.transformStyle,t.themeId??a.doc.themeId,t.transformRegistry)),p1(t.signal))}catch(e){throw p1(t.signal),e instanceof ci?e:new ci(`conversion-failed`,e instanceof Error?e.message:String(e),{format:n,cause:e})}let s=Object.freeze([...o]),c={...a};return Object.freeze({async convert(e,n={}){let i=h1(r,e),a=SIe(t,n);p1(a.signal);let o;try{o=await i.exportDoc({...c},a),p1(a.signal)}catch(t){throw p1(a.signal),t instanceof ci?t:new ci(`conversion-failed`,t instanceof Error?t.message:String(t),{format:e,cause:t})}let l=i.extensions[0]?.replace(/^\.+/,``)??e;return{...o,suggestedFilename:`${c.baseName}.${l}`,warnings:[...s,...o.warnings]}}})}function h1(e,t){let n=e.get(t);if(!n)throw new ci(`unknown-format`,`Unknown target format "${t}".`,{format:t});if(!n.exportDoc)throw new ci(`unsupported-output`,`Format "${n.label}" does not support export.`,{format:t,hint:`This format is import-only.`});return n}function SIe(e,t){return{...e,signal:CIe(e.signal,t.signal),title:t.title??e.title,resolvePlayerScript:t.resolvePlayerScript??e.resolvePlayerScript,formatOptions:t.formatOptions===void 0?e.formatOptions:{...e.formatOptions??{},...t.formatOptions}}}function CIe(e,t){return e?!t||e===t?e:AbortSignal.any([e,t]):t}async function wIe(e,t,n={}){p1(n.signal);let r=n.registry??l1();return h1(r,t),(await xIe(e,{...n,registry:r},t)).convert(t)}var TIe=t({OUTSIDE_IN_FORMATS:()=>g1,OUTSIDE_IN_UPDATE_FROM_MARKDOWN_KEY:()=>_1,chooseOutsideInSource:()=>x1,importOutsideInDocument:()=>E1,isOutsideInMarkdownEditingEnabled:()=>C1,parentPath:()=>k1,relativePath:()=>A1,renderOutsideInDocument:()=>D1,resolveOutsideInLayout:()=>b1,runtimePathForTarget:()=>O1,withOutsideInMarkdownEditing:()=>w1,withOutsideInMetadata:()=>S1}),g1=[`html`,`docx`,`pdf`,`pptx`,`xlsx`],_1=`squisq-updatefrommarkdown`,EIe=new Set(g1);function v1(e){let t=e.replace(/\\/g,`/`).split(`/`).filter(Boolean);if(t.some(e=>e===`.`||e===`..`))throw Error(`Outside-in paths must stay inside the project: ${e}`);return t.join(`/`)}function y1(e,t){return e?`${e}/${t}`:t}function DIe(e){return e.normalize(`NFKD`).replace(/\p{Mark}+/gu,``).toLocaleLowerCase(`en-US`).replace(/[^\p{Letter}\p{Number}]+/gu,`-`).replace(/^-+|-+$/g,``)||`document`}function b1(e){let t=v1(e),n=t.lastIndexOf(`/`),r=n<0?``:t.slice(0,n),i=n<0?t:t.slice(n+1),a=i.lastIndexOf(`.`);if(a<=0)return null;let o=i.slice(a+1).toLowerCase(),s=o===`htm`?`html`:o;if(!EIe.has(s))return null;let c=i.slice(0,a),l=`${c}_files`,u=y1(r,l),d=`${DIe(c)}.md`,f=y1(u,`.original`),p=`original.${s}`;return{targetPath:t,format:s,parentDirectory:r,stem:c,companionName:l,companionDirectory:u,markdownFilename:d,markdownPath:y1(u,d),relativeTargetPath:`../${i}`,backupDirectory:f,backupFilename:p,backupPath:y1(f,p)}}function x1(e,t){let n=v1(e.markdownPath),r=t.map(v1),i=r.find(e=>e===n);if(i)return i;let a=r.find(e=>e.toLocaleLowerCase(`en-US`)===n.toLocaleLowerCase(`en-US`));if(a)return a;let o=`${e.companionDirectory}/`,s=r.filter(e=>e.startsWith(o)&&!e.slice(o.length).includes(`/`)&&e.toLocaleLowerCase(`en-US`).endsWith(`.md`));return s.length===1?s[0]:null}function S1(e,t){return zn(e,{"squisq-outside-in":1,"squisq-output":t.relativeTargetPath,"squisq-output-format":t.format})}function OIe(e){let t=Mn(e).frontmatter;if(!t)return null;let n=t.indexOf(`
|
|
823
|
-
`);return n<0?null:t.slice(n+1).replace(/\r?\n---(?:\r?\n)?$/,``)}function C1(e){let t=OIe(e);return(t===null?null:In(t))?.[_1]===!0}function w1(e,t,n=!0){return zn(S1(e,t),{[_1]:n})}function T1(e){return e instanceof ArrayBuffer?e:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}async function E1(e,t,n={}){let r=n.registry??l1(),i=r.get(t.format);if(!i||!i.importContainer&&!i.importDoc)throw Error(`${t.format.toUpperCase()} cannot be imported for editing.`);let a=new Xr,o=null;if(i.importContainer){a=await i.importContainer(T1(e),{...n,registry:r,from:t.format});let s=await a.readDocument();s!==null&&(o=Cr(s))}if(!o&&i.importDoc&&(o=await i.importDoc(T1(e),{...n,registry:r,from:t.format})),!o)throw Error(`The ${t.format.toUpperCase()} file has no editable content.`);let s=[];if((t.format===`docx`||t.format===`xlsx`)&&typeof o.frontmatter?.[`squisq-theme`]!=`string`)try{let[{inferThemeFromFile:r},i]=await Promise.all([Wr(()=>import(`./infer-D6e75m-s.js`),__vite__mapDeps([31,1,32,4,33,34,35,36,37,38,39,40,41])),Wr(()=>import(`./doc-B7NXSLxH.js`).then(e=>e.t),__vite__mapDeps([43,4,44,39,40,38,45,46]))]),a=await r(T1(e),{format:t.format,nameHint:t.stem,signal:n.signal}),c=i.writeCustomThemesToFrontmatter([a.theme]);c&&(o.frontmatter={...o.frontmatter??{},[i.FRONTMATTER_CUSTOM_THEMES_KEY]:c,"squisq-theme":a.theme.id}),s.push(...a.warnings)}catch(e){if(n.signal?.aborted)throw n.signal.reason??e;s.push(`The ${t.format.toUpperCase()} content was imported, but its Office theme could not be retained: ${e instanceof Error?e.message:String(e)}`)}return{markdown:S1(Mr(o),t),container:a,warnings:s}}async function D1(e,t,n,r){if(!C1(e))throw Error(`Outside-in editing is read-only until ${_1}: true is set.`);if(t.format!==`html`)return wIe({kind:`markdown`,markdown:e,container:n,baseName:t.stem},t.format,{title:t.stem});if(!r)throw Error(`HTML editing needs a shared Squisq runtime path.`);let i=cn(Cr(e)),a=e=>`${t.companionName}/${e.replace(/^\/+/,``)}`,o=Object.fromEntries([...ai(i)].map(e=>[e,a(e)])),s={};for(let e of i.audio.segments)s[e.name]=a(e.src),s[e.src]=a(e.src);let c=ri(i,{playerScriptPath:r,imagePathMap:o,audioPathMap:s,title:t.stem,mode:`static`});return{bytes:new TextEncoder().encode(c),mimeType:`text/html`,suggestedFilename:`${t.stem}.html`,warnings:[]}}function O1(e,t){let n=k1(e);for(;;){let e=y1(n,`_squisq`);if(t.has(e))return y1(e,`squisq-player.js`);if(!n)return`_squisq/squisq-player.js`;n=k1(n)}}function k1(e){let t=v1(e),n=t.lastIndexOf(`/`);return n<0?``:t.slice(0,n)}function A1(e,t){let n=v1(e).split(`/`).filter(Boolean),r=v1(t).split(`/`).filter(Boolean),i=0;for(;i<n.length&&i<r.length&&n[i]===r[i];)i++;return[...n.slice(i).map(()=>`..`),...r.slice(i)].join(`/`)||`.`}var j1=new Set([`md`,`markdown`,`mdx`,`txt`,`csv`,`json`,`yaml`,`yml`]),kIe=[...j1,`html`,`htm`,`docx`,`pdf`,`pptx`,`xlsx`],AIe=new Set(kIe);function M1(e){let t=e.lastIndexOf(`.`);return t>0?e.slice(t+1).toLocaleLowerCase(`en-US`):``}function jIe(e){return[...e].map(e=>{let t=e.charCodeAt(0);return e===`/`||e===`\\`||t<32?`-`:e}).join(``).trim()}function N1(e,t){let n=e.replace(/^\/+|\/+$/g,``);return n?`${n}/${t}`:t}function MIe(e){let t=e.lastIndexOf(`.`);return t<=0?{stem:e,extension:``}:{stem:e.slice(0,t),extension:e.slice(t)}}function NIe(e,t,n){let{stem:r,extension:i}=MIe(t),a=N1(e,t),o=2,s=e=>{if(n.has(e.toLocaleLowerCase(`en-US`)))return!0;let t=b1(e);if(!t)return!1;let r=t.companionDirectory.toLocaleLowerCase(`en-US`);return[...n].some(e=>e===r||e.startsWith(`${r}/`))};for(;s(a);)a=N1(e,`${r} ${o}${i}`),o+=1;n.add(a.toLocaleLowerCase(`en-US`));let c=b1(a);return c&&n.add(c.companionDirectory.toLocaleLowerCase(`en-US`)),a}function PIe(e,t){if(t)return t;switch(M1(e)){case`md`:case`markdown`:case`mdx`:return`text/markdown`;case`html`:case`htm`:return`text/html`;case`docx`:return`application/vnd.openxmlformats-officedocument.wordprocessingml.document`;case`pdf`:return`application/pdf`;case`pptx`:return`application/vnd.openxmlformats-officedocument.presentationml.presentation`;case`xlsx`:return`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`;default:return`application/octet-stream`}}function FIe(e){return AIe.has(M1(e.name))}async function IIe(e,t,n){let r=b1(n);if(!r)throw Error(`${t.name} is not a supported rendered document.`);return await e.writeDocumentBinary(r.targetPath,t,PIe(n,t.type)),[]}async function LIe(e){let t=e.destination?.replace(/^\/+|\/+$/g,``)??``,n=new Set(e.existingPaths.map(e=>e.toLocaleLowerCase(`en-US`))),r={importedPaths:[],warnings:[],rejected:[]};for(let i of e.files){let a=jIe(i.name);if(!a||!FIe({name:a})){r.rejected.push({name:i.name||`Unnamed file`,reason:`Unsupported document type`});continue}let o=NIe(t,a,n);try{if(b1(o))r.warnings.push(...await IIe(e.client,i,o));else if(j1.has(M1(a)))await e.client.writeDocument(o,await i.text());else throw Error(`Unsupported document type`);r.importedPaths.push(o)}catch(e){r.rejected.push({name:i.name,reason:e instanceof Error?e.message:String(e)})}}return r}function RIe(e,t){let n=e.replace(/\/[^/]*$/,``);return n&&t.startsWith(`${n}/`)?t.slice(n.length+1):t}function P1(e){let{client:t,currentDocumentPath:n,limit:r=20,source:i=`documents`,projectId:a}=e;return async e=>{let o=e.trim().toLowerCase();try{return(i===`project-artifacts`&&a?await t.listProjectArtifacts(a,void 0,!0):await t.listDocuments(void 0,!0)).files.filter(e=>!e.isDirectory).filter(e=>e.path!==n).filter(e=>/\.(md|markdown|mdx|txt)$/i.test(e.name)).filter(e=>!o||e.name.toLowerCase().includes(o)||e.path.toLowerCase().includes(o)).slice(0,r).map(e=>({path:RIe(n,e.path),label:e.name.replace(/\.(md|markdown|mdx|txt)$/i,``),description:e.path}))}catch{return[]}}}function F1(e){try{return Mr(Cr(e))}catch{return e}}function zIe({value:e,onChange:t}){let{markdownSource:n,replaceAll:r}=mB(),i=(0,X.useRef)(e),a=(0,X.useRef)(t);return a.current=t,(0,X.useEffect)(()=>{n!==i.current&&(i.current=n,a.current(n))},[n]),(0,X.useEffect)(()=>{e!==i.current&&(i.current=e,r(e))},[e,r]),null}function BIe({value:e,onChange:t,ariaLabel:n}){let r=Ax();return(0,Z.jsx)(`section`,{className:`gz-transform-after-editor`,"aria-label":n,children:(0,Z.jsxs)(vB,{initialMarkdown:(0,X.useRef)(e).current,articleId:`transform-after`,colorScheme:r,allowRecording:!1,allowNarrate:!1,mentionProvider:null,children:[(0,Z.jsx)(zIe,{value:e,onChange:t}),(0,Z.jsx)(zX,{className:`gz-transform-after-wysiwyg`})]})})}var I1={id:`gezel-dark`,background:`#1c1f1c`,backgroundLight:`#252925`,text:`#f0ede4`,textMuted:`#9da195`},L1={id:`gezel-light`,background:`#f3eddf`,backgroundLight:`#eae5d6`,text:`#1c1c1c`,textMuted:`#666666`};function R1({markdown:e}){let t=(0,X.useMemo)(()=>{try{return cn(Cr(e),{articleId:`transform-before`})}catch{return null}},[e]),n=Ax()===`dark`?I1:L1;return(0,Z.jsx)(`div`,{className:`gz-transform-before-text`,children:t?(0,Z.jsx)(Lb,{doc:t,theme:TS,surface:n,thinMargins:!0}):(0,Z.jsx)(`pre`,{className:`gz-transform-before-raw`,children:e})})}function VIe({original:e,value:t,onChange:n}){let r=(0,X.useRef)(null),i=(0,X.useRef)(null),a=(0,X.useRef)(null),o=(0,X.useRef)(null),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(!1),d=Ax(),f=(0,X.useRef)(n);f.current=n;let p=(0,X.useRef)(e),m=(0,X.useRef)(t),h=(0,X.useRef)(d);return h.current=d,(0,X.useEffect)(()=>{let e=!1,t=[];return(async()=>{let n;try{n=await Wr(()=>import(`./monaco-base-DrP3D13F.js`),__vite__mapDeps([30,24,4,1,25,26,27,28,29])),await n.ensureGezelMonacoBase(),await n.monaco.loadMonacoLanguages(`markdown`)}catch(t){e||c(t.message);return}if(e||!r.current)return;let s=n.monaco;i.current=s;let l=s.editor.createModel(p.current,`markdown`),d=s.editor.createModel(m.current,`markdown`);o.current=d,t.push(l,d);let g=s.editor.createDiffEditor(r.current,{automaticLayout:!0,originalEditable:!1,readOnly:!1,renderSideBySide:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:13,fixedOverflowWidgets:!0,wordWrap:`on`});a.current=g,g.setModel({original:l,modified:d}),s.editor.setTheme(h.current===`dark`?`gezel-dark`:`gezel-light`),t.push(d.onDidChangeContent(()=>f.current(d.getValue()))),u(!0)})(),()=>{e=!0,a.current?.dispose(),a.current=null;for(let e of t)e.dispose();o.current=null}},[]),(0,X.useEffect)(()=>{let e=o.current;l&&e&&e.getValue()!==t&&e.setValue(t)},[t,l]),(0,X.useEffect)(()=>{i.current?.editor.setTheme(d===`dark`?`gezel-dark`:`gezel-light`)},[d]),(0,Z.jsxs)(`div`,{className:`gz-transform-diff`,children:[!l&&!s&&(0,Z.jsx)(`p`,{className:`muted small`,children:`Loading diff view…`}),s&&(0,Z.jsxs)(`p`,{className:`gz-transform-diff-error`,children:[`Diff view failed to load: `,s]}),(0,Z.jsx)(`div`,{ref:r,className:`gz-transform-diff-host`})]})}function HIe({markdown:e}){let t=(0,X.useRef)(null),n=(0,X.useDeferredValue)(e),r=(0,X.useMemo)(()=>{try{return cn(Cr(n),{articleId:`transform-thinking`})}catch{return null}},[n]),i=Ax()===`dark`?I1:L1;return(0,X.useEffect)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[n]),(0,Z.jsx)(`div`,{ref:t,className:`gz-transform-thinking`,"aria-live":`polite`,children:r?(0,Z.jsx)(Lb,{doc:r,theme:TS,surface:i,thinMargins:!0}):(0,Z.jsx)(`pre`,{className:`gz-transform-thinking-raw`,children:e})})}function z1(){let[e,t]=(0,X.useState)(null);return(0,X.useEffect)(()=>{let e=!1;return(async()=>{try{let n=await Q.getConfig();if(!n.klerkGezelId)return;let{gezels:r}=await Q.listGezels(),i=r.find(e=>e.id===n.klerkGezelId);!e&&i&&t(i)}catch{}})(),()=>{e=!0}},[]),e}var B1={phase:`idle`,thinking:``,outputPreview:``,result:null,error:null};function UIe(e,t){switch(t.type){case`status`:return{...e,phase:t.phase===`queued`?`queued`:`streaming`};case`thinking-delta`:return{...e,phase:`streaming`,thinking:e.thinking+t.text};case`output-delta`:return{...e,phase:`streaming`,outputPreview:e.outputPreview+t.text};case`done`:return{...e,phase:`done`,result:t.text};case`error`:return{...e,phase:`error`,error:t.error}}}function WIe(){let[e,t]=(0,X.useState)(B1),n=(0,X.useRef)(null),r=(0,X.useCallback)(e=>{n.current?.abort();let r=new AbortController;n.current=r,t({...B1,phase:`streaming`}),Q.transformTextStream(e,e=>t(t=>UIe(t,e)),r.signal).catch(e=>{r.signal.aborted||t(t=>({...t,phase:`error`,error:e instanceof Error?e.message:String(e)}))})},[]),i=(0,X.useCallback)(()=>{n.current?.abort(),n.current=null,t(B1)},[]);return(0,X.useEffect)(()=>()=>n.current?.abort(),[]),{state:e,start:r,reset:i}}function GIe({snapshot:e,context:t,subject:n,parentContext:r,onApply:i,onClose:a}){let[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(`edit`),{state:f,start:p}=WIe(),m=z1(),h=e.mode===`insert`,g=f.phase===`queued`||f.phase===`streaming`,_=f.phase===`done`,v=!g&&(!h||o.trim().length>0),y=_&&c.trim().length>0,b=m?.name??`AI`;(0,X.useEffect)(()=>{f.phase===`done`&&f.result!==null&&l(f.result)},[f.phase,f.result]);let x=()=>{if(!v)return;let i=o.trim();p({mode:e.mode,text:e.text,context:t,...i?{instruction:i}:{},...n?{subject:n}:{},...r?{parentContext:r}:{},...e.textBefore?{textBefore:e.textBefore}:{},...e.textAfter?{textAfter:e.textAfter}:{}})},S=e=>{e.preventDefault(),x()},C=f.thinking||f.outputPreview;return(0,Z.jsx)(dm,{open:!0,onOpenChange:e=>{e||a()},children:(0,Z.jsxs)(fm,{children:[(0,Z.jsx)(gm,{}),(0,Z.jsx)(_m,{className:`gz-transform-dialog`,children:(0,Z.jsxs)(`form`,{onSubmit:S,style:{display:`contents`},children:[(0,Z.jsx)(mm,{asChild:!0,children:(0,Z.jsx)(`h3`,{children:h?`Add content with AI`:`Edit with AI`})}),(0,Z.jsxs)(`div`,{className:`gz-transform-top`,children:[(0,Z.jsxs)(`label`,{className:`gz-transform-instruction`,children:[h?`What should be written?`:`How should the text change? (optional)`,(0,Z.jsx)(`textarea`,{value:o,onChange:e=>s(e.target.value),placeholder:h?`e.g. add a short summary of the goals, write an intro paragraph`:`e.g. make it more concise, convert to bullet points, add concrete examples`,rows:3,autoFocus:!0,disabled:g})]}),(0,Z.jsxs)(`div`,{className:`gz-transform-klerk-row`,children:[(0,Z.jsx)(Up,{svg:m?.icon,poppetje:m?.poppetje,iconOverride:m?.iconOverride,name:b,size:40,pulsing:g,title:`Transform with ${b}`,onClick:()=>x()}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,disabled:!v,"aria-label":`Transform with ${b}`,children:g?`Transforming…`:_?`Transform again with ${b}`:`Transform with ${b}`}),f.phase===`queued`&&(0,Z.jsx)(`span`,{className:`muted small`,children:`Waiting in queue…`})]})]}),g&&(C?(0,Z.jsx)(HIe,{markdown:C}):(0,Z.jsx)(`div`,{className:`gz-transform-thinking`,"aria-live":`polite`,children:`${b} is working…`})),f.phase===`error`&&(0,Z.jsx)(`p`,{className:`gz-transform-error`,role:`alert`,children:f.error}),(0,Z.jsx)(`div`,{className:`gz-transform-view`,children:_?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`gz-tray gz-transform-view-toggle`,role:`radiogroup`,"aria-label":`Result view`,children:[(0,Z.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":u===`edit`,className:`gz-key${u===`edit`?` gz-key-active`:``}`,onClick:()=>d(`edit`),children:h?`New text`:`Before / After`}),(0,Z.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":u===`diff`,className:`gz-key${u===`diff`?` gz-key-active`:``}`,onClick:()=>d(`diff`),children:`Diff`})]}),u===`edit`?(0,Z.jsxs)(`div`,{className:`gz-transform-panes`,children:[!h&&(0,Z.jsxs)(`div`,{className:`gz-transform-before`,children:[(0,Z.jsx)(`span`,{className:`gz-transform-pane-label muted small`,children:`Before`}),(0,Z.jsx)(R1,{markdown:e.text})]}),(0,Z.jsxs)(`div`,{className:`gz-transform-after`,children:[(0,Z.jsx)(`span`,{className:`gz-transform-pane-label muted small`,children:h?`New text (editable)`:`After (editable)`}),(0,Z.jsx)(BIe,{value:c,onChange:l,ariaLabel:h?`New text`:`Rewritten text`})]})]}):(0,Z.jsx)(VIe,{original:e.text,value:c,onChange:l})]}):h?(0,Z.jsx)(`p`,{className:`gz-transform-empty muted small`,children:`New text will be inserted at the cursor.`}):(0,Z.jsxs)(`div`,{className:`gz-transform-before`,children:[(0,Z.jsx)(`span`,{className:`gz-transform-pane-label muted small`,children:`Selected text`}),(0,Z.jsx)(R1,{markdown:e.text})]})}),(0,Z.jsxs)(vm,{children:[(0,Z.jsx)(`button`,{type:`button`,onClick:a,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`button`,className:`primary`,disabled:!y,onClick:()=>i(c),children:h?`Insert`:`Apply`})]})]})})]})})}var KIe=2e3,V1=1e3;function qIe(){return(0,Z.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`m2 14 8.5-8.5`,stroke:`currentColor`,strokeWidth:`1.4`,strokeLinecap:`round`}),(0,Z.jsx)(`path`,{d:`M12 1.8l.7 1.7 1.7.7-1.7.7-.7 1.7-.7-1.7-1.7-.7 1.7-.7.7-1.7Z`,stroke:`currentColor`,strokeWidth:`1.2`,strokeLinejoin:`round`})]})}function H1({context:e,subject:t,parentContext:n}){let{tiptapEditor:r,monacoEditor:i,activeView:a,insertAtCursor:o}=mB(),[s,c]=(0,X.useState)(null),l=a===`wysiwyg`&&!!r||a===`raw`&&!!i,u=(0,X.useCallback)(()=>{if(a===`wysiwyg`&&r){let{from:e,to:t}=r.state.selection,n=r.state.doc;if(e!==t){let r=n.textBetween(e,t,`
|
|
823
|
+
`);return n<0?null:t.slice(n+1).replace(/\r?\n---(?:\r?\n)?$/,``)}function C1(e){let t=OIe(e);return(t===null?null:In(t))?.[_1]===!0}function w1(e,t,n=!0){return zn(S1(e,t),{[_1]:n})}function T1(e){return e instanceof ArrayBuffer?e:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}async function E1(e,t,n={}){let r=n.registry??l1(),i=r.get(t.format);if(!i||!i.importContainer&&!i.importDoc)throw Error(`${t.format.toUpperCase()} cannot be imported for editing.`);let a=new Xr,o=null;if(i.importContainer){a=await i.importContainer(T1(e),{...n,registry:r,from:t.format});let s=await a.readDocument();s!==null&&(o=Cr(s))}if(!o&&i.importDoc&&(o=await i.importDoc(T1(e),{...n,registry:r,from:t.format})),!o)throw Error(`The ${t.format.toUpperCase()} file has no editable content.`);let s=[];if((t.format===`docx`||t.format===`xlsx`)&&typeof o.frontmatter?.[`squisq-theme`]!=`string`)try{let[{inferThemeFromFile:r},i]=await Promise.all([Wr(()=>import(`./infer-D6e75m-s.js`),__vite__mapDeps([31,1,32,4,33,34,35,36,37,38,39,40,41])),Wr(()=>import(`./doc-B7NXSLxH.js`).then(e=>e.t),__vite__mapDeps([43,4,44,39,40,38,45,46]))]),a=await r(T1(e),{format:t.format,nameHint:t.stem,signal:n.signal}),c=i.writeCustomThemesToFrontmatter([a.theme]);c&&(o.frontmatter={...o.frontmatter??{},[i.FRONTMATTER_CUSTOM_THEMES_KEY]:c,"squisq-theme":a.theme.id}),s.push(...a.warnings)}catch(e){if(n.signal?.aborted)throw n.signal.reason??e;s.push(`The ${t.format.toUpperCase()} content was imported, but its Office theme could not be retained: ${e instanceof Error?e.message:String(e)}`)}return{markdown:S1(Mr(o),t),container:a,warnings:s}}async function D1(e,t,n,r){if(!C1(e))throw Error(`Outside-in editing is read-only until ${_1}: true is set.`);if(t.format!==`html`)return wIe({kind:`markdown`,markdown:e,container:n,baseName:t.stem},t.format,{title:t.stem});if(!r)throw Error(`HTML editing needs a shared Squisq runtime path.`);let i=cn(Cr(e)),a=e=>`${t.companionName}/${e.replace(/^\/+/,``)}`,o=Object.fromEntries([...ai(i)].map(e=>[e,a(e)])),s={};for(let e of i.audio.segments)s[e.name]=a(e.src),s[e.src]=a(e.src);let c=ri(i,{playerScriptPath:r,imagePathMap:o,audioPathMap:s,title:t.stem,mode:`static`});return{bytes:new TextEncoder().encode(c),mimeType:`text/html`,suggestedFilename:`${t.stem}.html`,warnings:[]}}function O1(e,t){let n=k1(e);for(;;){let e=y1(n,`_squisq`);if(t.has(e))return y1(e,`squisq-player.js`);if(!n)return`_squisq/squisq-player.js`;n=k1(n)}}function k1(e){let t=v1(e),n=t.lastIndexOf(`/`);return n<0?``:t.slice(0,n)}function A1(e,t){let n=v1(e).split(`/`).filter(Boolean),r=v1(t).split(`/`).filter(Boolean),i=0;for(;i<n.length&&i<r.length&&n[i]===r[i];)i++;return[...n.slice(i).map(()=>`..`),...r.slice(i)].join(`/`)||`.`}var j1=new Set([`md`,`markdown`,`mdx`,`txt`,`csv`,`json`,`yaml`,`yml`]),kIe=[...j1,`html`,`htm`,`docx`,`pdf`,`pptx`,`xlsx`],AIe=new Set(kIe);function M1(e){let t=e.lastIndexOf(`.`);return t>0?e.slice(t+1).toLocaleLowerCase(`en-US`):``}function jIe(e){return[...e].map(e=>{let t=e.charCodeAt(0);return e===`/`||e===`\\`||t<32?`-`:e}).join(``).trim()}function N1(e,t){let n=e.replace(/^\/+|\/+$/g,``);return n?`${n}/${t}`:t}function MIe(e){let t=e.lastIndexOf(`.`);return t<=0?{stem:e,extension:``}:{stem:e.slice(0,t),extension:e.slice(t)}}function NIe(e,t,n){let{stem:r,extension:i}=MIe(t),a=N1(e,t),o=2,s=e=>{if(n.has(e.toLocaleLowerCase(`en-US`)))return!0;let t=b1(e);if(!t)return!1;let r=t.companionDirectory.toLocaleLowerCase(`en-US`);return[...n].some(e=>e===r||e.startsWith(`${r}/`))};for(;s(a);)a=N1(e,`${r} ${o}${i}`),o+=1;n.add(a.toLocaleLowerCase(`en-US`));let c=b1(a);return c&&n.add(c.companionDirectory.toLocaleLowerCase(`en-US`)),a}function PIe(e,t){if(t)return t;switch(M1(e)){case`md`:case`markdown`:case`mdx`:return`text/markdown`;case`html`:case`htm`:return`text/html`;case`docx`:return`application/vnd.openxmlformats-officedocument.wordprocessingml.document`;case`pdf`:return`application/pdf`;case`pptx`:return`application/vnd.openxmlformats-officedocument.presentationml.presentation`;case`xlsx`:return`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`;default:return`application/octet-stream`}}function FIe(e){return AIe.has(M1(e.name))}async function IIe(e,t,n){let r=b1(n);if(!r)throw Error(`${t.name} is not a supported rendered document.`);return await e.writeDocumentBinary(r.targetPath,t,PIe(n,t.type)),[]}async function LIe(e){let t=e.destination?.replace(/^\/+|\/+$/g,``)??``,n=new Set(e.existingPaths.map(e=>e.toLocaleLowerCase(`en-US`))),r={importedPaths:[],warnings:[],rejected:[]};for(let i of e.files){let a=jIe(i.name);if(!a||!FIe({name:a})){r.rejected.push({name:i.name||`Unnamed file`,reason:`Unsupported document type`});continue}let o=NIe(t,a,n);try{if(b1(o))r.warnings.push(...await IIe(e.client,i,o));else if(j1.has(M1(a)))await e.client.writeDocument(o,await i.text());else throw Error(`Unsupported document type`);r.importedPaths.push(o)}catch(e){r.rejected.push({name:i.name,reason:e instanceof Error?e.message:String(e)})}}return r}function RIe(e,t){let n=e.replace(/\/[^/]*$/,``);return n&&t.startsWith(`${n}/`)?t.slice(n.length+1):t}function P1(e){let{client:t,currentDocumentPath:n,limit:r=20,source:i=`documents`,projectId:a}=e;return async e=>{let o=e.trim().toLowerCase();try{return(i===`project-artifacts`&&a?await t.listProjectArtifacts(a,void 0,!0):await t.listDocuments(void 0,!0)).files.filter(e=>!e.isDirectory).filter(e=>e.path!==n).filter(e=>/\.(md|markdown|mdx|txt)$/i.test(e.name)).filter(e=>!o||e.name.toLowerCase().includes(o)||e.path.toLowerCase().includes(o)).slice(0,r).map(e=>({path:RIe(n,e.path),label:e.name.replace(/\.(md|markdown|mdx|txt)$/i,``),description:e.path}))}catch{return[]}}}function F1(e){try{return Mr(Cr(e))}catch{return e}}function zIe({value:e,onChange:t}){let{markdownSource:n,replaceAll:r}=mB(),i=(0,X.useRef)(e),a=(0,X.useRef)(t);return a.current=t,(0,X.useEffect)(()=>{n!==i.current&&(i.current=n,a.current(n))},[n]),(0,X.useEffect)(()=>{e!==i.current&&(i.current=e,r(e))},[e,r]),null}function BIe({value:e,onChange:t,ariaLabel:n}){let r=Ax();return(0,Z.jsx)(`section`,{className:`gz-transform-after-editor`,"aria-label":n,children:(0,Z.jsxs)(vB,{initialMarkdown:(0,X.useRef)(e).current,articleId:`transform-after`,colorScheme:r,allowRecording:!1,allowNarrate:!1,mentionProvider:null,children:[(0,Z.jsx)(zIe,{value:e,onChange:t}),(0,Z.jsx)(zX,{className:`gz-transform-after-wysiwyg`})]})})}var I1={id:`gezel-dark`,background:`#1c1f1c`,backgroundLight:`#252925`,text:`#f0ede4`,textMuted:`#9da195`},L1={id:`gezel-light`,background:`#f3eddf`,backgroundLight:`#eae5d6`,text:`#1c1c1c`,textMuted:`#666666`};function R1({markdown:e}){let t=(0,X.useMemo)(()=>{try{return cn(Cr(e),{articleId:`transform-before`})}catch{return null}},[e]),n=Ax()===`dark`?I1:L1;return(0,Z.jsx)(`div`,{className:`gz-transform-before-text`,children:t?(0,Z.jsx)(Lb,{doc:t,theme:TS,surface:n,thinMargins:!0}):(0,Z.jsx)(`pre`,{className:`gz-transform-before-raw`,children:e})})}function VIe({original:e,value:t,onChange:n}){let r=(0,X.useRef)(null),i=(0,X.useRef)(null),a=(0,X.useRef)(null),o=(0,X.useRef)(null),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(!1),d=Ax(),f=(0,X.useRef)(n);f.current=n;let p=(0,X.useRef)(e),m=(0,X.useRef)(t),h=(0,X.useRef)(d);return h.current=d,(0,X.useEffect)(()=>{let e=!1,t=[];return(async()=>{let n;try{n=await Wr(()=>import(`./monaco-base-DD1Wr24S.js`),__vite__mapDeps([30,24,4,1,25,26,27,28,29])),await n.ensureGezelMonacoBase(),await n.monaco.loadMonacoLanguages(`markdown`)}catch(t){e||c(t.message);return}if(e||!r.current)return;let s=n.monaco;i.current=s;let l=s.editor.createModel(p.current,`markdown`),d=s.editor.createModel(m.current,`markdown`);o.current=d,t.push(l,d);let g=s.editor.createDiffEditor(r.current,{automaticLayout:!0,originalEditable:!1,readOnly:!1,renderSideBySide:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:13,fixedOverflowWidgets:!0,wordWrap:`on`});a.current=g,g.setModel({original:l,modified:d}),s.editor.setTheme(h.current===`dark`?`gezel-dark`:`gezel-light`),t.push(d.onDidChangeContent(()=>f.current(d.getValue()))),u(!0)})(),()=>{e=!0,a.current?.dispose(),a.current=null;for(let e of t)e.dispose();o.current=null}},[]),(0,X.useEffect)(()=>{let e=o.current;l&&e&&e.getValue()!==t&&e.setValue(t)},[t,l]),(0,X.useEffect)(()=>{i.current?.editor.setTheme(d===`dark`?`gezel-dark`:`gezel-light`)},[d]),(0,Z.jsxs)(`div`,{className:`gz-transform-diff`,children:[!l&&!s&&(0,Z.jsx)(`p`,{className:`muted small`,children:`Loading diff view…`}),s&&(0,Z.jsxs)(`p`,{className:`gz-transform-diff-error`,children:[`Diff view failed to load: `,s]}),(0,Z.jsx)(`div`,{ref:r,className:`gz-transform-diff-host`})]})}function HIe({markdown:e}){let t=(0,X.useRef)(null),n=(0,X.useDeferredValue)(e),r=(0,X.useMemo)(()=>{try{return cn(Cr(n),{articleId:`transform-thinking`})}catch{return null}},[n]),i=Ax()===`dark`?I1:L1;return(0,X.useEffect)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[n]),(0,Z.jsx)(`div`,{ref:t,className:`gz-transform-thinking`,"aria-live":`polite`,children:r?(0,Z.jsx)(Lb,{doc:r,theme:TS,surface:i,thinMargins:!0}):(0,Z.jsx)(`pre`,{className:`gz-transform-thinking-raw`,children:e})})}function z1(){let[e,t]=(0,X.useState)(null);return(0,X.useEffect)(()=>{let e=!1;return(async()=>{try{let n=await Q.getConfig();if(!n.klerkGezelId)return;let{gezels:r}=await Q.listGezels(),i=r.find(e=>e.id===n.klerkGezelId);!e&&i&&t(i)}catch{}})(),()=>{e=!0}},[]),e}var B1={phase:`idle`,thinking:``,outputPreview:``,result:null,error:null};function UIe(e,t){switch(t.type){case`status`:return{...e,phase:t.phase===`queued`?`queued`:`streaming`};case`thinking-delta`:return{...e,phase:`streaming`,thinking:e.thinking+t.text};case`output-delta`:return{...e,phase:`streaming`,outputPreview:e.outputPreview+t.text};case`done`:return{...e,phase:`done`,result:t.text};case`error`:return{...e,phase:`error`,error:t.error}}}function WIe(){let[e,t]=(0,X.useState)(B1),n=(0,X.useRef)(null),r=(0,X.useCallback)(e=>{n.current?.abort();let r=new AbortController;n.current=r,t({...B1,phase:`streaming`}),Q.transformTextStream(e,e=>t(t=>UIe(t,e)),r.signal).catch(e=>{r.signal.aborted||t(t=>({...t,phase:`error`,error:e instanceof Error?e.message:String(e)}))})},[]),i=(0,X.useCallback)(()=>{n.current?.abort(),n.current=null,t(B1)},[]);return(0,X.useEffect)(()=>()=>n.current?.abort(),[]),{state:e,start:r,reset:i}}function GIe({snapshot:e,context:t,subject:n,parentContext:r,onApply:i,onClose:a}){let[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(`edit`),{state:f,start:p}=WIe(),m=z1(),h=e.mode===`insert`,g=f.phase===`queued`||f.phase===`streaming`,_=f.phase===`done`,v=!g&&(!h||o.trim().length>0),y=_&&c.trim().length>0,b=m?.name??`AI`;(0,X.useEffect)(()=>{f.phase===`done`&&f.result!==null&&l(f.result)},[f.phase,f.result]);let x=()=>{if(!v)return;let i=o.trim();p({mode:e.mode,text:e.text,context:t,...i?{instruction:i}:{},...n?{subject:n}:{},...r?{parentContext:r}:{},...e.textBefore?{textBefore:e.textBefore}:{},...e.textAfter?{textAfter:e.textAfter}:{}})},S=e=>{e.preventDefault(),x()},C=f.thinking||f.outputPreview;return(0,Z.jsx)(dm,{open:!0,onOpenChange:e=>{e||a()},children:(0,Z.jsxs)(fm,{children:[(0,Z.jsx)(gm,{}),(0,Z.jsx)(_m,{className:`gz-transform-dialog`,children:(0,Z.jsxs)(`form`,{onSubmit:S,style:{display:`contents`},children:[(0,Z.jsx)(mm,{asChild:!0,children:(0,Z.jsx)(`h3`,{children:h?`Add content with AI`:`Edit with AI`})}),(0,Z.jsxs)(`div`,{className:`gz-transform-top`,children:[(0,Z.jsxs)(`label`,{className:`gz-transform-instruction`,children:[h?`What should be written?`:`How should the text change? (optional)`,(0,Z.jsx)(`textarea`,{value:o,onChange:e=>s(e.target.value),placeholder:h?`e.g. add a short summary of the goals, write an intro paragraph`:`e.g. make it more concise, convert to bullet points, add concrete examples`,rows:3,autoFocus:!0,disabled:g})]}),(0,Z.jsxs)(`div`,{className:`gz-transform-klerk-row`,children:[(0,Z.jsx)(Up,{svg:m?.icon,poppetje:m?.poppetje,iconOverride:m?.iconOverride,name:b,size:40,pulsing:g,title:`Transform with ${b}`,onClick:()=>x()}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,disabled:!v,"aria-label":`Transform with ${b}`,children:g?`Transforming…`:_?`Transform again with ${b}`:`Transform with ${b}`}),f.phase===`queued`&&(0,Z.jsx)(`span`,{className:`muted small`,children:`Waiting in queue…`})]})]}),g&&(C?(0,Z.jsx)(HIe,{markdown:C}):(0,Z.jsx)(`div`,{className:`gz-transform-thinking`,"aria-live":`polite`,children:`${b} is working…`})),f.phase===`error`&&(0,Z.jsx)(`p`,{className:`gz-transform-error`,role:`alert`,children:f.error}),(0,Z.jsx)(`div`,{className:`gz-transform-view`,children:_?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`gz-tray gz-transform-view-toggle`,role:`radiogroup`,"aria-label":`Result view`,children:[(0,Z.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":u===`edit`,className:`gz-key${u===`edit`?` gz-key-active`:``}`,onClick:()=>d(`edit`),children:h?`New text`:`Before / After`}),(0,Z.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":u===`diff`,className:`gz-key${u===`diff`?` gz-key-active`:``}`,onClick:()=>d(`diff`),children:`Diff`})]}),u===`edit`?(0,Z.jsxs)(`div`,{className:`gz-transform-panes`,children:[!h&&(0,Z.jsxs)(`div`,{className:`gz-transform-before`,children:[(0,Z.jsx)(`span`,{className:`gz-transform-pane-label muted small`,children:`Before`}),(0,Z.jsx)(R1,{markdown:e.text})]}),(0,Z.jsxs)(`div`,{className:`gz-transform-after`,children:[(0,Z.jsx)(`span`,{className:`gz-transform-pane-label muted small`,children:h?`New text (editable)`:`After (editable)`}),(0,Z.jsx)(BIe,{value:c,onChange:l,ariaLabel:h?`New text`:`Rewritten text`})]})]}):(0,Z.jsx)(VIe,{original:e.text,value:c,onChange:l})]}):h?(0,Z.jsx)(`p`,{className:`gz-transform-empty muted small`,children:`New text will be inserted at the cursor.`}):(0,Z.jsxs)(`div`,{className:`gz-transform-before`,children:[(0,Z.jsx)(`span`,{className:`gz-transform-pane-label muted small`,children:`Selected text`}),(0,Z.jsx)(R1,{markdown:e.text})]})}),(0,Z.jsxs)(vm,{children:[(0,Z.jsx)(`button`,{type:`button`,onClick:a,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`button`,className:`primary`,disabled:!y,onClick:()=>i(c),children:h?`Insert`:`Apply`})]})]})})]})})}var KIe=2e3,V1=1e3;function qIe(){return(0,Z.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`m2 14 8.5-8.5`,stroke:`currentColor`,strokeWidth:`1.4`,strokeLinecap:`round`}),(0,Z.jsx)(`path`,{d:`M12 1.8l.7 1.7 1.7.7-1.7.7-.7 1.7-.7-1.7-1.7-.7 1.7-.7.7-1.7Z`,stroke:`currentColor`,strokeWidth:`1.2`,strokeLinejoin:`round`})]})}function H1({context:e,subject:t,parentContext:n}){let{tiptapEditor:r,monacoEditor:i,activeView:a,insertAtCursor:o}=mB(),[s,c]=(0,X.useState)(null),l=a===`wysiwyg`&&!!r||a===`raw`&&!!i,u=(0,X.useCallback)(()=>{if(a===`wysiwyg`&&r){let{from:e,to:t}=r.state.selection,n=r.state.doc;if(e!==t){let r=n.textBetween(e,t,`
|
|
824
824
|
`);if(r.trim())return{mode:`rewrite`,view:`wysiwyg`,text:r,tiptapRange:{from:e,to:t},tiptapAll:e===0&&t===n.content.size}}return{mode:`insert`,view:`wysiwyg`,text:``,tiptapRange:{from:e,to:t},textBefore:n.textBetween(0,e,`
|
|
825
825
|
`).slice(-2e3),textAfter:n.textBetween(t,n.content.size,`
|
|
826
826
|
`).slice(0,V1)}}if(a===`raw`&&i){let e=i.getSelection(),t=i.getModel();if(!e||!t)return null;let n={startLineNumber:e.startLineNumber,startColumn:e.startColumn,endLineNumber:e.endLineNumber,endColumn:e.endColumn};if(!e.isEmpty()){let r=t.getValueInRange(e);if(r.trim())return{mode:`rewrite`,view:`raw`,text:r,monacoRange:n}}let r=t.getValue(),a=t.getOffsetAt({lineNumber:e.startLineNumber,column:e.startColumn}),o=t.getOffsetAt({lineNumber:e.endLineNumber,column:e.endColumn});return{mode:`insert`,view:`raw`,text:``,monacoRange:n,textBefore:r.slice(Math.max(0,a-KIe),a),textAfter:r.slice(o,o+V1)}}return null},[a,r,i]),d=(0,X.useCallback)((e,t)=>{if(e.view===`wysiwyg`&&r&&e.tiptapRange){let{from:n,to:i}=e.tiptapRange;e.tiptapAll?r.chain().focus().selectAll().run():r.chain().focus().setTextSelection({from:n,to:i}).run(),o(t)}else e.view===`raw`&&i&&e.monacoRange&&(i.executeEdits(`ai-transform`,[{range:e.monacoRange,text:t,forceMoveMarkers:!0}]),i.focus())},[r,i,o]);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`button`,{type:`button`,className:`ai-btn`,onClick:()=>c(u()),disabled:!l,title:l?`AI: transform the selection, or add new content at the cursor`:`AI transform is available in the editing views`,"aria-label":`Transform with AI`,children:(0,Z.jsx)(qIe,{})}),s&&(0,Z.jsx)(GIe,{snapshot:s,context:e,subject:t,parentContext:n,onApply:e=>{d(s,e),c(null)},onClose:()=>c(null)})]})}function U1(e){let t=e.lastIndexOf(`/`);return t<0?e:e.slice(t+1)}async function JIe(e,t){let n=x1(t,(await Q.listDocuments(``,!0)).files.filter(e=>!e.isDirectory).map(e=>e.path)),r;if(n)r=(await Q.readDocument(n)).content;else{let i=await E1(await(await Q.fetchDocumentBlob(e)).arrayBuffer(),t),a=U$({root:t.companionDirectory,client:Q,primaryDocumentFilename:t.markdownFilename});for(let t of await i.container.listFiles()){if(/\.md$/i.test(t.path)||U1(t.path).toLocaleLowerCase(`en-US`)===U1(e).toLocaleLowerCase(`en-US`))continue;let n=await i.container.readFile(t.path);n&&await a.writeFile(t.path,n,t.mimeType)}r=S1(i.markdown,t),await a.writeDocument(r,t.markdownFilename),n=t.markdownPath}let i=S1(r,t);return i!==r&&(await Q.writeDocument(n,i),r=i),{sourcePath:n,content:r,editingEnabled:C1(r)}}function YIe({path:e,layout:t}){let[n,r]=(0,X.useState)(null),[i,a]=(0,X.useState)(null),[o,s]=(0,X.useState)(null),[c,l]=(0,X.useState)(!1);(0,X.useEffect)(()=>{let n=!1;return r(null),a(null),s(null),JIe(e,t).then(e=>{n||r(e)}).catch(e=>{n||a(e instanceof Error?e.message:String(e))}),()=>{n=!0}},[t,e]);let u=(0,X.useCallback)(async()=>{if(!(!n||c)){l(!0),s(null);try{if(!(await Q.listDocuments(``,!0)).files.some(e=>e.path===t.backupPath)){let e=await Q.fetchDocumentBlob(t.targetPath);await Q.writeDocumentBinary(t.backupPath,e,e.type||`application/octet-stream`)}let e=w1(n.content,t);await Q.writeDocument(n.sourcePath,e),r({...n,content:e,editingEnabled:!0})}catch(e){s(e instanceof Error?e.message:String(e))}finally{l(!1)}}},[c,t,n]);return i?(0,Z.jsx)(`div`,{className:`placeholder`,children:(0,Z.jsxs)(`p`,{children:[`Couldn't open `,(0,Z.jsx)(`code`,{children:e}),`: `,i]})}):n?(0,Z.jsx)(XIe,{path:e,layout:t,prepared:n,enabling:c,enableError:o,onEnableEditing:u},`${n.sourcePath}:${n.editingEnabled?`editable`:`readonly`}`):(0,Z.jsxs)(`p`,{className:`placeholder`,children:[`Importing `,e,` for viewing…`]})}function XIe({path:e,layout:t,prepared:n,enabling:r,enableError:i,onEnableEditing:a}){let o=Ax(),s=(0,X.useMemo)(()=>U$({root:t.companionDirectory,client:Q,primaryDocumentFilename:U1(n.sourcePath)}),[t.companionDirectory,n.sourcePath]),c=(0,X.useMemo)(()=>P1({client:Q,currentDocumentPath:n.sourcePath}),[n.sourcePath]),l=(0,X.useCallback)(async e=>{let r=S1(e,t),i=await Q.listDocuments(``,!0),a=t.format===`html`?O1(t.targetPath,new Set(i.files.filter(e=>e.isDirectory).map(e=>e.path.replace(/^\/+/,``)))):void 0,o=await D1(r,t,s,a?A1(t.parentDirectory,a):void 0);if(await Q.writeDocument(n.sourcePath,r),a){let{PLAYER_BUNDLE:e}=await Wr(async()=>{let{PLAYER_BUNDLE:e}=await Promise.resolve().then(()=>T$);return{PLAYER_BUNDLE:e}},void 0);await Q.writeDocument(a,e)}await Q.writeDocumentBinary(t.targetPath,o.bytes,o.mimeType)},[s,t,n.sourcePath]),u=(0,X.useMemo)(()=>F1(n.content),[n.content]),d=MC({resourceKey:`outside-in:documents:${n.sourcePath}`,initialValue:u,save:l}),f=(0,X.useCallback)(e=>{d.update(e)},[d.update]);return(0,Z.jsxs)(`section`,{className:`document-detail`,"data-testid":`document-detail`,children:[!n.editingEnabled&&(0,Z.jsxs)(`output`,{className:`outside-in-readonly-banner`,children:[(0,Z.jsxs)(`span`,{children:[(0,Z.jsxs)(`strong`,{children:[t.format.toUpperCase(),` preview · read-only.`]}),` The original stays untouched until you enable outside-in editing.`]}),i&&(0,Z.jsxs)(`span`,{className:`error`,children:[`Could not enable editing: `,i]}),(0,Z.jsx)(`button`,{type:`button`,disabled:r,onClick:()=>void a(),children:r?`Preparing…`:`Enable outside-in editing`})]}),(0,Z.jsx)(`div`,{className:`editor-wrap`,children:(0,Z.jsx)(uQ,{initialMarkdown:d.desiredValue(),fileName:e,readOnly:!n.editingEnabled,onChange:n.editingEnabled?f:void 0,height:`100%`,colorScheme:o,fullWidth:!0,workspaceContainer:s,documentLinkProvider:c,allowVersioning:n.editingEnabled,versionBasename:U1(n.sourcePath),toolbarSlotAfterActions:n.editingEnabled?(0,Z.jsx)(H1,{context:`generic`}):void 0,statusBarSlotRight:n.editingEnabled?(0,Z.jsx)(h$,{autosave:d}):void 0})})]})}function W1(e){let t=e.slice(e.lastIndexOf(`/`)+1);return!t.includes(`.`)||/\.(md|markdown|mdx)$/i.test(t)}function G1({path:e}){let t=(0,X.useMemo)(()=>b1(e),[e]);return t?(0,Z.jsx)(YIe,{path:e,layout:t}):(0,Z.jsx)(ZIe,{path:e})}function ZIe({path:e}){let t=Ax(),[n,r]=(0,X.useState)(null),[i,a]=(0,X.useState)(null),o=(0,X.useCallback)(t=>Q.writeDocument(e,t),[e]),s=MC({resourceKey:`document:${e}`,initialValue:n??``,save:o}),{root:c,primaryDocumentFilename:l}=(0,X.useMemo)(()=>ZFe(e),[e]),u=(0,X.useMemo)(()=>U$({root:c,client:Q,primaryDocumentFilename:l}),[c,l]),d=(0,X.useMemo)(()=>P1({client:Q,currentDocumentPath:e}),[e]);(0,X.useEffect)(()=>{let t=!1;return r(null),a(null),(async()=>{try{let n=await Q.readDocument(e);if(t)return;let i=W1(e)?F1(n.content):n.content;r(s.hydrate(i))}catch(e){t||a(e.message)}})(),()=>{t=!0}},[e,s.hydrate]);let f=(0,X.useCallback)(e=>{s.update(e)},[s.update]);if(i)return(0,Z.jsx)(`div`,{className:`placeholder`,children:(0,Z.jsxs)(`p`,{children:[`Couldn't open `,(0,Z.jsx)(`code`,{children:e}),`: `,i]})});if(n===null)return(0,Z.jsxs)(`p`,{className:`placeholder`,children:[`Loading `,e,`…`]});let p=W1(e);return(0,Z.jsx)(`section`,{className:`document-detail`,"data-testid":`document-detail`,children:(0,Z.jsx)(`div`,{className:`editor-wrap`,children:(0,Z.jsx)(uQ,{initialMarkdown:n,fileName:e,onChange:f,height:`100%`,colorScheme:t,fullWidth:!0,workspaceContainer:p?u:null,documentLinkProvider:p?d:null,allowVersioning:p,versionBasename:l,toolbarSlotAfterActions:p?(0,Z.jsx)(H1,{context:`generic`}):void 0,toolbarSlotRight:p?(0,Z.jsx)(z$,{selectedFile:e,mediaContainer:u,mediaSource:{kind:`documents`}}):void 0,statusBarSlotRight:(0,Z.jsx)(h$,{autosave:s})})})})}var K1=`gezel:documents:selectedPath`;function QIe(e){if(!(!e||e.isDirectory))return!e.name.includes(`.`)||/\.md$/i.test(e.name)?`.md`:void 0}function $Ie(){try{return window.localStorage.getItem(K1)}catch{return null}}function eLe(e){try{e?window.localStorage.setItem(K1,e):window.localStorage.removeItem(K1)}catch{}}function tLe(e){let t=e.lastIndexOf(`/`);return t<0?``:e.slice(0,t)}function q1(e){return Array.from(e.dataTransfer.types).includes(`Files`)}function nLe(){let e=Ax(),[t,n]=(0,X.useState)([]),[r,i]=(0,X.useState)(!1),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(``),[h,g]=(0,X.useState)(null),[_,v]=(0,X.useState)(null),[y,x]=(0,X.useState)(null),[S,C]=(0,X.useState)(null),[w,T]=(0,X.useState)(()=>$Ie()),E=(0,X.useCallback)(e=>{T(e),eLe(e)},[]),D=(0,X.useCallback)(async()=>{try{let e=await Q.listDocuments(``,!0);n(e.files),i(!0)}catch(e){o(e.message)}},[]);(0,X.useEffect)(()=>{D()},[D]);let O=(0,X.useMemo)(()=>t.filter(e=>!b(e.path)),[t]),k=(0,X.useCallback)(e=>{E(e.path)},[E]);(0,X.useEffect)(()=>{if(O.length===0)return;let e=O.find(e=>!e.isDirectory)??O[0];e&&T(t=>t&&O.some(e=>e.path===t)?t:e.path)},[O]);let A=(0,X.useCallback)(e=>{g(e)},[]),j=(0,X.useCallback)(e=>{x(null),v(e)},[]),M=(0,X.useCallback)(async()=>{let e=h;if(e)try{if(w&&(w===e.path||w.startsWith(`${e.path}/`))){await jC(`document:${w}`);let e=b1(w);e&&await jC(`outside-in:documents:${e.markdownPath}`)}await Q.deleteDocument(e.path);let t=e.isDirectory?null:b1(e.path);t&&await Q.deleteDocument(t.companionDirectory),window.dispatchEvent(new CustomEvent(`gezel:document-deleted`,{detail:{path:e.path}})),w&&(w===e.path||w.startsWith(`${e.path}/`))&&E(null),await D()}catch(e){c(`delete failed: ${e.message}`)}finally{g(null)}},[h,D,w,E]),N=(0,X.useCallback)(async e=>{let n=_;if(!n)return;let r=e.trim();if(!r||/[\\/]/.test(r)){x(`Enter a name without slashes.`);return}let i=n.path.lastIndexOf(`/`),a=`${i>=0?n.path.slice(0,i+1):``}${r}`;if(a===n.path){v(null),x(null);return}let o=n.isDirectory?null:b1(n.path),s=n.isDirectory?null:b1(a);if(o&&s?.format!==o.format){x(`Keep the .${o.format} extension when renaming this document.`);return}if(o&&s&&t.some(e=>e.path===a||e.path===s.companionDirectory||e.path.startsWith(`${s.companionDirectory}/`))){x(`A document or companion folder with that name already exists.`);return}try{if(w&&(w===n.path||w.startsWith(`${n.path}/`))&&(await jC(`document:${w}`),o&&await jC(`outside-in:documents:${o.markdownPath}`)),await Q.renameDocument(n.path,a),o&&s){let e=x1(o,t.filter(e=>!e.isDirectory).map(e=>e.path));if(t.some(e=>e.path===o.companionDirectory||e.path.startsWith(`${o.companionDirectory}/`))&&(await Q.renameDocument(o.companionDirectory,s.companionDirectory),e)){let t=`${s.companionDirectory}${e.slice(o.companionDirectory.length)}`;e===o.markdownPath&&t!==s.markdownPath&&(await Q.renameDocument(t,s.markdownPath),t=s.markdownPath);let n=await Q.readDocument(t),r=S1(n.content,s);r!==n.content&&await Q.writeDocument(t,r)}}await D(),w&&(w===n.path||w.startsWith(`${n.path}/`))&&E(`${a}${w.slice(n.path.length)}`),window.dispatchEvent(new CustomEvent(`gezel:document-renamed`,{detail:{fromPath:n.path,toPath:a,isDirectory:n.isDirectory}})),v(null),x(null)}catch(e){x(e.message||`Rename failed.`)}},[t,D,_,w,E]),P=(0,X.useCallback)((e=``)=>{m(e),u(!0)},[]),F=(0,X.useCallback)(()=>u(!1),[]),I=(0,X.useCallback)(async e=>{let t=e.trim();if(t)try{await Q.writeDocument(t,``),F(),await D(),E(t),window.dispatchEvent(new CustomEvent(`gezel:document-created`,{detail:{path:t}}))}catch(e){c(`create failed: ${e.message}`)}},[F,D,E]),L=(0,X.useCallback)((e=``)=>{m(e),f(!0)},[]),R=(0,X.useCallback)(()=>f(!1),[]),z=(0,X.useCallback)(async e=>{let t=e.trim();if(t)try{await Q.createDocumentFolder(t),R(),await D(),window.dispatchEvent(new CustomEvent(`gezel:document-created`,{detail:{path:t}}))}catch(e){c(`create folder failed: ${e.message}`)}},[R,D]),B=(0,X.useMemo)(()=>w?O.find(e=>e.path===w)??null:null,[O,w]),V=B?.isDirectory??!1,H=w?w.slice(w.lastIndexOf(`/`)+1):``,U=(0,X.useMemo)(()=>{if(!w||!V)return[];let e=`${w}/`;return O.filter(t=>t.path.startsWith(e)&&!t.path.slice(e.length).includes(`/`))},[O,w,V]),ee=V?w??``:w?tLe(w):``,te=ee?ee.slice(ee.lastIndexOf(`/`)+1):`Documents`,W=(0,X.useCallback)((e,t)=>{q1(e)&&(e.preventDefault(),e.stopPropagation(),e.dataTransfer.dropEffect=`copy`,C(t))},[]),G=(0,X.useCallback)((e,t)=>{q1(e)&&(e.preventDefault(),e.stopPropagation(),e.dataTransfer.dropEffect=`copy`,S!==t&&C(t))},[S]),ne=(0,X.useCallback)(e=>{if(!q1(e))return;let t=e.relatedTarget;t instanceof Node&&e.currentTarget.contains(t)||C(null)},[]),K=(0,X.useCallback)(async(e,n)=>{if(!q1(e))return;e.preventDefault(),e.stopPropagation(),C(null);let r=Array.from(e.dataTransfer.files);if(r.length===0)return;c(`Adding ${r.length===1?r[0]?.name:`${r.length} files`}…`),o(null);let i=await LIe({client:Q,files:r,destination:n,existingPaths:t.map(e=>e.path)});if(i.importedPaths.length>0){await D();let e=i.importedPaths.at(-1);E(e),window.dispatchEvent(new CustomEvent(`gezel:document-created`,{detail:{path:e,paths:i.importedPaths}}))}let a=i.importedPaths.length,s=i.rejected.length;if(s>0){let e=i.rejected[0];c(`${a>0?`Added ${a}; `:``}couldn't add ${e.name}: ${e.reason}${s>1?` (+${s-1} more)`:``}`)}else c(`Added ${a} ${a===1?`document`:`documents`}.`)},[t,D,E]),q;return q=w?V?(0,Z.jsx)(mPe,{name:H,entries:U,theme:e,onOpenFile:e=>E(e.path),onOpenFolder:e=>E(e.path),onNewDocument:()=>P(`${w}/`),onNewFolder:()=>L(`${w}/`)}):B?(0,Z.jsx)(G1,{path:w},w):r?(0,Z.jsx)(`p`,{className:`placeholder`,children:`Select a document or folder on the left to view it.`}):(0,Z.jsx)(`p`,{className:`placeholder`,children:`Loading…`}):(0,Z.jsx)(`p`,{className:`placeholder`,children:`Select a document or folder on the left to view it.`}),(0,Z.jsxs)(`div`,{className:`documents-listing`,"data-testid":`documents-view`,children:[(0,Z.jsx)($C,{open:l,title:`New document`,placeholder:`e.g. guidelines/coding`,submitLabel:`Create`,initialValue:p,suffix:`.md`,onSubmit:I,onCancel:F}),(0,Z.jsx)($C,{open:d,title:`New folder`,placeholder:`e.g. guidelines`,submitLabel:`Create`,initialValue:p,onSubmit:z,onCancel:R}),(0,Z.jsx)($C,{open:_!==null,title:_?.isDirectory?`Rename folder`:`Rename document`,fieldLabel:`Name`,placeholder:`New name`,submitLabel:`Rename`,initialValue:_?.name??``,suffix:QIe(_),error:y,onSubmit:N,onCancel:()=>{v(null),x(null)}}),(0,Z.jsxs)(`div`,{className:`documents-split`,children:[(0,Z.jsxs)(`aside`,{className:`documents-tree document-drop-zone${S===`tree`?` document-drop-zone-active`:``}`,onDragEnterCapture:e=>W(e,`tree`),onDragOverCapture:e=>G(e,`tree`),onDragLeaveCapture:ne,onDropCapture:e=>void K(e,``),children:[(0,Z.jsxs)(`div`,{className:`area-toolbar`,children:[s&&(0,Z.jsx)(`output`,{className:`area-toolbar-status`,children:s}),(0,Z.jsxs)(`div`,{className:`area-toolbar-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`area-toolbar-btn area-toolbar-icon-btn`,"aria-label":`New folder`,title:`New folder`,onClick:()=>L(),children:(0,Z.jsx)(`i`,{className:`fa-solid fa-folder-plus`,"aria-hidden":`true`})}),(0,Z.jsx)(`button`,{type:`button`,className:`area-toolbar-btn area-toolbar-icon-btn`,"aria-label":`New document`,title:`New document`,onClick:()=>P(),children:(0,Z.jsx)(`i`,{className:`fa-solid fa-file-circle-plus`,"aria-hidden":`true`})})]})]}),(0,Z.jsx)(`div`,{className:`documents-tree-list`,children:O.length===0?(0,Z.jsx)(`p`,{className:`muted`,style:{padding:`0.5rem`,fontSize:`0.85rem`},children:`No documents yet. Create a mission statement, coding guidelines, or any shared reference.`}):(0,Z.jsx)(JC,{entries:O,labelFor:e=>iw(e.name),onSelect:e=>k(e),onRename:e=>j(e),onDelete:e=>A(e),selectedPath:w??void 0,selectableFolders:!0})}),S===`tree`&&(0,Z.jsxs)(`div`,{className:`document-drop-overlay`,"aria-hidden":`true`,children:[(0,Z.jsx)(`i`,{className:`fa-solid fa-file-arrow-down`}),(0,Z.jsx)(`span`,{children:`Drop to add to Documents`})]})]}),(0,Z.jsxs)(`section`,{className:`documents-detail document-drop-zone${S===`detail`?` document-drop-zone-active`:``}`,onDragEnterCapture:e=>W(e,`detail`),onDragOverCapture:e=>G(e,`detail`),onDragLeaveCapture:ne,onDropCapture:e=>void K(e,ee),children:[q,S===`detail`&&(0,Z.jsxs)(`div`,{className:`document-drop-overlay`,"aria-hidden":`true`,children:[(0,Z.jsx)(`i`,{className:`fa-solid fa-file-arrow-down`}),(0,Z.jsxs)(`span`,{children:[`Drop to add to `,te]})]})]})]}),a&&(0,Z.jsx)(`p`,{className:`error`,children:a}),(0,Z.jsx)(ty,{open:h!==null,title:h?.isDirectory?`Delete folder?`:`Delete document?`,message:h?.isDirectory?`This will remove "${h.path}" and everything inside it. This cannot be undone.`:h?`"${h.path}" will be permanently removed.`:``,confirmLabel:`Delete`,danger:!0,onCancel:()=>g(null),onConfirm:M})]})}function rLe({gezel:e,onUpdated:t}){let n=e.fixedFunction,r=n?.defaults?JSON.stringify(n.defaults,null,2):``,[i,a]=(0,X.useState)(r),[o,s]=(0,X.useState)(null),[c,l]=(0,X.useState)(null),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(!1);(0,X.useEffect)(()=>{a(r),p(!1),s(null),l(null)},[e.id]);let m=(0,X.useCallback)(async()=>{s(null),l(null);let n=null;if(i.trim())try{let e=JSON.parse(i);if(e===null||Array.isArray(e)||typeof e!=`object`)throw Error(`defaults must be a JSON object`);n=e}catch(e){s(`Invalid JSON: ${e.message}`);return}d(!0);try{t(await Q.updateGezelFixedFunctionDefaults(e.id,{defaults:n&&Object.keys(n).length>0?n:null})),p(!1),l(`Saved`)}catch(e){s(`Save failed: ${e.message}`)}finally{d(!1)}},[i,e.id,t]);return n?(0,Z.jsxs)(`div`,{className:`ff-about-panel`,children:[(0,Z.jsxs)(`div`,{className:`ff-about-summary`,children:[(0,Z.jsxs)(`div`,{className:`ff-about-row`,children:[(0,Z.jsx)(`span`,{className:`ff-label`,children:`Forwards to`}),(0,Z.jsx)(`code`,{className:`ff-tool-name`,children:n.tool}),(0,Z.jsx)(`span`,{className:`muted small`,children:`— no LLM is invoked`})]}),(0,Z.jsxs)(`div`,{className:`ff-about-row`,children:[(0,Z.jsx)(`span`,{className:`ff-label`,children:`Argument`}),(0,Z.jsxs)(`span`,{children:[`Your message text is passed as `,(0,Z.jsx)(`code`,{children:n.promptKey}),`.`]})]}),e.description&&(0,Z.jsx)(`p`,{className:`muted`,children:e.description})]}),(0,Z.jsxs)(`div`,{className:`ff-defaults`,children:[(0,Z.jsx)(`label`,{className:`ff-defaults-label`,htmlFor:`ff-defaults-${e.id}`,children:`Default arguments`}),(0,Z.jsxs)(`p`,{className:`muted small ff-defaults-help`,children:[`Merged into every call as JSON. Your message text on `,(0,Z.jsx)(`code`,{children:n.promptKey}),` always wins over a collision here. Common keys for `,(0,Z.jsx)(`code`,{children:n.tool}),`: `,(0,Z.jsx)(`code`,{children:`width`}),`,`,` `,(0,Z.jsx)(`code`,{children:`height`}),`, `,(0,Z.jsx)(`code`,{children:`steps`}),`, `,(0,Z.jsx)(`code`,{children:`model`}),`, `,(0,Z.jsx)(`code`,{children:`negativePrompt`}),`. Leave empty to forward only the prompt.`]}),(0,Z.jsx)(`textarea`,{id:`ff-defaults-${e.id}`,className:`ff-defaults-textarea`,value:i,spellCheck:!1,rows:10,placeholder:`{\\n "width": 1024,\\n "height": 1024\\n}`,onChange:e=>{a(e.target.value),p(!0),l(null)},disabled:u}),(0,Z.jsxs)(`div`,{className:`ff-defaults-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>void m(),disabled:u||!f,children:u?`Saving…`:`Save defaults`}),c&&(0,Z.jsx)(`span`,{className:`muted small`,children:c}),o&&(0,Z.jsx)(`span`,{className:`error small`,children:o})]})]})]}):null}function J1(e){let t=e.command?.trim();return t&&t.length>0?t:e.id}function iLe(e){let t=e.paramSchema?.properties;return t?Object.keys(t).map(e=>{let n=t[e]?.type;return{key:e,type:typeof n==`string`?n:`string`}}):[]}function Y1(e){return e===``?`""`:/[\s"'\\]/.test(e)?`"${e.replace(/(["\\])/g,`\\$1`)}"`:e}function X1(e,t){let n=J1(e),r=[],i=!0;for(let{key:n,type:a}of iLe(e)){let e=t[n]??``;if(!(a===`boolean`?e===`true`:e!==``)){i=!1;continue}let o=a===`boolean`?`true`:e;r.push(i?Y1(o):`${n}=${Y1(o)}`)}return[n,...r].join(` `)}function aLe({manifest:e,onSubmit:t,onCancel:n}){let r=e.paramSchema,[i,a]=(0,X.useState)(()=>oLe(r)),[o,s]=(0,X.useState)(null),c=(0,X.useMemo)(()=>cLe(i),[i]),l=(0,X.useMemo)(()=>X1(e,c),[e,c]),u=()=>{let e=sLe(r,i);if(e){s(`"${e}" is required.`);return}t(c)};return(0,Z.jsxs)(`form`,{className:`craftbook-param-form`,onSubmit:e=>{e.preventDefault(),u()},children:[(0,Z.jsx)(`div`,{className:`craftbook-param-form-title`,children:e.name}),r&&(0,Z.jsx)(SQ,{schema:r,value:i,onChange:e=>{a(e??{}),s(null)},density:`compact`}),(0,Z.jsx)(`div`,{className:`craftbook-param-form-preview`,children:(0,Z.jsx)(`code`,{children:l})}),o&&(0,Z.jsx)(`p`,{className:`craftbook-param-form-error small`,children:o}),(0,Z.jsxs)(`div`,{className:`craftbook-param-form-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,onClick:n,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,children:`Stage command`})]})]})}function oLe(e){let t=e?.properties??{},n={};for(let[e,r]of Object.entries(t))r&&r.default!==void 0&&(n[e]=r.default);return n}function sLe(e,t){let n=Array.isArray(e?.required)?e.required:[];for(let e of n){let n=t[e];if(n==null||n===``)return e}return null}function cLe(e){let t={};for(let[n,r]of Object.entries(e))r!=null&&(typeof r==`boolean`?t[n]=r?`true`:`false`:typeof r==`number`?t[n]=String(r):typeof r==`string`&&(t[n]=r));return t}function Z1({fields:e,initialValues:t={},initialSecretsPresent:n={},initialSecretMasks:r={},orphanedValueIds:i=[],orphanedSecretIds:a=[],submitLabel:o,busy:s,onSubmit:c,onCancel:l}){let[u,d]=(0,X.useState)({...t}),[f,p]=(0,X.useState)({}),[m,h]=(0,X.useState)({}),[g,_]=(0,X.useState)(null);return(0,Z.jsxs)(`form`,{className:`toolset-config-form`,onSubmit:async r=>{r.preventDefault(),_(null);for(let r of e)if(r.required){if(r.secret){let e=f[r.id],t=n[r.id];if(typeof e!=`string`&&!t&&r.default===void 0){_(`${r.label} is required`);return}}else if(!(u[r.id]??t[r.id]??``)&&r.default===void 0){_(`${r.label} is required`);return}if(r.pattern&&!r.secret){let e=u[r.id]??``;if(e&&!new RegExp(r.pattern).test(e)){_(`${r.label} does not match the expected pattern`);return}}}let i={};for(let n of e.filter(e=>!e.secret)){let e=u[n.id];e!==void 0&&e!==t[n.id]&&(i[n.id]=e)}await c({values:i,secrets:f})},children:[(i.length>0||a.length>0)&&(0,Z.jsxs)(`p`,{className:`muted small`,children:[`Orphaned fields (manifest no longer declares them):`,` `,[...i,...a].join(`, `)]}),e.map(e=>(0,Z.jsxs)(`div`,{className:`toolset-config-field`,children:[(0,Z.jsxs)(`label`,{htmlFor:`field-${e.id}`,children:[(0,Z.jsxs)(`span`,{children:[e.label,e.required&&(0,Z.jsx)(`span`,{className:`required`,children:`*`}),e.secret&&(0,Z.jsx)(`span`,{className:`muted small`,children:` (secret)`})]}),e.description&&(0,Z.jsx)(`span`,{className:`muted small`,children:e.description})]}),lLe(e,{values:u,setValues:d,secrets:f,setSecrets:p,editingSecret:m,setEditingSecret:h,initialSecretsPresent:n,initialSecretMasks:r,initialValues:t})]},e.id)),g&&(0,Z.jsx)(`p`,{className:`error small`,children:g}),(0,Z.jsxs)(`div`,{className:`toolset-config-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`home-link`,onClick:l,disabled:s,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`submit`,disabled:s,children:s?`…`:o})]})]})}function lLe(e,t){let n=`field-${e.id}`;if(e.secret){let r=t.initialSecretsPresent[e.id];return t.editingSecret[e.id]??!r?(0,Z.jsx)(`input`,{id:n,type:`password`,autoComplete:`off`,placeholder:e.placeholder??``,value:typeof t.secrets[e.id]==`string`?t.secrets[e.id]:``,onChange:n=>t.setSecrets({...t.secrets,[e.id]:n.target.value})}):(0,Z.jsxs)(`div`,{className:`toolset-config-secret-row`,children:[(0,Z.jsx)(`code`,{children:t.initialSecretMasks[e.id]??`****`}),(0,Z.jsx)(`button`,{type:`button`,className:`home-link`,onClick:()=>t.setEditingSecret({...t.editingSecret,[e.id]:!0}),children:`Update`}),(0,Z.jsx)(`button`,{type:`button`,className:`home-link`,onClick:()=>t.setSecrets({...t.secrets,[e.id]:null}),children:`Clear`}),t.secrets[e.id]===null&&(0,Z.jsx)(`span`,{className:`muted small`,children:`will clear on save`})]})}let r=t.values[e.id]??t.initialValues[e.id]??e.default??``,i=n=>t.setValues({...t.values,[e.id]:n});return e.type===`enum`&&e.options?(0,Z.jsxs)(`select`,{id:n,value:r,onChange:e=>i(e.target.value),children:[(0,Z.jsx)(`option`,{value:``,children:`—`}),e.options.map(e=>(0,Z.jsx)(`option`,{value:e,children:e},e))]}):e.type===`boolean`?(0,Z.jsx)(`input`,{id:n,type:`checkbox`,checked:r===`true`,onChange:e=>i(e.target.checked?`true`:`false`)}):e.multiline?(0,Z.jsx)(`textarea`,{id:n,rows:6,placeholder:e.placeholder??``,value:r,onChange:e=>i(e.target.value)}):(0,Z.jsx)(`input`,{id:n,type:e.type===`number`?`number`:e.type===`url`?`url`:`text`,placeholder:e.placeholder??``,value:r,onChange:e=>i(e.target.value)})}function Q1({missing:e,onAllInstalled:t,onCancel:n}){let[r,i]=(0,X.useState)(new Set),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(null),d=n=>{let a=new Set(r);a.add(n),i(a),e.every(e=>a.has(e.toolsetId))&&t()},f=async(e,t,n)=>{o(e),c(null);try{let r=await Q.getCatalogItem(`toolset`,e,{...t?{source:t}:{},...n?{version:n}:{}});if(r.manifest.kind!==`toolset`)throw Error(`catalog item is not a toolset`);let i=r.manifest;(i.config??[]).length===0?(await Q.installToolset(e,{scope:{kind:`shared`},...n?{version:n}:{}}),d(e)):u(i)}catch(e){c(e instanceof Error?e.message:String(e))}finally{o(null)}};return l?(0,Z.jsxs)(`div`,{className:`craftbook-toolset-setup`,children:[(0,Z.jsxs)(`h4`,{className:`small`,children:[`Configure `,l.name]}),(0,Z.jsx)(Z1,{fields:l.config??[],submitLabel:`Install`,busy:a===l.id,onSubmit:async e=>{if(!l)return;let t=l.id;o(t),c(null);try{let n={};for(let[t,r]of Object.entries(e.secrets))typeof r==`string`&&(n[t]=r);await Q.installToolset(t,{scope:{kind:`shared`},values:e.values,secrets:n}),u(null),d(t)}catch(e){c(e instanceof Error?e.message:String(e))}finally{o(null)}},onCancel:()=>u(null)}),s&&(0,Z.jsx)(`p`,{className:`error small`,children:s})]}):(0,Z.jsxs)(`div`,{className:`craftbook-toolset-setup`,children:[(0,Z.jsx)(`h4`,{className:`small`,children:`This craftbook needs:`}),(0,Z.jsx)(`ul`,{className:`commands-panel-list`,children:e.map(e=>{let t=r.has(e.toolsetId);return(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`div`,{className:`commands-panel-item`,title:e.reason??e.toolsetId,children:[(0,Z.jsx)(`span`,{className:`commands-panel-item-name`,children:e.toolsetId}),e.reason&&(0,Z.jsx)(`span`,{className:`commands-panel-item-desc muted small`,children:e.reason}),(0,Z.jsx)(`span`,{className:`commands-panel-item-actions`,children:t?(0,Z.jsx)(`span`,{className:`muted small`,children:`installed ✓`}):(0,Z.jsx)(`button`,{type:`button`,className:`commands-panel-mini`,disabled:a===e.toolsetId,onClick:()=>void f(e.toolsetId,e.sourceId,e.minVersion),children:a===e.toolsetId?`…`:`Install`})})]})},`need:${e.toolsetId}`)})}),s&&(0,Z.jsx)(`p`,{className:`error small`,children:s}),(0,Z.jsx)(`div`,{className:`toolset-config-actions`,children:(0,Z.jsx)(`button`,{type:`button`,className:`home-link`,onClick:n,children:`Cancel`})})]})}function $1(e){return e===`win32`?{run:`explorer .`,description:`Open this folder in File Explorer.`}:e===`darwin`?{run:`open .`,description:`Open this folder in Finder.`}:{run:`xdg-open .`,description:`Open this folder in your file manager.`}}function uLe(e){return[{title:`Getting around`,items:[{run:`pwd`,description:`Show which folder you are in right now.`},{run:`ls`,description:`List the files and folders here.`},{run:`ls -la`,description:`List everything, hidden files included, with sizes and dates.`},{run:`cd "folder-name"`,description:`Move into a folder.`},{run:`cd ..`,description:`Go back up one folder.`},$1(e)]},{title:`Reading files`,items:[{run:`cat "file.txt"`,description:`Print a whole file to the screen.`},{run:`head -n 20 "file.txt"`,description:`Show only the first 20 lines of a file.`},{run:`tail -n 20 "file.txt"`,description:`Show only the last 20 lines — handy for logs.`}]},{title:`Making changes`,items:[{run:`mkdir "new-folder"`,description:`Create a new folder.`},{run:`touch "notes.txt"`,description:`Create an empty file.`},{run:`cp "file.txt" "copy.txt"`,description:`Copy a file.`},{run:`mv "old-name.txt" "new-name.txt"`,description:`Rename a file, or move it elsewhere.`},{run:`rm "file.txt"`,description:`Delete a file. There is no undo — be sure first.`}]},{title:`Finding things`,items:[{run:`grep -r "search text" .`,description:`Search every file here for a piece of text.`},{run:`find . -name "*.md"`,description:`Find files by name, anywhere below this folder.`}]},{title:`Tracking your changes`,items:[{run:`git status`,description:`See what you have changed since the last saved version.`},{run:`git diff`,description:`See the exact lines you changed.`},{run:`git log --oneline -10`,description:`See the last ten saved versions, one per line.`},{run:`git branch`,description:`List the branches and show which one you are on.`},{run:`git pull`,description:`Bring in the latest changes from the shared copy.`}]},{title:`When you are stuck`,items:[{run:`clear`,description:`Wipe the screen clean and start fresh.`},{run:`which node`,description:`Show where a tool is installed — or whether it is at all.`},{run:`man ls`,description:`Read the manual for a command. Press q to leave it.`}]}]}function dLe(e){return[{title:`Getting around`,items:[{run:`pwd`,description:`Show which folder you are in right now.`},{run:`ls`,description:`List the files and folders here.`},{run:`ls -Force`,description:`List everything, hidden files included.`},{run:`cd "folder-name"`,description:`Move into a folder.`},{run:`cd ..`,description:`Go back up one folder.`},$1(e)]},{title:`Reading files`,items:[{run:`cat "file.txt"`,description:`Print a whole file to the screen.`},{run:`Get-Content "file.txt" -TotalCount 20`,description:`Show only the first 20 lines of a file.`},{run:`Get-Content "file.txt" -Tail 20`,description:`Show only the last 20 lines — handy for logs.`}]},{title:`Making changes`,items:[{run:`mkdir "new-folder"`,description:`Create a new folder.`},{run:`New-Item -ItemType File "notes.txt"`,description:`Create an empty file.`},{run:`Copy-Item "file.txt" "copy.txt"`,description:`Copy a file.`},{run:`Move-Item "old-name.txt" "new-name.txt"`,description:`Rename a file, or move it elsewhere.`},{run:`Remove-Item "file.txt"`,description:`Delete a file. There is no undo — be sure first.`}]},{title:`Finding things`,items:[{run:`Get-ChildItem -Recurse -File | Select-String -Pattern "search text"`,description:`Search every file here for a piece of text.`},{run:`Get-ChildItem -Recurse -Filter "*.md"`,description:`Find files by name, anywhere below this folder.`}]},{title:`Tracking your changes`,items:[{run:`git status`,description:`See what you have changed since the last saved version.`},{run:`git diff`,description:`See the exact lines you changed.`},{run:`git log --oneline -10`,description:`See the last ten saved versions, one per line.`},{run:`git branch`,description:`List the branches and show which one you are on.`},{run:`git pull`,description:`Bring in the latest changes from the shared copy.`}]},{title:`When you are stuck`,items:[{run:`clear`,description:`Wipe the screen clean and start fresh.`},{run:`Get-Command node`,description:`Show where a tool is installed — or whether it is at all.`},{run:`Get-Help Get-ChildItem`,description:`Read the built-in help for a command.`}]}]}function e0(e){return e===`win32`?dLe(e):uLe(e)}function t0(){let[e,t]=(0,X.useState)(!1);return(0,X.useEffect)(()=>{let e=!1;Q.getConfig().then(n=>{e||t(n.showWorkInProgressFeatures===!0)}).catch(()=>{});let n=e=>{let n=e.detail;typeof n?.showWorkInProgressFeatures==`boolean`&&t(n.showWorkInProgressFeatures)};return window.addEventListener(`gezel:config-updated`,n),()=>{e=!0,window.removeEventListener(`gezel:config-updated`,n)}},[]),e}var n0=null;function fLe(){let e=window.__GEZEL__?.platform;return e?Promise.resolve(e):(n0??=Q.health().then(e=>e.platform).catch(()=>void 0),n0)}function r0(e){let t=e.paramSchema?.properties;return!!t&&Object.keys(t).length>0}var pLe=[{kind:`npm-script`,title:`npm scripts`,section:`scripts`},{kind:`workspace-script`,title:`Scripts folder`,section:`scripts`},{kind:`vscode-launch`,title:`VSCode launch`,section:`scripts`},{kind:`bin`,title:`Tools on this machine`,section:`commands`}];function i0({projectId:e,section:t=`all`,onAvailabilityChange:n,onStageCommand:r}){let i=t0(),a=t===`all`||t===`commands`,o=t===`all`||t===`scripts`,s=t===`all`||t===`tasks`,c=s||t===`skills`,l=a||o,[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)([]),m=(0,X.useRef)(0),[h,g]=(0,X.useState)({}),[v,y]=(0,X.useState)(null),[b,x]=(0,X.useState)(new Set),[S,C]=(0,X.useState)(!1),[w,T]=(0,X.useState)([]),[E,D]=(0,X.useState)(!1),[O,k]=(0,X.useState)(!1),[A,j]=(0,X.useState)(!1),[M,N]=(0,X.useState)([]),[P,F]=(0,X.useState)(!1),[I,L]=(0,X.useState)(!1),[R,z]=(0,X.useState)(``),[B,V]=(0,X.useState)(null),[H,U]=(0,X.useState)(null),[ee,te]=(0,X.useState)(),[W,G]=(0,X.useState)(`never`),[ne,K]=(0,X.useState)(null),[q,re]=(0,X.useState)(null),[ie,J]=(0,X.useState)(()=>window.__GEZEL__?.platform??void 0);(0,X.useEffect)(()=>{if(!a||ie)return;let e=!1;return fLe().then(t=>{e||J(t)}),()=>{e=!0}},[a,ie]);let ae=(0,X.useCallback)(async()=>{try{let t=await Q.getProjectIndex(e);d(t),K(null)}catch(e){let t=e instanceof Error?e.message:String(e);/404|not yet indexed/i.test(t)||K(t)}},[e]),oe=(0,X.useCallback)(async()=>{try{let t=await Q.getProjectSkills(e);T(t.skills),j(!0)}catch{}finally{k(!0)}},[e]),se=(0,X.useCallback)(async()=>{let t=++m.current;try{let n=await Q.listProjectCraftbooks(e);if(t!==m.current)return;let r=_(n.items,i),a=new Set(r.map(e=>e.manifest.id));p(r),g(n.missingToolsets??{}),y(n.projectType??null),x(new Set((n.suggestedIds??[]).filter(e=>a.has(e))))}catch{if(t!==m.current)return}finally{t===m.current&&D(!0)}},[e,i]),Y=(0,X.useCallback)(e=>{r?.(e),re(`Staged: ${e} — review and press Enter`),window.setTimeout(()=>re(null),2400)},[r]),ce=(0,X.useCallback)((e,t)=>{if(!r){re(`Open this from a project chat to run craftbooks.`),window.setTimeout(()=>re(null),2400);return}Y(X1(e,t))},[r,Y]),le=(0,X.useCallback)(e=>{if((h[e.id]?.length??0)>0){U(e);return}r0(e)?V(e):ce(e,{})},[ce,h]),ue=(0,X.useCallback)(async()=>{try{let t=await Q.getProjectImportsPending(e);N(t.items),L(!0)}catch{}finally{F(!0)}},[e]);(0,X.useEffect)(()=>{t!==`skills`||!O||!P||!A||!I||n?.(w.length>0||M.length>0)},[t,O,P,A,I,w.length,M.length,n]);let de=(0,X.useCallback)(async(t,n)=>{try{n===`approve`?await Q.approveProjectImport(e,t):await Q.rejectProjectImport(e,t),N(e=>e.filter(e=>e.skillSource!==t)),re(n===`approve`?`Imported craftbook + script`:`Kept as prose-only`)}catch(e){re(`Review failed: ${e instanceof Error?e.message:String(e)}`)}window.setTimeout(()=>re(null),2400)},[e]),fe=(0,X.useCallback)(async t=>{try{let n=await Q.createTask(e,{title:`${t.name} (workspace skill) — ${new Date().toLocaleString()}`,description:t.description||`Run the workspace skill ${t.name} (${t.source}) against this project.`,steps:[{name:t.name,...t.description?{description:t.description}:{},prompt:t.body}],assignee:{kind:`user`}});re(`Invoked skill ${t.name} — task ${n.ref}`)}catch(e){re(`Couldn’t invoke ${t.name}: ${e instanceof Error?e.message:String(e)}`)}window.setTimeout(()=>re(null),2400)},[e]);(0,X.useEffect)(()=>{let t=!1,n=async()=>{if(s&&!t&&se(),c&&!t&&(oe(),ue()),l)try{let n=await Q.getProjectIndexStatus(e);if(t)return;G(n.state);let r=n.meta?.scannedAt;r&&r!==ee?(te(r),await ae()):n.state===`never`&&await Q.refreshProjectIndex(e).catch(()=>{})}catch{}};n();let r=window.setInterval(n,3e4);return()=>{t=!0,window.clearInterval(r)}},[e,ee,l,s,c,ae,se,oe,ue]);let pe=(0,X.useMemo)(()=>{if(!u)return[];let e=R.trim().toLowerCase(),t=[];for(let{kind:n,title:r,section:i}of pLe){if(i===`commands`?!a:!o)continue;let s=u.commands.filter(e=>e.kind===n).filter(t=>!e||t.name.toLowerCase().includes(e)||t.run.toLowerCase().includes(e)||(t.description?t.description.toLowerCase().includes(e):!1)).sort((e,t)=>n===`npm-script`||n===`workspace-script`?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):0);s.length>0&&t.push({kind:n,title:r,items:s})}return t},[u,R,a,o]),me=(0,X.useMemo)(()=>{if(!a)return[];let e=R.trim().toLowerCase();return e0(ie).map(t=>({title:t.title,items:e?t.items.filter(t=>t.run.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)):t.items})).filter(e=>e.items.length>0)},[a,ie,R]),he=(0,X.useCallback)(async e=>{try{await navigator.clipboard.writeText(e),re(`Copied: ${e}`),window.setTimeout(()=>re(null),1800)}catch{re(`Couldn’t copy — clipboard blocked.`),window.setTimeout(()=>re(null),2400)}},[]),ge=u?.commands.length??0,_e=(0,X.useMemo)(()=>{let e=R.trim().toLowerCase();return e?f.filter(t=>{let n=t.manifest;return n.id.toLowerCase().includes(e)||n.name.toLowerCase().includes(e)||n.description.toLowerCase().includes(e)}):f},[f,R]),ve=(0,X.useMemo)(()=>{let e=R.trim().toLowerCase();return e?w.filter(t=>t.name.toLowerCase().includes(e)||t.source.toLowerCase().includes(e)||(t.description?.toLowerCase().includes(e)??!1)):w},[w,R]),ye=e=>{let t=e.manifest,n=h[t.id]??[],r=(0,Z.jsxs)(`button`,{type:`button`,className:`commands-panel-item`,onClick:()=>le(t),title:n.length>0?`${J1(t)} — needs setup (${n.length} toolset${n.length===1?``:`s`})`:`Run ${J1(t)}`,children:[(0,Z.jsxs)(`span`,{className:`commands-panel-item-name`,children:[t.name,n.length>0&&(0,Z.jsx)(`span`,{className:`commands-panel-badge small`,children:`setup`})]}),t.description&&(0,Z.jsx)(`span`,{className:`commands-panel-item-desc muted small`,children:t.description})]});return n.length>0?(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(U_,{open:H?.id===t.id,onOpenChange:e=>{e||U(null)},children:[(0,Z.jsx)(G_,{asChild:!0,children:r}),(0,Z.jsx)(K_,{side:`left`,align:`start`,children:(0,Z.jsx)(Q1,{missing:n,onAllInstalled:()=>{U(null),se(),r0(t)?V(t):ce(t,{})},onCancel:()=>U(null)})})]})},`craftbook:${t.id}`):r0(t)?(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(U_,{open:B?.id===t.id,onOpenChange:e=>{e||V(null)},children:[(0,Z.jsx)(G_,{asChild:!0,children:r}),(0,Z.jsx)(K_,{side:`left`,align:`start`,children:(0,Z.jsx)(aLe,{manifest:t,onSubmit:e=>{ce(t,e),V(null)},onCancel:()=>V(null)})})]})},`craftbook:${t.id}`):(0,Z.jsx)(`li`,{children:r},`craftbook:${t.id}`)},be=me.map(e=>(0,Z.jsxs)(`section`,{className:`commands-panel-group`,children:[(0,Z.jsx)(`h4`,{className:`commands-panel-group-title muted small`,children:e.title}),(0,Z.jsx)(`ul`,{className:`commands-panel-list`,children:e.items.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`commands-panel-item`,onClick:()=>r?Y(e.run):void he(e.run),title:r?`Stage: ${e.run}`:`Copy: ${e.run}`,children:[(0,Z.jsx)(`span`,{className:`commands-panel-item-name commands-panel-item-code`,children:e.run}),(0,Z.jsx)(`span`,{className:`commands-panel-item-desc muted small`,children:e.description})]})},`primer:${e.run}`))})]},`primer:${e.title}`)),xe=R.trim().length>0,Se=_e.filter(e=>b.has(e.manifest.id)),Ce=_e.filter(e=>!b.has(e.manifest.id)),we=s&&!xe&&v!==null&&Se.length>0,Te=u?.commands.filter(e=>e.kind===`bin`).length??0,Ee=ge-Te,De=e0(ie).reduce((e,t)=>e+t.items.length,0),Oe=f.length+w.length,[ke,Ae]=t===`commands`?[De+Te,`command`]:t===`scripts`?[Ee,`script`]:t===`tasks`?[Oe,`task`]:t===`skills`?[w.length,`skill`]:[ge,`command`],je=l&&(W===`indexing`||W===`never`&&u===null),Me=t===`tasks`?!E:t===`skills`?!O:je,Ne=pe.length>0||me.length>0||_e.length>0||ve.length>0||M.length>0,Pe=!Me&&!Ne;return(0,Z.jsxs)(`div`,{className:`commands-panel`,children:[(0,Z.jsxs)(`div`,{className:`commands-panel-toolbar`,children:[(0,Z.jsx)(`input`,{className:`commands-panel-filter`,value:R,onChange:e=>z(e.target.value),placeholder:`Filter…`,"aria-label":t===`skills`?`Filter skills`:`Filter commands`}),(0,Z.jsx)(`span`,{className:`commands-panel-state muted small`,title:ee??``,children:l&&W===`disabled`?`indexing off`:je?`looking…`:l&&W===`stale`?`refreshing…`:ke>0?`${ke} ${Ae}${ke===1?``:`s`}`:``})]}),ne&&(0,Z.jsx)(`p`,{className:`commands-panel-error small`,children:ne}),Me&&(0,Z.jsx)(`p`,{className:`commands-panel-empty muted small`,children:`Looking through your workspace…`}),Pe&&(xe?(0,Z.jsxs)(`p`,{className:`commands-panel-empty muted small`,children:[`Nothing matches “`,R.trim(),`”.`]}):l&&W===`disabled`?(0,Z.jsx)(`p`,{className:`commands-panel-empty muted small`,children:`Workspace indexing is off for this project.`}):t===`skills`?(0,Z.jsxs)(`p`,{className:`commands-panel-empty muted small`,children:[`No workspace skills here yet — drop one under `,(0,Z.jsx)(`code`,{children:`.claude/skills/`}),`,`,` `,(0,Z.jsx)(`code`,{children:`.gstack/skills/`}),`, or `,(0,Z.jsx)(`code`,{children:`agents/skills/`}),`.`]}):t===`tasks`?(0,Z.jsx)(`p`,{className:`commands-panel-empty muted small`,children:`No tasks are available for this project yet. Craftbooks show up here once one applies to this workspace.`}):(0,Z.jsxs)(`p`,{className:`commands-panel-empty muted small`,children:[`No `,t===`scripts`?`scripts`:`commands`,` found yet. Add a script to`,` `,(0,Z.jsx)(`code`,{children:`package.json`}),` or drop a file in`,(0,Z.jsx)(`code`,{children:` scripts/`}),`.`]})),Ne&&(0,Z.jsxs)(`div`,{className:`commands-panel-groups`,children:[c&&M.length>0&&(0,Z.jsxs)(`section`,{className:`commands-panel-group`,children:[(0,Z.jsxs)(`h4`,{className:`commands-panel-group-title muted small`,children:[`Imports to review (`,M.length,`)`]}),(0,Z.jsx)(`ul`,{className:`commands-panel-list`,children:M.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`div`,{className:`commands-panel-item`,title:e.skillSource,children:[(0,Z.jsx)(`span`,{className:`commands-panel-item-name`,children:e.craftbook.name}),(0,Z.jsxs)(`span`,{className:`commands-panel-item-desc muted small`,children:[e.scripts.length,` translated script`,e.scripts.length===1?``:`s`,` from `,e.skillSource]}),(0,Z.jsxs)(`span`,{className:`commands-panel-item-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`commands-panel-mini`,onClick:()=>void de(e.skillSource,`approve`),children:`Approve`}),(0,Z.jsx)(`button`,{type:`button`,className:`commands-panel-mini`,onClick:()=>void de(e.skillSource,`reject`),children:`Keep prose`})]})]})},`pending:${e.skillSource}`))})]}),t===`commands`&&be,pe.map(e=>(0,Z.jsxs)(`section`,{className:`commands-panel-group`,children:[(0,Z.jsx)(`h4`,{className:`commands-panel-group-title muted small`,children:e.title}),(0,Z.jsx)(`ul`,{className:`commands-panel-list`,children:e.items.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`commands-panel-item`,onClick:()=>r?Y(e.run):void he(e.run),title:r?`Stage: ${e.run}`:`Copy: ${e.run}`,children:[(0,Z.jsx)(`span`,{className:`commands-panel-item-name`,children:e.name}),e.description&&(0,Z.jsx)(`span`,{className:`commands-panel-item-desc muted small`,children:e.description})]})},`${e.kind}:${e.name}:${e.source}`))})]},e.kind)),we?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`section`,{className:`commands-panel-group`,children:[(0,Z.jsxs)(`h4`,{className:`commands-panel-group-title muted small`,children:[`Suggested for `,v?.label]}),(0,Z.jsx)(`ul`,{className:`commands-panel-list`,children:Se.map(ye)})]}),Ce.length>0&&(0,Z.jsxs)(`section`,{className:`commands-panel-group`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`commands-panel-show-all muted small`,"aria-expanded":S,onClick:()=>C(e=>!e),children:S?`Show fewer craftbooks`:`Show all ${_e.length} craftbooks`}),S&&(0,Z.jsx)(`ul`,{className:`commands-panel-list`,children:Ce.map(ye)})]})]}):s&&_e.length>0&&(0,Z.jsxs)(`section`,{className:`commands-panel-group`,children:[(0,Z.jsx)(`h4`,{className:`commands-panel-group-title muted small`,children:`Craftbooks`}),(0,Z.jsx)(`ul`,{className:`commands-panel-list`,children:_e.map(ye)})]}),c&&ve.length>0&&(0,Z.jsxs)(`section`,{className:`commands-panel-group`,children:[(0,Z.jsx)(`h4`,{className:`commands-panel-group-title muted small`,children:`Skills (workspace)`}),(0,Z.jsx)(`ul`,{className:`commands-panel-list`,children:ve.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`commands-panel-item`,onClick:()=>void fe(e),title:e.source,children:[(0,Z.jsx)(`span`,{className:`commands-panel-item-name`,children:e.name}),e.description&&(0,Z.jsx)(`span`,{className:`commands-panel-item-desc muted small`,children:e.description}),e.hasShellScripts&&(0,Z.jsx)(`span`,{className:`commands-panel-item-desc muted small`,children:`(shell scripts present — prose-only invocation)`})]})},`skill:${e.source}`))})]}),t!==`commands`&&be]}),q&&(0,Z.jsx)(`output`,{className:`commands-panel-toast`,children:q})]})}var mLe=800,a0=10;function hLe(e){let t=e.detail;if(t.args&&t.args.length>0)return t.args.join(` `).slice(0,2e3);let n=t.filename?` (${t.filename}:${t.lineno??`?`})`:``;return`${t.message??`unknown error`}${n}`.slice(0,2e3)}var o0=4,gLe=8,_Le=2*1024*1024,vLe=2500;function s0(e){return e===400||e===413||e===422?`invalid-input`:e===403||e===404?`not-allowed`:e===429?`rate-limited`:`unavailable`}function c0({projectId:e,path:t,source:n,title:r,className:i,refreshKey:a,onLog:o,onUrlReady:s,pageTools:c,onPageScriptError:l,onRequestRefresh:u}){let d=(0,X.useRef)(null),f=(0,X.useRef)(new Set),p=(0,X.useRef)(new Set),m=(0,X.useRef)(new Map),h=Ax(),g=(0,X.useRef)(h);g.current=h;let[_,v]=(0,X.useState)(0),y=JSON.stringify([e,t,n,a??null,_]),[b,x]=(0,X.useState)(null),S=b?.requestKey===y?b:null,C=S?.status===`ready`?S.url:null,w=S?.status===`error`?S.error:null;return(0,X.useEffect)(()=>{let e=e=>{let t=e.detail;!t||!Object.prototype.hasOwnProperty.call(t,`securityPolicy`)||v(e=>e+1)};return window.addEventListener(`gezel:config-updated`,e),()=>window.removeEventListener(`gezel:config-updated`,e)},[]),(0,X.useEffect)(()=>{let r=!1;return s?.(null),(n===`workspace`?Q.createProjectWorkspacePreviewUrl(e,t):n===`type`?Q.createProjectTypePreviewUrl(e,t):Q.createProjectPreviewUrl(e,t)).then(e=>{r||(x({requestKey:y,status:`ready`,url:e.url}),s?.(e.browserUrl??e.url))}).catch(e=>{r||x({requestKey:y,status:`error`,error:e instanceof Error?e.message:String(e)})}),()=>{r=!0}},[e,t,n,y,s]),(0,X.useEffect)(()=>{let r=[],i=null,a=0,s=!1,h=0,_=()=>{if(i=null,r.length===0||a>=a0)return;a+=1;let t=r.splice(0,20);Q.reportProjectPreviewLog(e,t).catch(()=>{})},v=e=>{a>=a0||r.length>=20||(r.push({kind:e.kind,message:hLe(e),path:t,source:n,at:new Date(e.at).toISOString()}),i||=setTimeout(_,mLe))},y=e=>{d.current?.contentWindow?.postMessage({__gezelPage:1,...e},`*`)},b=null,x=!1,S=async()=>{if(!(x||s||m.current.size===0)){x=!0;try{await Promise.all([...m.current.entries()].map(async([t,n])=>{try{let r=await Q.invokeProjectPageRead(e,{op:`stat`,source:n.source,path:n.path});if(s||!m.current.has(t))return;n.etag!==null&&r.etag!==n.etag&&y({kind:`change`,watchId:t,path:n.path,etag:r.etag}),n.etag=r.etag}catch{}}))}finally{x=!1}}},C=()=>{b||m.current.size===0||(b=setInterval(()=>{document.visibilityState!==`hidden`&&S()},vLe))},w=()=>{b&&m.current.size===0&&(clearInterval(b),b=null)},T=(t,n,r)=>{if(!c||!c.includes(n)){y({kind:`result`,id:t,ok:!1,error:`tool '${n}' is not page-invokable`,errorCode:`not-allowed`});return}if(f.current.size>=o0){y({kind:`result`,id:t,ok:!1,error:`too many concurrent invokes`,errorCode:`rate-limited`});return}f.current.add(t),Q.invokeProjectPageTool(e,{tool:n,...r?{input:r}:{}}).then(r=>{let i=++h;y({kind:`result`,id:t,ok:r.status===`ok`,output:r.output,runId:r.runId,...r.error?{error:r.error,errorCode:`script-error`}:{},...r.reaction?{reaction:r.reaction}:{}}),r.status===`ok`?(s||l?.(null),S()):l&&Q.getProjectScriptRun(e,r.runId).then(e=>{!s&&i===h&&l({tool:n,response:r,run:e})}).catch(e=>{s||i!==h||l({tool:n,response:r,detailLoadError:e instanceof Error?e.message:String(e)})})}).catch(e=>{++h;let r=e.status,i=e instanceof Error?e.message:String(e);y({kind:`result`,id:t,ok:!1,error:i,errorCode:s0(r)}),s||l?.({tool:n,transportError:i})}).finally(()=>{f.current.delete(t)})},E=t=>{if(p.current.size>=gLe){y({kind:`read-result`,id:t.id,ok:!1,error:`too many concurrent reads`,errorCode:`rate-limited`});return}let n={op:t.op,source:t.source,path:t.path,...t.as===`bytes`?{as:`bytes`}:{},...typeof t.maxBytes==`number`?{maxBytes:t.maxBytes}:{}};p.current.add(t.id),Q.invokeProjectPageRead(e,n).then(e=>{y({kind:`read-result`,id:t.id,ok:!0,...e})}).catch(e=>{let n=e.status;y({kind:`read-result`,id:t.id,ok:!1,error:e instanceof Error?e.message:String(e),errorCode:s0(n)})}).finally(()=>{p.current.delete(t.id)})};function D(e){let t=e.kind;if(t===`hello`){y({kind:`init`,api:1,theme:{mode:g.current},limits:{maxInflight:o0,maxReadBytes:_Le}});return}if(t===`refresh`){u?.();return}let n=e.id;if(!(typeof n!=`string`||n.length===0||n.length>64)){if(t===`invoke`){if(typeof e.tool!=`string`)return;let t=e.input&&typeof e.input==`object`&&!Array.isArray(e.input)?e.input:void 0;T(n,e.tool,t);return}if(t===`read`){let t=e.op,r=e.source;if(t!==`read`&&t!==`list`&&t!==`stat`||r!==`workspace`&&r!==`artifacts`||typeof e.path!=`string`||e.path.length===0)return;E({id:n,op:t,source:r,path:e.path,as:e.as,maxBytes:e.maxBytes});return}if(t===`watch`){let t=e.source;if(t!==`workspace`&&t!==`artifacts`||typeof e.path!=`string`||e.path.length===0)return;m.current.set(n,{source:t,path:e.path,etag:null}),C(),S();return}t===`unwatch`&&(m.current.delete(n),w())}}function O(t){let n=d.current;if(!n||t.source!==n.contentWindow)return;let r=t.data;if(!r)return;if(r.__gezelPage===1&&typeof r.kind==`string`){D(r);return}if(r.__gezelPageRefresh===!0){u?.();return}if(r.__gezelPageInvoke===!0){let t=e=>{n.contentWindow?.postMessage({__gezelPageResult:!0,...e},`*`)};if(typeof r.id!=`string`||typeof r.tool!=`string`)return;let i=r.id,a=r.tool;if(!c||!c.includes(a)){t({id:i,ok:!1,error:`tool '${a}' is not page-invokable`});return}if(f.current.size>=o0){t({id:i,ok:!1,error:`too many concurrent invokes`});return}let o=r.input&&typeof r.input==`object`&&!Array.isArray(r.input)?r.input:void 0;f.current.add(i),Q.invokeProjectPageTool(e,{tool:a,...o?{input:o}:{}}).then(n=>{let r=++h;t({id:i,ok:n.status===`ok`,output:n.output,...n.error?{error:n.error}:{},...n.reaction?{reaction:n.reaction}:{}}),n.status===`ok`?s||l?.(null):l&&Q.getProjectScriptRun(e,n.runId).then(e=>{!s&&r===h&&l({tool:a,response:n,run:e})}).catch(e=>{s||r!==h||l({tool:a,response:n,detailLoadError:e instanceof Error?e.message:String(e)})})}).catch(e=>{++h;let n=e instanceof Error?e.message:String(e);t({id:i,ok:!1,error:n}),s||l?.({tool:a,transportError:n})}).finally(()=>{f.current.delete(i)});return}if(r.__gezelPreviewLog!==!0||!r.kind||!r.detail||!r.url||typeof r.at!=`number`)return;let i={kind:r.kind,detail:r.detail,url:r.url,at:r.at};v(i),o?.(i)}return window.addEventListener(`message`,O),()=>{s=!0,window.removeEventListener(`message`,O),i&&clearTimeout(i),b&&clearInterval(b),m.current.clear(),_()}},[o,e,t,n,c,l,u]),(0,X.useEffect)(()=>{d.current?.contentWindow?.postMessage({__gezelPage:1,kind:`theme`,theme:{mode:h}},`*`)},[h]),w?(0,Z.jsxs)(`div`,{className:i,children:[`Preview unavailable: `,w]}):(0,Z.jsx)(`iframe`,{ref:d,title:r,...C?{src:C}:{},sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,...i?{className:i}:{}},`${y}:${C??`loading`}`)}var yLe=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/;function l0(e){let t=[],n=0,r=0,i=0,a=0,o=null,s=0,c=e.split(`
|
|
@@ -886,7 +886,7 @@ performance.now();setTimeout(w,2300>q&&2E3<q?2300-q:500)})])},types:[]});z.ready
|
|
|
886
886
|
`+e;break a}n=Pi(n+(t?` [`+t+`]`:``))}return n}}switch(e){case p:return Pi(`SuspenseList`);case f:return Pi(`Suspense`)}return``}function Ri(e,t){return(500<t.byteSize||Dr(t.contentState))&&t.contentPreamble===null}function zi(e){if(typeof e==`object`&&e&&typeof e.environmentName==`string`){var t=e.environmentName;e=[e].slice(0),typeof e[0]==`string`?e.splice(0,1,`%c%s%c `+e[0],`background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px`,` `+t+` `,``):e.splice(0,0,`%c%s%c`,`background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px`,` `+t+` `,``),e.unshift(console),t=Or.apply(console.error,e),t()}else console.error(e);return null}function Bi(e,t,n,r,i,a,o,s,c,l,u){var d=new Set;this.destination=null,this.flushScheduled=!1,this.resumableState=e,this.renderState=t,this.rootFormatContext=n,this.progressiveChunkSize=r===void 0?12800:r,this.status=10,this.fatalError=null,this.pendingRootTasks=this.allPendingTasks=this.nextSegmentId=0,this.completedPreambleSegments=this.completedRootSegment=null,this.byteSize=0,this.abortableTasks=d,this.pingedTasks=[],this.clientRenderedBoundaries=[],this.completedBoundaries=[],this.partialBoundaries=[],this.trackedPostpones=null,this.onError=i===void 0?zi:i,this.onPostpone=l===void 0?Kr:l,this.onAllReady=a===void 0?Kr:a,this.onShellReady=o===void 0?Kr:o,this.onShellError=s===void 0?Kr:s,this.onFatalError=c===void 0?Kr:c,this.formState=u===void 0?null:u}function Vi(e,t,n,r,i,a,o,s,c,l,u,d){return t=new Bi(t,n,r,i,a,o,s,c,l,u,d),n=Xi(t,0,null,r,!1,!1),n.parentFlushed=!0,e=Ji(t,null,e,-1,null,n,null,null,t.abortableTasks,null,r,null,Br,null,null),Zi(e),t.pingedTasks.push(e),t}function Hi(e,t,n,r,i,a,o,s,c,l,u){return e=Vi(e,t,n,r,i,a,o,s,c,l,u,void 0),e.trackedPostpones={workingMap:new Map,rootNodes:[],rootSlots:null},e}function Ui(e,t,n,r,i,a,o,s,c){return n=new Bi(t.resumableState,n,t.rootFormatContext,t.progressiveChunkSize,r,i,a,o,s,c,null),n.nextSegmentId=t.nextSegmentId,typeof t.replaySlots==`number`?(r=Xi(n,0,null,t.rootFormatContext,!1,!1),r.parentFlushed=!0,e=Ji(n,null,e,-1,null,r,null,null,n.abortableTasks,null,t.rootFormatContext,null,Br,null,null),Zi(e),n.pingedTasks.push(e),n):(e=Yi(n,null,{nodes:t.replayNodes,slots:t.replaySlots,pendingTasks:0},e,-1,null,null,n.abortableTasks,null,t.rootFormatContext,null,Br,null,null),Zi(e),n.pingedTasks.push(e),n)}function Wi(e,t,n,r,i,a,o,s,c){return e=Ui(e,t,n,r,i,a,o,s,c),e.trackedPostpones={workingMap:new Map,rootNodes:[],rootSlots:null},e}var Gi=null;function Ki(e,t){e.pingedTasks.push(t),e.pingedTasks.length===1&&(e.flushScheduled=e.destination!==null,e.trackedPostpones!==null||e.status===10?A(function(){return ka(e)}):D(function(){return ka(e)}))}function qi(e,t,n,r,i){return n={status:0,rootSegmentID:-1,parentFlushed:!1,pendingTasks:0,row:t,completedSegments:[],byteSize:0,fallbackAbortableTasks:n,errorDigest:null,contentState:ur(),fallbackState:ur(),contentPreamble:r,fallbackPreamble:i,trackedContentKeyPath:null,trackedFallbackNode:null},t!==null&&(t.pendingTasks++,r=t.boundaries,r!==null&&(e.allPendingTasks++,n.pendingTasks++,r.push(n)),e=t.inheritedHoistables,e!==null&&Er(n.contentState,e)),n}function Ji(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){e.allPendingTasks++,i===null?e.pendingRootTasks++:i.pendingTasks++,p!==null&&p.pendingTasks++;var h={replay:null,node:n,childIndex:r,ping:function(){return Ki(e,h)},blockedBoundary:i,blockedSegment:a,blockedPreamble:o,hoistableState:s,abortSet:c,keyPath:l,formatContext:u,context:d,treeContext:f,row:p,componentStack:m,thenableState:t};return c.add(h),h}function Yi(e,t,n,r,i,a,o,s,c,l,u,d,f,p){e.allPendingTasks++,a===null?e.pendingRootTasks++:a.pendingTasks++,f!==null&&f.pendingTasks++,n.pendingTasks++;var m={replay:n,node:r,childIndex:i,ping:function(){return Ki(e,m)},blockedBoundary:a,blockedSegment:null,blockedPreamble:null,hoistableState:o,abortSet:s,keyPath:c,formatContext:l,context:u,treeContext:d,row:f,componentStack:p,thenableState:t};return s.add(m),m}function Xi(e,t,n,r,i,a){return{status:0,parentFlushed:!1,id:-1,index:t,chunks:[],children:[],preambleChildren:[],parentFormatContext:r,boundary:n,lastPushedText:i,textEmbedded:a}}function Zi(e){var t=e.node;if(typeof t==`object`&&t)switch(t.$$typeof){case i:e.componentStack={parent:e.componentStack,type:t.type}}}function Qi(e){return e===null?null:{parent:e.parent,type:`Suspense Fallback`}}function $i(e){var t={};return e&&Object.defineProperty(t,"componentStack",{configurable:!0,enumerable:!0,get:function(){try{var n=``,r=e;do n+=Li(r.type),r=r.parent;while(r);var i=n}catch(e){i=`
|
|
887
887
|
Error generating stack: `+e.message+`
|
|
888
888
|
`+e.stack}return Object.defineProperty(t,"componentStack",{value:i}),i}}),t}function ea(e,t,n){if(e=e.onError,t=e(t,n),t==null||typeof t==`string`)return t}function ta(e,t){var n=e.onShellError,r=e.onFatalError;n(t),r(t),e.destination===null?(e.status=13,e.fatalError=t):(e.status=14,B(e.destination,t))}function na(e,t){ra(e,t.next,t.hoistables)}function ra(e,t,n){for(;t!==null;){n!==null&&(Er(t.hoistables,n),t.inheritedHoistables=n);var r=t.boundaries;if(r!==null){t.boundaries=null;for(var i=0;i<r.length;i++){var a=r[i];n!==null&&Er(a.contentState,n),Oa(e,a,null,null)}}if(t.pendingTasks--,0<t.pendingTasks)break;n=t.hoistables,t=t.next}}function ia(e,t){var n=t.boundaries;if(n!==null&&t.pendingTasks===n.length){for(var r=!0,i=0;i<n.length;i++){var a=n[i];if(a.pendingTasks!==1||a.parentFlushed||Ri(e,a)){r=!1;break}}r&&ra(e,t,t.hoistables)}}function aa(e){var t={pendingTasks:1,boundaries:null,hoistables:ur(),inheritedHoistables:null,together:!1,next:null};return e!==null&&0<e.pendingTasks&&(t.pendingTasks++,t.boundaries=[],e.next=t),t}function oa(e,t,n,r,i){var a=t.keyPath,o=t.treeContext,s=t.row;t.keyPath=n,n=r.length;var c=null;if(t.replay!==null){var l=t.replay.slots;if(typeof l==`object`&&l)for(var u=0;u<n;u++){var d=i!==`backwards`&&i!==`unstable_legacy-backwards`?u:n-1-u,f=r[d];t.row=c=aa(c),t.treeContext=Vr(o,n,d);var p=l[d];typeof p==`number`?(ua(e,t,p,f,d),delete l[d]):ya(e,t,f,d),--c.pendingTasks===0&&na(e,c)}else for(l=0;l<n;l++)u=i!==`backwards`&&i!==`unstable_legacy-backwards`?l:n-1-l,d=r[u],t.row=c=aa(c),t.treeContext=Vr(o,n,u),ya(e,t,d,u),--c.pendingTasks===0&&na(e,c)}else if(i!==`backwards`&&i!==`unstable_legacy-backwards`)for(i=0;i<n;i++)l=r[i],t.row=c=aa(c),t.treeContext=Vr(o,n,i),ya(e,t,l,i),--c.pendingTasks===0&&na(e,c);else{for(i=t.blockedSegment,l=i.children.length,u=i.chunks.length,d=n-1;0<=d;d--){f=r[d],t.row=c=aa(c),t.treeContext=Vr(o,n,d),p=Xi(e,u,null,t.formatContext,d!==0||i.lastPushedText,!0),i.children.splice(l,0,p),t.blockedSegment=p;try{ya(e,t,f,d),p.lastPushedText&&p.textEmbedded&&p.chunks.push(Ne),p.status=1,Da(e,t.blockedBoundary,p),--c.pendingTasks===0&&na(e,c)}catch(t){throw p.status=e.status===12?3:4,t}}t.blockedSegment=i,i.lastPushedText=!1}s!==null&&c!==null&&0<c.pendingTasks&&(s.pendingTasks++,c.next=s),t.treeContext=o,t.row=s,t.keyPath=a}function sa(e,t,n,r,i,a){var o=t.thenableState;for(t.thenableState=null,$r={},ei=t,ti=e,ni=n,ci=si=0,li=-1,di=0,fi=o,e=r(i,a);oi;)oi=!1,ci=si=0,li=-1,di=0,hi+=1,ii=null,e=r(i,a);return yi(),e}function ca(e,t,n,r,i,a,o){var s=!1;if(a!==0&&e.formState!==null){var c=t.blockedSegment;if(c!==null){s=!0,c=c.chunks;for(var l=0;l<a;l++)l===o?c.push(ot):c.push(st)}}a=t.keyPath,t.keyPath=n,i?(n=t.treeContext,t.treeContext=Vr(n,1,0),ya(e,t,r,-1),t.treeContext=n):s?ya(e,t,r,-1):da(e,t,r,-1),t.keyPath=a}function la(e,t,n,i,a,y){if(typeof i==`function`)if(i.prototype&&i.prototype.isReactComponent){var x=a;if(`ref`in a)for(var w in x={},a)w!==`ref`&&(x[w]=a[w]);var T=i.defaultProps;if(T)for(var E in x===a&&(x=V({},x,a)),T)x[E]===void 0&&(x[E]=T[E]);a=x,x=jr,T=i.contextType,typeof T==`object`&&T&&(x=T._currentValue),x=new i(a,x);var D=x.state===void 0?null:x.state;if(x.updater=zr,x.props=a,x.state=D,T={queue:[],replace:!1},x._reactInternals=T,y=i.contextType,x.context=typeof y==`object`&&y?y._currentValue:jr,y=i.getDerivedStateFromProps,typeof y==`function`&&(y=y(a,D),D=y==null?D:V({},D,y),x.state=D),typeof i.getDerivedStateFromProps!=`function`&&typeof x.getSnapshotBeforeUpdate!=`function`&&(typeof x.UNSAFE_componentWillMount==`function`||typeof x.componentWillMount==`function`))if(i=x.state,typeof x.componentWillMount==`function`&&x.componentWillMount(),typeof x.UNSAFE_componentWillMount==`function`&&x.UNSAFE_componentWillMount(),i!==x.state&&zr.enqueueReplaceState(x,x.state,null),T.queue!==null&&0<T.queue.length)if(i=T.queue,y=T.replace,T.queue=null,T.replace=!1,y&&i.length===1)x.state=i[0];else{for(T=y?i[0]:x.state,D=!0,y=+!!y;y<i.length;y++)E=i[y],E=typeof E==`function`?E.call(x,T,a,void 0):E,E!=null&&(D?(D=!1,T=V({},T,E)):V(T,E));x.state=T}else T.queue=null;if(i=x.render(),e.status===12)throw null;a=t.keyPath,t.keyPath=n,da(e,t,i,-1),t.keyPath=a}else{if(i=sa(e,t,n,i,a,void 0),e.status===12)throw null;ca(e,t,n,i,si!==0,ci,li)}else if(typeof i==`string`)if(x=t.blockedSegment,x===null)x=a.children,T=t.formatContext,D=t.keyPath,t.formatContext=ke(T,i,a),t.keyPath=n,ya(e,t,x,-1),t.formatContext=T,t.keyPath=D;else{if(D=wt(x.chunks,i,a,e.resumableState,e.renderState,t.blockedPreamble,t.hoistableState,t.formatContext,x.lastPushedText),x.lastPushedText=!1,T=t.formatContext,y=t.keyPath,t.keyPath=n,(t.formatContext=ke(T,i,a)).insertionMode===3){n=Xi(e,0,null,t.formatContext,!1,!1),x.preambleChildren.push(n),t.blockedSegment=n;try{n.status=6,ya(e,t,D,-1),n.lastPushedText&&n.textEmbedded&&n.chunks.push(Ne),n.status=1,Da(e,t.blockedBoundary,n)}finally{t.blockedSegment=x}}else ya(e,t,D,-1);t.formatContext=T,t.keyPath=y;a:{switch(t=x.chunks,e=e.resumableState,i){case`title`:case`style`:case`script`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`img`:case`input`:case`keygen`:case`link`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:break a;case`body`:if(1>=T.insertionMode){e.hasBody=!0;break a}break;case`html`:if(T.insertionMode===0){e.hasHtml=!0;break a}break;case`head`:if(1>=T.insertionMode)break a}t.push(Et(i))}x.lastPushedText=!1}else{switch(i){case v:case s:case c:case o:i=t.keyPath,t.keyPath=n,da(e,t,a.children,-1),t.keyPath=i;return;case _:i=t.blockedSegment,i===null?a.mode!==`hidden`&&(i=t.keyPath,t.keyPath=n,ya(e,t,a.children,-1),t.keyPath=i):a.mode!==`hidden`&&(i.chunks.push(Mt),i.lastPushedText=!1,x=t.keyPath,t.keyPath=n,ya(e,t,a.children,-1),t.keyPath=x,i.chunks.push(Nt),i.lastPushedText=!1);return;case p:a:{if(i=a.children,a=a.revealOrder,a===`forwards`||a===`backwards`||a===`unstable_legacy-backwards`){if(C(i)){oa(e,t,n,i,a);break a}if((x=S(i))&&(x=x.call(i))){if(T=x.next(),!T.done){do T=x.next();while(!T.done);oa(e,t,n,i,a)}break a}}a===`together`?(a=t.keyPath,x=t.row,T=t.row=aa(null),T.boundaries=[],T.together=!0,t.keyPath=n,da(e,t,i,-1),--T.pendingTasks===0&&na(e,T),t.keyPath=a,t.row=x,x!==null&&0<T.pendingTasks&&(x.pendingTasks++,T.next=x)):(a=t.keyPath,t.keyPath=n,da(e,t,i,-1),t.keyPath=a)}return;case b:case g:throw Error(r(343));case f:a:if(t.replay!==null){i=t.keyPath,x=t.formatContext,T=t.row,t.keyPath=n,t.formatContext=Me(e.resumableState,x),t.row=null,n=a.children;try{ya(e,t,n,-1)}finally{t.keyPath=i,t.formatContext=x,t.row=T}}else{i=t.keyPath,y=t.formatContext;var O=t.row;E=t.blockedBoundary,w=t.blockedPreamble;var k=t.hoistableState,A=t.blockedSegment,j=a.fallback;a=a.children;var M=new Set,N=2>t.formatContext.insertionMode?qi(e,t.row,M,Ee(),Ee()):qi(e,t.row,M,null,null);e.trackedPostpones!==null&&(N.trackedContentKeyPath=n);var P=Xi(e,A.chunks.length,N,t.formatContext,!1,!1);A.children.push(P),A.lastPushedText=!1;var F=Xi(e,0,null,t.formatContext,!1,!1);if(F.parentFlushed=!0,e.trackedPostpones!==null){x=t.componentStack,T=[n[0],`Suspense Fallback`,n[2]],D=[T[1],T[2],[],null],e.trackedPostpones.workingMap.set(T,D),N.trackedFallbackNode=D,t.blockedSegment=P,t.blockedPreamble=N.fallbackPreamble,t.keyPath=T,t.formatContext=je(e.resumableState,y),t.componentStack=Qi(x),P.status=6;try{ya(e,t,j,-1),P.lastPushedText&&P.textEmbedded&&P.chunks.push(Ne),P.status=1,Da(e,E,P)}catch(t){throw P.status=e.status===12?3:4,t}finally{t.blockedSegment=A,t.blockedPreamble=w,t.keyPath=i,t.formatContext=y}t=Ji(e,null,a,-1,N,F,N.contentPreamble,N.contentState,t.abortSet,n,Me(e.resumableState,t.formatContext),t.context,t.treeContext,null,x),Zi(t),e.pingedTasks.push(t)}else{t.blockedBoundary=N,t.blockedPreamble=N.contentPreamble,t.hoistableState=N.contentState,t.blockedSegment=F,t.keyPath=n,t.formatContext=Me(e.resumableState,y),t.row=null,F.status=6;try{if(ya(e,t,a,-1),F.lastPushedText&&F.textEmbedded&&F.chunks.push(Ne),F.status=1,Da(e,N,F),Ea(N,F),N.pendingTasks===0&&N.status===0){if(N.status=1,!Ri(e,N)){O!==null&&--O.pendingTasks===0&&na(e,O),e.pendingRootTasks===0&&t.blockedPreamble&&Ma(e);break a}}else O!==null&&O.together&&ia(e,O)}catch(n){N.status=4,e.status===12?(F.status=3,x=e.fatalError):(F.status=4,x=n),T=$i(t.componentStack),D=ea(e,x,T),N.errorDigest=D,ga(e,N)}finally{t.blockedBoundary=E,t.blockedPreamble=w,t.hoistableState=k,t.blockedSegment=A,t.keyPath=i,t.formatContext=y,t.row=O}t=Ji(e,null,j,-1,E,P,N.fallbackPreamble,N.fallbackState,M,[n[0],`Suspense Fallback`,n[2]],je(e.resumableState,t.formatContext),t.context,t.treeContext,t.row,Qi(t.componentStack)),Zi(t),e.pingedTasks.push(t)}}return}if(typeof i==`object`&&i)switch(i.$$typeof){case d:if(`ref`in a)for(A in x={},a)A!==`ref`&&(x[A]=a[A]);else x=a;i=sa(e,t,n,i.render,x,y),ca(e,t,n,i,si!==0,ci,li);return;case m:la(e,t,n,i.type,a,y);return;case u:if(T=a.children,x=t.keyPath,a=a.value,D=i._currentValue,i._currentValue=a,y=Mr,Mr=i={parent:y,depth:y===null?0:y.depth+1,context:i,parentValue:D,value:a},t.context=i,t.keyPath=n,da(e,t,T,-1),e=Mr,e===null)throw Error(r(403));e.context._currentValue=e.parentValue,e=Mr=e.parent,t.context=e,t.keyPath=x;return;case l:a=a.children,i=a(i._context._currentValue),a=t.keyPath,t.keyPath=n,da(e,t,i,-1),t.keyPath=a;return;case h:if(x=i._init,i=x(i._payload),e.status===12)throw null;la(e,t,n,i,a,y);return}throw Error(r(130,i==null?i:typeof i,``))}}function ua(e,t,n,r,i){var a=t.replay,o=t.blockedBoundary,s=Xi(e,0,null,t.formatContext,!1,!1);s.id=n,s.parentFlushed=!0;try{t.replay=null,t.blockedSegment=s,ya(e,t,r,i),s.status=1,Da(e,o,s),o===null?e.completedRootSegment=s:(Ea(o,s),o.parentFlushed&&e.partialBoundaries.push(o))}finally{t.replay=a,t.blockedSegment=null}}function da(e,t,n,r){t.replay!==null&&typeof t.replay.slots==`number`?ua(e,t,t.replay.slots,n,r):(t.node=n,t.childIndex=r,n=t.componentStack,Zi(t),fa(e,t),t.componentStack=n)}function fa(e,t){var n=t.node,o=t.childIndex;if(n!==null){if(typeof n==`object`){switch(n.$$typeof){case i:var s=n.type,c=n.key,l=n.props;n=l.ref;var d=n===void 0?null:n,p=Ar(s),m=c??(o===-1?0:o);if(c=[t.keyPath,p,m],t.replay!==null)a:{var g=t.replay;for(o=g.nodes,n=0;n<o.length;n++){var _=o[n];if(m===_[1]){if(_.length===4){if(p!==null&&p!==_[0])throw Error(r(490,_[0],p));var v=_[2];p=_[3],m=t.node,t.replay={nodes:v,slots:p,pendingTasks:1};try{if(la(e,t,c,s,l,d),t.replay.pendingTasks===1&&0<t.replay.nodes.length)throw Error(r(488));t.replay.pendingTasks--}catch(r){if(typeof r==`object`&&r&&(r===qr||typeof r.then==`function`))throw t.node===m?t.replay=g:o.splice(n,1),r;t.replay.pendingTasks--,l=$i(t.componentStack),c=e,e=t.blockedBoundary,s=r,l=ea(c,s,l),xa(c,e,v,p,s,l)}t.replay=g}else{if(s!==f)throw Error(r(490,`Suspense`,Ar(s)||`Unknown`));b:{g=void 0,s=_[5],d=_[2],p=_[3],m=_[4]===null?[]:_[4][2],_=_[4]===null?null:_[4][3];var y=t.keyPath,b=t.formatContext,x=t.row,w=t.replay,T=t.blockedBoundary,E=t.hoistableState,D=l.children,O=l.fallback,k=new Set;l=2>t.formatContext.insertionMode?qi(e,t.row,k,Ee(),Ee()):qi(e,t.row,k,null,null),l.parentFlushed=!0,l.rootSegmentID=s,t.blockedBoundary=l,t.hoistableState=l.contentState,t.keyPath=c,t.formatContext=Me(e.resumableState,b),t.row=null,t.replay={nodes:d,slots:p,pendingTasks:1};try{if(ya(e,t,D,-1),t.replay.pendingTasks===1&&0<t.replay.nodes.length)throw Error(r(488));if(t.replay.pendingTasks--,l.pendingTasks===0&&l.status===0){l.status=1,e.completedBoundaries.push(l);break b}}catch(n){l.status=4,v=$i(t.componentStack),g=ea(e,n,v),l.errorDigest=g,t.replay.pendingTasks--,e.clientRenderedBoundaries.push(l)}finally{t.blockedBoundary=T,t.hoistableState=E,t.replay=w,t.keyPath=y,t.formatContext=b,t.row=x}v=Yi(e,null,{nodes:m,slots:_,pendingTasks:0},O,-1,T,l.fallbackState,k,[c[0],`Suspense Fallback`,c[2]],je(e.resumableState,t.formatContext),t.context,t.treeContext,t.row,Qi(t.componentStack)),Zi(v),e.pingedTasks.push(v)}}o.splice(n,1);break a}}}else la(e,t,c,s,l,d);return;case a:throw Error(r(257));case h:if(v=n._init,n=v(n._payload),e.status===12)throw null;da(e,t,n,o);return}if(C(n)){pa(e,t,n,o);return}if((v=S(n))&&(v=v.call(n))){if(n=v.next(),!n.done){l=[];do l.push(n.value),n=v.next();while(!n.done);pa(e,t,l,o)}return}if(typeof n.then==`function`)return t.thenableState=null,da(e,t,Oi(n),o);if(n.$$typeof===u)return da(e,t,n._currentValue,o);throw o=Object.prototype.toString.call(n),Error(r(31,o===`[object Object]`?`object with keys {`+Object.keys(n).join(`, `)+`}`:o))}typeof n==`string`?(o=t.blockedSegment,o!==null&&(o.lastPushedText=Pe(o.chunks,n,e.renderState,o.lastPushedText))):(typeof n==`number`||typeof n==`bigint`)&&(o=t.blockedSegment,o!==null&&(o.lastPushedText=Pe(o.chunks,``+n,e.renderState,o.lastPushedText)))}}function pa(e,t,n,i){var a=t.keyPath;if(i!==-1&&(t.keyPath=[t.keyPath,`Fragment`,i],t.replay!==null)){for(var o=t.replay,s=o.nodes,c=0;c<s.length;c++){var l=s[c];if(l[1]===i){i=l[2],l=l[3],t.replay={nodes:i,slots:l,pendingTasks:1};try{if(pa(e,t,n,-1),t.replay.pendingTasks===1&&0<t.replay.nodes.length)throw Error(r(488));t.replay.pendingTasks--}catch(r){if(typeof r==`object`&&r&&(r===qr||typeof r.then==`function`))throw r;t.replay.pendingTasks--,n=$i(t.componentStack);var u=t.blockedBoundary,d=r;n=ea(e,d,n),xa(e,u,i,l,d,n)}t.replay=o,s.splice(c,1);break}}t.keyPath=a;return}if(o=t.treeContext,s=n.length,t.replay!==null&&(c=t.replay.slots,typeof c==`object`&&c)){for(i=0;i<s;i++)l=n[i],t.treeContext=Vr(o,s,i),u=c[i],typeof u==`number`?(ua(e,t,u,l,i),delete c[i]):ya(e,t,l,i);t.treeContext=o,t.keyPath=a;return}for(c=0;c<s;c++)i=n[c],t.treeContext=Vr(o,s,c),ya(e,t,i,c);t.treeContext=o,t.keyPath=a}function ma(e,t,n){if(n.status=5,n.rootSegmentID=e.nextSegmentId++,e=n.trackedContentKeyPath,e===null)throw Error(r(486));var i=n.trackedFallbackNode,a=[],o=t.workingMap.get(e);return o===void 0?(n=[e[1],e[2],a,null,i,n.rootSegmentID],t.workingMap.set(e,n),Ga(n,e[0],t),n):(o[4]=i,o[5]=n.rootSegmentID,o)}function ha(e,t,n,i){i.status=5;var a=n.keyPath,o=n.blockedBoundary;if(o===null)i.id=e.nextSegmentId++,t.rootSlots=i.id,e.completedRootSegment!==null&&(e.completedRootSegment.status=5);else{if(o!==null&&o.status===0){var s=ma(e,t,o);if(o.trackedContentKeyPath===a&&n.childIndex===-1){i.id===-1&&(i.id=i.parentFlushed?o.rootSegmentID:e.nextSegmentId++),s[3]=i.id;return}}if(i.id===-1&&(i.id=i.parentFlushed&&o!==null?o.rootSegmentID:e.nextSegmentId++),n.childIndex===-1)a===null?t.rootSlots=i.id:(n=t.workingMap.get(a),n===void 0?(n=[a[1],a[2],[],i.id],Ga(n,a[0],t)):n[3]=i.id);else{if(a===null){if(e=t.rootSlots,e===null)e=t.rootSlots={};else if(typeof e==`number`)throw Error(r(491))}else if(o=t.workingMap,s=o.get(a),s===void 0)e={},s=[a[1],a[2],[],e],o.set(a,s),Ga(s,a[0],t);else if(e=s[3],e===null)e=s[3]={};else if(typeof e==`number`)throw Error(r(491));e[n.childIndex]=i.id}}}function ga(e,t){e=e.trackedPostpones,e!==null&&(t=t.trackedContentKeyPath,t!==null&&(t=e.workingMap.get(t),t!==void 0&&(t.length=4,t[2]=[],t[3]=null)))}function _a(e,t,n){return Yi(e,n,t.replay,t.node,t.childIndex,t.blockedBoundary,t.hoistableState,t.abortSet,t.keyPath,t.formatContext,t.context,t.treeContext,t.row,t.componentStack)}function va(e,t,n){var r=t.blockedSegment,i=Xi(e,r.chunks.length,null,t.formatContext,r.lastPushedText,!0);return r.children.push(i),r.lastPushedText=!1,Ji(e,n,t.node,t.childIndex,t.blockedBoundary,i,t.blockedPreamble,t.hoistableState,t.abortSet,t.keyPath,t.formatContext,t.context,t.treeContext,t.row,t.componentStack)}function ya(e,t,n,r){var i=t.formatContext,a=t.context,o=t.keyPath,s=t.treeContext,c=t.componentStack,l=t.blockedSegment;if(l===null){l=t.replay;try{return da(e,t,n,r)}catch(u){if(yi(),n=u===qr?Xr():u,e.status!==12&&typeof n==`object`&&n){if(typeof n.then==`function`){r=u===qr?vi():null,e=_a(e,t,r).ping,n.then(e,e),t.formatContext=i,t.context=a,t.keyPath=o,t.treeContext=s,t.componentStack=c,t.replay=l,Rr(a);return}if(n.message===`Maximum call stack size exceeded`){n=u===qr?vi():null,n=_a(e,t,n),e.pingedTasks.push(n),t.formatContext=i,t.context=a,t.keyPath=o,t.treeContext=s,t.componentStack=c,t.replay=l,Rr(a);return}}}}else{var u=l.children.length,d=l.chunks.length;try{return da(e,t,n,r)}catch(r){if(yi(),l.children.length=u,l.chunks.length=d,n=r===qr?Xr():r,e.status!==12&&typeof n==`object`&&n){if(typeof n.then==`function`){l=n,n=r===qr?vi():null,e=va(e,t,n).ping,l.then(e,e),t.formatContext=i,t.context=a,t.keyPath=o,t.treeContext=s,t.componentStack=c,Rr(a);return}if(n.message===`Maximum call stack size exceeded`){l=r===qr?vi():null,l=va(e,t,l),e.pingedTasks.push(l),t.formatContext=i,t.context=a,t.keyPath=o,t.treeContext=s,t.componentStack=c,Rr(a);return}}}}throw t.formatContext=i,t.context=a,t.keyPath=o,t.treeContext=s,Rr(a),n}function ba(e){var t=e.blockedBoundary,n=e.blockedSegment;n!==null&&(n.status=3,Oa(this,t,e.row,n))}function xa(e,t,n,i,a,o){for(var s=0;s<n.length;s++){var c=n[s];if(c.length===4)xa(e,t,c[2],c[3],a,o);else{c=c[5];var l=e,u=o,d=qi(l,null,new Set,null,null);d.parentFlushed=!0,d.rootSegmentID=c,d.status=4,d.errorDigest=u,d.parentFlushed&&l.clientRenderedBoundaries.push(d)}}if(n.length=0,i!==null){if(t===null)throw Error(r(487));if(t.status!==4&&(t.status=4,t.errorDigest=o,t.parentFlushed&&e.clientRenderedBoundaries.push(t)),typeof i==`object`)for(var f in i)delete i[f]}}function Sa(e,t,n){var r=e.blockedBoundary,i=e.blockedSegment;if(i!==null){if(i.status===6)return;i.status=3}var a=$i(e.componentStack);if(r===null){if(t.status!==13&&t.status!==14){if(r=e.replay,r===null){t.trackedPostpones!==null&&i!==null?(r=t.trackedPostpones,ea(t,n,a),ha(t,r,e,i),Oa(t,null,e.row,i)):(ea(t,n,a),ta(t,n));return}r.pendingTasks--,r.pendingTasks===0&&0<r.nodes.length&&(i=ea(t,n,a),xa(t,null,r.nodes,r.slots,n,i)),t.pendingRootTasks--,t.pendingRootTasks===0&&wa(t)}}else{var o=t.trackedPostpones;if(r.status!==4){if(o!==null&&i!==null)return ea(t,n,a),ha(t,o,e,i),r.fallbackAbortableTasks.forEach(function(e){return Sa(e,t,n)}),r.fallbackAbortableTasks.clear(),Oa(t,r,e.row,i);r.status=4,i=ea(t,n,a),r.status=4,r.errorDigest=i,ga(t,r),r.parentFlushed&&t.clientRenderedBoundaries.push(r)}r.pendingTasks--,i=r.row,i!==null&&--i.pendingTasks===0&&na(t,i),r.fallbackAbortableTasks.forEach(function(e){return Sa(e,t,n)}),r.fallbackAbortableTasks.clear()}e=e.row,e!==null&&--e.pendingTasks===0&&na(t,e),t.allPendingTasks--,t.allPendingTasks===0&&Ta(t)}function Ca(e,t){try{var n=e.renderState,r=n.onHeaders;if(r){var i=n.headers;if(i){n.headers=null;var a=i.preconnects;if(i.fontPreloads&&(a&&(a+=`, `),a+=i.fontPreloads),i.highImagePreloads&&(a&&(a+=`, `),a+=i.highImagePreloads),!t){var o=n.styles.values(),s=o.next();b:for(;0<i.remainingCapacity&&!s.done;s=o.next())for(var c=s.value.sheets.values(),l=c.next();0<i.remainingCapacity&&!l.done;l=c.next()){var u=l.value,d=u.props,f=d.href,p=u.props,m=yr(p.href,`style`,{crossOrigin:p.crossOrigin,integrity:p.integrity,nonce:p.nonce,type:p.type,fetchPriority:p.fetchPriority,referrerPolicy:p.referrerPolicy,media:p.media});if(0<=(i.remainingCapacity-=m.length+2))n.resets.style[f]=le,a&&(a+=`, `),a+=m,n.resets.style[f]=typeof d.crossOrigin==`string`||typeof d.integrity==`string`?[d.crossOrigin,d.integrity]:le;else break b}}r(a?{Link:a}:{})}}}catch(t){ea(e,t,{})}}function wa(e){e.trackedPostpones===null&&Ca(e,!0),e.trackedPostpones===null&&Ma(e),e.onShellError=Kr,e=e.onShellReady,e()}function Ta(e){Ca(e,e.trackedPostpones===null||e.completedRootSegment===null||e.completedRootSegment.status!==5),Ma(e),e=e.onAllReady,e()}function Ea(e,t){if(t.chunks.length===0&&t.children.length===1&&t.children[0].boundary===null&&t.children[0].id===-1){var n=t.children[0];n.id=t.id,n.parentFlushed=!0,n.status!==1&&n.status!==3&&n.status!==4||Ea(e,n)}else e.completedSegments.push(t)}function Da(e,t,n){if(z!==null){n=n.chunks;for(var r=0,i=0;i<n.length;i++)r+=n[i].byteLength;t===null?e.byteSize+=r:t.byteSize+=r}}function Oa(e,t,n,i){if(n!==null&&(--n.pendingTasks===0?na(e,n):n.together&&ia(e,n)),e.allPendingTasks--,t===null){if(i!==null&&i.parentFlushed){if(e.completedRootSegment!==null)throw Error(r(389));e.completedRootSegment=i}e.pendingRootTasks--,e.pendingRootTasks===0&&wa(e)}else if(t.pendingTasks--,t.status!==4)if(t.pendingTasks===0){if(t.status===0&&(t.status=1),i!==null&&i.parentFlushed&&(i.status===1||i.status===3)&&Ea(t,i),t.parentFlushed&&e.completedBoundaries.push(t),t.status===1)n=t.row,n!==null&&Er(n.hoistables,t.contentState),Ri(e,t)||(t.fallbackAbortableTasks.forEach(ba,e),t.fallbackAbortableTasks.clear(),n!==null&&--n.pendingTasks===0&&na(e,n)),e.pendingRootTasks===0&&e.trackedPostpones===null&&t.contentPreamble!==null&&Ma(e);else if(t.status===5&&(t=t.row,t!==null)){if(e.trackedPostpones!==null){n=e.trackedPostpones;var a=t.next;if(a!==null&&(i=a.boundaries,i!==null))for(a.boundaries=null,a=0;a<i.length;a++){var o=i[a];ma(e,n,o),Oa(e,o,null,null)}}--t.pendingTasks===0&&na(e,t)}}else i===null||!i.parentFlushed||i.status!==1&&i.status!==3||(Ea(t,i),t.completedSegments.length===1&&t.parentFlushed&&e.partialBoundaries.push(t)),t=t.row,t!==null&&t.together&&ia(e,t);e.allPendingTasks===0&&Ta(e)}function ka(e){if(e.status!==14&&e.status!==13){var t=Mr,n=oe.H;oe.H=Ai;var i=oe.A;oe.A=ji;var a=Gi;Gi=e;var o=Z;Z=e.resumableState;try{var s=e.pingedTasks,c;for(c=0;c<s.length;c++){var l=s[c],u=e,d=l.blockedSegment;if(d===null){var f=u;if(l.replay.pendingTasks!==0){Rr(l.context);try{if(typeof l.replay.slots==`number`?ua(f,l,l.replay.slots,l.node,l.childIndex):fa(f,l),l.replay.pendingTasks===1&&0<l.replay.nodes.length)throw Error(r(488));l.replay.pendingTasks--,l.abortSet.delete(l),Oa(f,l.blockedBoundary,l.row,null)}catch(e){yi();var p=e===qr?Xr():e;if(typeof p==`object`&&p&&typeof p.then==`function`){var m=l.ping;p.then(m,m),l.thenableState=e===qr?vi():null}else{l.replay.pendingTasks--,l.abortSet.delete(l);var h=$i(l.componentStack);u=void 0;var g=f,_=l.blockedBoundary,v=f.status===12?f.fatalError:p,y=l.replay.nodes,b=l.replay.slots;u=ea(g,v,h),xa(g,_,y,b,v,u),f.pendingRootTasks--,f.pendingRootTasks===0&&wa(f),f.allPendingTasks--,f.allPendingTasks===0&&Ta(f)}}}}else if(f=void 0,g=d,g.status===0){g.status=6,Rr(l.context);var x=g.children.length,S=g.chunks.length;try{fa(u,l),g.lastPushedText&&g.textEmbedded&&g.chunks.push(Ne),l.abortSet.delete(l),g.status=1,Da(u,l.blockedBoundary,g),Oa(u,l.blockedBoundary,l.row,g)}catch(e){yi(),g.children.length=x,g.chunks.length=S;var C=e===qr?Xr():u.status===12?u.fatalError:e;if(u.status===12&&u.trackedPostpones!==null){var w=u.trackedPostpones,T=$i(l.componentStack);l.abortSet.delete(l),ea(u,C,T),ha(u,w,l,g),Oa(u,l.blockedBoundary,l.row,g)}else if(typeof C==`object`&&C&&typeof C.then==`function`){g.status=0,l.thenableState=e===qr?vi():null;var E=l.ping;C.then(E,E)}else{var D=$i(l.componentStack);l.abortSet.delete(l),g.status=4;var O=l.blockedBoundary,k=l.row;if(k!==null&&--k.pendingTasks===0&&na(u,k),u.allPendingTasks--,f=ea(u,C,D),O===null)ta(u,C);else if(O.pendingTasks--,O.status!==4){O.status=4,O.errorDigest=f,ga(u,O);var A=O.row;A!==null&&--A.pendingTasks===0&&na(u,A),O.parentFlushed&&u.clientRenderedBoundaries.push(O),u.pendingRootTasks===0&&u.trackedPostpones===null&&O.contentPreamble!==null&&Ma(u)}u.allPendingTasks===0&&Ta(u)}}}}s.splice(0,c),e.destination!==null&&Ba(e,e.destination)}catch(t){ea(e,t,{}),ta(e,t)}finally{Z=o,oe.H=n,oe.A=i,n===Ai&&Rr(t),Gi=a}}}function Aa(e,t,n){t.preambleChildren.length&&n.push(t.preambleChildren);for(var r=!1,i=0;i<t.children.length;i++)r=ja(e,t.children[i],n)||r;return r}function ja(e,t,n){var i=t.boundary;if(i===null)return Aa(e,t,n);var a=i.contentPreamble,o=i.fallbackPreamble;if(a===null||o===null)return!1;switch(i.status){case 1:if(Dt(e.renderState,a),e.byteSize+=i.byteSize,t=i.completedSegments[0],!t)throw Error(r(391));return Aa(e,t,n);case 5:if(e.trackedPostpones!==null)return!0;case 4:if(t.status===1)return Dt(e.renderState,o),Aa(e,t,n);default:return!0}}function Ma(e){if(e.completedRootSegment&&e.completedPreambleSegments===null){var t=[],n=e.byteSize,r=ja(e,e.completedRootSegment,t),i=e.renderState.preamble;!1===r||i.headChunks&&i.bodyChunks?e.completedPreambleSegments=t:e.byteSize=n}}function Na(e,t,n,i){switch(n.parentFlushed=!0,n.status){case 0:n.id=e.nextSegmentId++;case 5:return i=n.id,n.lastPushedText=!1,n.textEmbedded=!1,e=e.renderState,N(t,At),N(t,e.placeholderPrefix),e=L(i.toString(16)),N(t,e),P(t,jt);case 1:n.status=2;var a=!0,o=n.chunks,s=0;n=n.children;for(var c=0;c<n.length;c++){for(a=n[c];s<a.index;s++)N(t,o[s]);a=Fa(e,t,a,i)}for(;s<o.length-1;s++)N(t,o[s]);return s<o.length&&(a=P(t,o[s])),a;case 3:return!0;default:throw Error(r(390))}}var Pa=0;function Fa(e,t,n,i){var a=n.boundary;if(a===null)return Na(e,t,n,i);if(a.parentFlushed=!0,a.status===4){var o=a.row;o!==null&&--o.pendingTasks===0&&na(e,o),a=a.errorDigest,P(t,Lt),N(t,zt),a&&(N(t,Vt),N(t,L(q(a))),N(t,Bt)),P(t,Ht),Na(e,t,n,i)}else if(a.status!==1)a.status===0&&(a.rootSegmentID=e.nextSegmentId++),0<a.completedSegments.length&&e.partialBoundaries.push(a),Ut(t,e.renderState,a.rootSegmentID),i&&Er(i,a.fallbackState),Na(e,t,n,i);else if(!za&&Ri(e,a)&&(Pa+a.byteSize>e.progressiveChunkSize||Dr(a.contentState)))a.rootSegmentID=e.nextSegmentId++,e.completedBoundaries.push(a),Ut(t,e.renderState,a.rootSegmentID),Na(e,t,n,i);else{if(Pa+=a.byteSize,i&&Er(i,a.contentState),n=a.row,n!==null&&Ri(e,a)&&--n.pendingTasks===0&&na(e,n),P(t,Pt),n=a.completedSegments,n.length!==1)throw Error(r(391));Fa(e,t,n[0],i)}return P(t,Rt)}function Ia(e,t,n,r){return fn(t,e.renderState,n.parentFormatContext,n.id),Fa(e,t,n,r),pn(t,n.parentFormatContext)}function La(e,t,n){Pa=n.byteSize;for(var r=n.completedSegments,i=0;i<r.length;i++)Ra(e,t,n,r[i]);r.length=0,r=n.row,r!==null&&Ri(e,n)&&--r.pendingTasks===0&&na(e,r),Wn(t,n.contentState,e.renderState),r=e.resumableState,e=e.renderState,i=n.rootSegmentID,n=n.contentState;var a=e.stylesToHoist;return e.stylesToHoist=!1,N(t,e.startInlineScript),N(t,$e),a?(!(r.instructions&4)&&(r.instructions|=4,N(t,En)),!(r.instructions&2)&&(r.instructions|=2,N(t,vn)),r.instructions&8?N(t,xn):(r.instructions|=8,N(t,bn))):(!(r.instructions&2)&&(r.instructions|=2,N(t,vn)),N(t,yn)),r=L(i.toString(16)),N(t,e.boundaryPrefix),N(t,r),N(t,Sn),N(t,e.segmentPrefix),N(t,r),a?(N(t,Cn),cr(t,n)):N(t,wn),n=P(t,Tn),Ot(t,e)&&n}function Ra(e,t,n,i){if(i.status===2)return!0;var a=n.contentState,o=i.id;if(o===-1){if((i.id=n.rootSegmentID)===-1)throw Error(r(392));return Ia(e,t,i,a)}return o===n.rootSegmentID?Ia(e,t,i,a):(Ia(e,t,i,a),n=e.resumableState,e=e.renderState,N(t,e.startInlineScript),N(t,$e),n.instructions&1?N(t,hn):(n.instructions|=1,N(t,mn)),N(t,e.segmentPrefix),o=L(o.toString(16)),N(t,o),N(t,gn),N(t,e.placeholderPrefix),N(t,o),t=P(t,_n),t)}var za=!1;function Ba(e,t){j=new Uint8Array(2048),M=0;try{if(!(0<e.pendingRootTasks)){var n,r=e.completedRootSegment;if(r!==null){if(r.status===5)return;var i=e.completedPreambleSegments;if(i===null)return;Pa=e.byteSize;var a=e.resumableState,o=e.renderState,s=o.preamble,c=s.htmlChunks,l=s.headChunks,u;if(c){for(u=0;u<c.length;u++)N(t,c[u]);if(l)for(u=0;u<l.length;u++)N(t,l[u]);else N(t,St(`head`)),N(t,$e)}else if(l)for(u=0;u<l.length;u++)N(t,l[u]);var d=o.charsetChunks;for(u=0;u<d.length;u++)N(t,d[u]);d.length=0,o.preconnects.forEach(Gn,t),o.preconnects.clear();var f=o.viewportChunks;for(u=0;u<f.length;u++)N(t,f[u]);f.length=0,o.fontPreloads.forEach(Gn,t),o.fontPreloads.clear(),o.highImagePreloads.forEach(Gn,t),o.highImagePreloads.clear(),ue=o,o.styles.forEach($n,t),ue=null;var p=o.importMapChunks;for(u=0;u<p.length;u++)N(t,p[u]);p.length=0,o.bootstrapScripts.forEach(Gn,t),o.scripts.forEach(Gn,t),o.scripts.clear(),o.bulkPreloads.forEach(Gn,t),o.bulkPreloads.clear(),c||l||(a.instructions|=32);var m=o.hoistableChunks;for(u=0;u<m.length;u++)N(t,m[u]);for(a=m.length=0;a<i.length;a++){var h=i[a];for(o=0;o<h.length;o++)Fa(e,t,h[o],null)}var g=e.renderState.preamble,_=g.headChunks;(g.htmlChunks||_)&&N(t,Et(`head`));var v=g.bodyChunks;if(v)for(i=0;i<v.length;i++)N(t,v[i]);Fa(e,t,r,null),e.completedRootSegment=null;var y=e.renderState;if(e.allPendingTasks!==0||e.clientRenderedBoundaries.length!==0||e.completedBoundaries.length!==0||e.trackedPostpones!==null&&(e.trackedPostpones.rootNodes.length!==0||e.trackedPostpones.rootSlots!==null)){var b=e.resumableState;if(!(b.instructions&64)){if(b.instructions|=64,N(t,y.startInlineScript),!(b.instructions&32)){b.instructions|=32;var x=`_`+b.idPrefix+`R_`;N(t,nr),N(t,L(q(x))),N(t,He)}N(t,$e),N(t,kt),P(t,fe)}}Ot(t,y)}var S=e.renderState;r=0;var C=S.viewportChunks;for(r=0;r<C.length;r++)N(t,C[r]);C.length=0,S.preconnects.forEach(Gn,t),S.preconnects.clear(),S.fontPreloads.forEach(Gn,t),S.fontPreloads.clear(),S.highImagePreloads.forEach(Gn,t),S.highImagePreloads.clear(),S.styles.forEach(tr,t),S.scripts.forEach(Gn,t),S.scripts.clear(),S.bulkPreloads.forEach(Gn,t),S.bulkPreloads.clear();var w=S.hoistableChunks;for(r=0;r<w.length;r++)N(t,w[r]);w.length=0;var T=e.clientRenderedBoundaries;for(n=0;n<T.length;n++){var E=T[n];S=t;var D=e.resumableState,O=e.renderState,k=E.rootSegmentID,A=E.errorDigest;N(S,O.startInlineScript),N(S,$e),D.instructions&4?N(S,On):(D.instructions|=4,N(S,Dn)),N(S,O.boundaryPrefix),N(S,L(k.toString(16))),N(S,kn),A&&(N(S,An),N(S,L(Nn(A||``))));var I=P(S,jn);if(!I){e.destination=null,n++,T.splice(0,n);return}}T.splice(0,n);var R=e.completedBoundaries;for(n=0;n<R.length;n++)if(!La(e,t,R[n])){e.destination=null,n++,R.splice(0,n);return}R.splice(0,n),F(t),j=new Uint8Array(2048),M=0,za=!0;var z=e.partialBoundaries;for(n=0;n<z.length;n++){var B=z[n];a:{T=e,E=t,Pa=B.byteSize;var V=B.completedSegments;for(I=0;I<V.length;I++)if(!Ra(T,E,B,V[I])){I++,V.splice(0,I);var H=!1;break a}V.splice(0,I);var U=B.row;U!==null&&U.together&&B.pendingTasks===1&&(U.pendingTasks===1?ra(T,U,U.hoistables):U.pendingTasks--),H=Wn(E,B.contentState,T.renderState)}if(!H){e.destination=null,n++,z.splice(0,n);return}}z.splice(0,n),za=!1;var ee=e.completedBoundaries;for(n=0;n<ee.length;n++)if(!La(e,t,ee[n])){e.destination=null,n++,ee.splice(0,n);return}ee.splice(0,n)}}finally{za=!1,e.allPendingTasks===0&&e.clientRenderedBoundaries.length===0&&e.completedBoundaries.length===0?(e.flushScheduled=!1,n=e.resumableState,n.hasBody&&N(t,Et(`body`)),n.hasHtml&&N(t,Et(`html`)),F(t),e.status=14,t.close(),e.destination=null):F(t)}}function Va(e){e.flushScheduled=e.destination!==null,A(function(){return ka(e)}),D(function(){e.status===10&&(e.status=11),e.trackedPostpones===null&&Ca(e,e.pendingRootTasks===0)})}function Ha(e){!1===e.flushScheduled&&e.pingedTasks.length===0&&e.destination!==null&&(e.flushScheduled=!0,D(function(){var t=e.destination;t?Ba(e,t):e.flushScheduled=!1}))}function Ua(e,t){if(e.status===13)e.status=14,B(t,e.fatalError);else if(e.status!==14&&e.destination===null){e.destination=t;try{Ba(e,t)}catch(t){ea(e,t,{}),ta(e,t)}}}function Wa(e,t){(e.status===11||e.status===10)&&(e.status=12);try{var n=e.abortableTasks;if(0<n.size){var i=t===void 0?Error(r(432)):typeof t==`object`&&t&&typeof t.then==`function`?Error(r(530)):t;e.fatalError=i,n.forEach(function(t){return Sa(t,e,i)}),n.clear()}e.destination!==null&&Ba(e,e.destination)}catch(t){ea(e,t,{}),ta(e,t)}}function Ga(e,t,n){if(t===null)n.rootNodes.push(e);else{var r=n.workingMap,i=r.get(t);i===void 0&&(i=[t[1],t[2],[],null],r.set(t,i),Ga(i,t[0],n)),i[2].push(e)}}function Ka(e){var t=e.trackedPostpones;if(t===null||t.rootNodes.length===0&&t.rootSlots===null)return e.trackedPostpones=null;if(e.completedRootSegment===null||e.completedRootSegment.status!==5&&e.completedPreambleSegments!==null){var n=e.nextSegmentId,r=t.rootSlots,i=e.resumableState;i.bootstrapScriptContent=void 0,i.bootstrapScripts=void 0,i.bootstrapModules=void 0}else{n=0,r=-1,i=e.resumableState;var a=e.renderState;i.nextFormID=0,i.hasBody=!1,i.hasHtml=!1,i.unknownResources={font:a.resets.font},i.dnsResources=a.resets.dns,i.connectResources=a.resets.connect,i.imageResources=a.resets.image,i.styleResources=a.resets.style,i.scriptResources={},i.moduleUnknownResources={},i.moduleScriptResources={},i.instructions=0}return{nextSegmentId:n,rootFormatContext:e.rootFormatContext,progressiveChunkSize:e.progressiveChunkSize,resumableState:e.resumableState,replayNodes:t.rootNodes,replaySlots:r}}function qa(){var e=t.version;if(e!==`19.2.8`)throw Error(r(527,e,`19.2.8`))}qa(),qa(),e.prerender=function(e,t){return new Promise(function(n,r){var i=t?t.onHeaders:void 0,a;i&&(a=function(e){i(new Headers(e))});var o=Te(t?t.identifierPrefix:void 0,t?t.unstable_externalRuntimeSrc:void 0,t?t.bootstrapScriptContent:void 0,t?t.bootstrapScripts:void 0,t?t.bootstrapModules:void 0),s=Hi(e,o,we(o,void 0,t?t.unstable_externalRuntimeSrc:void 0,t?t.importMap:void 0,a,t?t.maxHeadersLength:void 0),Oe(t?t.namespaceURI:void 0),t?t.progressiveChunkSize:void 0,t?t.onError:void 0,function(){var e=new ReadableStream({type:`bytes`,pull:function(e){Ua(s,e)},cancel:function(e){s.destination=null,Wa(s,e)}},{highWaterMark:0});e={postponed:Ka(s),prelude:e},n(e)},void 0,void 0,r,t?t.onPostpone:void 0);if(t&&t.signal){var c=t.signal;if(c.aborted)Wa(s,c.reason);else{var l=function(){Wa(s,c.reason),c.removeEventListener(`abort`,l)};c.addEventListener(`abort`,l)}}Va(s)})},e.renderToReadableStream=function(e,t){return new Promise(function(n,r){var i,a,o=new Promise(function(e,t){a=e,i=t}),s=t?t.onHeaders:void 0,c;s&&(c=function(e){s(new Headers(e))});var l=Te(t?t.identifierPrefix:void 0,t?t.unstable_externalRuntimeSrc:void 0,t?t.bootstrapScriptContent:void 0,t?t.bootstrapScripts:void 0,t?t.bootstrapModules:void 0),u=Vi(e,l,we(l,t?t.nonce:void 0,t?t.unstable_externalRuntimeSrc:void 0,t?t.importMap:void 0,c,t?t.maxHeadersLength:void 0),Oe(t?t.namespaceURI:void 0),t?t.progressiveChunkSize:void 0,t?t.onError:void 0,a,function(){var e=new ReadableStream({type:`bytes`,pull:function(e){Ua(u,e)},cancel:function(e){u.destination=null,Wa(u,e)}},{highWaterMark:0});e.allReady=o,n(e)},function(e){o.catch(function(){}),r(e)},i,t?t.onPostpone:void 0,t?t.formState:void 0);if(t&&t.signal){var d=t.signal;if(d.aborted)Wa(u,d.reason);else{var f=function(){Wa(u,d.reason),d.removeEventListener(`abort`,f)};d.addEventListener(`abort`,f)}}Va(u)})},e.resume=function(e,t,n){return new Promise(function(r,i){var a,o,s=new Promise(function(e,t){o=e,a=t}),c=Ui(e,t,we(t.resumableState,n?n.nonce:void 0,void 0,void 0,void 0,void 0),n?n.onError:void 0,o,function(){var e=new ReadableStream({type:`bytes`,pull:function(e){Ua(c,e)},cancel:function(e){c.destination=null,Wa(c,e)}},{highWaterMark:0});e.allReady=s,r(e)},function(e){s.catch(function(){}),i(e)},a,n?n.onPostpone:void 0);if(n&&n.signal){var l=n.signal;if(l.aborted)Wa(c,l.reason);else{var u=function(){Wa(c,l.reason),l.removeEventListener(`abort`,u)};l.addEventListener(`abort`,u)}}Va(c)})},e.resumeAndPrerender=function(e,t,n){return new Promise(function(r,i){var a=Wi(e,t,we(t.resumableState,void 0,void 0,void 0,void 0,void 0),n?n.onError:void 0,function(){var e=new ReadableStream({type:`bytes`,pull:function(e){Ua(a,e)},cancel:function(e){a.destination=null,Wa(a,e)}},{highWaterMark:0});e={postponed:Ka(a),prelude:e},r(e)},void 0,void 0,i,n?n.onPostpone:void 0);if(n&&n.signal){var o=n.signal;if(o.aborted)Wa(a,o.reason);else{var s=function(){Wa(a,o.reason),o.removeEventListener(`abort`,s)};o.addEventListener(`abort`,s)}}Va(a)})},e.version=`19.2.8`})),Sze=n((e=>{var t=bze(),n=xze();e.version=t.version,e.renderToString=t.renderToString,e.renderToStaticMarkup=t.renderToStaticMarkup,e.renderToReadableStream=n.renderToReadableStream,e.resume=n.resume}))(),Cze=`/assets/gezel-mark-CVPHSWDb.png`,wze=/^poppetje\/(.+)\.(full|headshot|icon)\.svg$/,n4={"assets/gezel-mark.png":Cze};function r4(e){return e.replace(/(!\[[^\]]*\]\()([^)\s]+)/g,(e,t,n)=>{let r=n4[n.replace(/^(\.\.?\/)+/,``)];return r?`${t}${r}`:e})}function i4(e){let t=new Map(e.map(e=>[e.path,e])),n=new Map;return{async addMedia(){throw Error(`handboek articles are read-only`)},async resolveUrl(e){let r=n4[e.replace(/^(\.\.?\/)+/,``)];if(r)return r;let i=n.get(e);if(i)return i;let a=wze.exec(e);if(!a)return e;let o=t.get(e);if(!o)return e;let s=a[2],c=(0,Sze.renderToStaticMarkup)((0,X.createElement)(lp,{poppetje:o.poppetje,variant:s,size:160,svgId:`hb-${o.gezelId}-${s}`,title:o.name})).replace(`<svg `,`<svg xmlns="http://www.w3.org/2000/svg" `),l=URL.createObjectURL(new Blob([c],{type:`image/svg+xml`}));return n.set(e,l),l},async listMedia(){return[]},async removeMedia(){},dispose(){for(let e of n.values())URL.revokeObjectURL(e);n.clear()}}}var a4=`gezel:handboek:article`;function Tze(){let[e,t]=(0,X.useState)(null),[n,r]=(0,X.useState)(()=>{try{return window.localStorage.getItem(a4)}catch{return null}}),[i,a]=(0,X.useState)(null),[o,s]=(0,X.useState)(null),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(`doc`),[f,p]=(0,X.useState)(!1),[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(null),[v,y]=(0,X.useState)(!1),[b,x]=(0,X.useState)(()=>new Set),[S,C]=(0,X.useState)(()=>new Set);(0,X.useEffect)(()=>{let e=!0;return Q.getAudioEngineStatus().then(t=>e&&p(t.tts.status===`ok`)).catch(()=>e&&p(!1)),()=>{e=!1}},[]),(0,X.useEffect)(()=>{let e=!0;return Q.getHandboekToc().then(n=>{e&&(t(n),r(e=>{let t=new Set(n.areas.flatMap(e=>e.entries.map(e=>e.id)));return e&&t.has(e)?e:n.areas[0]?.entries[0]?.id??null}))}).catch(t=>e&&s(String(t))),()=>{e=!1}},[]),(0,X.useEffect)(()=>{if(!n)return;try{window.localStorage.setItem(a4,n)}catch{}let e=!0;return l(!0),s(null),Q.getHandboekArticle(n).then(t=>{e&&(a(t),d(`doc`),h(!1),_(e=>{for(let t of e?.urls??[])URL.revokeObjectURL(t);return null}))}).catch(t=>e&&s(String(t))).finally(()=>e&&l(!1)),()=>{e=!1}},[n]),(0,X.useEffect)(()=>{if(!e||!n)return;let t=e.areas.find(e=>e.entries.some(e=>e.id===n)),r=t?.entries.find(e=>e.id===n);if(!(!t||!r)&&(x(e=>{if(!e.has(t.area))return e;let n=new Set(e);return n.delete(t.area),n}),r.subcategory)){let e=o4(t.area,r.subcategory.id);C(t=>t.has(e)?t:new Set(t).add(e))}},[e,n]);let w=(0,X.useMemo)(()=>i?i4(i.figures):null,[i]),T=(0,X.useRef)(w);(0,X.useEffect)(()=>(T.current=w,()=>T.current?.dispose?.()),[w]);let E=(0,X.useMemo)(()=>{if(!i)return null;try{return cn(Cr(r4(i.markdown)),{articleId:i.id,defaultDuration:i.defaultDuration??6})}catch{return null}},[i]),D=(0,X.useMemo)(()=>{if(!E||E.audio.segments.length>0)return E;let e=nr(E);return e<=0?E:{...E,audio:{segments:[{src:``,name:`synthetic`,duration:e,startTime:0}]}}},[E]),O=(0,X.useCallback)(()=>{if(m){h(!1);return}if(g&&g.articleId===i?.id){h(!0);return}!i||v||(y(!0),(async()=>{let e=await Q.getHandboekNarration(i.id),t=await Promise.all(e.segments.map(e=>Q.fetchHandboekNarrationAudio(e.hash)));return{articleId:i.id,urls:t.map(e=>URL.createObjectURL(e)),durationsMs:e.segments.map(e=>e.durationMs)}})().then(e=>{_(e),h(!0)}).catch(e=>s(`Narration unavailable: ${String(e)}`)).finally(()=>y(!1)))},[m,g,i,v]),k=(0,X.useMemo)(()=>{if(!E||!m||!g||g.articleId!==i?.id||g.urls.length!==E.blocks.length)return null;let e=0,t=g.urls.map((t,n)=>{let r=g.durationsMs[n]/1e3,i={src:t,name:E.blocks[n].id,duration:r,startTime:e};return e+=r,i});return{...E,audio:{segments:t},blocks:E.blocks.map((e,t)=>({...e,audioSegment:t}))}},[E,m,g,i]),A=(0,X.useMemo)(()=>{let t=new Set,n=new Map;for(let r of e?.areas??[])for(let e of r.entries){t.add(e.id);let r=e.id.split(`/`).pop();r&&!n.has(r)&&n.set(r,e.id)}return{ids:t,byStem:n}},[e]),j=e=>{let t=e.target.closest(`a`);if(!t)return;let n=t.getAttribute(`href`);if(!n||/^[a-z][a-z0-9+.-]*:/i.test(n)||n.startsWith(`//`)||n.startsWith(`#`))return;e.preventDefault(),e.stopPropagation();let i=n.split(/[?#]/)[0].replace(/\.md$/,``).replace(/^(\.\.?\/)+/,``),a=(A.ids.has(i)?i:void 0)??A.byStem.get(i.split(`/`).pop()??``);a&&r(a)},M=e=>{x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},N=e=>{C(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},P=(e,t=!1)=>(0,Z.jsx)(`ul`,{className:t?`handboek-toc-subcategory-entries`:void 0,children:e.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(`button`,{type:`button`,className:e.id===n?`handboek-toc-entry handboek-toc-entry-active`:`handboek-toc-entry`,"aria-current":e.id===n?`page`:void 0,title:e.summary,onClick:()=>r(e.id),children:e.title})},e.id))});return(0,Z.jsxs)(`div`,{className:`handboek-view`,"data-testid":`handboek-view`,children:[(0,Z.jsxs)(`nav`,{className:`handboek-toc`,"aria-label":`Handboek contents`,children:[(0,Z.jsxs)(`div`,{className:`handboek-toc-brand`,children:[(0,Z.jsx)(qC,{area:`handboek`,size:16}),(0,Z.jsx)(`span`,{children:`Handboek`})]}),!e&&!o&&(0,Z.jsx)(`div`,{className:`handboek-toc-loading`,children:`Loading contents…`}),e?.areas.map(e=>{let t=b.has(e.area),n=`handboek-area-${e.area}`,{ungrouped:r,subcategories:i}=Eze(e);return(0,Z.jsxs)(`section`,{className:`handboek-toc-area`,children:[(0,Z.jsx)(`h3`,{className:`handboek-toc-area-title`,children:(0,Z.jsxs)(`button`,{type:`button`,className:`handboek-toc-disclosure handboek-toc-area-toggle`,"aria-expanded":!t,"aria-controls":n,onClick:()=>M(e.area),children:[(0,Z.jsx)(`span`,{className:`handboek-toc-caret`,"aria-hidden":`true`,children:`›`}),(0,Z.jsx)(`span`,{children:e.title})]})}),!t&&(0,Z.jsxs)(`div`,{id:n,className:`handboek-toc-area-contents`,children:[r.length>0&&P(r),i.map(t=>{let n=o4(e.area,t.id),r=S.has(n),i=`handboek-subcategory-${e.area}-${t.id}`;return(0,Z.jsxs)(`section`,{className:`handboek-toc-subcategory`,children:[(0,Z.jsx)(`h4`,{className:`handboek-toc-subcategory-title`,children:(0,Z.jsxs)(`button`,{type:`button`,className:`handboek-toc-disclosure handboek-toc-subcategory-toggle`,"aria-expanded":r,"aria-controls":i,onClick:()=>N(n),children:[(0,Z.jsx)(`span`,{className:`handboek-toc-caret`,"aria-hidden":`true`,children:`›`}),(0,Z.jsx)(`span`,{children:t.title})]})}),r&&(0,Z.jsx)(`div`,{id:i,children:P(t.entries,!0)})]},t.id)})]})]},e.area)})]}),(0,Z.jsxs)(`div`,{className:`handboek-pane`,children:[(0,Z.jsxs)(`header`,{className:`handboek-pane-header`,children:[(0,Z.jsxs)(`div`,{className:`handboek-pane-titles`,children:[(0,Z.jsx)(`h2`,{children:i?.title??`Handboek`}),i?.summary&&(0,Z.jsx)(`p`,{className:`handboek-pane-summary`,children:i.summary})]}),(0,Z.jsxs)(`div`,{className:`handboek-header-controls`,children:[u===`video`&&f&&(0,Z.jsx)(`button`,{type:`button`,className:m?`gz-key gz-key-active handboek-listen-key`:`gz-key handboek-listen-key`,"aria-pressed":m,disabled:v,onClick:O,title:`Narrate this article with the on-device voice`,children:v?`Preparing voice…`:`Listen`}),(0,Z.jsxs)(`div`,{className:`gz-tray handboek-mode-tray`,role:`radiogroup`,"aria-label":`View as`,children:[(0,Z.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":u===`doc`,className:u===`doc`?`gz-key gz-key-active`:`gz-key`,onClick:()=>d(`doc`),children:`Document`}),(0,Z.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":u===`video`,className:u===`video`?`gz-key gz-key-active`:`gz-key`,onClick:()=>d(`video`),children:`Video`})]})]})]}),o&&(0,Z.jsx)(`div`,{className:`handboek-error`,children:o}),c&&!i&&(0,Z.jsx)(`div`,{className:`handboek-loading`,children:`Loading article…`}),E&&w&&(0,Z.jsx)(Xy.Provider,{value:w,children:u===`doc`?(0,Z.jsx)(`div`,{className:`handboek-doc`,"data-testid":`handboek-doc`,onClickCapture:j,children:(0,Z.jsx)(Lb,{doc:E,className:`gezel-article-view`,theme:TS,imageDisplayMode:`inline`,showCover:!1})}):(0,Z.jsx)(`div`,{className:`handboek-player`,"data-testid":`handboek-player`,children:(0,Z.jsx)(cx,{doc:k??D??E,theme:TS,displayMode:`video`,audioMode:k?`media`:`synthetic`,captionsEnabled:!0,captionStyle:`social`,autoPlay:!0,showControls:!0,showScrubber:!0},k?`narrated`:`synthetic`)})})]})]})}function Eze(e){let t=[],n=new Map;for(let r of e.entries){if(!r.subcategory){t.push(r);continue}let e=n.get(r.subcategory.id);e?e.entries.push(r):n.set(r.subcategory.id,{...r.subcategory,entries:[r]})}return{ungrouped:t,subcategories:[...n.values()].sort((e,t)=>e.order-t.order||e.title.localeCompare(t.title))}}function o4(e,t){return`${e}:${t}`}var Dze=[{value:``,label:`All kinds`},{value:`session`,label:`💬 Chat threads`},{value:`gezel.created`,label:`Gezel created`},{value:`gezel.deleted`,label:`Gezel removed`},{value:`gezel.renamed`,label:`Gezel renamed`},{value:`gezel.settings.updated`,label:`Gezel settings updated`},{value:`icon.generated`,label:`Icon generated`},{value:`icon.reverted`,label:`Icon reverted`},{value:`project.created`,label:`Project created`},{value:`project.updated`,label:`Project updated`},{value:`project.about.updated`,label:`Project about updated`},{value:`project.mission.updated`,label:`Project mission updated`},{value:`project.voorman.changed`,label:`Project voorman changed`},{value:`document.created`,label:`Document created`},{value:`document.renamed`,label:`Document renamed`},{value:`document.deleted`,label:`Document deleted`},{value:`tool.called`,label:`Tool called`},{value:`meester.changed`,label:`Meester changed`},{value:`klerk.changed`,label:`Klerk changed`},{value:`boekwachter.changed`,label:`Boekwachter changed`},{value:`keurmeester.changed`,label:`Keurmeester changed`},{value:`gilde.updated`,label:`Catalog content updated`},{value:`task.created`,label:`Task created`},{value:`task.updated`,label:`Task updated`},{value:`task.about.updated`,label:`Task description updated`},{value:`task.status.changed`,label:`Task status changed`},{value:`task.assignee.changed`,label:`Task reassigned`},{value:`task.step.added`,label:`Task step added`},{value:`task.step.activated`,label:`Task step activated`},{value:`task.step.completed`,label:`Task step completed`},{value:`task.tick`,label:`Task cron tick`},{value:`task.canceled`,label:`Task canceled`},{value:`v1.chat.completion`,label:`App chat (connected apps)`},{value:`debug.bridge.failed`,label:`Debug: MCP bridge failed to start`}],s4=`gezel:history-list-fraction:v1`,c4=.2,l4=.7,u4=.36;function d4(e){return Number.isFinite(e)?Math.max(c4,Math.min(l4,e)):u4}function Oze(){if(typeof window>`u`)return u4;try{let e=window.localStorage.getItem(s4);return e?d4(Number.parseFloat(e)):u4}catch{return u4}}function f4({projectId:e}={}){let[t,n]=(0,X.useState)([]),[r,i]=(0,X.useState)(null),[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)([]),[l,u]=(0,X.useState)([]),[d,f]=(0,X.useState)(``),[p,m]=(0,X.useState)(e??``);(0,X.useEffect)(()=>{e!==void 0&&m(e)},[e]);let[h,g]=(0,X.useState)(``),[_,v]=(0,X.useState)(``),[y,b]=(0,X.useState)(null),x=(0,X.useMemo)(()=>{let e=new Map;for(let t of s)e.set(t.id,t.name);return t=>t?e.get(t)??t:``},[s]),S=(0,X.useMemo)(()=>{let e=new Map;for(let t of l)e.set(t.id,t.name);return t=>t?e.get(t)??t:``},[l]),C=(0,X.useCallback)(async()=>{o(!0),i(null);try{let e={limit:200};p&&(e.projectId=p),d&&(e.gezelId=d),h&&h!==`session`&&(e.kind=h),_.trim()&&(e.q=_.trim());let t=await Q.listHistory(e),r=h===`session`?t.entries.filter(e=>e.entryType===`session`):t.entries;n(r),b(e=>{let t=e=>e.entryType===`event`?e.id:`session:${e.id}`;if(e&&r.some(n=>t(n)===e))return e;let n=r[0];return n?t(n):null})}catch(e){i(e.message)}finally{o(!1)}},[p,d,h,_]);(0,X.useEffect)(()=>{Q.listGezels().then(e=>c(e.gezels)).catch(()=>{}),Q.listProjects().then(e=>u(e.projects)).catch(()=>{})},[]),(0,X.useEffect)(()=>{C()},[C]);let w=(0,X.useRef)(null),[T,E]=(0,X.useState)(()=>Oze()),D=(0,X.useRef)(null),O=(0,X.useCallback)(e=>{let t=d4(e);E(t);try{window.localStorage.setItem(s4,t.toFixed(4))}catch{}},[]),k=(0,X.useCallback)(e=>{e.preventDefault(),D.current={startX:e.clientX,startFraction:T,width:w.current?.clientWidth??1},document.body.classList.add(`chat-rail-resizing`),document.body.style.cursor=`col-resize`;let t=e=>{let t=D.current;!t||t.width<=0||O(t.startFraction+(e.clientX-t.startX)/t.width)},n=()=>{D.current=null,document.body.style.cursor=``,document.body.classList.remove(`chat-rail-resizing`),window.removeEventListener(`mousemove`,t),window.removeEventListener(`mouseup`,n)};window.addEventListener(`mousemove`,t),window.addEventListener(`mouseup`,n)},[T,O]),A=(0,X.useCallback)(e=>{let t=e.shiftKey?.08:.02;e.key===`ArrowRight`?(e.preventDefault(),O(T+t)):e.key===`ArrowLeft`?(e.preventDefault(),O(T-t)):e.key===`Home`?(e.preventDefault(),O(c4)):e.key===`End`&&(e.preventDefault(),O(l4))},[T,O]);return(0,Z.jsxs)(`div`,{className:`history-view`,"data-testid":`history-view`,children:[(0,Z.jsxs)(`header`,{className:`history-header`,children:[(0,Z.jsx)(`h2`,{children:`History`}),(0,Z.jsxs)(`div`,{className:`history-filters`,children:[e===void 0&&(0,Z.jsxs)(gv,{value:p||`__ALL__`,onValueChange:e=>m(e===`__ALL__`?``:e),children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsxs)(xv,{children:[(0,Z.jsx)(Sv,{value:`__ALL__`,children:`All projects`}),l.map(e=>(0,Z.jsx)(Sv,{value:e.id,children:e.name},e.id))]})]}),(0,Z.jsxs)(gv,{value:d||`__ALL__`,onValueChange:e=>f(e===`__ALL__`?``:e),children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsxs)(xv,{children:[(0,Z.jsx)(Sv,{value:`__ALL__`,children:`All gezels`}),s.map(e=>(0,Z.jsxs)(Sv,{value:e.id,children:[e.name,e.role?` — ${e.role}`:``]},e.id))]})]}),(0,Z.jsxs)(gv,{value:h||`__ALL__`,onValueChange:e=>g(e===`__ALL__`?``:e),children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsx)(xv,{children:Dze.map(e=>(0,Z.jsx)(Sv,{value:e.value||`__ALL__`,children:e.label},e.value||`__ALL__`))})]}),(0,Z.jsx)(`input`,{placeholder:`Search…`,value:_,onChange:e=>v(e.target.value),style:{flex:1}}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void C(),children:`Refresh`})]})]}),r&&(0,Z.jsx)(`p`,{className:`error`,children:r}),a&&t.length===0&&(0,Z.jsx)(`p`,{className:`muted`,children:`Loading…`}),!a&&t.length===0&&!r&&(0,Z.jsx)(`p`,{className:`muted`,children:`No entries yet. Create a gezel, edit a project, or have a chat — events will show up here.`}),(0,Z.jsxs)(`div`,{className:`history-split`,ref:w,style:{"--history-list-width":`${(T*100).toFixed(2)}%`},children:[(0,Z.jsx)(`ul`,{className:`history-list`,children:t.map(e=>{let t=e.entryType===`event`?e.id:`session:${e.id}`;return(0,Z.jsx)(`li`,{className:`history-item`,children:(0,Z.jsx)(`button`,{type:`button`,className:`history-row${y===t?` history-row-selected`:``}`,onClick:()=>b(t),children:e.entryType===`session`?(0,Z.jsx)(Mze,{entry:e,gezelName:x(e.gezelId),projectName:S(e.projectId)}):(0,Z.jsx)(jze,{entry:e,gezelName:x(e.gezelId),projectName:S(e.projectId)})})},t)})}),(0,Z.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize history list`,tabIndex:0,className:`chat-rail-grip history-split-grip`,onMouseDown:k,onKeyDown:A}),(0,Z.jsx)(`section`,{className:`history-detail`,children:(()=>{let e=t.find(e=>(e.entryType===`event`?e.id:`session:${e.id}`)===y);if(!e)return(0,Z.jsx)(`p`,{className:`placeholder`,children:`Click a history entry on the left to view its details.`});let n=e.entryType===`event`?e.details:void 0,r=n&&typeof n.diff==`string`?n.diff:void 0,i=n&&typeof n.addedLines==`number`?n.addedLines:void 0,a=n&&typeof n.removedLines==`number`?n.removedLines:void 0;return(0,Z.jsxs)(Z.Fragment,{children:[r&&(0,Z.jsx)(Nx,{diff:r,...i===void 0?{}:{addedLines:i},...a===void 0?{}:{removedLines:a}}),(0,Z.jsx)(`pre`,{className:`history-details`,children:JSON.stringify(e,null,2)})]})})()})]})]})}var kze={"gezel.created":`Gezel created`,"gezel.renamed":`Gezel renamed`,"gezel.settings.updated":`Gezel settings`,"project.created":`Project created`,"project.updated":`Project updated`,"project.about.updated":`Project brief`,"project.mission.updated":`Mission updated`,"project.voorman.changed":`Voorman changed`,"project.gezel.joined":`Joined project`,"icon.generated":`Icon generated`,"icon.reverted":`Icon reverted`,"poppetje.generated":`Portrait carved`,"document.created":`Document created`,"document.renamed":`Document renamed`,"document.deleted":`Document deleted`,"craftbook.created":`Craftbook created`,"task.created":`Task created`,"tool.called":`Tool call`,"meester.changed":`Meester changed`,"klerk.changed":`Klerk changed`,"boekwachter.changed":`Boekwachter changed`,"keurmeester.changed":`Keurmeester changed`,"gilde.updated":`Catalog content updated`,"v1.chat.completion":`App chat`};function Aze(e){let t=kze[e];if(t)return t;let n=e.split(`.`).join(` `);return n.charAt(0).toUpperCase()+n.slice(1)}function jze({entry:e,gezelName:t,projectName:n}){return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`span`,{className:`history-line`,children:[(0,Z.jsx)(`span`,{className:`history-summary`,children:e.summary}),(0,Z.jsx)(`time`,{className:`history-time`,children:p4(e.at)})]}),(0,Z.jsxs)(`span`,{className:`history-meta`,children:[(0,Z.jsx)(`span`,{className:`history-kind`,title:e.kind,children:Aze(e.kind)}),n&&(0,Z.jsx)(`span`,{className:`history-chip`,children:n}),t&&(0,Z.jsx)(`span`,{className:`history-chip`,children:t})]})]})}function Mze({entry:e,gezelName:t,projectName:n}){let r=Math.max(1,Math.round(e.durationMs/6e4)),i=e.durationMs<6e4?`<1m`:`${r}m`;return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`span`,{className:`history-line`,children:[(0,Z.jsxs)(`span`,{className:`history-summary`,children:[t||e.gezelId,` · `,e.title]}),(0,Z.jsx)(`time`,{className:`history-time`,children:p4(e.lastActivityAt)})]}),(0,Z.jsxs)(`span`,{className:`history-meta`,children:[(0,Z.jsx)(`span`,{className:`history-kind`,children:`Thread`}),n&&(0,Z.jsx)(`span`,{className:`history-chip`,children:n}),(0,Z.jsxs)(`span`,{className:`history-stat`,children:[e.messageCount,` msgs, `,i]})]})]})}function p4(e){try{let t=new Date(e).getTime(),n=Math.max(0,Date.now()-t),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}catch{return``}}var m4=`__GEZEL_PICKER_NONE__`;function h4({gezels:e,value:t,onValueChange:n,noneLabel:r,placeholder:i=`Select a gezel…`,ariaLabel:a,disabled:o,className:s}){let c=e.find(e=>e.id===t),l=[`gezel-picker-trigger`,s].filter(Boolean).join(` `);return(0,Z.jsxs)(gv,{value:c?.id??m4,disabled:o,onValueChange:e=>n(e===m4?null:e),children:[(0,Z.jsx)(bv,{className:l,"aria-label":a,children:(0,Z.jsx)(_v,{children:c?(0,Z.jsx)(g4,{gezel:c}):(0,Z.jsx)(`span`,{className:`gezel-picker-empty`,children:r??i})})}),(0,Z.jsxs)(xv,{className:`gezel-picker-menu`,children:[r&&(0,Z.jsx)(Sv,{value:m4,children:r}),e.map(e=>(0,Z.jsx)(Sv,{value:e.id,textValue:Nze(e),children:(0,Z.jsx)(g4,{gezel:e})},e.id))]})]})}function g4({gezel:e}){return(0,Z.jsxs)(`span`,{className:`gezel-picker-option`,children:[(0,Z.jsx)(Up,{svg:e.icon??null,poppetje:e.poppetje,iconOverride:e.iconOverride,name:e.name,size:26}),(0,Z.jsxs)(`span`,{className:`gezel-picker-option-text`,children:[(0,Z.jsx)(`span`,{className:`gezel-picker-option-name`,children:e.name}),e.role&&(0,Z.jsxs)(`span`,{className:`gezel-picker-option-role`,children:[`— `,e.role]})]})]})}function Nze(e){return e.role?`${e.name} — ${e.role}`:e.name}var Pze={sheet:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M7 3.5 H14.5 L18.5 7.5 V20.5 H7 Z`}),(0,Z.jsx)(`path`,{d:`M14.5 3.5 V7.5 H18.5`})]}),folder:(0,Z.jsx)(Z.Fragment,{children:(0,Z.jsx)(`path`,{d:`M3.5 6.5 A1.5 1.5 0 0 1 5 5 H9.5 L11.5 7.5 H19 A1.5 1.5 0 0 1 20.5 9 V17.5 A1.5 1.5 0 0 1 19 19 H5 A1.5 1.5 0 0 1 3.5 17.5 Z`})}),envelope:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`rect`,{x:`3.5`,y:`5.5`,width:`17`,height:`13`,rx:`1.5`}),(0,Z.jsx)(`path`,{d:`M4.5 7 L12 13 L19.5 7`})]}),branch:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`circle`,{cx:`6.5`,cy:`6`,r:`2.2`}),(0,Z.jsx)(`circle`,{cx:`6.5`,cy:`18`,r:`2.2`}),(0,Z.jsx)(`circle`,{cx:`17.5`,cy:`9`,r:`2.2`}),(0,Z.jsx)(`path`,{d:`M6.5 8.2 V15.8`}),(0,Z.jsx)(`path`,{d:`M17.5 11.2 C17.5 14.5 12 13.5 9 15.5`})]}),calendar:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`rect`,{x:`4`,y:`5.5`,width:`16`,height:`14.5`,rx:`1.5`}),(0,Z.jsx)(`path`,{d:`M4 10 H20`}),(0,Z.jsx)(`path`,{d:`M8.5 3.5 V7`}),(0,Z.jsx)(`path`,{d:`M15.5 3.5 V7`})]}),bubbles:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M4 5.5 H15 A1.5 1.5 0 0 1 16.5 7 V12 A1.5 1.5 0 0 1 15 13.5 H8.5 L5.5 16 V13.5 H4 A1.5 1.5 0 0 1 2.5 12 V7 A1.5 1.5 0 0 1 4 5.5 Z`}),(0,Z.jsx)(`path`,{d:`M18.5 9.5 H20 A1.5 1.5 0 0 1 21.5 11 V15.5 A1.5 1.5 0 0 1 20 17 H19.5 V19.5 L16.5 17 H12.5`})]}),chart:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M4 4 V20 H20`}),(0,Z.jsx)(`path`,{d:`M8 16.5 V11`}),(0,Z.jsx)(`path`,{d:`M12.5 16.5 V7.5`}),(0,Z.jsx)(`path`,{d:`M17 16.5 V13`})]}),code:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M9 7 L4 12 L9 17`}),(0,Z.jsx)(`path`,{d:`M15 7 L20 12 L15 17`})]}),frame:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`rect`,{x:`3.5`,y:`4.5`,width:`17`,height:`15`,rx:`1.5`}),(0,Z.jsx)(`circle`,{cx:`9`,cy:`9.5`,r:`1.6`}),(0,Z.jsx)(`path`,{d:`M3.5 16.5 L9.5 12.5 L13.5 15.5 L17 13 L20.5 15.5`})]}),quill:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M19.5 4.5 C13 5 8.5 9.5 6.5 15.5 L5 19 L8.5 17.5 C14.5 15.5 19 11 19.5 4.5 Z`}),(0,Z.jsx)(`path`,{d:`M5.5 18.5 C9 13 13 9.5 16.5 7.5`})]}),sprout:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M12 21 V11`}),(0,Z.jsx)(`path`,{d:`M12 14.4 C8.5 14.4 6.4 11.9 6.4 8.4 C9.9 8.4 12 10.9 12 14`,fillOpacity:.18}),(0,Z.jsx)(`path`,{d:`M12 12.4 C15.5 12.4 17.6 9.9 17.6 6.4 C14.1 6.4 12 8.9 12 12`,fillOpacity:.18})]}),die:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`rect`,{x:`4.5`,y:`4.5`,width:`15`,height:`15`,rx:`2.5`}),(0,Z.jsx)(`circle`,{cx:`9`,cy:`9`,r:`0.9`,fill:`currentColor`,stroke:`none`}),(0,Z.jsx)(`circle`,{cx:`15`,cy:`15`,r:`0.9`,fill:`currentColor`,stroke:`none`}),(0,Z.jsx)(`circle`,{cx:`15`,cy:`9`,r:`0.9`,fill:`currentColor`,stroke:`none`}),(0,Z.jsx)(`circle`,{cx:`9`,cy:`15`,r:`0.9`,fill:`currentColor`,stroke:`none`})]}),house:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M4 11 L12 4.5 L20 11`}),(0,Z.jsx)(`path`,{d:`M6 10 V19.5 H18 V10`}),(0,Z.jsx)(`path`,{d:`M10 19.5 V14.5 H14 V19.5`})]}),coin:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`7.5`}),(0,Z.jsx)(`path`,{d:`M12 8 C10 8 9.2 9 9.2 10 C9.2 12.5 14.8 11.5 14.8 14 C14.8 15 14 16 12 16`}),(0,Z.jsx)(`path`,{d:`M12 6.8 V8`}),(0,Z.jsx)(`path`,{d:`M12 16 V17.2`})]}),banner:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M6 3.5 V20.5`}),(0,Z.jsx)(`path`,{d:`M6 5 H18.5 L15.5 8.75 L18.5 12.5 H6`})]}),dots:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`circle`,{cx:`6`,cy:`12`,r:`1.1`,fill:`currentColor`,stroke:`none`}),(0,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.1`,fill:`currentColor`,stroke:`none`}),(0,Z.jsx)(`circle`,{cx:`18`,cy:`12`,r:`1.1`,fill:`currentColor`,stroke:`none`})]})};function _4({glyph:e,size:t=18}){return(0,Z.jsx)(`svg`,{width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.7,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:Pze[e]})}var v4=[{id:`general`,label:`General`,tagline:`Start simple — a blank bench.`,glyph:`sheet`},{id:`code`,label:`Code`,tagline:`Build and ship software.`,glyph:`code`},{id:`communication`,label:`Communication`,tagline:`Mail, calendars, and conversations.`,glyph:`envelope`},{id:`creative`,label:`Photos & Media`,tagline:`Images, video, and design work.`,glyph:`frame`},{id:`writing`,label:`Writing`,tagline:`Drafts, documents, and stories.`,glyph:`quill`},{id:`growth`,label:`Personal Growth`,tagline:`Learn, practice, and keep at it.`,glyph:`sprout`},{id:`game`,label:`Games`,tagline:`Play, and build worlds.`,glyph:`die`},{id:`data`,label:`Data`,tagline:`Explore and report on datasets.`,glyph:`chart`},{id:`home`,label:`Home & Family`,tagline:`Run the household; care for the people in it.`,glyph:`house`},{id:`money`,label:`Money & Small Business`,tagline:`Ledgers, invoices, and calm month-ends.`,glyph:`coin`},{id:`events`,label:`Events & Journeys`,tagline:`Plan the day, make the trip, rally the crowd.`,glyph:`banner`},{id:`other`,label:`More`,tagline:`Purpose-built for something else.`,glyph:`dots`}];function Fze(e){return v4.find(t=>t.id===e)??v4[0]}var Ize=[{id:`general`,label:`General`,description:`A flexible project with a blank workspace.`,category:`general`,glyph:`sheet`,give:[`A blank workspace your crew reads and writes`,`Your About and mission set the direction`]},{id:`email`,label:`E-Mail`,description:`Work from a connected mailbox.`,category:`communication`,glyph:`envelope`,give:[`Mailbox synced as searchable markdown`,`Triage and drafting; sending stays consent-gated`]},{id:`github`,label:`GitHub`,description:`Start from a GitHub repository.`,category:`code`,glyph:`branch`,give:[`Repo-linked workspace, cloned locally`,`About drafted from the README`]},{id:`folder`,label:`Existing Folder`,description:`Work in an existing folder on this computer.`,category:`general`,glyph:`folder`,give:[`Works directly in a folder you choose`,`Name and About suggested from what it finds`]},{id:`calendar`,label:`Calendar`,description:`Plan and coordinate around a calendar.`,soon:!0,category:`communication`,glyph:`calendar`,give:[]},{id:`messaging`,label:`Group messaging`,description:`Organize work around a shared conversation.`,soon:!0,category:`communication`,glyph:`bubbles`,give:[]},{id:`data`,label:`Data analysis`,description:`Explore and report on a dataset.`,soon:!0,category:`data`,glyph:`chart`,give:[]}];function y4(e){let t=e.manifest;if(t.kind!==`project-type`)return`other`;if(t.category)return t.category;let n=`${t.id} ${t.tags.join(` `)} ${t.extends??``}`.toLowerCase();return/design|media|photo|image|video|art/.test(n)?`creative`:/language|learn|habit|practice|coach/.test(n)?`growth`:/write|writing|blog|story|content/.test(n)?`writing`:/game/.test(n)?`game`:/data|analysis|report/.test(n)?`data`:/code|web-app|api|cli|library|site/.test(n)?`code`:/mail|email|calendar|chat|messag/.test(n)?`communication`:`other`}function Lze(e){let t=[];for(let n of e)n.manifest.kind===`craftbook-template`&&t.push({item:n,manifest:n.manifest});return t.sort((e,t)=>e.manifest.name.localeCompare(t.manifest.name))}var Rze={"browser-game":`die`,"web-app":`frame`,"static-site":`frame`,"data-analysis":`chart`,"api-service":`code`,"cli-tool":`code`,library:`code`,"content-writing":`quill`,"media-production":`frame`,"design-prototype":`frame`,email:`envelope`};function zze(e){return new Set(e.craftbookTags.map(e=>e.toLowerCase()))}function Bze(e,t){return(e.tags??[]).some(e=>t.has(e.toLowerCase()))}function Vze(e){let t={"project-starter":`sprout`,"maintenance-review":`code`,general:`sheet`},n=[];for(let r of fe){let i=new Set(e.filter(e=>(e.manifest.role??`general`)===r.id).map(e=>e.manifest.id));i.size>0&&n.push({id:`role:${r.id}`,label:r.label,tagline:r.description,glyph:t[r.id],bookIds:i})}return n}function b4(e){for(let t of M())if(Bze(e,zze(t)))return Rze[t.id]??`sheet`;return`sheet`}var x4={label:`General task`,description:`Start blank — describe the job, list the steps, and fire it when ready.`,glyph:`sprout`};function Hze(e){let t=e.paramSchema?.properties;return!!t&&Object.keys(t).length>0}function S4(e,t){let n=Object.entries(t).map(([e,t])=>`${e}=${t}`).join(`, `),r=n?` with ${n}.`:`.`,i=e.description?` ${e.description}`:``;return`Run the "${e.name}" craftbook against this project${r}${i}`.slice(0,2e3)}function Uze(e){let t={};for(let[n,r]of Object.entries(e))r==null||r===``||(typeof r==`boolean`?t[n]=r?`true`:`false`:typeof r==`number`?t[n]=String(r):typeof r==`string`&&(t[n]=r));return t}function Wze(e){let t=e?.properties??{},n={};for(let[e,r]of Object.entries(t))r&&r.default!==void 0&&(n[e]=r.default);return n}var C4=`__auto`,Gze={"one-time":{title:`New Task`,subtitle:`Pick a craftbook — a proven recipe your crew follows step by step — or start blank.`,generalLabel:x4.label,generalDescription:x4.description,featuredLabel:`Recommended`,featuredTitle:`Recommended`,featuredTagline:`proven recipes for this kind of project`,submitLabel:`Create task`,footnote:`Lands ready to fire — nothing runs until you fire it.`},scheduled:{title:`New Scheduled Task`,subtitle:`Choose a repeatable craftbook, then set when each fresh run should begin.`,generalLabel:`Blank scheduled task`,generalDescription:`Define a repeatable job from scratch and run a fresh copy on a cadence.`,featuredLabel:`For schedules`,featuredTitle:`Scheduled craftbooks`,featuredTagline:`recipes identified as safe for recurring unattended runs`,submitLabel:`Create schedule`,footnote:`Starts active and creates a fresh task on each scheduled run.`},"night-shift":{title:`New Night Shift Task`,subtitle:`Choose work your crew can pick up unattended during the Night Shift window.`,generalLabel:`Blank Night Shift task`,generalDescription:`Define a one-off job that waits for Night Shift before it begins.`,featuredLabel:`For Night Shift`,featuredTitle:`Night Shift craftbooks`,featuredTagline:`recipes identified as safe for unattended overnight work`,submitLabel:`Queue for Night Shift`,footnote:`Starts active, but only runs while Night Shift is on.`}};function w4({open:e,creationMode:t=`one-time`,defaultProjectId:n,projects:r,gezels:i,projectLocked:a,onClose:o,onCreated:s}){let c=Gze[t],l=t0(),[u,d]=(0,X.useState)(n),[f,p]=(0,X.useState)([]),[m,h]=(0,X.useState)(!1),g=(0,X.useRef)(0),[v,y]=(0,X.useState)({}),[b,x]=(0,X.useState)(null),[S,C]=(0,X.useState)(new Set),[w,T]=(0,X.useState)(null),[E,D]=(0,X.useState)(``),[O,k]=(0,X.useState)(`all`),[A,j]=(0,X.useState)(!1),[M,N]=(0,X.useState)(``),[P,F]=(0,X.useState)(!1),[I,L]=(0,X.useState)(``),[R,z]=(0,X.useState)(`Main`),[B,V]=(0,X.useState)(``),[H,U]=(0,X.useState)(!1),[ee,te]=(0,X.useState)({}),[W,G]=(0,X.useState)(``),[ne,K]=(0,X.useState)(`skip`),[q,re]=(0,X.useState)(!1),[ie,J]=(0,X.useState)(``);(0,X.useEffect)(()=>{e&&(d(n),T(null),D(``),k(`all`),j(!1),N(``),F(!1),L(``),z(`Main`),V(``),U(!1),te({}),G(``),K(`skip`),re(!1),J(``))},[e,n]);let ae=(0,X.useCallback)(async()=>{let e=++g.current;if(!u){if(e!==g.current)return;p([]),h(!0);return}try{let t=await Q.listProjectCraftbooks(u);if(e!==g.current)return;let n=_(t.items??[],l),r=new Set(n.map(e=>e.manifest.id));p(Lze(n)),y(t.missingToolsets??{}),x(t.projectType??null),C(new Set((t.suggestedIds??[]).filter(e=>r.has(e)))),T(e=>e&&!r.has(e)?null:e)}catch{if(e!==g.current)return;p([]),y({}),x(null),C(new Set)}finally{e===g.current&&h(!0)}},[u,l]);(0,X.useEffect)(()=>{e&&(h(!1),ae())},[e,ae]),(0,X.useEffect)(()=>{!e||!m||A||(j(!0),(t===`one-time`?S.size>0:f.some(e=>t===`scheduled`?e.manifest.runModes?.scheduled:e.manifest.runModes?.nightShift))&&k(`recommended`))},[e,m,A,S,t,f]);let oe=w?f.find(e=>e.manifest.id===w)??null:null,se=(()=>{if(!oe)return null;let e=oe.manifest;return(e.steps.find(t=>t.id===e.entryStepId)??e.steps[0])?.suggestedRole??null})(),Y=(0,X.useCallback)(()=>{T(null),te({}),J(``),P||N(``)},[P]),ce=(0,X.useCallback)(e=>{if(T(e.manifest.id),te(Wze(e.manifest.paramSchema)),J(``),P||N(e.manifest.name),!H){let t=e.manifest.defaultAssignee;t?.kind===`gezel`&&i.some(e=>e.id===t.gezelId)&&V(t.gezelId)}},[P,H,i]),le=B||(se?C4:i[0]?.id??`__user`),ue=le===C4?null:le===`__user`?{kind:`user`}:{kind:`gezel`,gezelId:le},de=(0,X.useMemo)(()=>Vze(f),[f]),fe=E.trim().toLowerCase(),pe=fe.length>0,me=(0,X.useMemo)(()=>{if(t===`one-time`)return f.filter(e=>S.has(e.manifest.id));let e=t===`scheduled`?`scheduled`:`nightShift`;return f.filter(t=>t.manifest.runModes?.[e]).sort((t,n)=>{let r=+(t.manifest.runModes?.[e]===`recommended`);return+(n.manifest.runModes?.[e]===`recommended`)-r||t.manifest.name.localeCompare(n.manifest.name)})},[f,S,t]),he=(0,X.useCallback)(e=>{if(t===`one-time`)return S.has(e.manifest.id);let n=t===`scheduled`?`scheduled`:`nightShift`;return e.manifest.runModes?.[n]===`recommended`},[t,S]),ge=(0,X.useMemo)(()=>pe?f.filter(e=>`${e.manifest.id} ${e.manifest.name} ${e.manifest.description} ${(e.manifest.tags??[]).join(` `)}`.toLowerCase().includes(fe)).sort((e,t)=>{let n=S.has(e.manifest.id)||e.manifest.tags?.includes(`recommended`)?1:0;return(S.has(t.manifest.id)||t.manifest.tags?.includes(`recommended`)?1:0)-n||T4(e,fe)-T4(t,fe)||e.manifest.name.localeCompare(t.manifest.name)}):f,[f,pe,fe,S]),_e=!pe||`${c.generalLabel} ${c.generalDescription} blank fresh`.toLowerCase().includes(fe),ve=(0,X.useMemo)(()=>{if(pe)return[{id:`search`,title:`Craftbooks`,tagline:`matching "${E.trim()}"`,books:ge}];if(O===`recommended`&&me.length>0)return[{id:`recommended`,title:t===`one-time`&&b?`Recommended for ${b.label}`:c.featuredTitle,tagline:c.featuredTagline,books:me}];let e=de.find(e=>e.id===O);return e?[{id:e.id,title:e.label,tagline:e.tagline,books:f.filter(t=>e.bookIds.has(t.manifest.id))}]:[{id:`all`,title:`All craftbooks`,tagline:void 0,books:f}]},[pe,E,ge,O,me,b,de,f,t,c]),ye=oe?v[oe.manifest.id]??[]:[],be=(0,X.useCallback)(async e=>{if(e.preventDefault(),q)return;if(J(``),!u){J(`Pick a project.`);return}let n=W.trim();if(t===`scheduled`&&!n){J(`Enter a schedule.`);return}if(oe){let e=oe.manifest;if((v[e.id]?.length??0)>0){J(`This craftbook needs its toolsets installed first — see the setup list.`);return}let r=e.paramSchema,i=(Array.isArray(r?.required)?r.required:[]).find(e=>{let t=ee[e];return t==null||t===``});if(i){J(`"${i}" is required.`);return}let a=Uze(ee);re(!0);try{let r=t===`scheduled`?await Q.createTask(u,{title:M.trim()||e.name,description:`Recurring scheduled task. ${S4(e,a)} Each scheduled run creates a fresh task from this recipe.`,steps:[{name:`Wait for schedule`,prompt:`This host holds a recurring schedule. It does not perform the work itself; each tick creates a fresh child task.`}],spawnsCraftbookId:e.id,...oe.item.sourceId?{spawnsCraftbookSourceId:oe.item.sourceId}:{},...ue?{assignee:ue}:{},cron:{expression:n,overlap:ne},...Object.keys(a).length>0?{spawnsCraftbookParams:a}:{}}):await Q.createTask(u,{title:M.trim()||e.name,description:S4(e,a),craftbookId:e.id,...oe.item.sourceId?{craftbookSourceId:oe.item.sourceId}:{},...ue?{assignee:ue}:{},...t===`one-time`?{dispatchEntry:!0}:{nightShift:{enabled:!0},dispatchEntry:!0},...Object.keys(a).length>0?{craftbookParams:a}:{}});if(t!==`scheduled`&&Object.keys(a).length>0&&r.activeStepId){let e=[`# Invocation parameters`,``];for(let[t,n]of Object.entries(a))e.push(`- **${t}**: ${n}`);await Q.appendTaskNote(r.projectId,r.num,{text:e.join(`
|
|
889
|
-
`),stepId:r.activeStepId}).catch(()=>{})}await s(r),o()}catch(e){J(e.message)}finally{re(!1)}return}let r=M.trim();if(!r){J(`Title is required.`);return}if(I.trim().length<40){J(`Description must be at least 40 characters — the job-to-be-done from the user's perspective. What does success look like?`);return}let i=R.split(/\n|,/).map(e=>e.trim()).filter(Boolean).map(e=>({name:e}));i.length===0&&i.push({name:`Main`}),re(!0);try{await s(t===`scheduled`?await Q.createTask(u,{title:r,description:I.trim(),steps:[{name:`Wait for schedule`,prompt:`This host holds a recurring schedule. It does not perform the work itself; each tick creates a fresh child task.`}],spawnsSteps:i,...ue?{assignee:ue}:{},cron:{expression:n,overlap:ne}}):await Q.createTask(u,{title:r,description:I.trim(),steps:i,...ue?{assignee:ue}:{},...t===`one-time`?{status:`draft`}:{nightShift:{enabled:!0},dispatchEntry:!0}})),o()}catch(e){J(e.message)}finally{re(!1)}},[q,t,u,oe,v,ee,M,ue,I,R,W,ne,s,o]),xe=oe&&Hze(oe.manifest)?oe.manifest.paramSchema:null,Se=q||oe!==null&&ye.length>0;return(0,Z.jsx)(dm,{open:e,onOpenChange:e=>{e||o()},children:(0,Z.jsxs)(fm,{children:[(0,Z.jsx)(gm,{}),(0,Z.jsx)(_m,{className:`gz-npd gz-ntd`,children:(0,Z.jsxs)(`form`,{onSubmit:be,style:{display:`contents`},children:[(0,Z.jsxs)(`header`,{className:`gz-npd-header`,children:[(0,Z.jsxs)(`div`,{className:`gz-npd-header-copy`,children:[(0,Z.jsx)(mm,{asChild:!0,children:(0,Z.jsx)(`h3`,{children:c.title})}),(0,Z.jsx)(`p`,{className:`gz-npd-header-sub`,children:c.subtitle})]}),(0,Z.jsxs)(`label`,{className:`gz-npd-search`,children:[(0,Z.jsx)(`span`,{className:`sr-only`,children:`Search craftbooks`}),(0,Z.jsx)(`input`,{type:`search`,value:E,onChange:e=>D(e.target.value),placeholder:`Search craftbooks…`})]})]}),(0,Z.jsxs)(`div`,{className:`gz-npd-body`,children:[(0,Z.jsxs)(`nav`,{className:`gz-npd-rail`,"aria-label":`Craftbook shelves`,children:[me.length>0&&(0,Z.jsxs)(`button`,{type:`button`,className:`gz-npd-rail-item${!pe&&O===`recommended`?` active`:``}`,onClick:()=>k(`recommended`),children:[(0,Z.jsx)(_4,{glyph:`sprout`,size:16}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-label`,children:c.featuredLabel}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-count`,children:me.length})]}),(0,Z.jsxs)(`button`,{type:`button`,className:`gz-npd-rail-item${!pe&&O===`all`?` active`:``}`,onClick:()=>k(`all`),children:[(0,Z.jsx)(_4,{glyph:`sheet`,size:16}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-label`,children:`All craftbooks`}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-count`,children:f.length})]}),de.map(e=>(0,Z.jsxs)(`button`,{type:`button`,className:`gz-npd-rail-item${!pe&&O===e.id?` active`:``}`,onClick:()=>k(e.id),children:[(0,Z.jsx)(_4,{glyph:e.glyph,size:16}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-label`,children:e.label}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-count`,children:e.bookIds.size})]},e.id))]}),(0,Z.jsxs)(`div`,{className:`gz-npd-gallery`,role:`radiogroup`,"aria-label":`Task type`,children:[_e&&(0,Z.jsxs)(`section`,{className:`gz-npd-section`,children:[(0,Z.jsx)(`div`,{className:`gz-npd-section-head`,children:(0,Z.jsx)(`span`,{className:`gz-npd-section-title`,children:`Start fresh`})}),(0,Z.jsx)(`div`,{className:`gz-npd-grid`,children:(0,Z.jsx)(E4,{label:c.generalLabel,description:c.generalDescription,glyph:x4.glyph,index:0,active:w===null,onSelect:Y})})]}),ve.map(e=>(0,Z.jsxs)(`section`,{className:`gz-npd-section`,children:[(0,Z.jsxs)(`div`,{className:`gz-npd-section-head`,children:[(0,Z.jsx)(`span`,{className:`gz-npd-section-title`,children:e.title}),e.tagline&&(0,Z.jsx)(`span`,{className:`gz-npd-section-tagline`,children:e.tagline})]}),e.books.length>0?(0,Z.jsx)(`div`,{className:`gz-npd-grid`,children:e.books.map((e,t)=>(0,Z.jsx)(E4,{label:e.manifest.name,description:e.manifest.description,glyph:b4(e.manifest),...e.item.iconSvg?{iconSvg:e.item.iconSvg}:{},...e.item.logoUrl?{logoUrl:e.item.logoUrl}:{},suggested:he(e),index:t+1,active:e.manifest.id===w,onSelect:()=>ce(e)},e.manifest.id))}):(0,Z.jsx)(`p`,{className:`gz-npd-empty`,children:m?pe?`No craftbooks match your search.`:`No craftbooks here yet.`:`Loading craftbooks…`}),e.id===`recommended`&&f.length>me.length&&(0,Z.jsxs)(`button`,{type:`button`,className:`gz-ntd-show-all`,onClick:()=>k(`all`),children:[`Browse all `,f.length,` craftbooks`]})]},e.id))]}),(0,Z.jsxs)(`aside`,{className:`gz-npd-pane`,children:[(0,Z.jsxs)(`div`,{className:`gz-npd-pane-scroll`,children:[oe?(0,Z.jsxs)(`div`,{className:`gz-npd-hero`,children:[(0,Z.jsx)(`div`,{className:`gz-npd-hero-art`,"aria-hidden":`true`,children:(0,Z.jsx)(G2,{...oe.item.iconSvg?{iconSvg:oe.item.iconSvg}:{},...oe.item.logoUrl?{logoUrl:oe.item.logoUrl}:{},svgClassName:`gz-npd-hero-art-svg`,fallback:(0,Z.jsx)(_4,{glyph:b4(oe.manifest),size:34})})}),(0,Z.jsxs)(`p`,{className:`gz-npd-hero-eyebrow`,children:[`Craftbook`,he(oe)?t===`night-shift`?` · recommended for Night Shift`:t===`scheduled`?` · recommended for schedules`:` · recommended`:``]}),(0,Z.jsx)(`h4`,{className:`gz-npd-hero-name`,children:oe.manifest.name}),(0,Z.jsx)(`p`,{className:`gz-npd-hero-description`,children:oe.manifest.description}),oe.manifest.basedOn&&(0,Z.jsxs)(`p`,{className:`gz-ntd-based-on`,children:[`Based on`,` `,(0,Z.jsx)(`a`,{href:oe.manifest.basedOn.url,target:`_blank`,rel:`noreferrer`,children:oe.manifest.basedOn.name})]}),(0,Z.jsxs)(`div`,{className:`gz-ntd-steps`,children:[(0,Z.jsxs)(`p`,{className:`gz-npd-give-eyebrow`,children:[oe.manifest.steps.length,` step`,oe.manifest.steps.length===1?``:`s`]}),(0,Z.jsx)(`ol`,{className:`gz-ntd-steps-list`,children:oe.manifest.steps.map(e=>(0,Z.jsxs)(`li`,{children:[(0,Z.jsx)(`span`,{className:`gz-ntd-step-name`,children:e.name}),e.suggestedRole&&(0,Z.jsx)(`span`,{className:`gz-ntd-step-role`,children:e.suggestedRole})]},e.id))})]})]}):(0,Z.jsxs)(`div`,{className:`gz-npd-hero`,children:[(0,Z.jsx)(`div`,{className:`gz-npd-hero-art`,"aria-hidden":`true`,children:(0,Z.jsx)(_4,{glyph:x4.glyph,size:34})}),(0,Z.jsx)(`p`,{className:`gz-npd-hero-eyebrow`,children:t===`one-time`?`Blank task`:t===`scheduled`?`Blank schedule`:`Blank Night Shift task`}),(0,Z.jsx)(`h4`,{className:`gz-npd-hero-name`,children:c.generalLabel}),(0,Z.jsx)(`p`,{className:`gz-npd-hero-description`,children:c.generalDescription})]}),(0,Z.jsxs)(`div`,{className:`gz-npd-pane-form`,children:[!a&&(0,Z.jsxs)(`label`,{children:[`Project`,(0,Z.jsxs)(gv,{value:u,onValueChange:e=>{d(e),T(null),te({}),k(`all`),j(!1),J(``)},children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsx)(xv,{children:r.map(e=>(0,Z.jsx)(Sv,{value:e.id,children:e.name},e.id))})]})]}),(0,Z.jsxs)(`label`,{children:[`Title`,(0,Z.jsx)(`input`,{value:M,onChange:e=>{N(e.target.value),F(!0)},placeholder:oe?oe.manifest.name:`e.g. Ship the landing page`})]}),ye.length>0&&oe&&(0,Z.jsxs)(`div`,{className:`gz-ntd-needs`,children:[(0,Z.jsx)(`p`,{className:`gz-npd-give-eyebrow`,children:`Needs setup`}),(0,Z.jsx)(Q1,{missing:ye,onAllInstalled:()=>void ae(),onCancel:Y})]}),xe&&ye.length===0&&(0,Z.jsx)(`div`,{className:`gz-npd-params`,children:(0,Z.jsx)(SQ,{schema:xe,value:ee,onChange:e=>{te(e??{}),J(``)},density:`compact`})}),!oe&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`label`,{children:[`Description `,(0,Z.jsx)(`span`,{className:`muted`,children:`· a sentence or two`}),(0,Z.jsx)(`textarea`,{value:I,onChange:e=>L(e.target.value),rows:3,placeholder:`What's the problem? What does success look like for the user?`})]}),(0,Z.jsxs)(`label`,{children:[`Steps `,(0,Z.jsx)(`span`,{className:`muted`,children:`(one per line)`}),(0,Z.jsx)(`textarea`,{value:R,onChange:e=>z(e.target.value),rows:3})]})]}),(0,Z.jsxs)(`label`,{children:[`Assign to`,(0,Z.jsxs)(gv,{value:le,onValueChange:e=>{V(e),U(!0)},children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsxs)(xv,{children:[se&&(0,Z.jsxs)(Sv,{value:C4,children:[`Auto — the `,se,` for step 1`]}),i.map(e=>(0,Z.jsxs)(Sv,{value:e.id,children:[e.name,e.role?` — ${e.role}`:``]},e.id)),(0,Z.jsx)(Sv,{value:`__user`,children:`Me (no gezel)`})]})]}),le===C4?(0,Z.jsxs)(`small`,{className:`muted`,children:[`Every step picks its own specialist by role when the task fires. Step 1 goes to the `,se,`, and whoever that turns out to be owns the task.`]}):oe&&(0,Z.jsx)(`small`,{className:`muted`,children:`Steps that name a role pick their own specialist when the task fires — this only covers steps that name none.`}),le===`__user`&&(0,Z.jsx)(`small`,{className:`muted`,children:`Assigned to you — firing won't hand it to a gezel.`})]}),t===`scheduled`&&(0,Z.jsxs)(`div`,{className:`gz-ntd-schedule`,children:[(0,Z.jsx)(`p`,{className:`gz-npd-give-eyebrow`,children:`Schedule`}),(0,Z.jsxs)(`label`,{children:[`Cron expression `,(0,Z.jsx)(`span`,{className:`muted`,children:`(UTC, 5-field)`}),(0,Z.jsx)(`input`,{value:W,placeholder:`e.g. 0 9 * * 1 — every Monday 09:00`,onChange:e=>G(e.target.value)})]}),(0,Z.jsxs)(`label`,{children:[`Overlap policy`,(0,Z.jsxs)(gv,{value:ne,onValueChange:e=>K(e),children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsxs)(xv,{children:[(0,Z.jsx)(Sv,{value:`skip`,children:`skip — don't spawn if a prior run is still active`}),(0,Z.jsx)(Sv,{value:`queue`,children:`queue — always spawn, let the runner throttle`}),(0,Z.jsx)(Sv,{value:`concurrent`,children:`concurrent — spawn unconditionally`})]})]})]})]})]}),ie&&(0,Z.jsx)(`p`,{className:`error small`,children:ie})]},w??`__general`),(0,Z.jsxs)(`div`,{className:`gz-npd-pane-footer`,children:[(0,Z.jsx)(`p`,{className:`gz-ntd-footnote`,children:t===`one-time`&&oe?`Starts immediately — the first gezel gets to work as soon as you create it.`:c.footnote}),(0,Z.jsxs)(vm,{children:[(0,Z.jsx)(`button`,{type:`button`,onClick:o,disabled:q,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,disabled:Se,children:q?t===`one-time`&&oe?`Starting…`:`Creating…`:t===`one-time`&&oe?`Create & start`:c.submitLabel})]})]})]})]})]})})]})})}function T4(e,t){let n=e.manifest.name.toLowerCase();return n===t?0:n.startsWith(t)?1:n.split(/\s+/).some(e=>e.startsWith(t))?2:n.includes(t)?3:`${e.manifest.id} ${(e.manifest.tags??[]).join(` `)}`.toLowerCase().includes(t)?4:5}function E4({label:e,description:t,active:n,iconSvg:r,logoUrl:i,glyph:a,suggested:o=!1,index:s,onSelect:c}){return(0,Z.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":n,"aria-label":e,className:`gz-npd-card${n?` active`:``}${o?` gz-ntd-card-suggested`:``}`,onClick:c,style:{"--card-i":Math.min(s,11)},children:[(0,Z.jsx)(`span`,{className:`gz-npd-card-mark`,"aria-hidden":`true`,children:(0,Z.jsx)(G2,{...r?{iconSvg:r}:{},...i?{logoUrl:i}:{},svgClassName:`gz-npd-card-mark-svg`,fallback:(0,Z.jsx)(_4,{glyph:a,size:22})})}),(0,Z.jsx)(`span`,{className:`gz-npd-card-name`,children:e}),(0,Z.jsx)(`span`,{className:`gz-npd-card-description`,children:t})]})}var Kze=750,qze=2e4,D4={inflight:0,errored:1,idle:2};function O4(e){let t=Date.parse(e);return Number.isNaN(t)?0:t}function Jze(e){let t=e.replace(/\s+/g,` `).trim(),n=``;for(let e of t){if(n.length+e.length>200)break;n+=e}return n}function k4(e,t,n){let r=!1,i=e.map(e=>{if(e.id!==t)return e;r=!0;let i=new Set(e.involvedGezelIds??[e.gezelId]);n.from&&i.add(n.from.gezelId);let a=Jze(n.content);return{...e,lastActivityAt:n.at,involvedGezelIds:[...i],...a?{lastMessagePreview:a}:{}}});return r?i:null}function Yze(e){let{sessions:t,inflight:n,errored:r,now:i,pinnedSessionId:a,groupedTaskRefs:o,maxInline:s=6}=e,c=[],l=new Map,u=t.filter(e=>!e.archived&&!e.taskRef).reduce((e,t)=>!e||O4(t.lastActivityAt)>O4(e.lastActivityAt)?t:e,null)?.id;for(let e of t){if(e.archived)continue;let t=r.get(e.id)??e.lastTurnError,s=n.has(e.id)?`inflight`:t?`errored`:`idle`,d={sessionId:e.id,gezelId:e.gezelId,title:I0(L0(e.title)),lastActivityAt:e.lastActivityAt,state:s,involvedGezelIds:e.involvedGezelIds&&e.involvedGezelIds.length>0?e.involvedGezelIds:[e.gezelId],...e.lastMessagePreview?{lastMessagePreview:e.lastMessagePreview}:{},...e.taskRef?{taskRef:e.taskRef}:{},...t?{error:t}:{}};if(e.taskRef&&o?.has(e.taskRef)){let t=l.get(e.taskRef);(!t||O4(d.lastActivityAt)>O4(t.lastActivityAt))&&l.set(e.taskRef,d);continue}let f=a!==void 0&&e.id===a,p=e.id===u;s===`idle`&&!f&&!p&&i-O4(e.lastActivityAt)>864e5||c.push(d)}c.sort((e,t)=>{let n=D4[e.state]-D4[t.state];return n===0?O4(t.lastActivityAt)-O4(e.lastActivityAt):n});let d=c.filter(e=>e.state!==`idle`).length,f=Math.max(s,d);for(let e of[a,u]){if(e===void 0)continue;let t=c.findIndex(t=>t.sessionId===e);t>=f&&(f=t+1)}return{pills:c.slice(0,f),overflow:c.slice(f),taskPills:l}}function Xze({projectId:e,gezelId:t,pinnedSessionId:n,groupedTaskRefs:r,refreshKey:i}){let[a,o]=(0,X.useState)([]),s=(0,X.useRef)([]),[c,l]=(0,X.useState)(!0),[u,d]=(0,X.useState)(()=>new Set),[f,p]=(0,X.useState)(()=>new Map),[m,h]=(0,X.useState)(0),g=(0,X.useCallback)(async()=>{try{let n=await Q.listChatSessions({projectId:e,...t?{gezelId:t}:{}});s.current=n.sessions,o(n.sessions)}catch{}finally{l(!1)}},[e,t]),_=(0,X.useCallback)(async()=>{try{let{inflight:n}=await Q.listInflightTurns({projectId:e,...t?{gezelId:t}:{}});d(new Set(n.map(e=>e.sessionId)))}catch{}},[e,t]);(0,X.useEffect)(()=>{l(!0),g(),_()},[g,_,i,n]),(0,X.useEffect)(()=>{let e=window.setInterval(()=>void _(),qze);return()=>window.clearInterval(e)},[_]),(0,X.useEffect)(()=>{let e=window.setInterval(()=>h(e=>e+1),6e4);return()=>window.clearInterval(e)},[]),(0,X.useEffect)(()=>{let e=()=>void g();return window.addEventListener(`gezel:session-error-cleared`,e),()=>window.removeEventListener(`gezel:session-error-cleared`,e)},[g]);let v=(0,X.useRef)(null);(0,X.useEffect)(()=>{let n=new AbortController,r=()=>{v.current!==null&&window.clearTimeout(v.current),v.current=window.setTimeout(()=>{v.current=null,g()},Kze)};return(async()=>{try{for await(let i of Df({url:Q.projectEventsUrl(e),headers:Q.authHeader(),signal:n.signal,fetch:Q.getFetch()})){let{event:e,sessionId:n}=i;if(!(t&&i.gezelId!==t)){if(e.type===`user_message`){d(e=>{if(e.has(n))return e;let t=new Set(e);return t.add(n),t});let t=k4(s.current,n,e.message);t?(s.current=t,o(t)):g()}else(e.type===`done`||e.type===`error`||e.type===`cancelled`)&&d(e=>{if(!e.has(n))return e;let t=new Set(e);return t.delete(n),t});if(e.type===`error`)p(t=>{let r=new Map(t);return r.set(n,e.error),r});else if(e.type===`complete`){let t=k4(s.current,n,e.message);t&&(s.current=t,o(t)),p(e=>{if(!e.has(n))return e;let t=new Map(e);return t.delete(n),t})}(e.type===`done`||e.type===`complete`)&&r()}}}catch{}})(),()=>{n.abort(),v.current!==null&&(window.clearTimeout(v.current),v.current=null)}},[e,t,g]);let{pills:y,overflow:b,taskPills:x}=(0,X.useMemo)(()=>Yze({sessions:a,inflight:u,errored:f,now:Date.now(),pinnedSessionId:n,...r?{groupedTaskRefs:r}:{}}),[a,u,f,n,r,m]);return{pills:y,overflow:b,taskPills:x,loading:c}}var Zze=750;function Qze({projectId:e,refreshKey:t}){let[n,r]=(0,X.useState)([]),[i,a]=(0,X.useState)(!0),o=(0,X.useCallback)(async()=>{try{let t=await Q.listProjectTasks(e,{status:`active`});r(t.tasks)}catch{}finally{a(!1)}},[e]);(0,X.useEffect)(()=>{a(!0),o()},[o,t]);let s=(0,X.useRef)(null);return(0,X.useEffect)(()=>{let t=new AbortController,n=()=>{s.current!==null&&window.clearTimeout(s.current),s.current=window.setTimeout(()=>{s.current=null,o()},Zze)};return(async()=>{try{for await(let r of Df({url:Q.projectEventsUrl(e),headers:Q.authHeader(),signal:t.signal,fetch:Q.getFetch()}))r.event.type===`task_event`&&n()}catch{}})(),()=>{t.abort(),s.current!==null&&(window.clearTimeout(s.current),s.current=null)}},[e,o]),{tasks:n,loading:i}}var $ze=1440*60*1e3;function eBe(e){let t=Date.parse(e);return Number.isNaN(t)?0:t}function tBe({projectId:e,gezelId:t,gezels:n,activeSessionId:r,activeTaskRef:a,activeTerminalThreadId:o,onFocusThread:s,onFocusTask:c,onFocusTerminal:l,onNewTask:u,refreshKey:d,terminalRefreshKey:f}){let{tasks:p}=Qze({projectId:e,refreshKey:d}),{pills:m,overflow:h,taskPills:g}=Xze({projectId:e,gezelId:t,pinnedSessionId:r,groupedTaskRefs:(0,X.useMemo)(()=>new Set(p.map(e=>e.ref)),[p]),refreshKey:d}),[_,v]=(0,X.useState)([]),y=l!==void 0;(0,X.useEffect)(()=>{if(!y){v([]);return}let t=!1;return Q.listTerminalThreads(e).then(e=>{if(t)return;let n=Date.now()-$ze;v(e.threads.filter(e=>!e.archived&&eBe(e.lastActivityAt)>=n))}).catch(()=>{}),()=>{t=!0}},[e,y,f]);let b=(0,X.useMemo)(()=>_.filter(t=>t.projectId===e),[_,e]),x=fC(),S=e=>{let t=n.find(t=>t.id===e);return t?i({name:t.name,roleBasedName:t.roleBasedName},x):`someone`},C=e=>[...new Set(e.involvedGezelIds.map(S))].join(`, `),w=[...m,...g.values()],T=w.filter(e=>e.state===`inflight`).length,E=w.filter(e=>e.state===`errored`).length,D=[T>0?`${T} ${T===1?`thread`:`threads`} working`:``,E>0?`${E} needs attention`:``].filter(Boolean).join(`, `),O=m.length===0&&b.length===0&&p.length===0,{scrollRef:k,overflowBar:A}=nBe(m.length+h.length+b.length+p.length+ +!!O);return(0,Z.jsxs)(`div`,{className:`chat-pill-row`,role:`toolbar`,"aria-label":`Threads, terminal windows, and tasks`,children:[(0,Z.jsx)(`output`,{className:`sr-only`,children:D}),(0,Z.jsxs)(`div`,{className:`chat-pill-row-scroller`,children:[(0,Z.jsxs)(`div`,{className:`chat-pill-row-scroll`,ref:k,onScroll:A.onScroll,children:[O&&(0,Z.jsx)(`span`,{className:`chat-pill-row-empty muted small`,children:`No recent threads`}),p.map(e=>{let t=g.get(e.ref);return(0,Z.jsx)(oBe,{task:e,latestThread:t,gezels:n,gezelNames:t?C(t):e.assignee.kind===`gezel`?S(e.assignee.gezelId):`You`,active:e.ref===a,onFocus:c},e.ref)}),m.map(e=>(0,Z.jsx)(iBe,{pill:e,gezels:n,gezelNames:C(e),active:e.sessionId===r,onFocus:s},e.sessionId)),h.length>0&&(0,Z.jsxs)(O_,{children:[(0,Z.jsxs)(k_,{className:`chat-pill chat-pill-overflow`,children:[`+`,h.length,` more`]}),(0,Z.jsx)(A_,{children:(0,Z.jsx)(j_,{className:`chat-rail-section-tab-menu chat-pill-overflow-menu`,align:`start`,sideOffset:4,children:h.map(e=>(0,Z.jsx)(M_,{onSelect:()=>s(e),className:`chat-pill-overflow-item chat-pill-${e.state}`,children:(0,Z.jsx)(A4,{pill:e,gezelNames:C(e)})},e.sessionId))})})]}),l&&b.map(e=>(0,Z.jsx)(rBe,{thread:e,active:e.id===o,onFocus:l},e.id))]}),A.node]}),u&&(0,Z.jsx)(`button`,{type:`button`,className:`chat-pill-new-task`,onClick:u,"aria-label":`New task`,title:`New task — pick a craftbook`,children:`Do +`})]})}function nBe(e){let t=(0,X.useRef)(null),[n,r]=(0,X.useState)(null),i=(0,X.useCallback)(()=>{let e=t.current;if(!e)return;let{scrollWidth:n,clientWidth:i,scrollLeft:a}=e;if(n-i<2){r(e=>e===null?e:null);return}let o=i/n,s=a/n;r(e=>e&&Math.abs(e.left-s)<5e-4&&Math.abs(e.width-o)<5e-4?e:{left:s,width:o})},[]);return(0,X.useEffect)(()=>{i()},[i,e]),(0,X.useEffect)(()=>{let e=t.current;if(!e||typeof ResizeObserver>`u`)return;let n=new ResizeObserver(()=>i());return n.observe(e),()=>n.disconnect()},[i]),{scrollRef:t,overflowBar:{onScroll:i,node:n&&(0,Z.jsx)(`div`,{className:`chat-pill-row-bar`,"aria-hidden":`true`,onPointerDown:e=>{let r=t.current;if(!r||!n)return;let i=e.currentTarget.getBoundingClientRect(),a=(e.clientX-i.left)/i.width<n.left?-r.clientWidth:r.clientWidth;r.scrollBy({left:a,behavior:`smooth`})},children:(0,Z.jsx)(`div`,{className:`chat-pill-row-bar-thumb`,style:{left:`${n.left*100}%`,width:`${n.width*100}%`},onPointerDown:e=>{let n=t.current,r=e.currentTarget.parentElement;if(!n||!r)return;e.preventDefault(),e.stopPropagation();let i=n.scrollWidth/r.clientWidth,a=e.clientX,o=n.scrollLeft,s=e=>{n.scrollLeft=o+(e.clientX-a)*i},c=()=>{window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,c)};window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,c)}})})}}}function rBe({thread:e,active:t,onFocus:n}){let r=KQ(e.workingDir),i=P4(e.lastActivityAt),a=e.lastCommand?.replace(/\s+/g,` `).trim()||null,o=a?M4(a,40):null;return(0,Z.jsxs)(`button`,{type:`button`,className:`chat-pill chat-pill-thread chat-pill-terminal${t?` is-active`:``}`,"aria-pressed":t,"aria-label":`Terminal ${r}.${a?` Last command: ${a}.`:``} Updated ${i}`,title:`Terminal · ${r}${a?` · last command: ${a}`:``} · updated ${i}`,onClick:()=>n(e),children:[(0,Z.jsx)(`span`,{className:`chat-pill-thread-line chat-pill-thread-title`,children:`Terminal`}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-context`,children:[(0,Z.jsx)(`span`,{className:`terminal-prompt-sigil`,"aria-hidden":`true`,children:`>`}),(0,Z.jsx)(`span`,{className:`chat-pill-message-preview${a?` chat-pill-terminal-command`:``}`,children:o??r})]}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-update`,children:[a&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`chat-pill-terminal-folder`,children:r}),(0,Z.jsx)(`span`,{className:`chat-pill-separator`,"aria-hidden":`true`,children:`·`})]}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-updated-at`,children:[`Updated `,i]})]})]})}function iBe({pill:e,gezels:t,gezelNames:n,active:r,onFocus:i}){let a=t.find(t=>t.id===e.gezelId),o=P4(e.lastActivityAt),s=N4(e.state),c=j4(e),l=`${n} · ${e.title} · updated ${o} · ${s}${e.error?`: ${e.error}`:``}`;return(0,Z.jsx)(`button`,{type:`button`,className:`chat-pill chat-pill-thread chat-pill-${e.state}${r?` is-active`:``}`,"aria-pressed":r,"aria-label":`${n}: ${e.title}. ${c}. Updated ${o}. ${s}`,title:l,onClick:()=>i(e),children:(0,Z.jsx)(A4,{pill:e,gezelNames:n,gezel:a})})}function A4({pill:e,gezelNames:t,gezel:n}){let r=j4(e);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`chat-pill-thread-line chat-pill-thread-title`,children:M4(e.title,40)}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-context`,children:[n&&(0,Z.jsx)(Up,{svg:n.icon??null,poppetje:n.poppetje,iconOverride:n.iconOverride,name:t,size:14}),(0,Z.jsx)(`span`,{className:`chat-pill-participants`,children:t}),(0,Z.jsx)(`span`,{className:`chat-pill-separator`,"aria-hidden":`true`,children:`·`}),(0,Z.jsx)(`span`,{className:`chat-pill-message-preview`,children:r})]}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-update`,children:[(0,Z.jsxs)(`span`,{className:`chat-pill-thread-updated-at`,children:[`Updated `,P4(e.lastActivityAt)]}),(0,Z.jsx)(`span`,{className:`chat-pill-separator`,"aria-hidden":`true`,children:`·`}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-status`,children:[(0,Z.jsx)(`span`,{className:`chat-pill-dot`,"aria-hidden":`true`}),N4(e.state)]})]})]})}function j4(e){return e.lastMessagePreview?M4(aBe(e.lastMessagePreview),30):`No messages yet`}function M4(e,t){let n=Array.from(e.trim());return n.length<=t?n.join(``):`${n.slice(0,t-1).join(``)}…`}function aBe(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/@\[([^\]]+)\]\([^)]+\)/g,`@$1`).replace(/\[([^\]]+)\]\([^)]+\)/g,`$1`).replace(/[*_~`#>]+/g,``).replace(/\s+/g,` `).trim()}function N4(e){return e===`inflight`?`Working`:e===`errored`?`Needs attention`:`Ready`}function P4(e){let t=Date.parse(e);if(Number.isNaN(t))return e;let n=Math.floor(Math.max(0,Date.now()-t)/6e4);if(n<1)return`just now`;if(n<60)return`${n} ${n===1?`minute`:`minutes`} ago`;let r=Math.floor(n/60);if(r<24)return`${r} ${r===1?`hour`:`hours`} ago`;let i=Math.floor(r/24);if(i===1)return`yesterday`;if(i<7)return`${i} days ago`;let a=Math.floor(i/7);if(a<5)return`${a} ${a===1?`week`:`weeks`} ago`;let o=Math.floor(i/30);if(o<12)return`${o} ${o===1?`month`:`months`} ago`;let s=Math.floor(i/365);return`${s} ${s===1?`year`:`years`} ago`}function oBe({task:e,latestThread:t,gezels:n,gezelNames:r,active:i,onFocus:a}){let o=e.assignee.kind===`user`,s=e.assignee.kind===`gezel`?e.assignee.gezelId:null,c=t?n.find(e=>e.id===t.gezelId):s?n.find(e=>e.id===s):void 0,l=t?P4(t.lastActivityAt):null,u=t?N4(t.state):`Active`,d=t?j4(t):`No chat yet`,f=t?`Latest chat with ${r}: ${t.title}. ${d}. Updated ${l}. ${u}`:`${d}. Assigned to ${r}. ${u}`;return(0,Z.jsxs)(`button`,{type:`button`,className:`chat-pill chat-pill-thread chat-pill-task${t?` chat-pill-${t.state}`:``}${i?` is-active`:``}`,"aria-pressed":i,"aria-label":`Task ${e.ref}: ${e.title}. ${f}`,title:t?`${e.ref} · ${e.title} · latest chat: ${t.title} · ${r} · updated ${l} · ${u}${t.error?`: ${t.error}`:``}`:o?`${e.ref} · ${e.title} — assigned to you · no chat yet`:`${e.ref} · ${e.title} · no chat yet`,onClick:()=>a(e),children:[(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-task-title`,children:[(0,Z.jsx)(qC,{area:`tasks`,size:13,className:`chat-pill-task-icon`}),(0,Z.jsxs)(`span`,{className:`chat-pill-task-number`,children:[`#`,e.num]}),(0,Z.jsx)(`span`,{className:`chat-pill-label`,children:e.title})]}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-context`,children:[c&&(0,Z.jsx)(Up,{svg:c.icon??null,poppetje:c.poppetje,iconOverride:c.iconOverride,name:r,size:14}),(0,Z.jsx)(`span`,{className:`chat-pill-participants`,children:r}),(0,Z.jsx)(`span`,{className:`chat-pill-separator`,"aria-hidden":`true`,children:`·`}),(0,Z.jsx)(`span`,{className:`chat-pill-message-preview`,children:d})]}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-update`,children:[(0,Z.jsx)(`span`,{className:`chat-pill-thread-updated-at`,children:l?`Updated ${l}`:e.ref}),(0,Z.jsx)(`span`,{className:`chat-pill-separator`,"aria-hidden":`true`,children:`·`}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-status`,children:[t?(0,Z.jsx)(`span`,{className:`chat-pill-dot`,"aria-hidden":`true`}):(0,Z.jsx)(`span`,{className:`task-status-dot task-status-active`,"aria-hidden":`true`}),u]})]})]})}function sBe({projectId:e,workingDir:t,onChangeWorkingDir:n}){let[r,i]=(0,X.useState)([]),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(!1),l=(0,X.useRef)(null);(0,X.useEffect)(()=>{if(!s&&r.length>0)return;let t=!1;return(async()=>{try{let n=await Q.listProjectWorkspace(e,void 0,!0);if(t)return;let r=n.files.filter(e=>e.isDirectory).map(e=>{let t=e.path.split(`/`).length-1;return{path:e.path,name:e.name,depth:t}});r.sort((e,t)=>e.path<t.path?-1:+(e.path>t.path)),i(r)}catch(e){if(t)return;o(e instanceof Error?e.message:String(e))}})(),()=>{t=!0}},[e,s]),(0,X.useEffect)(()=>{if(!s)return;function e(e){l.current?.contains(e.target)||c(!1)}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s]);let u=(0,X.useMemo)(()=>[{path:``,name:`/`,depth:0},...r],[r]),d=KQ(t);return(0,Z.jsxs)(`div`,{className:`folder-tree-switcher`,ref:l,children:[(0,Z.jsx)(`span`,{className:`folder-tree-label`,children:`Folder:`}),(0,Z.jsxs)(`button`,{type:`button`,className:`folder-tree-trigger`,onClick:()=>c(e=>!e),title:`Pick a working folder`,"aria-expanded":s,children:[(0,Z.jsx)(`span`,{className:`folder-tree-trigger-value`,children:d}),(0,Z.jsx)(N_,{className:`folder-tree-trigger-caret`})]}),s&&(0,Z.jsxs)(`div`,{className:`folder-tree-popup`,role:`listbox`,children:[a&&(0,Z.jsx)(`div`,{className:`terminal-error-banner`,children:a}),u.map(e=>{let r=e.path===t;return(0,Z.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":r,className:`folder-tree-node${r?` active`:``}`,style:{paddingLeft:`${.4+e.depth*.9}rem`},onClick:()=>{n(e.path),c(!1)},title:e.path||`/`,children:(0,Z.jsx)(`span`,{children:e.path===``?`/`:e.name})},e.path||`__root__`)})]})]})}var cBe={index:null,craftbooks:[],mcpTools:[]},F4=new Map;function lBe(e,t){F4.set(e,t)}function uBe(e){return F4.get(e)??cBe}function dBe(e){F4.delete(e)}function fBe(e){let t=t0(),[n,r]=(0,X.useState)(null),[i,a]=(0,X.useState)([]),[o,s]=(0,X.useState)([]),c=(0,X.useRef)(void 0);(0,X.useEffect)(()=>{let n=!1,i=async()=>{try{let t=await Q.getProjectIndex(e);n||r(t)}catch{}},o=async()=>{try{let r=await Q.listProjectCraftbooks(e);if(n)return;a(_(r.items,t).flatMap(e=>{let t=e.manifest;return t.kind&&t.kind!==`craftbook-template`||!t.id?[]:[{id:t.id,command:t.command??t.id,name:t.name,description:t.description,paramSchema:t.paramSchema}]}))}catch{}},l=async()=>{try{let t=await Q.listProjectTools(e);n||s(t.tools)}catch{}},u=async()=>{n||o();try{let t=await Q.getProjectIndexStatus(e);if(n)return;let r=t.meta?.scannedAt;r&&r!==c.current?(c.current=r,await i()):t.state===`never`&&await Q.refreshProjectIndex(e).catch(()=>{})}catch{}};i(),o(),l();let d=window.setInterval(u,3e4);return()=>{n=!0,window.clearInterval(d)}},[e,t]),(0,X.useEffect)(()=>{lBe(e,{index:n,craftbooks:i,mcpTools:o})},[e,n,i,o]),(0,X.useEffect)(()=>()=>dBe(e),[e])}var pBe=(0,X.lazy)(()=>Wr(()=>import(`./TerminalCodeEditor-BuMcfTS4.js`),__vite__mapDeps([67,4,1]))),mBe=`build, test, git status, … — Enter runs, Shift+Enter for newline, ↑/↓ recalls history`,hBe=[{section:`commands`,label:`Commands`,title:`Everyday terminal commands, and the tools installed on this machine`,icon:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M2.5 4 L6 8 L2.5 12`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,Z.jsx)(`path`,{d:`M8 12 H13.5`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`})]})},{section:`scripts`,label:`Scripts`,title:`Scripts this project already defines — package.json, scripts/, launches`,icon:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`rect`,{x:`3`,y:`2`,width:`10`,height:`12`,rx:`1.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`}),(0,Z.jsx)(`path`,{d:`M5.5 5.5h5M5.5 8h5M5.5 10.5h3`,stroke:`currentColor`,strokeWidth:`1.3`,strokeLinecap:`round`})]})},{section:`tasks`,label:`Tasks`,title:`Craftbooks and workspace skills a gezel can run for you`,icon:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M2.5 4.5 L4 6 L6.5 3`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,Z.jsx)(`path`,{d:`M8.5 5 H14`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`}),(0,Z.jsx)(`path`,{d:`M2.5 11 L4 12.5 L6.5 9.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,Z.jsx)(`path`,{d:`M8.5 11.5 H14`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})]})}];function gBe({projectId:e,workingDir:t,contextRow:n,onSent:r,initialInput:i,onChatEscape:a}){let[o]=(0,X.useState)(()=>i??``),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(null),d=(0,X.useRef)(null),f=(0,X.useRef)([]),p=(0,X.useRef)(-1),m=(0,X.useCallback)(e=>{d.current?.setValue(e),u(null)},[]);fBe(e);let h=(0,X.useCallback)(async n=>{let i=n.trim();if(i!==``){d.current?.setValue(``),c(null),f.current.unshift(i),f.current.length>50&&(f.current.length=50),p.current=-1;try{let n=await Q.runTerminalCommand(e,{workingDir:t,input:i});r?.(i,n)}catch(e){c(e instanceof Error?e.message:String(e)),d.current?.focus()}}},[e,t,r]),g=(0,X.useCallback)(()=>{let e=d.current;e&&(h(e.getValue()),e.focus())},[h]),_=(0,X.useCallback)(()=>{if(f.current.length===0)return;let e=Math.min(f.current.length-1,p.current+1);p.current=e,d.current?.setValue(f.current[e])},[]),v=(0,X.useCallback)(()=>{if(p.current<0)return;let e=p.current-1;p.current=e,d.current?.setValue(e<0?``:f.current[e])},[]);return(0,Z.jsxs)(`div`,{className:`terminal-composer`,children:[(0,Z.jsxs)(`div`,{className:`terminal-composer-toolbar`,children:[hBe.map(t=>(0,Z.jsxs)(U_,{open:l===t.section,onOpenChange:e=>u(e?t.section:null),children:[(0,Z.jsx)(W_,{asChild:!0,children:(0,Z.jsxs)(`button`,{type:`button`,className:`terminal-toolbar-btn`,title:t.title,"aria-label":t.title,children:[(0,Z.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,"aria-hidden":`true`,focusable:`false`,children:t.icon}),t.label]})}),(0,Z.jsx)(K_,{className:`terminal-commands-popover`,side:`top`,align:`start`,onCloseAutoFocus:e=>{e.preventDefault(),d.current?.focus()},children:(0,Z.jsx)(i0,{projectId:e,section:t.section,onStageCommand:m})})]},t.section)),(0,Z.jsx)(`button`,{type:`button`,className:`terminal-toolbar-btn terminal-toolbar-fire-btn`,title:`Run command (Enter)`,onClick:g,children:`Fire`})]}),n,(0,Z.jsxs)(`div`,{className:`terminal-composer-input-wrap`,children:[(0,Z.jsx)(`span`,{className:`terminal-prompt-sigil`,children:`>`}),(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(`div`,{className:`terminal-composer-input`,"aria-busy":`true`}),children:(0,Z.jsx)(pBe,{ref:d,projectId:e,initialValue:o,placeholder:mBe,onSubmit:e=>void h(e),onHistoryPrev:_,onHistoryNext:v,onChatEscape:a})})]}),s&&(0,Z.jsx)(`div`,{className:`terminal-error-banner`,children:s})]})}function _Be({project:e,compact:t=!1}){let[n,r]=(0,X.useState)([]),[i,a]=(0,X.useState)(``);(0,X.useEffect)(()=>{Q.listGezels().then(e=>r(e.gezels)).catch(()=>{})},[e.id,e.voormanGezelId,(e.gezelIds??[]).join(`,`)]),(0,X.useEffect)(()=>{a(``)},[e.id]);let[o,s]=(0,X.useState)(void 0);(0,X.useEffect)(()=>{s(void 0);let t=!1;return Q.listChatSessions({projectId:e.id}).then(e=>{if(t)return;let n=e.sessions.filter(e=>!e.archived&&!e.taskRef);s(n[0]?.gezelId??null)}).catch(()=>{t||s(null)}),()=>{t=!0}},[e.id]),(0,X.useEffect)(()=>{if(i||o===void 0)return;let t=o&&n.some(e=>e.id===o)?o:``,r=n.find(t=>t.id===e.voormanGezelId)?.id??``,s=(e.gezelIds??[]).map(e=>n.find(t=>t.id===e)?.id).find(Boolean)??``,c=t||r||s||n[0]?.id||``;c&&a(c)},[i,o,n,e.voormanGezelId,e.gezelIds]);let c=n.find(e=>e.id===i);return n.length===0?(0,Z.jsx)(`p`,{className:`muted`,children:`No gezellen available to chat with yet. Create one from the Gezellen tab.`}):(0,Z.jsx)(`div`,{className:`project-chat`,children:i&&c&&(0,Z.jsx)(vBe,{project:e,selectedGezel:c,recipientGezels:n,isVoorman:c.id===e.voormanGezelId,onSelectGezel:a,compact:t})})}function vBe({project:e,selectedGezel:t,recipientGezels:n,isVoorman:r,onSelectGezel:a,compact:o}){let[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(null),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(0),h=fC(),g=i({name:t.name,roleBasedName:t.roleBasedName},h),[_,v]=(0,X.useState)(0),[y,b]=(0,X.useState)([]),[x,S]=(0,X.useState)(`chat`),[C,w]=(0,X.useState)(0),T=(0,X.useCallback)(()=>{w(e=>e+1),S(`chat`)},[]),[E,D]=(0,X.useState)(``),[O,k]=(0,X.useState)(``),[A,j]=(0,X.useState)(``),M=(0,X.useCallback)(e=>{j(``),D(e),k(e)},[]),[N,P]=(0,X.useState)(``);(0,X.useEffect)(()=>{x!==`terminal`&&N!==``&&P(``)},[x,N]);let[F,I]=(0,X.useState)(0),[L,R]=(0,X.useState)(null),[z,B]=(0,X.useState)(null),V=(0,X.useRef)(null),H=(0,X.useRef)(null),U=(0,X.useCallback)((e,n,r)=>{n===t.id?u(r):(V.current=e||null,H.current=r,a(n)),c(e)},[t.id,a]),[ee,te]=(0,X.useState)(null),W=(0,X.useCallback)(e=>{e&&te(t=>({sessionId:e,requestKey:(t?.requestKey??0)+1}))},[]),G=(0,X.useCallback)(async e=>{let t={ref:e.ref,...e.activeStepId?{stepId:e.activeStepId}:{}};try{let{sessions:n}=await Q.listTaskSessions(e.projectId,e.num),r=n.find(e=>!e.archived);if(r){U(r.id,r.gezelId,t),W(r.id);return}}catch{}e.assignee.kind===`gezel`&&e.assignee.gezelId?U(``,e.assignee.gezelId,t):u(t)},[U,W]),ne=(0,X.useCallback)(e=>{m(e=>e+1),(e.status===`complete`||e.status===`canceled`)&&u(t=>t?.ref===e.ref?null:t)},[]);(0,X.useEffect)(()=>{let e=V.current;V.current=null,c(e??``),u(H.current),H.current=null},[t.id,e.id]);let K=(0,X.useMemo)(()=>K0({role:r?`voorman`:`other`,gezelName:t.name,gezelGender:t.gender,projectName:e.name,fixedFunctionTool:t.fixedFunction?.tool}),[r,t.name,t.gender,e.name,t.fixedFunction?.tool]),q=Le(t.gender);return(0,Z.jsx)(O0,{projectId:e.id,skillsProjectId:e.id,compact:o,chatKey:`${e.id}:timeline`,onTaskChanged:ne,banner:({onTaskReference:t})=>(0,Z.jsx)(tBe,{projectId:e.id,gezels:n,activeSessionId:x===`chat`&&s||void 0,activeTaskRef:x===`chat`?l?.ref??null:null,activeTerminalThreadId:x===`terminal`?A:null,refreshKey:p,terminalRefreshKey:F,onFocusThread:e=>{U(e.sessionId,e.gezelId,e.taskRef?{ref:e.taskRef}:null),W(e.sessionId)},onFocusTask:e=>{t(e.ref,{focus:!0}),G(e)},onFocusTerminal:t=>{M(t.workingDir),j(t.id),S(`terminal`),R(e=>({threadId:t.id,requestKey:(e?.requestKey??0)+1})),Q.getTerminalThread(e.id,t.id).then(e=>{let t=[...e.messages].reverse().find(e=>e.cwd!==void 0)?.cwd;t!==void 0&&k(t)}).catch(()=>{})},onNewTask:()=>f(!0)}),children:({onToolActivity:i,onArtifactReference:o,onArtifactSeen:u,onWorkspaceReference:p,onWorkspaceSeen:h,recentReferences:D,onOpenReference:A,onTaskReference:R})=>(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(s$,{projectId:e.id,activeSessionId:s||void 0,onFocusSession:(e,t)=>U(e,t,null),onToolActivity:i,onArtifactReference:o,onArtifactSeen:u,onWorkspaceReference:p,onWorkspaceSeen:h,onTaskReference:R,onTerminalWorkingDirChanged:(e,t)=>{k(t)},terminalRefreshKey:F,...z?{terminalSubmission:z}:{},...L?{terminalFocusRequest:L}:{},...ee?{sessionFocusRequest:ee}:{},emptyPlaceholder:r?`Talk to ${t.name} about running "${e.name}" — planning tasks, delegating, or checking progress.`:`Chat with ${t.name} about what ${q.subject} ${q.presentBe} working on in "${e.name}".`}),(0,Z.jsxs)(`div`,{className:`project-chat-compose-shell`,children:[(0,Z.jsx)(`div`,{className:`project-chat-compose-main${x===`terminal`?` project-chat-compose-main-terminal`:``}`,children:x===`chat`?(0,Z.jsx)(BQ,{gezelId:t.id,gezelName:t.name,gezelIcon:t.icon??null,gezelPoppetje:t.poppetje,gezelIconOverride:t.iconOverride,recipientGezels:n,onPrimaryRecipientChange:a,focusRequestKey:C,projectId:e.id,sessionId:s||void 0,...l?{taskRef:l.ref}:{},...l?.stepId?{stepId:l.stepId}:{},onSessionCreated:e=>{c(e),v(e=>e+1)},onToolActivity:i,recentReferences:D,onOpenReference:A,placeholder:K,onPivotToMention:e=>{e!==t.id&&(b(e=>e.includes(t.id)?e:[...e,t.id]),a(e))},passiveCcGezelIds:y,onPassiveCcConsumed:()=>b([]),onTerminalEscape:e=>{P(e),S(`terminal`)},belowAddressLine:(0,Z.jsx)(z0,{gezelId:t.id,projectId:e.id,sessionId:s||void 0,gezelName:g,...l?{taskRef:l.ref}:{},...l?.stepId?{stepId:l.stepId}:{},onSessionIdChange:e=>c(e??``),onNewSessionCreated:()=>w(e=>e+1),refreshKey:_})}):(0,Z.jsx)(gBe,{projectId:e.id,workingDir:E,contextRow:(0,Z.jsx)(sBe,{projectId:e.id,workingDir:O,onChangeWorkingDir:M}),initialInput:N,onSent:(e,t)=>{j(t.threadId),B({runId:t.runId,threadId:t.threadId,input:e}),I(e=>e+1)},onChatEscape:T},`terminal:${e.id}`)}),(0,Z.jsx)(`div`,{className:`project-chat-compose-mode-bar`,children:(0,Z.jsxs)(`div`,{className:`project-chat-compose-toggle`,role:`tablist`,children:[(0,Z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":x===`chat`,"aria-label":`AI chat`,className:x===`chat`?`active`:``,onClick:T,title:`AI chat (@-mention to talk to a gezel)`,children:`@`}),(0,Z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":x===`terminal`,"aria-label":`Terminal`,className:x===`terminal`?`active`:``,onClick:()=>S(`terminal`),title:`Terminal (run shell commands in this project's workspace)`,children:`>`})]})})]}),(0,Z.jsx)(w4,{open:d,defaultProjectId:e.id,projects:[e],gezels:n,projectLocked:!0,onClose:()=>f(!1),onCreated:()=>{f(!1),m(e=>e+1)}})]})})}function I4(e,t){return`connector-${e}-${t}`.replace(/[^a-zA-Z0-9_-]/g,`-`)}function L4(e){return e&&/^https:\/\//i.test(e)?e:void 0}function R4({required:e}){return e?(0,Z.jsx)(`span`,{className:`gz-connector-field-requirement`,"aria-hidden":`true`,children:`Required`}):null}function z4({id:e,description:t,helpUrl:n,helpLabel:r}){let i=L4(n);return!t&&!i?null:(0,Z.jsxs)(`span`,{id:e,className:`gz-connector-field-help`,children:[t,t&&i?` `:``,i&&(0,Z.jsx)(`a`,{href:i,target:`_blank`,rel:`noreferrer`,children:r??`Learn more`})]})}function yBe({connectorId:e,fieldKey:t,property:n,required:r,value:i,onChange:a}){let o=I4(e,t),s=`${o}-label`,c=`${o}-help`,l=n.title??t,u=n.description?c:void 0;return(0,Z.jsxs)(`div`,{className:`gz-connector-field`,children:[(0,Z.jsxs)(`label`,{id:s,className:`gz-connector-field-label`,htmlFor:o,children:[(0,Z.jsx)(`span`,{children:l}),(0,Z.jsx)(R4,{required:r})]}),(0,Z.jsxs)(`span`,{className:`gz-connector-field-control`,children:[n.type===`boolean`?(0,Z.jsx)(`input`,{id:o,type:`checkbox`,"aria-label":l,checked:i===!0,onChange:e=>a(e.target.checked),"aria-describedby":u}):(0,Z.jsx)(`input`,{id:o,type:n.type===`integer`||n.type===`number`?`number`:`text`,value:typeof i==`string`?i:``,onChange:e=>a(e.target.value),placeholder:n.type===`array`?`comma,separated`:``,min:n.minimum,max:n.maximum,step:n.type===`integer`?1:void 0,required:r,"aria-label":l,"aria-describedby":u}),(0,Z.jsx)(z4,{id:c,description:n.description})]})]})}function B4({connectorId:e,fieldKey:t,label:n,value:r,onChange:i,required:a=!1,secret:o=!1,description:s,helpUrl:c,helpLabel:l,placeholder:u}){let d=I4(e,t),f=`${d}-help`,p=!!(s||L4(c));return(0,Z.jsxs)(`div`,{className:`gz-connector-field`,children:[(0,Z.jsxs)(`label`,{className:`gz-connector-field-label`,htmlFor:d,children:[(0,Z.jsx)(`span`,{children:n}),(0,Z.jsx)(R4,{required:a})]}),(0,Z.jsxs)(`span`,{className:`gz-connector-field-control`,children:[(0,Z.jsx)(`input`,{id:d,type:o?`password`:`text`,value:r,onChange:e=>i(e.target.value),required:a,autoComplete:o?`off`:void 0,placeholder:u,"aria-label":n,"aria-describedby":p?f:void 0}),(0,Z.jsx)(z4,{id:f,description:s,helpUrl:c,helpLabel:l})]})]})}function bBe({connectorId:e,fieldKey:t,label:n,checked:r,onChange:i}){let a=I4(e,t);return(0,Z.jsxs)(`div`,{className:`gz-connector-field`,children:[(0,Z.jsx)(`label`,{className:`gz-connector-field-label`,htmlFor:a,children:(0,Z.jsx)(`span`,{children:n})}),(0,Z.jsx)(`span`,{className:`gz-connector-field-control gz-connector-checkbox-control`,children:(0,Z.jsx)(`input`,{id:a,type:`checkbox`,"aria-label":n,checked:r,onChange:e=>i(e.target.checked)})})]})}function V4({title:e,children:t}){return(0,Z.jsxs)(`section`,{className:`gz-connector-field-group`,"aria-label":e,children:[(0,Z.jsx)(`div`,{className:`gz-connector-field-group-heading`,children:e}),t]})}function xBe(e){let t={};for(let[n,r]of Object.entries(e.configSchema?.properties??{}))r.default!==void 0&&(t[n]=r.type===`boolean`?r.default===!0:String(r.default));return t}function SBe({connector:e,config:t,onConfigChange:n,displayName:r,onDisplayNameChange:i,credential:a,onCredentialChange:o,imapHost:s,onImapHostChange:c,imapPort:l,onImapPortChange:u,imapSecure:d,onImapSecureChange:f}){let p=e.secretShape?.kind,m=new Set(e.configSchema?.required??[]),h=Object.entries(e.configSchema?.properties??{}).filter(([,e])=>e.const===void 0),g=([e,t])=>m.has(e)||t[`x-gezel-priority`]===`primary`,_=h.filter(g),v=h.filter(e=>!g(e)),y=e.secretShape?.required===!0||e.secretShape?.[`x-gezel-priority`]===`primary`,b=([r,i])=>(0,Z.jsx)(yBe,{connectorId:e.id,fieldKey:r,property:i,required:m.has(r),value:t[r],onChange:e=>n(r,e)},r),x=p!==`oauth2`&&p!==`imap`&&(0,Z.jsx)(B4,{connectorId:e.id,fieldKey:`credential`,label:e.secretShape?.label??`API key / token`,value:a,onChange:o,required:e.secretShape?.required===!0,secret:!0,description:e.secretShape?.description,helpUrl:e.secretShape?.helpUrl,helpLabel:e.secretShape?.helpLabel},`credential`),S=p===`imap`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(B4,{connectorId:e.id,fieldKey:`imap-host`,label:`IMAP host`,value:s,onChange:c,required:!0,placeholder:`imap.example.com`}),(0,Z.jsx)(B4,{connectorId:e.id,fieldKey:`credential`,label:`Password / app password`,value:a,onChange:o,required:!0,secret:!0,description:e.secretShape?.description,helpUrl:e.secretShape?.helpUrl,helpLabel:e.secretShape?.helpLabel})]}),C=_.length>0||y||p===`imap`||p===`oauth2`;return(0,Z.jsxs)(Z.Fragment,{children:[e.setupInstructions&&(0,Z.jsxs)(`aside`,{className:`gz-connector-setup-instructions`,children:[(0,Z.jsx)(`strong`,{children:e.setupInstructions.title}),e.setupInstructions.description&&(0,Z.jsx)(`p`,{children:e.setupInstructions.description}),e.setupInstructions.steps&&e.setupInstructions.steps.length>0&&(0,Z.jsx)(`ol`,{children:e.setupInstructions.steps.map(e=>(0,Z.jsx)(`li`,{children:e},e))}),L4(e.setupInstructions.url)&&(0,Z.jsx)(`a`,{href:e.setupInstructions.url,target:`_blank`,rel:`noreferrer`,children:e.setupInstructions.urlLabel??`Open setup instructions`})]}),(0,Z.jsxs)(`div`,{className:`gz-connector-config-fields`,children:[C&&(0,Z.jsxs)(V4,{title:`Connection details`,children:[_.map(b),p===`oauth2`?(0,Z.jsx)(`p`,{className:`muted small gz-connector-oauth-note`,children:`You'll authorize this connector in your browser after you click Connect.`}):p===`imap`?S:y?x:null]}),(0,Z.jsxs)(V4,{title:`Additional settings`,children:[v.map(b),p===`imap`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(B4,{connectorId:e.id,fieldKey:`imap-port`,label:`Port`,value:l,onChange:u,placeholder:`993`}),(0,Z.jsx)(bBe,{connectorId:e.id,fieldKey:`imap-tls`,label:`Use TLS`,checked:d,onChange:f})]}),!y&&x,(0,Z.jsx)(B4,{connectorId:e.id,fieldKey:`display-name`,label:`Display name`,value:r,onChange:i})]})]})]})}var CBe=/^GEZEL_[A-Z0-9_]{1,120}$/,wBe=8;function TBe(e,t){if(!t||typeof t!=`object`)return null;let n=t;if(n.kind!==`oauth2`)return null;let r=typeof n.clientIdEnv==`string`?n.clientIdEnv:``;if(!CBe.test(r))return null;let i=typeof n.clientSecretEnv==`string`&&n.clientSecretEnv.length>0,a=n.clientSetup&&typeof n.clientSetup==`object`?n.clientSetup:{},o=typeof a.providerLabel==`string`&&a.providerLabel.trim()?a.providerLabel.trim():e,s=typeof a.docsUrl==`string`&&/^https:\/\//.test(a.docsUrl)?a.docsUrl:void 0,c=typeof a.redirectPort==`number`&&Number.isInteger(a.redirectPort)&&a.redirectPort>=1024&&a.redirectPort<=65535?a.redirectPort:void 0,l=typeof a.appTypeNote==`string`&&a.appTypeNote.trim()?a.appTypeNote.trim():void 0,u=typeof a.redirectNote==`string`&&a.redirectNote.trim()?a.redirectNote.trim():void 0,d=Array.isArray(a.steps)?a.steps.filter(e=>typeof e==`string`&&e.trim().length>0).map(e=>e.trim()).slice(0,wBe):[];return{clientKey:r,hasSecretField:i,secretRequired:i&&a.secretRequired===!0,providerLabel:o,...s?{docsUrl:s}:{},...l?{appTypeNote:l}:{},...c===void 0?{}:{redirectPort:c},...u?{redirectNote:u}:{},...d.length>0?{steps:d}:{}}}function EBe(e){return`http://127.0.0.1:${e}/callback`}function DBe(e){let t=e instanceof Error?e.message:typeof e==`string`?e:``;return/oauth is not configured/i.test(t)}function OBe({requirement:e,registered:t,forceOpenNonce:n,busy:r,onSave:i}){let[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(``),[d,f]=(0,X.useState)(``),[p,m]=(0,X.useState)(!1),h=(0,X.useRef)(t);h.current=t;let g=()=>{c(h.current?.clientId??``),u(``),f(``),o(!0)};(0,X.useEffect)(()=>{n&&g()},[n]);let _=e.redirectPort===void 0?null:EBe(e.redirectPort),v=async()=>{if(_)try{await navigator.clipboard.writeText(_),m(!0),setTimeout(()=>m(!1),1500)}catch{}},y=async()=>{let n=s.trim(),r=l.trim();if(!n){f(`Client ID is required.`);return}if(e.secretRequired&&!r&&!t?.hasSecret){f(`${e.providerLabel} requires a client secret.`);return}f(``);try{await i({clientId:n,...r?{clientSecret:r}:{}})}catch{return}u(``),o(!1)};return a?(0,Z.jsxs)(`div`,{className:`gz-oauth-app`,"aria-label":`${e.providerLabel} OAuth app setup`,children:[(0,Z.jsxs)(`strong`,{className:`gz-oauth-app-heading`,children:[`Your `,e.providerLabel,` app`]}),(0,Z.jsx)(`p`,{className:`muted small`,children:e.appTypeNote??`Create an OAuth app in your ${e.providerLabel} developer settings and paste its client ID here. It is stored on this machine only.`}),e.steps&&(0,Z.jsx)(`ol`,{className:`gz-oauth-app-steps`,children:e.steps.map(e=>(0,Z.jsx)(`li`,{children:e},e))}),e.docsUrl&&(0,Z.jsxs)(`a`,{className:`gz-oauth-app-docs`,href:e.docsUrl,target:`_blank`,rel:`noreferrer`,children:[`Open the `,e.providerLabel,` developer console`]}),(0,Z.jsxs)(`div`,{className:`gz-oauth-app-redirect`,children:[(0,Z.jsx)(`span`,{children:`Redirect URI to register`}),_?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`span`,{className:`gz-oauth-app-redirect-row`,children:[(0,Z.jsx)(`code`,{children:_}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void v(),title:`Copy the redirect URI`,children:p?`Copied`:`Copy`})]}),e.redirectNote&&(0,Z.jsx)(`span`,{className:`muted small`,children:e.redirectNote})]}):(0,Z.jsx)(`span`,{className:`muted small`,children:e.redirectNote??`${e.providerLabel} accepts any 127.0.0.1 port, so there is no fixed URI to register — Gezel picks a free port when you connect.`})]}),(0,Z.jsxs)(`div`,{className:`gz-oauth-app-fields`,children:[(0,Z.jsxs)(`label`,{children:[`Client ID`,(0,Z.jsx)(`input`,{value:s,onChange:e=>c(e.target.value),autoComplete:`off`,spellCheck:!1})]}),e.hasSecretField&&(0,Z.jsxs)(`label`,{children:[`Client secret`,` `,!e.secretRequired&&(0,Z.jsx)(`span`,{className:`muted`,children:`(optional — PKCE public clients don't need one)`}),(0,Z.jsx)(`input`,{type:`password`,value:l,onChange:e=>u(e.target.value),autoComplete:`off`,placeholder:t?.hasSecret?`leave blank to keep the saved secret`:``})]})]}),d&&(0,Z.jsx)(`p`,{className:`error small`,children:d}),(0,Z.jsxs)(`div`,{className:`gz-oauth-app-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>o(!1),disabled:r,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>void y(),disabled:r,children:r?`Working…`:`Save & connect`})]})]}):(0,Z.jsxs)(`div`,{className:`gz-oauth-app gz-oauth-app-summary`,children:[(0,Z.jsx)(`div`,{className:`gz-oauth-app-summary-text`,children:t?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`span`,{children:[`Connects through your `,e.providerLabel,` app`]}),(0,Z.jsx)(`code`,{title:t.clientId,children:t.clientId}),t.hasSecret&&(0,Z.jsx)(`span`,{children:`· secret saved`})]}):(0,Z.jsxs)(`span`,{children:[`Gezel ships no built-in `,e.providerLabel,` client — connecting uses an app you register once on this machine.`]})}),(0,Z.jsx)(`button`,{type:`button`,onClick:g,disabled:r,children:t?`Edit`:`Use your own ${e.providerLabel} app`})]})}async function kBe(e,t,n,r,i){let a=window.__GEZEL__;if(!a?.mailOAuthListen||!a.mailOAuthAwait)throw Error(`Connecting this source needs the Gezel desktop app.`);let{requestId:o,redirectUri:s}=await a.mailOAuthListen(i?.redirectPort===void 0?void 0:{port:i.redirectPort}),{authUrl:c,state:l}=await Q.startConnectorOAuth(e,{type:t,redirectUri:s,config:n,...r?{displayName:r}:{}}),u=await a.mailOAuthAwait(o,c);if(`error`in u)throw Error(u.error);await Q.completeConnectorOAuth(e,{state:u.state||l,code:u.code})}function H4(e){let t=`${e.id} ${(e.tags??[]).join(` `)}`.toLowerCase();return t.includes(`wiki`)?`sheet`:t.includes(`calendar`)?`calendar`:/(mail|gmail|imap|email)/.test(t)?`envelope`:/(github|git)/.test(t)?`branch`:/(issue|linear)/.test(t)?`bubbles`:/(airtable|record|data)/.test(t)?`chart`:`dots`}function U4(e){let t=e.secretShape?.kind;return t===`oauth2`?`OAuth`:t===`imap`?`Mail login`:e.secretShape?.required?e.secretShape?.label??`API token`:`Optional token`}function W4(e){return e.completeness===`window`?`Recent window`:`Full mirror`}function ABe({project:e,onProjectChange:t}){let[n,r]=(0,X.useState)(null),[i,a]=(0,X.useState)(null),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)([]),[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(!1),[v,y]=(0,X.useState)([]),[b,x]=(0,X.useState)(null),[S,C]=(0,X.useState)({}),[w,T]=(0,X.useState)(``),[E,D]=(0,X.useState)(``),[O,k]=(0,X.useState)(``),[A,j]=(0,X.useState)(``),[M,N]=(0,X.useState)(!0),[P,F]=(0,X.useState)({}),[I,L]=(0,X.useState)(0),R=(0,X.useCallback)(async()=>{try{let[t,n]=await Promise.all([Q.listConnectors(e.id),Q.listConnectorActions(e.id)]);r(t),p(n.pending)}catch(e){s(e instanceof Error?e.message:String(e))}},[e.id]),z=(0,X.useCallback)(async t=>{a(t),s(``),l(``);try{let n=await Q.commitConnectorAction(e.id,t);l(n.status===`queued-night-shift`?`Held for daytime approval (night shift).`:`Action committed.`),await R()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(null)}},[e.id,R]),B=(0,X.useCallback)(async t=>{a(t);try{await Q.discardConnectorAction(e.id,t),await R()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(null)}},[e.id,R]);(0,X.useEffect)(()=>{R()},[R]);let V=(0,X.useCallback)(()=>{h(!1),x(null),C({}),T(``),D(``),k(``),j(``),N(!0),L(0)},[]),H=(0,X.useCallback)(async()=>{let e=await Q.listOAuthClients();F(Object.fromEntries((e.clients??[]).map(e=>[e.key,{clientId:e.clientId,hasSecret:e.hasSecret}])))},[]),U=(0,X.useCallback)(async()=>{h(!0),_(!0),y([]),x(null),s(``),l(``),H().catch(()=>{});try{let e=await Q.listConnectorTypes();y(e.items.map(e=>({...e.manifest,...e.iconSvg?{iconSvg:e.iconSvg}:{},...e.logoUrl?{logoUrl:e.logoUrl}:{}})))}catch(e){s(e instanceof Error?e.message:String(e))}finally{_(!1)}},[H]),ee=(0,X.useCallback)(async t=>{a(t),s(``),l(``);try{let n=(await Q.syncConnector(e.id,t)).result;l(n.error?`Sync error: ${n.error}`:`Synced ${(n.written??0)+(n.quarantined??0)} new record(s).`),await R()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(null)}},[e.id,R]),te=(0,X.useCallback)(async t=>{a(t);try{await Q.unbindConnector(e.id,t),await R()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(null),d(null)}},[e.id,R]),W=(0,X.useCallback)(()=>{let e=b?.configSchema?.properties??{},t={};for(let[n,r]of Object.entries(e))if(r.const!==void 0)t[n]=r.const;else if(r.type===`array`){let e=typeof S[n]==`string`?S[n].trim():``;e&&(t[n]=e.split(`,`).map(e=>e.trim()).filter(Boolean))}else if(r.type===`boolean`)typeof S[n]==`boolean`&&(t[n]=S[n]);else if(r.type===`integer`||r.type===`number`){let e=typeof S[n]==`string`?S[n].trim():``;e&&(t[n]=Number(e))}else{let e=typeof S[n]==`string`?S[n].trim():``;e&&(t[n]=e)}return t},[b,S]),G=(0,X.useMemo)(()=>b?.secretShape?.kind===`oauth2`?TBe(b.name,b.secretShape):null,[b]),ne=(0,X.useCallback)(async()=>{if(!b)return;s(``),l(``);let n=W(),r=b.secretShape?.kind,i=(b.configSchema?.required??[]).find(e=>{let t=n[e];return t===void 0||t===``||Array.isArray(t)&&t.length===0});if(i){let e=b.configSchema?.properties?.[i]?.title??i;s(`${e} is required.`);return}if(r!==`oauth2`&&r!==`imap`&&b.secretShape?.required&&!E.trim()){s(`${b.secretShape.label??`API key / token`} is required.`);return}a(`add`);try{if(r===`oauth2`)await kBe(e.id,b.id,n,w.trim()||void 0,G?.redirectPort===void 0?void 0:{redirectPort:G.redirectPort});else{let t;r===`imap`?t={host:O.trim(),...A.trim()?{port:Number(A.trim())}:{},secure:M,user:String(n.address??``),pass:E}:E.trim()&&(t=E.trim()),await Q.bindConnector(e.id,{type:b.id,...w.trim()?{displayName:w.trim()}:{},config:n,...t===void 0?{}:{credential:t}})}l(`Connector added.`),V(),await R();try{let n=await Q.getProject(e.id);n&&t?.(n)}catch{}}catch(e){let t=e instanceof Error?e.message:String(e);DBe(t)&&L(e=>e+1),s(t)}finally{a(null)}},[b,e.id,W,w,E,O,A,M,V,R,t,G]),K=(0,X.useCallback)(async e=>{if(G){s(``),a(`oauth-app`);try{await Q.putOAuthClient(G.clientKey,e),await H().catch(()=>{F(t=>({...t,[G.clientKey]:{clientId:e.clientId,hasSecret:!!e.clientSecret||(t[G.clientKey]?.hasSecret??!1)}}))}),L(0)}catch(e){throw s(e instanceof Error?e.message:String(e)),e}finally{a(null)}await ne()}},[G,H,ne]),q=n?.bindings??[],re=b?.secretShape?.kind,ie=e=>{e.id!==b?.id&&(x(e),C(xBe(e)),T(``),D(``),k(``),j(``),N(!0),s(``),L(0))};return(0,Z.jsxs)(`div`,{className:`settings-section`,children:[(0,Z.jsxs)(`div`,{className:`gz-mail-header`,children:[(0,Z.jsx)(`h3`,{children:`Connections`}),!m&&(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void U(),children:`Add connection`})]}),q.length===0&&!m?(0,Z.jsx)(`p`,{className:`muted`,children:`No connectors yet. Add one to mirror an external source (email, issues, a data source) into this project as searchable files.`}):(0,Z.jsx)(`ul`,{className:`settings-list`,children:q.map(e=>(0,Z.jsxs)(`li`,{children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{children:e.displayName||e.type}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[` · `,e.type]}),(0,Z.jsx)(`div`,{className:`small`,children:e.lastError?(0,Z.jsxs)(`span`,{className:`error`,children:[`Error: `,e.lastError]}):e.lastSyncedAt?(0,Z.jsxs)(`span`,{className:`muted`,children:[`Last synced `,new Date(e.lastSyncedAt).toLocaleString()]}):(0,Z.jsx)(`span`,{className:`muted`,children:`Not synced yet`})})]}),(0,Z.jsxs)(`div`,{className:`gz-mail-link-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void ee(e.id),disabled:i===e.id,children:i===e.id?`Working…`:`Sync now`}),(0,Z.jsx)(`button`,{type:`button`,className:`danger`,onClick:()=>d(e.id),disabled:i===e.id,children:`Remove`})]})]},e.id))}),f.length>0&&(0,Z.jsxs)(`div`,{className:`settings-subsection`,children:[(0,Z.jsx)(`h4`,{children:`Pending actions`}),(0,Z.jsx)(`p`,{className:`muted small`,children:`Drafted by a gezel — review, then commit (the live write). You commit; the gezel can't.`}),(0,Z.jsx)(`ul`,{className:`settings-list`,children:f.map(e=>(0,Z.jsxs)(`li`,{children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{children:e.action}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[` · `,e.connectorType]}),e.status===`queued`&&(0,Z.jsx)(`span`,{className:`badge`,children:` held for daytime`})]}),(0,Z.jsxs)(`div`,{className:`gz-mail-link-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>void z(e.draftId),disabled:i===e.draftId,children:i===e.draftId?`Working…`:`Commit`}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void B(e.draftId),disabled:i===e.draftId,children:`Discard`})]})]},e.draftId))})]}),m&&(0,Z.jsxs)(`div`,{className:`gz-connector-picker`,children:[(0,Z.jsxs)(`div`,{className:`gz-connector-picker-heading`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{children:`Choose a connector`}),(0,Z.jsx)(`p`,{className:`muted small`,children:`Pick a source to mirror into this project's searchable files.`})]}),(0,Z.jsx)(`span`,{className:`gz-connector-picker-count`,children:g?`Loading…`:`${v.length} available`})]}),g?(0,Z.jsx)(`div`,{className:`gz-connector-picker-empty muted small`,children:`Gathering connectors…`}):v.length===0?(0,Z.jsx)(`div`,{className:`gz-connector-picker-empty muted small`,children:`No connector types are available.`}):(0,Z.jsx)(`div`,{className:`gz-connector-grid`,role:`radiogroup`,"aria-label":`Connector type`,children:v.map((e,t)=>(0,Z.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":b?.id===e.id,"aria-label":e.name,className:`gz-npd-card gz-connector-card${b?.id===e.id?` active`:``}`,onClick:()=>ie(e),style:{"--card-i":Math.min(t,11)},children:[(0,Z.jsx)(`span`,{className:`gz-npd-card-mark`,children:(0,Z.jsx)(G2,{iconSvg:e.iconSvg,logoUrl:e.logoUrl,svgClassName:`gz-npd-card-mark-svg`,fallback:(0,Z.jsx)(_4,{glyph:H4(e),size:19})})}),(0,Z.jsx)(`span`,{className:`gz-npd-card-name`,children:e.name}),(0,Z.jsx)(`span`,{className:`gz-npd-card-description`,children:e.description}),(0,Z.jsxs)(`span`,{className:`gz-connector-card-meta`,"aria-hidden":`true`,children:[(0,Z.jsx)(`span`,{children:U4(e)}),(0,Z.jsx)(`span`,{children:W4(e)})]})]},e.id))}),b&&(0,Z.jsxs)(`div`,{className:`gz-mail-link-form gz-connector-config`,"aria-label":`${b.name} setup`,children:[(0,Z.jsxs)(`div`,{className:`gz-connector-config-heading`,children:[(0,Z.jsx)(`span`,{className:`gz-connector-config-mark`,children:(0,Z.jsx)(G2,{iconSvg:b.iconSvg,logoUrl:b.logoUrl,svgClassName:`gz-npd-card-mark-svg`,fallback:(0,Z.jsx)(_4,{glyph:H4(b),size:19})})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`strong`,{children:[`Set up `,b.name]}),(0,Z.jsxs)(`div`,{className:`small muted`,children:[U4(b),` · `,W4(b)]})]})]}),(0,Z.jsx)(SBe,{connector:b,config:S,onConfigChange:(e,t)=>C(n=>({...n,[e]:t})),displayName:w,onDisplayNameChange:T,credential:E,onCredentialChange:D,imapHost:O,onImapHostChange:k,imapPort:A,onImapPortChange:j,imapSecure:M,onImapSecureChange:N}),G&&(0,Z.jsx)(OBe,{requirement:G,registered:P[G.clientKey]??null,forceOpenNonce:I,busy:i===`oauth-app`||i===`add`,onSave:K},b.id)]}),(0,Z.jsxs)(`div`,{className:`gz-mail-link-actions gz-connector-picker-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:V,disabled:i===`add`,children:`Cancel`}),b&&(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>void ne(),disabled:i===`add`,children:i===`add`?`Working…`:re===`oauth2`?`Connect`:`Add`})]})]}),o&&(0,Z.jsx)(`p`,{className:`error small`,children:o}),c&&(0,Z.jsx)(`p`,{className:`muted small`,children:c}),(0,Z.jsx)(ty,{open:u!==null,title:`Remove connector?`,message:`This removes the binding and its stored credential. Synced files stay on disk.`,confirmLabel:`Remove`,danger:!0,onConfirm:()=>{u&&te(u)},onCancel:()=>d(null)})]})}function G4(e){return e?.leadLabel?e.leadLabel:e?.mode===`solo`?`Builder`:`Voorman`}function K4(e){return e?.leadLabel?e.leadLabel.toLowerCase():e?.mode===`solo`?`builder`:`voorman`}function q4(){return Math.floor(Math.random()*2147483647)}function jBe(e){return e.manifest.kind===`gezel-template`}function J4(e){return(e??``).toLocaleLowerCase().replaceAll(/[^a-z0-9]+/g,``)}function Y4(e,t,n){return[i(e,n),e.role??``].some(e=>e.toLocaleLowerCase().includes(t))}function X4(e,t){return[e.manifest.name,e.manifest.role,e.manifest.description,...e.manifest.tags].some(e=>e.toLocaleLowerCase().includes(t))}function MBe({open:e,project:t,gezels:n,roleBasedNameOnlyMode:r,onClose:a,onAddExisting:o,onCreateTemplate:s}){let[c,l]=(0,X.useState)([]),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(!1),[m,h]=(0,X.useState)(null),[_,v]=(0,X.useState)(``),[y,b]=(0,X.useState)(null),[x,S]=(0,X.useState)(``),[C,w]=(0,X.useState)(),[T,E]=(0,X.useState)(q4),D=N(_e(t));(0,X.useEffect)(()=>{if(!e)return;let t=!1;return d(!0),h(null),v(``),b(null),Q.listCatalogItems(`gezel-template`).then(({items:e})=>{if(t)return;let n=new Map;for(let t of e)jBe(t)&&!n.has(t.manifest.id)&&n.set(t.manifest.id,t);l([...n.values()])}).catch(e=>{t||h(e.message)}).finally(()=>{t||d(!1)}),()=>{t=!0}},[e]);let O=(0,X.useMemo)(()=>new Set([...t.gezelIds??[],...t.voormanGezelId?[t.voormanGezelId]:[]]),[t.gezelIds,t.voormanGezelId]),k=(0,X.useMemo)(()=>{let e=new Map,t=0;for(let n of D?.gezelRoles.default??[])e.set(n.templateId,{...n,tier:`default`,rank:t++});for(let n of D?.gezelRoles.suggested??[])e.has(n.templateId)||e.set(n.templateId,{...n,tier:`suggested`,rank:t++});return e},[D]),A=(0,X.useMemo)(()=>{let e=new Map;for(let t of c){let n=k.get(t.manifest.id);if(n)for(let r of[J4(t.manifest.role),J4(t.manifest.name)])r&&!e.has(r)&&e.set(r,n)}return e},[k,c]),j=(0,X.useMemo)(()=>new Set(n.flatMap(e=>e.templateId?[e.templateId]:[])),[n]),M=(0,X.useMemo)(()=>new Set(n.flatMap(e=>[e.role,e.roleBasedName].map(J4).filter(Boolean))),[n]),P=(0,X.useMemo)(()=>n.filter(e=>!O.has(e.id)&&e.scope!==`project`).sort((e,t)=>i(e,r).localeCompare(i(t,r))),[O,n,r]),F=(0,X.useMemo)(()=>c.filter(e=>!j.has(e.manifest.id)&&!M.has(J4(e.manifest.role))&&!M.has(J4(e.manifest.name))).sort((e,t)=>e.manifest.name.localeCompare(t.manifest.name)),[M,j,c]),I=(0,X.useCallback)(e=>{if(e.templateId){let t=k.get(e.templateId);if(t)return t}for(let t of[J4(e.role),J4(e.roleBasedName)]){let e=A.get(t);if(e)return e}},[A,k]),L=(0,X.useMemo)(()=>{let e=[];for(let t of P){let n=I(t);n&&e.push({kind:`existing`,gezel:t,affinity:n})}for(let t of F){let n=k.get(t.manifest.id);n&&e.push({kind:`template`,template:t,affinity:n})}return e.sort((e,t)=>e.affinity.rank-t.affinity.rank||(e.kind===`existing`?i(e.gezel,r):e.template.manifest.name).localeCompare(t.kind===`existing`?i(t.gezel,r):t.template.manifest.name))},[I,P,F,k,r]),R=(0,X.useMemo)(()=>new Set(L.flatMap(e=>e.kind===`existing`?[e.gezel.id]:[])),[L]),z=(0,X.useMemo)(()=>new Set(L.flatMap(e=>e.kind===`template`?[e.template.manifest.id]:[])),[L]),B=(0,X.useMemo)(()=>P.filter(e=>!R.has(e.id)),[P,R]),V=(0,X.useMemo)(()=>F.filter(e=>!z.has(e.manifest.id)),[F,z]),H=_.trim().toLocaleLowerCase(),U=(0,X.useMemo)(()=>H?L.filter(e=>e.kind===`existing`?Y4(e.gezel,H,r):X4(e.template,H)):L,[H,r,L]),ee=(0,X.useMemo)(()=>H?B.filter(e=>Y4(e,H,r)):B,[H,B,r]),te=(0,X.useMemo)(()=>H?V.filter(e=>X4(e,H)):V,[H,V]),W=()=>{f||a()},G=async e=>{p(!0),h(null);try{await o(e),a()}catch(e){h(e.message)}finally{p(!1)}},ne=async(e,t)=>{p(!0),h(null);try{await s(e.manifest.id,t),a()}catch(e){h(e.message)}finally{p(!1)}},K=e=>{if(r){ne(e,{name:e.manifest.name});return}let t=ce(),n=e.manifest.nameSuggestions??[],i=n.length>0?n[Math.floor(Math.random()*n.length)]:t.name;b(e),S(i??t.name),w(t.gender),E(q4()),h(null)},q=y&&x.trim()?be(T,{key:`project-add-preview:${y.manifest.id}`,name:x.trim(),gender:C}):null;return(0,Z.jsx)(dm,{open:e,onOpenChange:e=>!e&&W(),children:(0,Z.jsxs)(fm,{children:[(0,Z.jsx)(gm,{}),(0,Z.jsxs)(_m,{className:`project-add-gezel-dialog`,children:[(0,Z.jsx)(mm,{asChild:!0,children:(0,Z.jsx)(`h3`,{children:y?`Customize ${y.manifest.name}`:`Add Gezel`})}),(0,Z.jsx)(hm,{className:`muted small`,children:y?`Give this new ${y.manifest.role} a name and appearance before adding them to ${t.name}.`:`Choose someone from your workshop or add a new role to ${t.name}.`}),m&&(0,Z.jsx)(`p`,{className:`error small project-add-gezel-error`,children:m}),y?(0,Z.jsxs)(`form`,{className:`project-add-gezel-customize`,onSubmit:e=>{e.preventDefault(),x.trim()&&ne(y,{name:x.trim(),...C?{gender:C}:{},appearanceSeed:T})},children:[(0,Z.jsx)(`div`,{className:`project-add-gezel-preview`,"aria-hidden":`true`,children:q&&(0,Z.jsx)(lp,{poppetje:q,variant:`full`,size:150,grainStyle:`wavy`})}),(0,Z.jsxs)(`div`,{className:`project-add-gezel-customize-fields`,children:[(0,Z.jsxs)(`label`,{children:[`Name`,(0,Z.jsx)(`input`,{type:`text`,value:x,onChange:e=>S(e.target.value),disabled:f})]}),(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:f,onClick:()=>E(q4()),children:`Reroll appearance`}),(0,Z.jsxs)(`p`,{className:`muted small`,children:[`Their role and working style come from the `,y.manifest.name,` `,`template.`]})]}),(0,Z.jsxs)(vm,{children:[(0,Z.jsx)(`button`,{type:`button`,disabled:f,onClick:()=>{b(null),h(null)},children:`Back`}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,disabled:f||!x.trim(),children:f?`Adding…`:`Add to project`})]})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`label`,{className:`project-add-gezel-search`,children:[(0,Z.jsx)(`span`,{className:`sr-only`,children:`Search gezels and roles`}),(0,Z.jsx)(`input`,{type:`text`,placeholder:`Search gezels and roles…`,value:_,onChange:e=>v(e.target.value),disabled:f})]}),(0,Z.jsxs)(`div`,{className:`project-add-gezel-options`,children:[U.length>0&&(0,Z.jsxs)(`section`,{className:`project-add-gezel-suggestions`,"aria-labelledby":`project-add-suggested-title`,children:[(0,Z.jsx)(`h4`,{id:`project-add-suggested-title`,children:`Suggested for this project type`}),D&&(0,Z.jsxs)(`p`,{className:`muted small project-add-gezel-section-hint`,children:[D.label,` projects often benefit from these roles.`]}),(0,Z.jsx)(`ul`,{className:`project-add-gezel-list`,children:U.map(e=>{let t=e.affinity.tier==="default"?`Core role`:`Suggested`;if(e.kind===`existing`){let n=i(e.gezel,r);return(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`project-add-gezel-option`,disabled:f,onClick:()=>void G(e.gezel.id),children:[(0,Z.jsx)(Up,{svg:e.gezel.icon??null,poppetje:e.gezel.poppetje,iconOverride:e.gezel.iconOverride,name:n,size:36}),(0,Z.jsxs)(`span`,{className:`project-add-gezel-option-copy`,children:[(0,Z.jsx)(`span`,{className:`project-add-gezel-option-name`,children:n}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[e.gezel.role??`Gezel`,` · `,e.affinity.reason]})]}),(0,Z.jsx)(`span`,{className:`gz-badge`,children:t})]})},`existing:${e.gezel.id}`)}return(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`project-add-gezel-option`,disabled:f,onClick:()=>K(e.template),children:[(0,Z.jsx)(Up,{poppetje:g(`project-role:${e.template.manifest.id}`,e.template.manifest.name),name:e.template.manifest.name,size:36}),(0,Z.jsxs)(`span`,{className:`project-add-gezel-option-copy`,children:[(0,Z.jsx)(`span`,{className:`project-add-gezel-option-name`,children:e.template.manifest.name}),(0,Z.jsx)(`span`,{className:`muted small`,children:e.affinity.reason})]}),(0,Z.jsx)(`span`,{className:`gz-badge`,children:t})]})},`template:${e.template.manifest.id}`)})})]}),(0,Z.jsxs)(`section`,{"aria-labelledby":`project-add-existing-title`,children:[(0,Z.jsx)(`h4`,{id:`project-add-existing-title`,children:`From your workshop`}),ee.length>0?(0,Z.jsx)(`ul`,{className:`project-add-gezel-list`,children:ee.map(e=>{let t=i(e,r);return(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`project-add-gezel-option`,disabled:f,onClick:()=>void G(e.id),children:[(0,Z.jsx)(Up,{svg:e.icon??null,poppetje:e.poppetje,iconOverride:e.iconOverride,name:t,size:36}),(0,Z.jsxs)(`span`,{className:`project-add-gezel-option-copy`,children:[(0,Z.jsx)(`span`,{className:`project-add-gezel-option-name`,children:t}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[e.role??`Gezel`,` · ready to add`]})]})]})},e.id)})}):(0,Z.jsx)(`p`,{className:`muted small project-add-gezel-empty`,children:B.length>0?`No workshop gezels match that search.`:L.some(e=>e.kind===`existing`)?`No other workshop gezels are available.`:`Every available gezel is already on this project.`})]}),(0,Z.jsxs)(`section`,{"aria-labelledby":`project-add-role-title`,children:[(0,Z.jsx)(`h4`,{id:`project-add-role-title`,children:`Add a new gezel for a role`}),u&&(0,Z.jsx)(`p`,{className:`muted small`,children:`Loading roles…`}),!u&&te.length>0?(0,Z.jsx)(`ul`,{className:`project-add-gezel-list`,children:te.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`project-add-gezel-option`,disabled:f,onClick:()=>K(e),children:[(0,Z.jsx)(Up,{poppetje:g(`project-role:${e.manifest.id}`,e.manifest.name),name:e.manifest.name,size:36}),(0,Z.jsxs)(`span`,{className:`project-add-gezel-option-copy`,children:[(0,Z.jsx)(`span`,{className:`project-add-gezel-option-name`,children:e.manifest.name}),(0,Z.jsx)(`span`,{className:`muted small`,children:e.manifest.description})]}),(0,Z.jsx)(`span`,{className:`gz-badge`,children:`New role`})]})},e.manifest.id))}):!u&&(0,Z.jsx)(`p`,{className:`muted small project-add-gezel-empty`,children:V.length>0?`No new roles match that search.`:L.some(e=>e.kind===`template`)?`No other role types are available.`:`Every role type already has a gezel.`})]})]}),(0,Z.jsx)(vm,{children:(0,Z.jsx)(`button`,{type:`button`,onClick:W,disabled:f,children:`Cancel`})})]})]})]})})}function NBe({projectId:e,projectProperties:t,refreshKey:n,recentlyAddedGezelId:r}){let[i,a]=(0,X.useState)(null),[o,s]=(0,X.useState)(null),[c,l]=(0,X.useState)(null),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)(!1),m=(0,X.useCallback)(async()=>{try{let t=await Q.listSuggestedWork(e);a(t.items)}catch(e){l(e.message)}},[e]);(0,X.useEffect)(()=>{m()},[m,n]);let h=async(e,t)=>{s(e),l(null);try{await t(),await m()}catch(e){l(e.message)}finally{s(null)}},g=async(t,n)=>{d(null),await h(t.key,async()=>{await Q.enableSuggestedWork(e,{key:t.key,...n?{params:n}:{}});let r=LBe(t,n);r&&await Q.updateProject(e,{properties:r})})};if(i===null)return c?(0,Z.jsx)(`p`,{className:`error small suggested-work-error`,children:c}):null;let _=i.filter(e=>e.state!==`dismissed`),v=i.filter(e=>e.state===`dismissed`);return i.length===0?null:(0,Z.jsxs)(`div`,{className:`suggested-work`,children:[_.map(n=>(0,Z.jsx)(PBe,{item:n,busy:o===n.key,flash:n.state===`suggested`&&n.source.kind===`gezel-template`&&n.source.gezelId!==void 0&&n.source.gezelId===r,paramFormOpen:u===n.key,projectProperties:t,onEnable:e=>void g(n,e),onOpenParamForm:()=>d(n.key),onCloseParamForm:()=>d(null),onDisable:()=>void h(n.key,()=>Q.disableSuggestedWork(e,n.key)),onDismiss:()=>void h(n.key,()=>Q.dismissSuggestedWork(e,n.key,!0))},n.key)),v.length>0&&(0,Z.jsxs)(`div`,{className:`suggested-work-hidden`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`subtle small`,onClick:()=>p(e=>!e),children:f?`Hide dismissed suggestions`:`${v.length} hidden suggestion${v.length===1?``:`s`}`}),f&&v.map(t=>(0,Z.jsxs)(`div`,{className:`project-autonomous-role suggested-work-row`,children:[(0,Z.jsxs)(`div`,{className:`project-autonomous-role-copy`,children:[(0,Z.jsx)(`span`,{className:`project-autonomous-role-title`,children:t.craftbookName??t.craftbookId}),(0,Z.jsx)(`span`,{className:`muted small`,children:`Hidden from suggestions.`})]}),(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:o===t.key,onClick:()=>void h(t.key,()=>Q.dismissSuggestedWork(e,t.key,!1)),children:`Suggest again`})]},t.key))]}),c&&(0,Z.jsx)(`p`,{className:`error small suggested-work-error`,children:c})]})}function PBe({item:e,busy:t,flash:n,paramFormOpen:r,projectProperties:i,onEnable:a,onOpenParamForm:o,onCloseParamForm:s,onDisable:c,onDismiss:l}){let u=e.state===`enabled`,d=IBe(e),f=e.runMode===`night-shift`?`Runs during the Night Shift window, at most once per night.`:`Runs on schedule (cron ${e.cron}, UTC).`,p=e.source.kind===`gezel-template`?e.source.gezelName?`Suggested by ${e.source.gezelName}${e.source.role?` — ${e.source.role}`:``}.`:`Suggested by the "${e.source.templateId}" role.`:`From the "${e.source.typeId}" project type.`,m=e.pendingQuestionId?` Awaiting approval — enabling here answers the pending question.`:e.orphaned?` The sponsoring role is no longer on this crew.`:``;return(0,Z.jsxs)(`div`,{className:`project-autonomous-role suggested-work-row${u?` project-autonomous-role-active`:``}${n?` timeline-focus-flash`:``}`,children:[(0,Z.jsx)(`span`,{className:`suggested-work-glyph`,"aria-hidden":`true`,children:e.runMode===`night-shift`?(0,Z.jsx)(RBe,{}):(0,Z.jsx)(zBe,{})}),(0,Z.jsxs)(`div`,{className:`project-autonomous-role-copy`,children:[(0,Z.jsxs)(`span`,{className:`project-autonomous-role-title`,children:[e.craftbookName??e.craftbookId,` `,u?`on`:`off`]}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[e.reason?`${e.reason} `:``,f,` `,p,m]}),r&&(0,Z.jsx)(FBe,{item:e,projectProperties:i,onSubmit:a,onCancel:s})]}),(0,Z.jsxs)(`div`,{className:`suggested-work-actions`,children:[u?(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:t,onClick:c,children:t?`Updating…`:`Pause`}):(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:t||r,onClick:()=>d&&e.state===`suggested`?o():a(),children:t?`Updating…`:e.state===`paused`?`Resume`:`Enable`}),e.state===`suggested`&&(0,Z.jsx)(`button`,{type:`button`,className:`subtle small suggested-work-dismiss`,disabled:t,onClick:l,title:`Don't suggest this for this project`,children:`Don't suggest`})]})]})}function FBe({item:e,projectProperties:t,onSubmit:n,onCancel:r}){let i=e.paramSchema,[a,o]=(0,X.useState)(()=>{let n={},r=i?.properties??{};for(let[i,a]of Object.entries(r)){let r=we(a),o=r?t?.[r]:void 0;o===void 0?e.params?.[i]===void 0?a&&a.default!==void 0&&(n[i]=a.default):n[i]=e.params[i]:n[i]=o}return n}),s=(0,X.useMemo)(()=>{let e={};for(let[t,n]of Object.entries(a))n!=null&&(typeof n==`boolean`?e[t]=n?`true`:`false`:typeof n==`number`?e[t]=String(n):typeof n==`string`&&(e[t]=n));return e},[a]);return(0,Z.jsxs)(`form`,{className:`suggested-work-param-form`,onSubmit:e=>{e.preventDefault(),n(s)},children:[i&&(0,Z.jsx)(SQ,{schema:i,value:a,onChange:e=>o(e??{}),density:`compact`}),(0,Z.jsxs)(`div`,{className:`suggested-work-param-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,onClick:r,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,children:`Enable`})]})]})}function IBe(e){let t=e.paramSchema?.properties;return!!(t&&Object.keys(t).length>0)}function LBe(e,t){if(!t)return null;let n=e.paramSchema?.properties??{},r={};for(let[e,i]of Object.entries(n)){let n=we(i),a=t[e];n&&a!==void 0&&a!==``&&(r[n]=a)}return Object.keys(r).length>0?r:null}function RBe(){return(0,Z.jsx)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:(0,Z.jsx)(`path`,{d:`M12 3a9 9 0 1 0 9 9c0-.46-.04-.92-.1-1.36a5.39 5.39 0 0 1-8.54-6.5A8.97 8.97 0 0 0 12 3z`})})}function zBe(){return(0,Z.jsxs)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,"aria-hidden":`true`,children:[(0,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,Z.jsx)(`path`,{d:`M12 7v5l3 2`})]})}function BBe({project:e,gezels:t,boekwachterGezelId:n,recentlyAddedGezelId:r,onAddGezel:a,onCreateTemplateGezel:o,onRemoveGezel:s}){let c=fC(),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(null),h=(0,X.useMemo)(()=>{let n=new Set,r=[];if(e.voormanGezelId){let i=t.find(t=>t.id===e.voormanGezelId);i&&(r.push({gezel:i,isLead:!0}),n.add(i.id))}for(let i of e.gezelIds??[]){if(n.has(i))continue;let e=t.find(e=>e.id===i);e&&(r.push({gezel:e,isLead:!1}),n.add(i))}return r},[t,e.gezelIds,e.voormanGezelId]),g=n?t.find(e=>e.id===n):void 0,_=t.find(t=>(e.gezelIds??[]).includes(t.id)&&(t.id===n||t.templateId===`boekwachter`||t.role?.trim().toLocaleLowerCase()===`boekwachter`)),v=async e=>{let t=e===`add`?g:_,n=e===`add`?a:s;if(!(!t||!n)){f(!0),m(null);try{await n(t.id)}catch(e){m(e.message)}finally{f(!1)}}};return(0,Z.jsxs)(`section`,{id:`project-about-crew`,className:`project-crew-settings project-about-anchor`,"aria-labelledby":`project-crew-settings-title`,children:[(0,Z.jsxs)(`div`,{className:`project-crew-settings-heading`,children:[(0,Z.jsx)(`h3`,{id:`project-crew-settings-title`,className:`project-crew-settings-title`,children:`Assigned gezellen`}),a&&o&&(0,Z.jsx)(`button`,{type:`button`,className:`primary project-crew-add`,onClick:()=>u(!0),children:`Add Gezel`})]}),(0,Z.jsx)(`p`,{className:`muted small project-crew-settings-hint`,children:`The crew attached to this project. Change the lead below; task and conversation assignments are added automatically.`}),h.length>0?(0,Z.jsx)(`ul`,{className:`project-crew-list`,children:h.map(({gezel:t,isLead:n})=>{let r=i({name:t.name,roleBasedName:t.roleBasedName},c),a=n?`⭐ ${K4(e)}`:t.role;return(0,Z.jsxs)(`li`,{className:`project-crew-card${n?` project-crew-card-lead`:``}`,children:[(0,Z.jsx)(Up,{svg:t.icon??null,poppetje:t.poppetje,iconOverride:t.iconOverride,name:r,size:30}),(0,Z.jsxs)(`span`,{className:`project-crew-card-text`,children:[(0,Z.jsx)(`span`,{className:`project-crew-card-name`,children:r}),a&&(0,Z.jsx)(`span`,{className:`project-crew-card-role`,children:a})]})]},t.id)})}):(0,Z.jsx)(`p`,{className:`muted small project-crew-empty`,children:`No gezellen are assigned to this project yet.`}),(0,Z.jsxs)(`div`,{className:`project-autonomous-role${_?` project-autonomous-role-active`:``}`,children:[(0,Z.jsxs)(`div`,{className:`project-autonomous-role-copy`,children:[(0,Z.jsxs)(`span`,{className:`project-autonomous-role-title`,children:[`AI indexing `,_?`on`:`off`]}),(0,Z.jsx)(`span`,{className:`muted small`,children:_?`${_.name} studies changed files, writes short summaries and reviews, and prepares weekly digests while the workshop is quiet.`:`Structural file and symbol search stays available. Add the Boekwachter to this crew for background AI summaries, reviews, and digests.`})]}),_?(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:d||!s,onClick:()=>void v(`remove`),children:d?`Updating…`:`Remove Boekwachter`}):(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:d||!g||!a,onClick:()=>void v(`add`),children:d?`Updating…`:g?`Add ${g.name}`:`No Boekwachter available`})]}),p&&(0,Z.jsx)(`p`,{className:`error small project-autonomous-role-error`,children:p}),(0,Z.jsx)(NBe,{projectId:e.id,projectProperties:e.properties,refreshKey:[e.voormanGezelId??``,...e.gezelIds??[]].join(`|`),recentlyAddedGezelId:r}),a&&o&&(0,Z.jsx)(MBe,{open:l,project:e,gezels:t,roleBasedNameOnlyMode:c,onClose:()=>u(!1),onAddExisting:a,onCreateTemplate:o})]})}var Z4=null,Q4=`gezel:git-changed`;function $4(e){window.dispatchEvent(new CustomEvent(Q4,{detail:{projectId:e}}))}function e3(e,t={}){let[n,r]=(0,X.useState)(!1),i=(0,X.useRef)(t);return i.current=t,{sync:(0,X.useCallback)(async()=>{if(Z4===e)return null;Z4=e,r(!0);try{let t=await Q.syncProjectGit(e),n=i.current;switch(t.state){case`synced`:n.onToast?.(`ok`,wLe(t));break;case`needs-save`:n.onNeedsSave?.();break;case`conflicts`:n.onConflicts?.(t);break;case`auth`:n.onToast?.(`err`,u0.syncAuth),n.onAuth?.();break;case`offline`:n.onToast?.(`err`,u0.syncOffline);break;default:n.onToast?.(`err`,t.message||u0.syncGenericError)}return $4(e),t}catch(e){return i.current.onToast?.(`err`,`Sync failed: ${e instanceof Error?e.message:String(e)}`),null}finally{Z4=null,r(!1)}},[e]),syncing:n}}var VBe=`Active — the Meester nudges the voorman, phase handoffs auto-start, and scheduled tasks tick. Read-only or Inactive — ambient gezel work pauses. Chat still works.`,HBe=`Whether Gezel-managed tools and background work may create, edit, and delete files in this project's workspace. Internal workspaces default to on; a project opened from an existing folder defaults to off (turning it on asks for confirmation first). Provider-native access such as Codex is shown separately.`,t3=[{value:`plan`,label:`Plan`,hint:`Read and reason without changing workspace files.`},{value:`edit`,label:`Edit`,hint:`Edit inside the workspace; deny boundary crossings.`},{value:`reviewed`,label:`Reviewed`,hint:`Edit in the workspace; send boundary crossings to an independent Codex reviewer.`},{value:`full`,label:`Full`,hint:`Run without Codex sandboxing or approvals. Gezel still blocks a narrow set of unmistakably destructive commands.`}],n3=[{value:`plan`,label:`Plan`,hint:`Read and reason without changing workspace files.`},{value:`default`,label:`Ask`,hint:`Let Claude request permission for tool use.`},{value:`acceptEdits`,label:`Edit`,hint:`Auto-approve file edits; gate shell commands.`},{value:`bypassPermissions`,label:`Full`,hint:`Bypass Claude permission prompts, including for shell commands.`}];function UBe(e){let t=t3.find(t=>t.value===e);return`Codex ${t?.label??e}: ${t?.hint??``}`}function WBe(e){if(e===`mixed`)return`Claude: assigned gezels currently use different permission modes.`;let t=n3.find(t=>t.value===e);return`Claude ${t?.label??e}: ${t?.hint??``}`}var r3=[{value:`active`,label:`Active`},{value:`stable`,label:`Stable`},{value:`readonly`,label:`Read-only`},{value:`inactive`,label:`Inactive`}];function i3({unlocked:e=!1}){return(0,Z.jsxs)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,focusable:`false`,children:[(0,Z.jsx)(`rect`,{x:`3`,y:`7`,width:`10`,height:`7`,rx:`1.25`,stroke:`currentColor`,strokeWidth:`1.5`}),e?(0,Z.jsx)(`path`,{d:`M5 7V5a3 3 0 0 1 5.75-1.2`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`}):(0,Z.jsx)(`path`,{d:`M5 7V5a3 3 0 0 1 6 0v2`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})]})}function GBe({projectStatus:e,statusLocked:t,onStatusChange:n,managedWritesOn:r,onManagedWorkspaceWritesChange:i,codexMode:a,onCodexModeChange:o,claudeMode:s,onClaudeModeChange:c}){let[l,u]=(0,X.useState)(!1);return!n&&!o&&!c&&(!i||r)?null:(0,Z.jsx)(`div`,{className:`project-controls-overflow`,children:(0,Z.jsxs)(U_,{open:l,onOpenChange:u,children:[(0,Z.jsx)(W_,{asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,className:`project-controls-overflow-trigger`,title:`More project controls`,"aria-label":`More project controls`,children:`…`})}),(0,Z.jsx)(K_,{className:`project-controls-overflow-popover`,side:`top`,align:`end`,children:(0,Z.jsxs)(`fieldset`,{className:`project-controls-overflow-fieldset`,children:[(0,Z.jsx)(`legend`,{className:`sr-only`,children:`Project controls overflow`}),n&&(0,Z.jsxs)(`section`,{className:`project-controls-overflow-section`,children:[(0,Z.jsx)(`span`,{className:`project-controls-overflow-label`,children:`Project status`}),(0,Z.jsx)(`div`,{className:`project-controls-overflow-options`,children:r3.map(r=>(0,Z.jsxs)(`button`,{type:`button`,className:`project-controls-overflow-item project-status-select-${r.value}`,"aria-pressed":e===r.value,disabled:t,onClick:()=>{n(r.value),u(!1)},children:[(0,Z.jsx)(`span`,{className:`project-status-select-dot`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{children:r.label})]},r.value))})]}),i&&!r&&(0,Z.jsxs)(`section`,{className:`project-controls-overflow-section`,children:[(0,Z.jsx)(`span`,{className:`project-controls-overflow-label`,children:`Built-in tools`}),(0,Z.jsxs)(`button`,{type:`button`,className:`project-controls-overflow-item`,onClick:()=>{i(!0),u(!1)},children:[(0,Z.jsx)(`span`,{className:`project-writes-select-icon`,"aria-hidden":!0,children:(0,Z.jsx)(i3,{unlocked:!0})}),(0,Z.jsx)(`span`,{children:`Allow workspace edits`})]})]}),a&&o&&(0,Z.jsxs)(`section`,{className:`project-controls-overflow-section`,children:[(0,Z.jsx)(`span`,{className:`project-controls-overflow-label`,children:`Codex access`}),(0,Z.jsx)(`div`,{className:`project-controls-overflow-options`,children:t3.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`project-controls-overflow-item`,"aria-pressed":a===e.value,title:e.hint,onClick:()=>{o(e.value),u(!1)},children:e.label},e.value))})]}),s&&c&&(0,Z.jsxs)(`section`,{className:`project-controls-overflow-section`,children:[(0,Z.jsx)(`span`,{className:`project-controls-overflow-label`,children:`Claude access`}),(0,Z.jsx)(`div`,{className:`project-controls-overflow-options`,children:n3.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`project-controls-overflow-item`,"aria-pressed":s===e.value,title:e.hint,onClick:()=>{c(e.value),u(!1)},children:e.label},e.value))})]})]})})]})})}function KBe({projectId:e,compact:t=!1,managedWorkspaceWritable:n=!0,onManagedWorkspaceWritesChange:r,codexMode:i,onCodexModeChange:a,claudeMode:o,onClaudeModeChange:s,onOpenGitHub:c,status:l,statusLocked:u=!1,onStatusChange:d}){let[f,p]=(0,X.useState)(null),[m,h]=(0,X.useState)(null),[g,_]=(0,X.useState)(null),[v,y]=(0,X.useState)(!1),[b,x]=(0,X.useState)(!1),[S,C]=(0,X.useState)(``),[w,T]=(0,X.useState)(``),[E,D]=(0,X.useState)(null),[O,k]=(0,X.useState)(!1),[A,j]=(0,X.useState)(!1),[M,N]=(0,X.useState)(null),[P,F]=(0,X.useState)(`idle`),[I,L]=(0,X.useState)(null),R=(0,X.useRef)(null),z=n,B=(0,X.useCallback)(async()=>{try{let t=await Q.getProjectGitStatus(e);p(t)}catch{}},[e]),V=(0,X.useCallback)(async()=>{try{h(await Q.getProjectIndexStatus(e))}catch{}},[e]);(0,X.useEffect)(()=>{B(),V();let e=window.setInterval(()=>{B(),V()},3e4);return()=>window.clearInterval(e)},[B,V]);let H=m?.aiDrive!=null||P!==`idle`;(0,X.useEffect)(()=>{if(!H)return;let e=window.setInterval(()=>void V(),5e3);return()=>window.clearInterval(e)},[H,V]),(0,X.useEffect)(()=>{let t=t=>{t.detail?.projectId===e&&B()};return window.addEventListener(Q4,t),()=>window.removeEventListener(Q4,t)},[e,B]);let U=(0,X.useCallback)(async()=>{if(!(A||m===null||m.state===`disabled`||m.state===`indexing`)){j(!0),N(null);try{await Q.refreshProjectIndex(e),h(e=>({state:`indexing`,...e?.meta?{meta:e.meta}:{}})),window.setTimeout(()=>void V(),800)}catch{N(`Couldn’t start the index update. Try again.`)}finally{j(!1)}}},[A,m,e,V]),ee=(0,X.useRef)(null),te=(0,X.useCallback)(async()=>{if(!(P!==`idle`||m===null||m.state===`disabled`||m.aiDrive!=null)){F(`starting`),L(null),ee.current=m;try{await Q.driveIndexEnrichment(e,{intensity:`full`}),F(`running`),window.setTimeout(()=>void V(),800)}catch(e){let t=e&&typeof e==`object`&&`details`in e?e.details?.message:void 0;L(t??`Couldn’t start the full scan. Try again.`),F(`idle`)}}},[P,m,e,V]);(0,X.useEffect)(()=>{P===`running`&&m!==ee.current&&m!==null&&m.aiDrive==null&&F(`idle`)},[P,m]),(0,X.useEffect)(()=>{if(!v)return;let e=e=>{R.current&&!R.current.contains(e.target)&&(y(!1),x(!1))};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[v]),(0,X.useEffect)(()=>{!v||g||Q.listProjectGitBranches(e).then(_).catch(()=>_({local:[],remote:[]}))},[v,g,e]);let W=(0,X.useCallback)((e,t)=>{D({kind:e,text:t}),window.setTimeout(()=>D(null),4e3)},[]),{sync:G,syncing:ne}=e3(e,{onToast:W,onNeedsSave:()=>{W(`err`,`Save your changes first — they’re waiting in the GitHub tab.`),c?.()},onConflicts:()=>c?.(),onAuth:()=>c?.()}),K=(0,X.useCallback)(async()=>{await G(),await B()},[G,B]),q=(0,X.useCallback)(async t=>{y(!1),T(`branch`);try{await Q.setProjectGitBranch(e,t),await B(),W(`ok`,`Switched to ${t}.`)}catch(e){W(`err`,`Couldn’t switch: ${e instanceof Error?e.message:String(e)}`)}finally{T(``)}},[e,B,W]),re=(0,X.useCallback)(async t=>{t.preventDefault();let n=S.trim();if(n){y(!1),x(!1),C(``),T(`branch`);try{await Q.createProjectGitBranch(e,n),_(null),await B(),W(`ok`,`Created and switched to ${n}.`)}catch(e){W(`err`,`Couldn’t create: ${e instanceof Error?e.message:String(e)}`)}finally{T(``)}}},[S,e,B,W]),ie=!!f?.github,J=f?.branch,ae=f?.github?.lastSyncedAt,oe=m?.state??`never`,se=m?.aiScanPending===!0,Y=oe===`disabled`?`disabled`:oe===`indexing`?`indexing`:oe===`fresh`?se?`scan`:`fresh`:`stale`,ce=m?.enrichment;ce&&qBe(ce.embedded,ce.eligible);let le=ce?JBe(ce):null,ue=m?.aiDrive??null,de=m===null?`Checking workspace index`:oe===`disabled`?`Workspace indexing is off`:oe===`indexing`?`Scanning workspace`:oe===`never`?`Workspace not indexed`:oe===`stale`?`Workspace scan is out of date`:se?le===null?`AI indexing is pending`:`AI indexing ${le}% complete`:`Workspace index is ready`,fe=`Indexing status: ${de}`,pe=m===null||oe===`disabled`||oe===`indexing`||A,me=f?TLe({mergeInProgress:f.mergeInProgress,changesCount:f.changesCount,ahead:f.ahead,behind:f.behind}):``,he=f?.mergeInProgress===!0||(f?.changesCount??0)>0||(f?.ahead??0)>0||(f?.behind??0)>0;return(0,Z.jsxs)(`div`,{className:`project-git-status-bar${t?` is-compact`:``}`,children:[(0,Z.jsxs)(`div`,{className:`project-git-status-bar-left`,children:[ie&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`project-git-branch-picker`,ref:R,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`project-git-branch-chip`,onClick:()=>y(e=>!e),disabled:!f?.exists,title:`Switch branch`,children:[(0,Z.jsx)(`span`,{className:`project-git-icon`,"aria-hidden":!0,children:`⎇`}),(0,Z.jsx)(`span`,{className:`project-git-branch-name`,children:J??`(detached)`}),(0,Z.jsx)(N_,{className:`project-git-chevron`})]}),v&&(0,Z.jsxs)(`div`,{className:`project-git-branch-menu`,role:`menu`,children:[g===null?(0,Z.jsx)(`div`,{className:`project-git-branch-loading muted small`,children:`Loading branches…`}):(0,Z.jsxs)(Z.Fragment,{children:[g.local.length>0&&(0,Z.jsxs)(`div`,{className:`project-git-branch-group`,children:[(0,Z.jsx)(`div`,{className:`project-git-branch-group-label muted small`,children:`Local`}),g.local.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`project-git-branch-item${e===J?` is-current`:``}`,onClick:()=>void q(e),children:e},`local-${e}`))]}),g.remote.length>0&&(0,Z.jsxs)(`div`,{className:`project-git-branch-group`,children:[(0,Z.jsx)(`div`,{className:`project-git-branch-group-label muted small`,children:`Remote`}),g.remote.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`project-git-branch-item`,onClick:()=>void q(e),children:e},`remote-${e}`))]})]}),(0,Z.jsx)(`div`,{className:`project-git-branch-divider`}),b?(0,Z.jsxs)(`form`,{className:`project-git-new-branch-form`,onSubmit:re,children:[(0,Z.jsx)(`input`,{value:S,onChange:e=>C(e.target.value),placeholder:`new-branch-name`,autoFocus:!0}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,children:`Create`})]}):(0,Z.jsx)(`button`,{type:`button`,className:`project-git-branch-item project-git-new-branch-trigger`,onClick:()=>x(!0),children:`+ new branch`})]})]}),f&&!t&&(0,Z.jsxs)(`button`,{type:`button`,className:`project-git-status-chip${he?` has-attention`:``}${f.mergeInProgress?` has-conflict`:``}`,onClick:c,title:`Open the GitHub tab`,children:[me,!he&&ae&&(0,Z.jsxs)(`span`,{className:`muted small`,children:[` · synced `,a3(ae)]})]})]}),(0,Z.jsxs)(U_,{open:O,onOpenChange:e=>{k(e),e&&(N(null),V())},children:[(0,Z.jsx)(W_,{asChild:!0,children:(0,Z.jsxs)(`button`,{type:`button`,className:`project-index-chip project-index-chip-${Y}`,"aria-label":fe,title:`Open indexing status`,children:[(0,Z.jsxs)(`svg`,{className:`project-index-icon`,width:`14`,height:`14`,viewBox:`0 0 16 16`,"aria-hidden":`true`,focusable:`false`,children:[(0,Z.jsx)(`rect`,{x:`3`,y:`2`,width:`10.5`,height:`12`,rx:`1.3`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,Z.jsx)(`line`,{x1:`6`,y1:`2`,x2:`6`,y2:`14`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,Z.jsx)(`line`,{x1:`8`,y1:`5.5`,x2:`11.5`,y2:`5.5`,stroke:`currentColor`,strokeWidth:`1.1`,strokeLinecap:`round`}),(0,Z.jsx)(`line`,{x1:`8`,y1:`8`,x2:`11.5`,y2:`8`,stroke:`currentColor`,strokeWidth:`1.1`,strokeLinecap:`round`}),(0,Z.jsx)(`line`,{x1:`8`,y1:`10.5`,x2:`10.5`,y2:`10.5`,stroke:`currentColor`,strokeWidth:`1.1`,strokeLinecap:`round`})]}),(0,Z.jsx)(`span`,{className:`project-index-dot`,"aria-hidden":!0})]})}),(0,Z.jsx)(K_,{className:`project-index-popover`,side:`top`,align:`center`,"aria-label":`Indexing status`,children:(0,Z.jsxs)(`div`,{className:`project-index-panel`,children:[(0,Z.jsxs)(`div`,{className:`project-index-panel-heading`,children:[(0,Z.jsx)(`span`,{className:`project-index-panel-dot project-index-panel-dot-${Y}`,"aria-hidden":!0}),(0,Z.jsx)(`strong`,{children:de})]}),ce&&ce.eligible>0&&le!==null&&(0,Z.jsxs)(`div`,{className:`project-index-panel-progress`,children:[(0,Z.jsxs)(`div`,{className:`project-index-panel-progress-label`,children:[(0,Z.jsx)(`span`,{children:`Indexing progress`}),(0,Z.jsxs)(`strong`,{children:[le,`%`]})]}),(0,Z.jsx)(`div`,{className:`project-index-panel-progress-track`,role:`progressbar`,"aria-label":`Indexing progress`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":le,tabIndex:-1,children:(0,Z.jsx)(`span`,{style:{width:`${le}%`}})}),(0,Z.jsxs)(`span`,{className:`project-index-panel-caption`,children:[ce.embedded,` of `,ce.eligible,` files searchable`,ce.pending>0?` · ${ce.pending} waiting`:``]})]}),(0,Z.jsxs)(`dl`,{className:`project-index-panel-details`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`File scan`}),(0,Z.jsx)(`dd`,{children:YBe(oe)})]}),m?.meta&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`Indexed`}),(0,Z.jsxs)(`dd`,{children:[m.meta.fileCount,` file`,m.meta.fileCount===1?``:`s`,` ·`,` `,m.meta.commandCount,` command`,m.meta.commandCount===1?``:`s`]})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`Last scan`}),(0,Z.jsxs)(`dd`,{children:[a3(m.meta.scannedAt),` ·`,` `,XBe(m.meta.durationMs)]})]})]}),ue&&(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`AI scan`}),(0,Z.jsx)(`dd`,{children:ue===`full`?`Running at full speed`:`Running quietly in background`})]}),ce&&(ce.shadowsPending??0)>0&&(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`Media scan`}),(0,Z.jsxs)(`dd`,{children:[ce.shadowsPending,` waiting`]})]}),ce&&ce.eligible>0&&(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`AI summaries`}),(0,Z.jsxs)(`dd`,{children:[ce.summarized,` of `,ce.eligible,` files`,(ce.skipped??0)>0?` · ${ce.skipped} skipped after repeated failures`:``]})]}),ce?.reviews&&ce.reviews.eligible>0&&(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`Quality review`}),(0,Z.jsxs)(`dd`,{children:[ce.reviews.reviewed,` of `,ce.reviews.eligible,ce.reviews.pending>0?` · ${ce.reviews.pending} waiting`:``,ce.reviews.stale>0?` · ${ce.reviews.stale} to refresh`:``]})]})]}),(0,Z.jsxs)(`div`,{className:`project-index-panel-footer`,children:[(0,Z.jsx)(`span`,{className:`project-index-panel-note`,children:oe===`disabled`?`Workspace indexing is off. Turn it on in Project Settings.`:ue===`full`?`Full scan in progress — it shares the model with chat, so counts move as calls finish.`:ue===`background`?`Background scan in progress — it politely waits while you chat.`:oe===`indexing`?`The status updates automatically while the scan runs.`:se?`AI indexing continues while the app is idle.`:`Refresh the index whenever you need the latest workspace state.`}),(0,Z.jsxs)(`div`,{className:`project-index-panel-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`project-index-update-button`,disabled:pe,onClick:()=>void U(),children:oe===`indexing`||A?`Updating index…`:`Update index now`}),oe!==`disabled`&&(0,Z.jsx)(`button`,{type:`button`,className:`project-index-update-button project-index-full-scan-button`,disabled:P!==`idle`||ue!==null||m===null,onClick:()=>void te(),title:`Bring the whole index up to date at full speed — file scan plus AI summaries, rollups, and reviews, run to completion. Shares the model with chat while it works.`,children:P===`starting`?`Starting full scan…`:P===`running`||ue===`full`?`Full scan running…`:ue===`background`?`Background scan running…`:`Full AI scan now`})]}),M&&(0,Z.jsx)(`span`,{className:`project-index-panel-error`,role:`alert`,children:M}),I&&(0,Z.jsx)(`span`,{className:`project-index-panel-error`,role:`alert`,children:I})]})]})})]}),(0,Z.jsxs)(`div`,{className:`project-controls-inline`,children:[d&&(0,Z.jsxs)(gv,{value:l??`active`,disabled:u,onValueChange:e=>d(e),children:[(0,Z.jsxs)(bv,{className:`project-status-select project-status-select-${l??`active`}`,title:u?`Archived projects are inactive. Restore this project to change its status.`:VBe,"aria-label":`Project status`,children:[(0,Z.jsx)(`span`,{className:`project-status-select-dot`,"aria-hidden":!0}),(0,Z.jsx)(_v,{})]}),(0,Z.jsx)(xv,{children:r3.map(e=>(0,Z.jsx)(Sv,{value:e.value,children:e.label},e.value))})]}),r&&(!t||!z)&&(0,Z.jsxs)(gv,{value:z?`on`:`off`,onValueChange:e=>r(e===`on`),children:[(0,Z.jsxs)(bv,{className:`project-writes-select project-writes-select-${z?`on`:`off`}`,title:HBe,"aria-label":`Built-in tool workspace access for this project`,children:[(0,Z.jsx)(`span`,{className:`project-writes-select-icon`,"aria-hidden":!0,children:(0,Z.jsx)(i3,{unlocked:z})}),(0,Z.jsx)(`span`,{className:`project-permission-scope`,children:`Tools:`}),(0,Z.jsx)(_v,{})]}),(0,Z.jsxs)(xv,{children:[(0,Z.jsx)(Sv,{value:`on`,children:`Can edit`}),(0,Z.jsx)(Sv,{value:`off`,children:`Read-only`})]})]}),i&&a&&(0,Z.jsxs)(gv,{value:i,onValueChange:e=>a(e),children:[(0,Z.jsxs)(bv,{className:`project-writes-select project-codex-mode project-codex-mode-${i}`,title:UBe(i),"aria-label":`Codex execution mode for this project`,children:[(0,Z.jsx)(`span`,{className:`project-writes-select-icon`,"aria-hidden":!0,children:(0,Z.jsx)(i3,{unlocked:i!==`plan`})}),(0,Z.jsx)(`span`,{className:`project-permission-scope`,children:`Codex:`}),(0,Z.jsx)(_v,{})]}),(0,Z.jsx)(xv,{children:t3.map(e=>(0,Z.jsx)(Sv,{value:e.value,textValue:e.label,children:e.label},e.value))})]}),o&&s&&(0,Z.jsxs)(gv,{value:o,onValueChange:e=>{e!==`mixed`&&s(e)},children:[(0,Z.jsxs)(bv,{className:`project-writes-select project-claude-mode project-claude-mode-${o}`,title:WBe(o),"aria-label":`Claude execution mode for this project`,children:[(0,Z.jsx)(`span`,{className:`project-writes-select-icon`,"aria-hidden":!0,children:(0,Z.jsx)(i3,{unlocked:o!==`plan`&&o!==`mixed`})}),(0,Z.jsx)(`span`,{className:`project-permission-scope`,children:`Claude:`}),(0,Z.jsx)(_v,{})]}),(0,Z.jsxs)(xv,{children:[o===`mixed`&&(0,Z.jsx)(Sv,{value:`mixed`,disabled:!0,children:`Mixed`}),n3.map(e=>(0,Z.jsx)(Sv,{value:e.value,textValue:e.label,children:e.label},e.value))]})]})]}),t&&(0,Z.jsx)(GBe,{projectStatus:l??`active`,statusLocked:u,onStatusChange:d,managedWritesOn:z,onManagedWorkspaceWritesChange:r,codexMode:i,onCodexModeChange:a,claudeMode:o,onClaudeModeChange:s}),!r&&!z&&(0,Z.jsxs)(`span`,{className:`project-lockdown-chip`,title:`Managed workspace edits are off for this project. Enable "Allow built-in tools and background work to modify the workspace" in Project → Settings.`,"aria-label":`Built-in tool workspace access is read-only for this project.`,children:[(0,Z.jsx)(`span`,{className:`project-lockdown-chip-icon`,"aria-hidden":!0,children:(0,Z.jsx)(i3,{})}),(0,Z.jsx)(`span`,{className:`project-lockdown-chip-label`,children:`edits off`})]})]}),!t&&(0,Z.jsx)(`div`,{className:`project-git-status-bar-right`,children:ie&&(0,Z.jsx)(`button`,{type:`button`,className:`project-git-action`,onClick:()=>void K(),disabled:ne||w!==``,title:`Get new changes from GitHub and send yours`,children:ne?`Syncing…`:`Sync`})}),E&&(0,Z.jsx)(`output`,{className:`project-git-toast project-git-toast-${E.kind}`,children:E.text})]})}function a3(e){let t=Date.parse(e);if(!Number.isFinite(t))return`recently`;let n=Date.now()-t,r=Math.max(1,Math.round(n/1e3));if(r<60)return`${r}s ago`;let i=Math.round(r/60);if(i<60)return`${i}m ago`;let a=Math.round(i/60);return a<24?`${a}h ago`:new Date(t).toLocaleDateString()}function qBe(e,t){return t<=0?null:Math.round(Math.min(Math.max(e,0),t)/t*100)}function JBe(e){let t=[[e.summarized,e.eligible],[e.embedded,e.eligible]];e.reviews&&t.push([e.reviews.reviewed,e.reviews.eligible]);let n=0,r=0;for(let[e,i]of t)i<=0||(n+=Math.min(Math.max(e,0),i),r+=i);return r>0?Math.round(n/r*100):null}function YBe(e){switch(e){case`fresh`:return`Up to date`;case`stale`:return`Needs a rescan`;case`indexing`:return`Scanning now`;case`never`:return`Not scanned yet`;case`disabled`:return`Off for this project`}}function XBe(e){if(e<1e3)return`${Math.max(1,Math.round(e))}ms`;if(e<6e4)return`${(e/1e3).toFixed(+(e<1e4))}s`;let t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);return n>0?`${t}m ${n}s`:`${t}m`}var o3=[{id:`imap`,label:`IMAP`},{id:`gmail`,label:`Gmail`},{id:`microsoft365`,label:`Microsoft 365`},{id:`outlook`,label:`Outlook.com`}],ZBe=e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim()),QBe={microsoft365:`organizations`,outlook:`consumers`};async function s3(e,t){await Q.bindConnector(e,{type:`mail-imap`,displayName:t.address,config:{provider:`imap`,address:t.address,syncFolders:t.syncFolders??[`INBOX`]},credential:{host:t.host,...t.port?{port:t.port}:{},...t.secure===void 0?{}:{secure:t.secure},user:t.address,pass:t.pass}})}async function c3(e,t,n){let r=window.__GEZEL__;if(!r?.mailOAuthListen||!r.mailOAuthAwait)throw Error(`Connecting Gmail / Microsoft needs the Gezel desktop app.`);let{requestId:i,redirectUri:a}=await r.mailOAuthListen(),o=QBe[t],{authUrl:s,state:c}=await Q.startConnectorOAuth(e,{type:`mail-${t}`,redirectUri:a,displayName:n,loginHint:n,config:{provider:t,address:n,...o?{tenant:o}:{}}}),l=await r.mailOAuthAwait(i,s);if(`error`in l)throw Error(l.error);await Q.completeConnectorOAuth(e,{state:l.state||c,code:l.code})}var l3=e=>e.type.startsWith(`mail-`);function $Be({project:e,onProjectChange:t}){let[n,r]=(0,X.useState)(null),[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(`imap`),[m,h]=(0,X.useState)(``),[g,_]=(0,X.useState)(``),[v,y]=(0,X.useState)(``),[b,x]=(0,X.useState)(``),[S,C]=(0,X.useState)(!0),w=(0,X.useCallback)(async()=>{try{r(await Q.listConnectors(e.id))}catch(e){s(e instanceof Error?e.message:String(e))}},[e.id]);(0,X.useEffect)(()=>{w()},[w]);let T=(0,X.useCallback)(()=>{p(`imap`),h(``),_(``),y(``),x(``),C(!0)},[]),E=(0,X.useCallback)(async()=>{a(!0),s(``),l(``);try{let t=(n?.bindings??[]).filter(l3),r=(await Promise.all(t.map(t=>Q.syncConnector(e.id,t.id).then(e=>e.result).catch(()=>({}))))).reduce((e,t)=>e+(t.written??0)+(t.quarantined??0),0);l(r>0?`Synced ${r} new message(s).`:`Synced — no new mail.`),await w()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(!1)}},[e.id,n,w]),D=(0,X.useCallback)(async()=>{s(``),l(``);let n=m.trim();if(!ZBe(n)){s(`Enter a valid email address.`);return}if(f===`imap`&&(!g.trim()||!b)){s(`IMAP needs a host and a password.`);return}a(!0);try{f===`imap`?await s3(e.id,{address:n,host:g.trim(),...v.trim()?{port:Number(v.trim())}:{},secure:S,pass:b}):await c3(e.id,f,n),l(`Mailbox linked.`),d(!1),T(),await w();try{let n=await Q.getProject(e.id);n&&t?.(n)}catch{}}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(!1)}},[e.id,f,m,g,v,b,S,w,t,T]),O=(n?.bindings??[]).filter(l3);return(0,Z.jsxs)(`div`,{className:`gz-mail-tab`,children:[(0,Z.jsxs)(`div`,{className:`gz-mail-header`,children:[(0,Z.jsx)(`h3`,{children:`Mail`}),O.length>0&&(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void E(),disabled:i,children:i?`Working…`:`Sync now`})]}),O.length===0?(0,Z.jsx)(`p`,{className:`muted`,children:`No mailbox linked yet. Connect one to start syncing mail into this project as searchable files.`}):(0,Z.jsx)(`ul`,{className:`gz-mail-accounts`,children:O.map(e=>(0,Z.jsxs)(`li`,{className:`gz-mail-account`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{children:e.displayName??e.id}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[` · `,e.type.replace(/^mail-/,``)]})]}),(0,Z.jsx)(`div`,{className:`small`,children:e.lastError?(0,Z.jsxs)(`span`,{className:`error`,children:[`Error: `,e.lastError]}):e.lastSyncedAt?(0,Z.jsxs)(`span`,{className:`muted`,children:[`Last synced `,new Date(e.lastSyncedAt).toLocaleString()]}):(0,Z.jsx)(`span`,{className:`muted`,children:`Not synced yet`})})]},e.id))}),u?(0,Z.jsxs)(`div`,{className:`gz-mail-link-form`,children:[(0,Z.jsxs)(`div`,{className:`gz-type-field`,children:[(0,Z.jsx)(`span`,{className:`gz-type-field-label`,children:`Provider`}),(0,Z.jsx)(`div`,{className:`gz-type-picker`,role:`radiogroup`,"aria-label":`Mail provider`,children:o3.map(e=>(0,Z.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":e.id===f,className:`gz-type-chip${e.id===f?` active`:``}`,onClick:()=>p(e.id),children:e.label},e.id))})]}),(0,Z.jsxs)(`label`,{children:[`Email address`,(0,Z.jsx)(`input`,{type:`email`,value:m,onChange:e=>h(e.target.value),placeholder:`you@example.com`,autoComplete:`email`})]}),f===`imap`?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`label`,{children:[`IMAP host`,(0,Z.jsx)(`input`,{value:g,onChange:e=>_(e.target.value),placeholder:`imap.example.com`})]}),(0,Z.jsxs)(`div`,{className:`gz-imap-row`,children:[(0,Z.jsxs)(`label`,{className:`gz-imap-port`,children:[`Port `,(0,Z.jsx)(`span`,{className:`muted`,children:`(optional)`}),(0,Z.jsx)(`input`,{value:v,onChange:e=>y(e.target.value),placeholder:`993`,inputMode:`numeric`})]}),(0,Z.jsxs)(`label`,{className:`gz-imap-tls`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:S,onChange:e=>C(e.target.checked)}),`Use TLS`]})]}),(0,Z.jsxs)(`label`,{children:[`Password / app password`,(0,Z.jsx)(`input`,{type:`password`,value:b,onChange:e=>x(e.target.value),autoComplete:`off`})]})]}):(0,Z.jsxs)(`p`,{className:`muted small`,children:[`You'll authorize `,o3.find(e=>e.id===f)?.label,` in your browser — a window opens when you click Connect.`]}),(0,Z.jsxs)(`div`,{className:`gz-mail-link-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>{d(!1),T(),s(``)},disabled:i,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>void D(),disabled:i,children:i?`Connecting…`:f===`imap`?`Link`:`Connect`})]})]}):(0,Z.jsx)(`button`,{type:`button`,className:`gz-mail-connect`,onClick:()=>{d(!0),s(``),l(``)},children:`Connect a mailbox`}),o&&(0,Z.jsx)(`p`,{className:`error small`,children:o}),c&&(0,Z.jsx)(`p`,{className:`muted small`,children:c})]})}var u3=`gezel:output-pane-maximized`,d3=`gezel:restore-output-pane`;function f3(e){window.dispatchEvent(new CustomEvent(u3,{detail:{maximized:e}}))}function eVe(){window.dispatchEvent(new CustomEvent(d3))}var tVe=360,p3={width:16,height:16,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,focusable:!1},nVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M12.5 8a4.5 4.5 0 1 1-1.32-3.18`}),(0,Z.jsx)(`path`,{d:`M12.8 2.6v2.6h-2.6`})]}),rVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M8 3.5H4.2A0.7 0.7 0 0 0 3.5 4.2V11.8A0.7 0.7 0 0 0 4.2 12.5H11.8A0.7 0.7 0 0 0 12.5 11.8V8`}),(0,Z.jsx)(`path`,{d:`M9.5 3.5H12.5V6.5`}),(0,Z.jsx)(`path`,{d:`M12.5 3.5 8 8`})]}),iVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M9.5 3.5H12.5V6.5`}),(0,Z.jsx)(`path`,{d:`M12.5 3.5 9 7`}),(0,Z.jsx)(`path`,{d:`M6.5 12.5H3.5V9.5`}),(0,Z.jsx)(`path`,{d:`M3.5 12.5 7 9`})]}),aVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M12.5 6.5H9.5V3.5`}),(0,Z.jsx)(`path`,{d:`M9.5 6.5 12.8 3.2`}),(0,Z.jsx)(`path`,{d:`M3.5 9.5H6.5V12.5`}),(0,Z.jsx)(`path`,{d:`M6.5 9.5 3.2 12.8`})]}),oVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M4 4 12 12`}),(0,Z.jsx)(`path`,{d:`M12 4 4 12`})]}),sVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M5 5 6.2 3.5H9.8L11 5H12.5A1 1 0 0 1 13.5 6V12A1 1 0 0 1 12.5 13H3.5A1 1 0 0 1 2.5 12V6A1 1 0 0 1 3.5 5H5Z`}),(0,Z.jsx)(`circle`,{cx:`8`,cy:`9`,r:`2.25`})]}),cVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M4 2.5H9.5L12 5V13.5H4Z`}),(0,Z.jsx)(`path`,{d:`M9.5 2.5V5H12`}),(0,Z.jsx)(`path`,{d:`M6 8H10`}),(0,Z.jsx)(`path`,{d:`M6 10.5H9`})]});function lVe({actions:e}){let[t,n]=(0,X.useState)(!1),r=(0,X.useRef)(null);return(0,X.useEffect)(()=>{if(!t)return;let e=e=>{r.current&&!r.current.contains(e.target)&&n(!1)},i=e=>{e.key===`Escape`&&n(!1)};return window.addEventListener(`mousedown`,e),window.addEventListener(`keydown`,i),()=>{window.removeEventListener(`mousedown`,e),window.removeEventListener(`keydown`,i)}},[t]),(0,Z.jsxs)(`div`,{className:`project-output-menu`,ref:r,children:[(0,Z.jsx)(`button`,{type:`button`,className:`project-output-btn`,onClick:()=>n(e=>!e),title:`More actions`,"aria-label":`More output actions`,"aria-haspopup":`menu`,"aria-expanded":t,children:`⋯`}),t&&(0,Z.jsx)(`div`,{className:`project-output-menu-dropdown`,role:`menu`,children:e.map(e=>(0,Z.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`project-output-menu-item`,onClick:()=>{n(!1),e.onClick()},disabled:e.disabled,title:e.title,children:[(0,Z.jsx)(`span`,{className:`project-output-menu-item-glyph`,"aria-hidden":`true`,children:e.icon}),(0,Z.jsx)(`span`,{children:e.label})]},e.key))})]})}function uVe({projectId:e,htmlFiles:t,typePage:n,onClose:r,onDebugFrame:i}){let[a,o]=(0,X.useState)(``),[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(0),[p,m]=(0,X.useState)(!1),[h,g]=(0,X.useState)(!1),[_,v]=(0,X.useState)(``),[y,b]=(0,X.useState)(!1),[x,S]=(0,X.useState)(null),[C,w]=(0,X.useState)(`idle`),[T,E]=(0,X.useState)(null),D=(0,X.useRef)([]),O=(0,X.useRef)(null),k=(0,X.useRef)(null),A=x0(k,tVe);(0,X.useEffect)(()=>{let e=!1;return Q.getConfig().then(t=>{e||b(t.debugMode===!0)}).catch(()=>{}),()=>{e=!0}},[]),(0,X.useEffect)(()=>{let n=!1;if(t.length===0){c(``),u(!1);return}return u(!0),(async()=>{let r=await _Ve(e,t);n||(c(r),u(!1))})(),()=>{n=!0}},[e,(0,X.useMemo)(()=>[...t].sort().join(`
|
|
889
|
+
`),stepId:r.activeStepId}).catch(()=>{})}await s(r),o()}catch(e){J(e.message)}finally{re(!1)}return}let r=M.trim();if(!r){J(`Title is required.`);return}if(I.trim().length<40){J(`Description must be at least 40 characters — the job-to-be-done from the user's perspective. What does success look like?`);return}let i=R.split(/\n|,/).map(e=>e.trim()).filter(Boolean).map(e=>({name:e}));i.length===0&&i.push({name:`Main`}),re(!0);try{await s(t===`scheduled`?await Q.createTask(u,{title:r,description:I.trim(),steps:[{name:`Wait for schedule`,prompt:`This host holds a recurring schedule. It does not perform the work itself; each tick creates a fresh child task.`}],spawnsSteps:i,...ue?{assignee:ue}:{},cron:{expression:n,overlap:ne}}):await Q.createTask(u,{title:r,description:I.trim(),steps:i,...ue?{assignee:ue}:{},...t===`one-time`?{status:`draft`}:{nightShift:{enabled:!0},dispatchEntry:!0}})),o()}catch(e){J(e.message)}finally{re(!1)}},[q,t,u,oe,v,ee,M,ue,I,R,W,ne,s,o]),xe=oe&&Hze(oe.manifest)?oe.manifest.paramSchema:null,Se=q||oe!==null&&ye.length>0;return(0,Z.jsx)(dm,{open:e,onOpenChange:e=>{e||o()},children:(0,Z.jsxs)(fm,{children:[(0,Z.jsx)(gm,{}),(0,Z.jsx)(_m,{className:`gz-npd gz-ntd`,children:(0,Z.jsxs)(`form`,{onSubmit:be,style:{display:`contents`},children:[(0,Z.jsxs)(`header`,{className:`gz-npd-header`,children:[(0,Z.jsxs)(`div`,{className:`gz-npd-header-copy`,children:[(0,Z.jsx)(mm,{asChild:!0,children:(0,Z.jsx)(`h3`,{children:c.title})}),(0,Z.jsx)(`p`,{className:`gz-npd-header-sub`,children:c.subtitle})]}),(0,Z.jsxs)(`label`,{className:`gz-npd-search`,children:[(0,Z.jsx)(`span`,{className:`sr-only`,children:`Search craftbooks`}),(0,Z.jsx)(`input`,{type:`search`,value:E,onChange:e=>D(e.target.value),placeholder:`Search craftbooks…`})]})]}),(0,Z.jsxs)(`div`,{className:`gz-npd-body`,children:[(0,Z.jsxs)(`nav`,{className:`gz-npd-rail`,"aria-label":`Craftbook shelves`,children:[me.length>0&&(0,Z.jsxs)(`button`,{type:`button`,className:`gz-npd-rail-item${!pe&&O===`recommended`?` active`:``}`,onClick:()=>k(`recommended`),children:[(0,Z.jsx)(_4,{glyph:`sprout`,size:16}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-label`,children:c.featuredLabel}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-count`,children:me.length})]}),(0,Z.jsxs)(`button`,{type:`button`,className:`gz-npd-rail-item${!pe&&O===`all`?` active`:``}`,onClick:()=>k(`all`),children:[(0,Z.jsx)(_4,{glyph:`sheet`,size:16}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-label`,children:`All craftbooks`}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-count`,children:f.length})]}),de.map(e=>(0,Z.jsxs)(`button`,{type:`button`,className:`gz-npd-rail-item${!pe&&O===e.id?` active`:``}`,onClick:()=>k(e.id),children:[(0,Z.jsx)(_4,{glyph:e.glyph,size:16}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-label`,children:e.label}),(0,Z.jsx)(`span`,{className:`gz-npd-rail-count`,children:e.bookIds.size})]},e.id))]}),(0,Z.jsxs)(`div`,{className:`gz-npd-gallery`,role:`radiogroup`,"aria-label":`Task type`,children:[_e&&(0,Z.jsxs)(`section`,{className:`gz-npd-section`,children:[(0,Z.jsx)(`div`,{className:`gz-npd-section-head`,children:(0,Z.jsx)(`span`,{className:`gz-npd-section-title`,children:`Start fresh`})}),(0,Z.jsx)(`div`,{className:`gz-npd-grid`,children:(0,Z.jsx)(E4,{label:c.generalLabel,description:c.generalDescription,glyph:x4.glyph,index:0,active:w===null,onSelect:Y})})]}),ve.map(e=>(0,Z.jsxs)(`section`,{className:`gz-npd-section`,children:[(0,Z.jsxs)(`div`,{className:`gz-npd-section-head`,children:[(0,Z.jsx)(`span`,{className:`gz-npd-section-title`,children:e.title}),e.tagline&&(0,Z.jsx)(`span`,{className:`gz-npd-section-tagline`,children:e.tagline})]}),e.books.length>0?(0,Z.jsx)(`div`,{className:`gz-npd-grid`,children:e.books.map((e,t)=>(0,Z.jsx)(E4,{label:e.manifest.name,description:e.manifest.description,glyph:b4(e.manifest),...e.item.iconSvg?{iconSvg:e.item.iconSvg}:{},...e.item.logoUrl?{logoUrl:e.item.logoUrl}:{},suggested:he(e),index:t+1,active:e.manifest.id===w,onSelect:()=>ce(e)},e.manifest.id))}):(0,Z.jsx)(`p`,{className:`gz-npd-empty`,children:m?pe?`No craftbooks match your search.`:`No craftbooks here yet.`:`Loading craftbooks…`}),e.id===`recommended`&&f.length>me.length&&(0,Z.jsxs)(`button`,{type:`button`,className:`gz-ntd-show-all`,onClick:()=>k(`all`),children:[`Browse all `,f.length,` craftbooks`]})]},e.id))]}),(0,Z.jsxs)(`aside`,{className:`gz-npd-pane`,children:[(0,Z.jsxs)(`div`,{className:`gz-npd-pane-scroll`,children:[oe?(0,Z.jsxs)(`div`,{className:`gz-npd-hero`,children:[(0,Z.jsx)(`div`,{className:`gz-npd-hero-art`,"aria-hidden":`true`,children:(0,Z.jsx)(G2,{...oe.item.iconSvg?{iconSvg:oe.item.iconSvg}:{},...oe.item.logoUrl?{logoUrl:oe.item.logoUrl}:{},svgClassName:`gz-npd-hero-art-svg`,fallback:(0,Z.jsx)(_4,{glyph:b4(oe.manifest),size:34})})}),(0,Z.jsxs)(`p`,{className:`gz-npd-hero-eyebrow`,children:[`Craftbook`,he(oe)?t===`night-shift`?` · recommended for Night Shift`:t===`scheduled`?` · recommended for schedules`:` · recommended`:``]}),(0,Z.jsx)(`h4`,{className:`gz-npd-hero-name`,children:oe.manifest.name}),(0,Z.jsx)(`p`,{className:`gz-npd-hero-description`,children:oe.manifest.description}),oe.manifest.basedOn&&(0,Z.jsxs)(`p`,{className:`gz-ntd-based-on`,children:[`Based on`,` `,(0,Z.jsx)(`a`,{href:oe.manifest.basedOn.url,target:`_blank`,rel:`noreferrer`,children:oe.manifest.basedOn.name})]}),(0,Z.jsxs)(`div`,{className:`gz-ntd-steps`,children:[(0,Z.jsxs)(`p`,{className:`gz-npd-give-eyebrow`,children:[oe.manifest.steps.length,` step`,oe.manifest.steps.length===1?``:`s`]}),(0,Z.jsx)(`ol`,{className:`gz-ntd-steps-list`,children:oe.manifest.steps.map(e=>(0,Z.jsxs)(`li`,{children:[(0,Z.jsx)(`span`,{className:`gz-ntd-step-name`,children:e.name}),e.suggestedRole&&(0,Z.jsx)(`span`,{className:`gz-ntd-step-role`,children:e.suggestedRole})]},e.id))})]})]}):(0,Z.jsxs)(`div`,{className:`gz-npd-hero`,children:[(0,Z.jsx)(`div`,{className:`gz-npd-hero-art`,"aria-hidden":`true`,children:(0,Z.jsx)(_4,{glyph:x4.glyph,size:34})}),(0,Z.jsx)(`p`,{className:`gz-npd-hero-eyebrow`,children:t===`one-time`?`Blank task`:t===`scheduled`?`Blank schedule`:`Blank Night Shift task`}),(0,Z.jsx)(`h4`,{className:`gz-npd-hero-name`,children:c.generalLabel}),(0,Z.jsx)(`p`,{className:`gz-npd-hero-description`,children:c.generalDescription})]}),(0,Z.jsxs)(`div`,{className:`gz-npd-pane-form`,children:[!a&&(0,Z.jsxs)(`label`,{children:[`Project`,(0,Z.jsxs)(gv,{value:u,onValueChange:e=>{d(e),T(null),te({}),k(`all`),j(!1),J(``)},children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsx)(xv,{children:r.map(e=>(0,Z.jsx)(Sv,{value:e.id,children:e.name},e.id))})]})]}),(0,Z.jsxs)(`label`,{children:[`Title`,(0,Z.jsx)(`input`,{value:M,onChange:e=>{N(e.target.value),F(!0)},placeholder:oe?oe.manifest.name:`e.g. Ship the landing page`})]}),ye.length>0&&oe&&(0,Z.jsxs)(`div`,{className:`gz-ntd-needs`,children:[(0,Z.jsx)(`p`,{className:`gz-npd-give-eyebrow`,children:`Needs setup`}),(0,Z.jsx)(Q1,{missing:ye,onAllInstalled:()=>void ae(),onCancel:Y})]}),xe&&ye.length===0&&(0,Z.jsx)(`div`,{className:`gz-npd-params`,children:(0,Z.jsx)(SQ,{schema:xe,value:ee,onChange:e=>{te(e??{}),J(``)},density:`compact`})}),!oe&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`label`,{children:[`Description `,(0,Z.jsx)(`span`,{className:`muted`,children:`· a sentence or two`}),(0,Z.jsx)(`textarea`,{value:I,onChange:e=>L(e.target.value),rows:3,placeholder:`What's the problem? What does success look like for the user?`})]}),(0,Z.jsxs)(`label`,{children:[`Steps `,(0,Z.jsx)(`span`,{className:`muted`,children:`(one per line)`}),(0,Z.jsx)(`textarea`,{value:R,onChange:e=>z(e.target.value),rows:3})]})]}),(0,Z.jsxs)(`label`,{children:[`Assign to`,(0,Z.jsxs)(gv,{value:le,onValueChange:e=>{V(e),U(!0)},children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsxs)(xv,{children:[se&&(0,Z.jsxs)(Sv,{value:C4,children:[`Auto — the `,se,` for step 1`]}),i.map(e=>(0,Z.jsxs)(Sv,{value:e.id,children:[e.name,e.role?` — ${e.role}`:``]},e.id)),(0,Z.jsx)(Sv,{value:`__user`,children:`Me (no gezel)`})]})]}),le===C4?(0,Z.jsxs)(`small`,{className:`muted`,children:[`Every step picks its own specialist by role when the task fires. Step 1 goes to the `,se,`, and whoever that turns out to be owns the task.`]}):oe&&(0,Z.jsx)(`small`,{className:`muted`,children:`Steps that name a role pick their own specialist when the task fires — this only covers steps that name none.`}),le===`__user`&&(0,Z.jsx)(`small`,{className:`muted`,children:`Assigned to you — firing won't hand it to a gezel.`})]}),t===`scheduled`&&(0,Z.jsxs)(`div`,{className:`gz-ntd-schedule`,children:[(0,Z.jsx)(`p`,{className:`gz-npd-give-eyebrow`,children:`Schedule`}),(0,Z.jsxs)(`label`,{children:[`Cron expression `,(0,Z.jsx)(`span`,{className:`muted`,children:`(UTC, 5-field)`}),(0,Z.jsx)(`input`,{value:W,placeholder:`e.g. 0 9 * * 1 — every Monday 09:00`,onChange:e=>G(e.target.value)})]}),(0,Z.jsxs)(`label`,{children:[`Overlap policy`,(0,Z.jsxs)(gv,{value:ne,onValueChange:e=>K(e),children:[(0,Z.jsx)(bv,{children:(0,Z.jsx)(_v,{})}),(0,Z.jsxs)(xv,{children:[(0,Z.jsx)(Sv,{value:`skip`,children:`skip — don't spawn if a prior run is still active`}),(0,Z.jsx)(Sv,{value:`queue`,children:`queue — always spawn, let the runner throttle`}),(0,Z.jsx)(Sv,{value:`concurrent`,children:`concurrent — spawn unconditionally`})]})]})]})]})]}),ie&&(0,Z.jsx)(`p`,{className:`error small`,children:ie})]},w??`__general`),(0,Z.jsxs)(`div`,{className:`gz-npd-pane-footer`,children:[(0,Z.jsx)(`p`,{className:`gz-ntd-footnote`,children:t===`one-time`&&oe?`Starts immediately — the first gezel gets to work as soon as you create it.`:c.footnote}),(0,Z.jsxs)(vm,{children:[(0,Z.jsx)(`button`,{type:`button`,onClick:o,disabled:q,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,disabled:Se,children:q?t===`one-time`&&oe?`Starting…`:`Creating…`:t===`one-time`&&oe?`Create & start`:c.submitLabel})]})]})]})]})]})})]})})}function T4(e,t){let n=e.manifest.name.toLowerCase();return n===t?0:n.startsWith(t)?1:n.split(/\s+/).some(e=>e.startsWith(t))?2:n.includes(t)?3:`${e.manifest.id} ${(e.manifest.tags??[]).join(` `)}`.toLowerCase().includes(t)?4:5}function E4({label:e,description:t,active:n,iconSvg:r,logoUrl:i,glyph:a,suggested:o=!1,index:s,onSelect:c}){return(0,Z.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":n,"aria-label":e,className:`gz-npd-card${n?` active`:``}${o?` gz-ntd-card-suggested`:``}`,onClick:c,style:{"--card-i":Math.min(s,11)},children:[(0,Z.jsx)(`span`,{className:`gz-npd-card-mark`,"aria-hidden":`true`,children:(0,Z.jsx)(G2,{...r?{iconSvg:r}:{},...i?{logoUrl:i}:{},svgClassName:`gz-npd-card-mark-svg`,fallback:(0,Z.jsx)(_4,{glyph:a,size:22})})}),(0,Z.jsx)(`span`,{className:`gz-npd-card-name`,children:e}),(0,Z.jsx)(`span`,{className:`gz-npd-card-description`,children:t})]})}var Kze=750,qze=2e4,D4={inflight:0,errored:1,idle:2};function O4(e){let t=Date.parse(e);return Number.isNaN(t)?0:t}function Jze(e){let t=e.replace(/\s+/g,` `).trim(),n=``;for(let e of t){if(n.length+e.length>200)break;n+=e}return n}function k4(e,t,n){let r=!1,i=e.map(e=>{if(e.id!==t)return e;r=!0;let i=new Set(e.involvedGezelIds??[e.gezelId]);n.from&&i.add(n.from.gezelId);let a=Jze(n.content);return{...e,lastActivityAt:n.at,involvedGezelIds:[...i],...a?{lastMessagePreview:a}:{}}});return r?i:null}function Yze(e){let{sessions:t,inflight:n,errored:r,now:i,pinnedSessionId:a,groupedTaskRefs:o,maxInline:s=6}=e,c=[],l=new Map,u=t.filter(e=>!e.archived&&!e.taskRef).reduce((e,t)=>!e||O4(t.lastActivityAt)>O4(e.lastActivityAt)?t:e,null)?.id;for(let e of t){if(e.archived)continue;let t=r.get(e.id)??e.lastTurnError,s=n.has(e.id)?`inflight`:t?`errored`:`idle`,d={sessionId:e.id,gezelId:e.gezelId,title:I0(L0(e.title)),lastActivityAt:e.lastActivityAt,state:s,involvedGezelIds:e.involvedGezelIds&&e.involvedGezelIds.length>0?e.involvedGezelIds:[e.gezelId],...e.lastMessagePreview?{lastMessagePreview:e.lastMessagePreview}:{},...e.taskRef?{taskRef:e.taskRef}:{},...t?{error:t}:{}};if(e.taskRef&&o?.has(e.taskRef)){let t=l.get(e.taskRef);(!t||O4(d.lastActivityAt)>O4(t.lastActivityAt))&&l.set(e.taskRef,d);continue}let f=a!==void 0&&e.id===a,p=e.id===u;s===`idle`&&!f&&!p&&i-O4(e.lastActivityAt)>864e5||c.push(d)}c.sort((e,t)=>{let n=D4[e.state]-D4[t.state];return n===0?O4(t.lastActivityAt)-O4(e.lastActivityAt):n});let d=c.filter(e=>e.state!==`idle`).length,f=Math.max(s,d);for(let e of[a,u]){if(e===void 0)continue;let t=c.findIndex(t=>t.sessionId===e);t>=f&&(f=t+1)}return{pills:c.slice(0,f),overflow:c.slice(f),taskPills:l}}function Xze({projectId:e,gezelId:t,pinnedSessionId:n,groupedTaskRefs:r,refreshKey:i}){let[a,o]=(0,X.useState)([]),s=(0,X.useRef)([]),[c,l]=(0,X.useState)(!0),[u,d]=(0,X.useState)(()=>new Set),[f,p]=(0,X.useState)(()=>new Map),[m,h]=(0,X.useState)(0),g=(0,X.useCallback)(async()=>{try{let n=await Q.listChatSessions({projectId:e,...t?{gezelId:t}:{}});s.current=n.sessions,o(n.sessions)}catch{}finally{l(!1)}},[e,t]),_=(0,X.useCallback)(async()=>{try{let{inflight:n}=await Q.listInflightTurns({projectId:e,...t?{gezelId:t}:{}});d(new Set(n.map(e=>e.sessionId)))}catch{}},[e,t]);(0,X.useEffect)(()=>{l(!0),g(),_()},[g,_,i,n]),(0,X.useEffect)(()=>{let e=window.setInterval(()=>void _(),qze);return()=>window.clearInterval(e)},[_]),(0,X.useEffect)(()=>{let e=window.setInterval(()=>h(e=>e+1),6e4);return()=>window.clearInterval(e)},[]),(0,X.useEffect)(()=>{let e=()=>void g();return window.addEventListener(`gezel:session-error-cleared`,e),()=>window.removeEventListener(`gezel:session-error-cleared`,e)},[g]);let v=(0,X.useRef)(null);(0,X.useEffect)(()=>{let n=new AbortController,r=()=>{v.current!==null&&window.clearTimeout(v.current),v.current=window.setTimeout(()=>{v.current=null,g()},Kze)};return(async()=>{try{for await(let i of Df({url:Q.projectEventsUrl(e),headers:Q.authHeader(),signal:n.signal,fetch:Q.getFetch()})){let{event:e,sessionId:n}=i;if(!(t&&i.gezelId!==t)){if(e.type===`user_message`){d(e=>{if(e.has(n))return e;let t=new Set(e);return t.add(n),t});let t=k4(s.current,n,e.message);t?(s.current=t,o(t)):g()}else(e.type===`done`||e.type===`error`||e.type===`cancelled`)&&d(e=>{if(!e.has(n))return e;let t=new Set(e);return t.delete(n),t});if(e.type===`error`)p(t=>{let r=new Map(t);return r.set(n,e.error),r});else if(e.type===`complete`){let t=k4(s.current,n,e.message);t&&(s.current=t,o(t)),p(e=>{if(!e.has(n))return e;let t=new Map(e);return t.delete(n),t})}(e.type===`done`||e.type===`complete`)&&r()}}}catch{}})(),()=>{n.abort(),v.current!==null&&(window.clearTimeout(v.current),v.current=null)}},[e,t,g]);let{pills:y,overflow:b,taskPills:x}=(0,X.useMemo)(()=>Yze({sessions:a,inflight:u,errored:f,now:Date.now(),pinnedSessionId:n,...r?{groupedTaskRefs:r}:{}}),[a,u,f,n,r,m]);return{pills:y,overflow:b,taskPills:x,loading:c}}var Zze=750;function Qze({projectId:e,refreshKey:t}){let[n,r]=(0,X.useState)([]),[i,a]=(0,X.useState)(!0),o=(0,X.useCallback)(async()=>{try{let t=await Q.listProjectTasks(e,{status:`active`});r(t.tasks)}catch{}finally{a(!1)}},[e]);(0,X.useEffect)(()=>{a(!0),o()},[o,t]);let s=(0,X.useRef)(null);return(0,X.useEffect)(()=>{let t=new AbortController,n=()=>{s.current!==null&&window.clearTimeout(s.current),s.current=window.setTimeout(()=>{s.current=null,o()},Zze)};return(async()=>{try{for await(let r of Df({url:Q.projectEventsUrl(e),headers:Q.authHeader(),signal:t.signal,fetch:Q.getFetch()}))r.event.type===`task_event`&&n()}catch{}})(),()=>{t.abort(),s.current!==null&&(window.clearTimeout(s.current),s.current=null)}},[e,o]),{tasks:n,loading:i}}var $ze=1440*60*1e3;function eBe(e){let t=Date.parse(e);return Number.isNaN(t)?0:t}function tBe({projectId:e,gezelId:t,gezels:n,activeSessionId:r,activeTaskRef:a,activeTerminalThreadId:o,onFocusThread:s,onFocusTask:c,onFocusTerminal:l,onNewTask:u,refreshKey:d,terminalRefreshKey:f}){let{tasks:p}=Qze({projectId:e,refreshKey:d}),{pills:m,overflow:h,taskPills:g}=Xze({projectId:e,gezelId:t,pinnedSessionId:r,groupedTaskRefs:(0,X.useMemo)(()=>new Set(p.map(e=>e.ref)),[p]),refreshKey:d}),[_,v]=(0,X.useState)([]),y=l!==void 0;(0,X.useEffect)(()=>{if(!y){v([]);return}let t=!1;return Q.listTerminalThreads(e).then(e=>{if(t)return;let n=Date.now()-$ze;v(e.threads.filter(e=>!e.archived&&eBe(e.lastActivityAt)>=n))}).catch(()=>{}),()=>{t=!0}},[e,y,f]);let b=(0,X.useMemo)(()=>_.filter(t=>t.projectId===e),[_,e]),x=fC(),S=e=>{let t=n.find(t=>t.id===e);return t?i({name:t.name,roleBasedName:t.roleBasedName},x):`someone`},C=e=>[...new Set(e.involvedGezelIds.map(S))].join(`, `),w=[...m,...g.values()],T=w.filter(e=>e.state===`inflight`).length,E=w.filter(e=>e.state===`errored`).length,D=[T>0?`${T} ${T===1?`thread`:`threads`} working`:``,E>0?`${E} needs attention`:``].filter(Boolean).join(`, `),O=m.length===0&&b.length===0&&p.length===0,{scrollRef:k,overflowBar:A}=nBe(m.length+h.length+b.length+p.length+ +!!O);return(0,Z.jsxs)(`div`,{className:`chat-pill-row`,role:`toolbar`,"aria-label":`Threads, terminal windows, and tasks`,children:[(0,Z.jsx)(`output`,{className:`sr-only`,children:D}),(0,Z.jsxs)(`div`,{className:`chat-pill-row-scroller`,children:[(0,Z.jsxs)(`div`,{className:`chat-pill-row-scroll`,ref:k,onScroll:A.onScroll,children:[O&&(0,Z.jsx)(`span`,{className:`chat-pill-row-empty muted small`,children:`No recent threads`}),p.map(e=>{let t=g.get(e.ref);return(0,Z.jsx)(oBe,{task:e,latestThread:t,gezels:n,gezelNames:t?C(t):e.assignee.kind===`gezel`?S(e.assignee.gezelId):`You`,active:e.ref===a,onFocus:c},e.ref)}),m.map(e=>(0,Z.jsx)(iBe,{pill:e,gezels:n,gezelNames:C(e),active:e.sessionId===r,onFocus:s},e.sessionId)),h.length>0&&(0,Z.jsxs)(O_,{children:[(0,Z.jsxs)(k_,{className:`chat-pill chat-pill-overflow`,children:[`+`,h.length,` more`]}),(0,Z.jsx)(A_,{children:(0,Z.jsx)(j_,{className:`chat-rail-section-tab-menu chat-pill-overflow-menu`,align:`start`,sideOffset:4,children:h.map(e=>(0,Z.jsx)(M_,{onSelect:()=>s(e),className:`chat-pill-overflow-item chat-pill-${e.state}`,children:(0,Z.jsx)(A4,{pill:e,gezelNames:C(e)})},e.sessionId))})})]}),l&&b.map(e=>(0,Z.jsx)(rBe,{thread:e,active:e.id===o,onFocus:l},e.id))]}),A.node]}),u&&(0,Z.jsx)(`button`,{type:`button`,className:`chat-pill-new-task`,onClick:u,"aria-label":`New task`,title:`New task — pick a craftbook`,children:`Do +`})]})}function nBe(e){let t=(0,X.useRef)(null),[n,r]=(0,X.useState)(null),i=(0,X.useCallback)(()=>{let e=t.current;if(!e)return;let{scrollWidth:n,clientWidth:i,scrollLeft:a}=e;if(n-i<2){r(e=>e===null?e:null);return}let o=i/n,s=a/n;r(e=>e&&Math.abs(e.left-s)<5e-4&&Math.abs(e.width-o)<5e-4?e:{left:s,width:o})},[]);return(0,X.useEffect)(()=>{i()},[i,e]),(0,X.useEffect)(()=>{let e=t.current;if(!e||typeof ResizeObserver>`u`)return;let n=new ResizeObserver(()=>i());return n.observe(e),()=>n.disconnect()},[i]),{scrollRef:t,overflowBar:{onScroll:i,node:n&&(0,Z.jsx)(`div`,{className:`chat-pill-row-bar`,"aria-hidden":`true`,onPointerDown:e=>{let r=t.current;if(!r||!n)return;let i=e.currentTarget.getBoundingClientRect(),a=(e.clientX-i.left)/i.width<n.left?-r.clientWidth:r.clientWidth;r.scrollBy({left:a,behavior:`smooth`})},children:(0,Z.jsx)(`div`,{className:`chat-pill-row-bar-thumb`,style:{left:`${n.left*100}%`,width:`${n.width*100}%`},onPointerDown:e=>{let n=t.current,r=e.currentTarget.parentElement;if(!n||!r)return;e.preventDefault(),e.stopPropagation();let i=n.scrollWidth/r.clientWidth,a=e.clientX,o=n.scrollLeft,s=e=>{n.scrollLeft=o+(e.clientX-a)*i},c=()=>{window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,c)};window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,c)}})})}}}function rBe({thread:e,active:t,onFocus:n}){let r=KQ(e.workingDir),i=P4(e.lastActivityAt),a=e.lastCommand?.replace(/\s+/g,` `).trim()||null,o=a?M4(a,40):null;return(0,Z.jsxs)(`button`,{type:`button`,className:`chat-pill chat-pill-thread chat-pill-terminal${t?` is-active`:``}`,"aria-pressed":t,"aria-label":`Terminal ${r}.${a?` Last command: ${a}.`:``} Updated ${i}`,title:`Terminal · ${r}${a?` · last command: ${a}`:``} · updated ${i}`,onClick:()=>n(e),children:[(0,Z.jsx)(`span`,{className:`chat-pill-thread-line chat-pill-thread-title`,children:`Terminal`}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-context`,children:[(0,Z.jsx)(`span`,{className:`terminal-prompt-sigil`,"aria-hidden":`true`,children:`>`}),(0,Z.jsx)(`span`,{className:`chat-pill-message-preview${a?` chat-pill-terminal-command`:``}`,children:o??r})]}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-update`,children:[a&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`chat-pill-terminal-folder`,children:r}),(0,Z.jsx)(`span`,{className:`chat-pill-separator`,"aria-hidden":`true`,children:`·`})]}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-updated-at`,children:[`Updated `,i]})]})]})}function iBe({pill:e,gezels:t,gezelNames:n,active:r,onFocus:i}){let a=t.find(t=>t.id===e.gezelId),o=P4(e.lastActivityAt),s=N4(e.state),c=j4(e),l=`${n} · ${e.title} · updated ${o} · ${s}${e.error?`: ${e.error}`:``}`;return(0,Z.jsx)(`button`,{type:`button`,className:`chat-pill chat-pill-thread chat-pill-${e.state}${r?` is-active`:``}`,"aria-pressed":r,"aria-label":`${n}: ${e.title}. ${c}. Updated ${o}. ${s}`,title:l,onClick:()=>i(e),children:(0,Z.jsx)(A4,{pill:e,gezelNames:n,gezel:a})})}function A4({pill:e,gezelNames:t,gezel:n}){let r=j4(e);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`chat-pill-thread-line chat-pill-thread-title`,children:M4(e.title,40)}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-context`,children:[n&&(0,Z.jsx)(Up,{svg:n.icon??null,poppetje:n.poppetje,iconOverride:n.iconOverride,name:t,size:14}),(0,Z.jsx)(`span`,{className:`chat-pill-participants`,children:t}),(0,Z.jsx)(`span`,{className:`chat-pill-separator`,"aria-hidden":`true`,children:`·`}),(0,Z.jsx)(`span`,{className:`chat-pill-message-preview`,children:r})]}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-update`,children:[(0,Z.jsxs)(`span`,{className:`chat-pill-thread-updated-at`,children:[`Updated `,P4(e.lastActivityAt)]}),(0,Z.jsx)(`span`,{className:`chat-pill-separator`,"aria-hidden":`true`,children:`·`}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-status`,children:[(0,Z.jsx)(`span`,{className:`chat-pill-dot`,"aria-hidden":`true`}),N4(e.state)]})]})]})}function j4(e){return e.lastMessagePreview?M4(aBe(e.lastMessagePreview),30):`No messages yet`}function M4(e,t){let n=Array.from(e.trim());return n.length<=t?n.join(``):`${n.slice(0,t-1).join(``)}…`}function aBe(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/@\[([^\]]+)\]\([^)]+\)/g,`@$1`).replace(/\[([^\]]+)\]\([^)]+\)/g,`$1`).replace(/[*_~`#>]+/g,``).replace(/\s+/g,` `).trim()}function N4(e){return e===`inflight`?`Working`:e===`errored`?`Needs attention`:`Ready`}function P4(e){let t=Date.parse(e);if(Number.isNaN(t))return e;let n=Math.floor(Math.max(0,Date.now()-t)/6e4);if(n<1)return`just now`;if(n<60)return`${n} ${n===1?`minute`:`minutes`} ago`;let r=Math.floor(n/60);if(r<24)return`${r} ${r===1?`hour`:`hours`} ago`;let i=Math.floor(r/24);if(i===1)return`yesterday`;if(i<7)return`${i} days ago`;let a=Math.floor(i/7);if(a<5)return`${a} ${a===1?`week`:`weeks`} ago`;let o=Math.floor(i/30);if(o<12)return`${o} ${o===1?`month`:`months`} ago`;let s=Math.floor(i/365);return`${s} ${s===1?`year`:`years`} ago`}function oBe({task:e,latestThread:t,gezels:n,gezelNames:r,active:i,onFocus:a}){let o=e.assignee.kind===`user`,s=e.assignee.kind===`gezel`?e.assignee.gezelId:null,c=t?n.find(e=>e.id===t.gezelId):s?n.find(e=>e.id===s):void 0,l=t?P4(t.lastActivityAt):null,u=t?N4(t.state):`Active`,d=t?j4(t):`No chat yet`,f=t?`Latest chat with ${r}: ${t.title}. ${d}. Updated ${l}. ${u}`:`${d}. Assigned to ${r}. ${u}`;return(0,Z.jsxs)(`button`,{type:`button`,className:`chat-pill chat-pill-thread chat-pill-task${t?` chat-pill-${t.state}`:``}${i?` is-active`:``}`,"aria-pressed":i,"aria-label":`Task ${e.ref}: ${e.title}. ${f}`,title:t?`${e.ref} · ${e.title} · latest chat: ${t.title} · ${r} · updated ${l} · ${u}${t.error?`: ${t.error}`:``}`:o?`${e.ref} · ${e.title} — assigned to you · no chat yet`:`${e.ref} · ${e.title} · no chat yet`,onClick:()=>a(e),children:[(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-task-title`,children:[(0,Z.jsx)(qC,{area:`tasks`,size:13,className:`chat-pill-task-icon`}),(0,Z.jsxs)(`span`,{className:`chat-pill-task-number`,children:[`#`,e.num]}),(0,Z.jsx)(`span`,{className:`chat-pill-label`,children:e.title})]}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-context`,children:[c&&(0,Z.jsx)(Up,{svg:c.icon??null,poppetje:c.poppetje,iconOverride:c.iconOverride,name:r,size:14}),(0,Z.jsx)(`span`,{className:`chat-pill-participants`,children:r}),(0,Z.jsx)(`span`,{className:`chat-pill-separator`,"aria-hidden":`true`,children:`·`}),(0,Z.jsx)(`span`,{className:`chat-pill-message-preview`,children:d})]}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-line chat-pill-thread-update`,children:[(0,Z.jsx)(`span`,{className:`chat-pill-thread-updated-at`,children:l?`Updated ${l}`:e.ref}),(0,Z.jsx)(`span`,{className:`chat-pill-separator`,"aria-hidden":`true`,children:`·`}),(0,Z.jsxs)(`span`,{className:`chat-pill-thread-status`,children:[t?(0,Z.jsx)(`span`,{className:`chat-pill-dot`,"aria-hidden":`true`}):(0,Z.jsx)(`span`,{className:`task-status-dot task-status-active`,"aria-hidden":`true`}),u]})]})]})}function sBe({projectId:e,workingDir:t,onChangeWorkingDir:n}){let[r,i]=(0,X.useState)([]),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(!1),l=(0,X.useRef)(null);(0,X.useEffect)(()=>{if(!s&&r.length>0)return;let t=!1;return(async()=>{try{let n=await Q.listProjectWorkspace(e,void 0,!0);if(t)return;let r=n.files.filter(e=>e.isDirectory).map(e=>{let t=e.path.split(`/`).length-1;return{path:e.path,name:e.name,depth:t}});r.sort((e,t)=>e.path<t.path?-1:+(e.path>t.path)),i(r)}catch(e){if(t)return;o(e instanceof Error?e.message:String(e))}})(),()=>{t=!0}},[e,s]),(0,X.useEffect)(()=>{if(!s)return;function e(e){l.current?.contains(e.target)||c(!1)}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s]);let u=(0,X.useMemo)(()=>[{path:``,name:`/`,depth:0},...r],[r]),d=KQ(t);return(0,Z.jsxs)(`div`,{className:`folder-tree-switcher`,ref:l,children:[(0,Z.jsx)(`span`,{className:`folder-tree-label`,children:`Folder:`}),(0,Z.jsxs)(`button`,{type:`button`,className:`folder-tree-trigger`,onClick:()=>c(e=>!e),title:`Pick a working folder`,"aria-expanded":s,children:[(0,Z.jsx)(`span`,{className:`folder-tree-trigger-value`,children:d}),(0,Z.jsx)(N_,{className:`folder-tree-trigger-caret`})]}),s&&(0,Z.jsxs)(`div`,{className:`folder-tree-popup`,role:`listbox`,children:[a&&(0,Z.jsx)(`div`,{className:`terminal-error-banner`,children:a}),u.map(e=>{let r=e.path===t;return(0,Z.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":r,className:`folder-tree-node${r?` active`:``}`,style:{paddingLeft:`${.4+e.depth*.9}rem`},onClick:()=>{n(e.path),c(!1)},title:e.path||`/`,children:(0,Z.jsx)(`span`,{children:e.path===``?`/`:e.name})},e.path||`__root__`)})]})]})}var cBe={index:null,craftbooks:[],mcpTools:[]},F4=new Map;function lBe(e,t){F4.set(e,t)}function uBe(e){return F4.get(e)??cBe}function dBe(e){F4.delete(e)}function fBe(e){let t=t0(),[n,r]=(0,X.useState)(null),[i,a]=(0,X.useState)([]),[o,s]=(0,X.useState)([]),c=(0,X.useRef)(void 0);(0,X.useEffect)(()=>{let n=!1,i=async()=>{try{let t=await Q.getProjectIndex(e);n||r(t)}catch{}},o=async()=>{try{let r=await Q.listProjectCraftbooks(e);if(n)return;a(_(r.items,t).flatMap(e=>{let t=e.manifest;return t.kind&&t.kind!==`craftbook-template`||!t.id?[]:[{id:t.id,command:t.command??t.id,name:t.name,description:t.description,paramSchema:t.paramSchema}]}))}catch{}},l=async()=>{try{let t=await Q.listProjectTools(e);n||s(t.tools)}catch{}},u=async()=>{n||o();try{let t=await Q.getProjectIndexStatus(e);if(n)return;let r=t.meta?.scannedAt;r&&r!==c.current?(c.current=r,await i()):t.state===`never`&&await Q.refreshProjectIndex(e).catch(()=>{})}catch{}};i(),o(),l();let d=window.setInterval(u,3e4);return()=>{n=!0,window.clearInterval(d)}},[e,t]),(0,X.useEffect)(()=>{lBe(e,{index:n,craftbooks:i,mcpTools:o})},[e,n,i,o]),(0,X.useEffect)(()=>()=>dBe(e),[e])}var pBe=(0,X.lazy)(()=>Wr(()=>import(`./TerminalCodeEditor-C_Mvaxqz.js`),__vite__mapDeps([67,4,1]))),mBe=`build, test, git status, … — Enter runs, Shift+Enter for newline, ↑/↓ recalls history`,hBe=[{section:`commands`,label:`Commands`,title:`Everyday terminal commands, and the tools installed on this machine`,icon:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M2.5 4 L6 8 L2.5 12`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,Z.jsx)(`path`,{d:`M8 12 H13.5`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`})]})},{section:`scripts`,label:`Scripts`,title:`Scripts this project already defines — package.json, scripts/, launches`,icon:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`rect`,{x:`3`,y:`2`,width:`10`,height:`12`,rx:`1.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`}),(0,Z.jsx)(`path`,{d:`M5.5 5.5h5M5.5 8h5M5.5 10.5h3`,stroke:`currentColor`,strokeWidth:`1.3`,strokeLinecap:`round`})]})},{section:`tasks`,label:`Tasks`,title:`Craftbooks and workspace skills a gezel can run for you`,icon:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`path`,{d:`M2.5 4.5 L4 6 L6.5 3`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,Z.jsx)(`path`,{d:`M8.5 5 H14`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`}),(0,Z.jsx)(`path`,{d:`M2.5 11 L4 12.5 L6.5 9.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,Z.jsx)(`path`,{d:`M8.5 11.5 H14`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})]})}];function gBe({projectId:e,workingDir:t,contextRow:n,onSent:r,initialInput:i,onChatEscape:a}){let[o]=(0,X.useState)(()=>i??``),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(null),d=(0,X.useRef)(null),f=(0,X.useRef)([]),p=(0,X.useRef)(-1),m=(0,X.useCallback)(e=>{d.current?.setValue(e),u(null)},[]);fBe(e);let h=(0,X.useCallback)(async n=>{let i=n.trim();if(i!==``){d.current?.setValue(``),c(null),f.current.unshift(i),f.current.length>50&&(f.current.length=50),p.current=-1;try{let n=await Q.runTerminalCommand(e,{workingDir:t,input:i});r?.(i,n)}catch(e){c(e instanceof Error?e.message:String(e)),d.current?.focus()}}},[e,t,r]),g=(0,X.useCallback)(()=>{let e=d.current;e&&(h(e.getValue()),e.focus())},[h]),_=(0,X.useCallback)(()=>{if(f.current.length===0)return;let e=Math.min(f.current.length-1,p.current+1);p.current=e,d.current?.setValue(f.current[e])},[]),v=(0,X.useCallback)(()=>{if(p.current<0)return;let e=p.current-1;p.current=e,d.current?.setValue(e<0?``:f.current[e])},[]);return(0,Z.jsxs)(`div`,{className:`terminal-composer`,children:[(0,Z.jsxs)(`div`,{className:`terminal-composer-toolbar`,children:[hBe.map(t=>(0,Z.jsxs)(U_,{open:l===t.section,onOpenChange:e=>u(e?t.section:null),children:[(0,Z.jsx)(W_,{asChild:!0,children:(0,Z.jsxs)(`button`,{type:`button`,className:`terminal-toolbar-btn`,title:t.title,"aria-label":t.title,children:[(0,Z.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,"aria-hidden":`true`,focusable:`false`,children:t.icon}),t.label]})}),(0,Z.jsx)(K_,{className:`terminal-commands-popover`,side:`top`,align:`start`,onCloseAutoFocus:e=>{e.preventDefault(),d.current?.focus()},children:(0,Z.jsx)(i0,{projectId:e,section:t.section,onStageCommand:m})})]},t.section)),(0,Z.jsx)(`button`,{type:`button`,className:`terminal-toolbar-btn terminal-toolbar-fire-btn`,title:`Run command (Enter)`,onClick:g,children:`Fire`})]}),n,(0,Z.jsxs)(`div`,{className:`terminal-composer-input-wrap`,children:[(0,Z.jsx)(`span`,{className:`terminal-prompt-sigil`,children:`>`}),(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(`div`,{className:`terminal-composer-input`,"aria-busy":`true`}),children:(0,Z.jsx)(pBe,{ref:d,projectId:e,initialValue:o,placeholder:mBe,onSubmit:e=>void h(e),onHistoryPrev:_,onHistoryNext:v,onChatEscape:a})})]}),s&&(0,Z.jsx)(`div`,{className:`terminal-error-banner`,children:s})]})}function _Be({project:e,compact:t=!1}){let[n,r]=(0,X.useState)([]),[i,a]=(0,X.useState)(``);(0,X.useEffect)(()=>{Q.listGezels().then(e=>r(e.gezels)).catch(()=>{})},[e.id,e.voormanGezelId,(e.gezelIds??[]).join(`,`)]),(0,X.useEffect)(()=>{a(``)},[e.id]);let[o,s]=(0,X.useState)(void 0);(0,X.useEffect)(()=>{s(void 0);let t=!1;return Q.listChatSessions({projectId:e.id}).then(e=>{if(t)return;let n=e.sessions.filter(e=>!e.archived&&!e.taskRef);s(n[0]?.gezelId??null)}).catch(()=>{t||s(null)}),()=>{t=!0}},[e.id]),(0,X.useEffect)(()=>{if(i||o===void 0)return;let t=o&&n.some(e=>e.id===o)?o:``,r=n.find(t=>t.id===e.voormanGezelId)?.id??``,s=(e.gezelIds??[]).map(e=>n.find(t=>t.id===e)?.id).find(Boolean)??``,c=t||r||s||n[0]?.id||``;c&&a(c)},[i,o,n,e.voormanGezelId,e.gezelIds]);let c=n.find(e=>e.id===i);return n.length===0?(0,Z.jsx)(`p`,{className:`muted`,children:`No gezellen available to chat with yet. Create one from the Gezellen tab.`}):(0,Z.jsx)(`div`,{className:`project-chat`,children:i&&c&&(0,Z.jsx)(vBe,{project:e,selectedGezel:c,recipientGezels:n,isVoorman:c.id===e.voormanGezelId,onSelectGezel:a,compact:t})})}function vBe({project:e,selectedGezel:t,recipientGezels:n,isVoorman:r,onSelectGezel:a,compact:o}){let[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(null),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(0),h=fC(),g=i({name:t.name,roleBasedName:t.roleBasedName},h),[_,v]=(0,X.useState)(0),[y,b]=(0,X.useState)([]),[x,S]=(0,X.useState)(`chat`),[C,w]=(0,X.useState)(0),T=(0,X.useCallback)(()=>{w(e=>e+1),S(`chat`)},[]),[E,D]=(0,X.useState)(``),[O,k]=(0,X.useState)(``),[A,j]=(0,X.useState)(``),M=(0,X.useCallback)(e=>{j(``),D(e),k(e)},[]),[N,P]=(0,X.useState)(``);(0,X.useEffect)(()=>{x!==`terminal`&&N!==``&&P(``)},[x,N]);let[F,I]=(0,X.useState)(0),[L,R]=(0,X.useState)(null),[z,B]=(0,X.useState)(null),V=(0,X.useRef)(null),H=(0,X.useRef)(null),U=(0,X.useCallback)((e,n,r)=>{n===t.id?u(r):(V.current=e||null,H.current=r,a(n)),c(e)},[t.id,a]),[ee,te]=(0,X.useState)(null),W=(0,X.useCallback)(e=>{e&&te(t=>({sessionId:e,requestKey:(t?.requestKey??0)+1}))},[]),G=(0,X.useCallback)(async e=>{let t={ref:e.ref,...e.activeStepId?{stepId:e.activeStepId}:{}};try{let{sessions:n}=await Q.listTaskSessions(e.projectId,e.num),r=n.find(e=>!e.archived);if(r){U(r.id,r.gezelId,t),W(r.id);return}}catch{}e.assignee.kind===`gezel`&&e.assignee.gezelId?U(``,e.assignee.gezelId,t):u(t)},[U,W]),ne=(0,X.useCallback)(e=>{m(e=>e+1),(e.status===`complete`||e.status===`canceled`)&&u(t=>t?.ref===e.ref?null:t)},[]);(0,X.useEffect)(()=>{let e=V.current;V.current=null,c(e??``),u(H.current),H.current=null},[t.id,e.id]);let K=(0,X.useMemo)(()=>K0({role:r?`voorman`:`other`,gezelName:t.name,gezelGender:t.gender,projectName:e.name,fixedFunctionTool:t.fixedFunction?.tool}),[r,t.name,t.gender,e.name,t.fixedFunction?.tool]),q=Le(t.gender);return(0,Z.jsx)(O0,{projectId:e.id,skillsProjectId:e.id,compact:o,chatKey:`${e.id}:timeline`,onTaskChanged:ne,banner:({onTaskReference:t})=>(0,Z.jsx)(tBe,{projectId:e.id,gezels:n,activeSessionId:x===`chat`&&s||void 0,activeTaskRef:x===`chat`?l?.ref??null:null,activeTerminalThreadId:x===`terminal`?A:null,refreshKey:p,terminalRefreshKey:F,onFocusThread:e=>{U(e.sessionId,e.gezelId,e.taskRef?{ref:e.taskRef}:null),W(e.sessionId)},onFocusTask:e=>{t(e.ref,{focus:!0}),G(e)},onFocusTerminal:t=>{M(t.workingDir),j(t.id),S(`terminal`),R(e=>({threadId:t.id,requestKey:(e?.requestKey??0)+1})),Q.getTerminalThread(e.id,t.id).then(e=>{let t=[...e.messages].reverse().find(e=>e.cwd!==void 0)?.cwd;t!==void 0&&k(t)}).catch(()=>{})},onNewTask:()=>f(!0)}),children:({onToolActivity:i,onArtifactReference:o,onArtifactSeen:u,onWorkspaceReference:p,onWorkspaceSeen:h,recentReferences:D,onOpenReference:A,onTaskReference:R})=>(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(s$,{projectId:e.id,activeSessionId:s||void 0,onFocusSession:(e,t)=>U(e,t,null),onToolActivity:i,onArtifactReference:o,onArtifactSeen:u,onWorkspaceReference:p,onWorkspaceSeen:h,onTaskReference:R,onTerminalWorkingDirChanged:(e,t)=>{k(t)},terminalRefreshKey:F,...z?{terminalSubmission:z}:{},...L?{terminalFocusRequest:L}:{},...ee?{sessionFocusRequest:ee}:{},emptyPlaceholder:r?`Talk to ${t.name} about running "${e.name}" — planning tasks, delegating, or checking progress.`:`Chat with ${t.name} about what ${q.subject} ${q.presentBe} working on in "${e.name}".`}),(0,Z.jsxs)(`div`,{className:`project-chat-compose-shell`,children:[(0,Z.jsx)(`div`,{className:`project-chat-compose-main${x===`terminal`?` project-chat-compose-main-terminal`:``}`,children:x===`chat`?(0,Z.jsx)(BQ,{gezelId:t.id,gezelName:t.name,gezelIcon:t.icon??null,gezelPoppetje:t.poppetje,gezelIconOverride:t.iconOverride,recipientGezels:n,onPrimaryRecipientChange:a,focusRequestKey:C,projectId:e.id,sessionId:s||void 0,...l?{taskRef:l.ref}:{},...l?.stepId?{stepId:l.stepId}:{},onSessionCreated:e=>{c(e),v(e=>e+1)},onToolActivity:i,recentReferences:D,onOpenReference:A,placeholder:K,onPivotToMention:e=>{e!==t.id&&(b(e=>e.includes(t.id)?e:[...e,t.id]),a(e))},passiveCcGezelIds:y,onPassiveCcConsumed:()=>b([]),onTerminalEscape:e=>{P(e),S(`terminal`)},belowAddressLine:(0,Z.jsx)(z0,{gezelId:t.id,projectId:e.id,sessionId:s||void 0,gezelName:g,...l?{taskRef:l.ref}:{},...l?.stepId?{stepId:l.stepId}:{},onSessionIdChange:e=>c(e??``),onNewSessionCreated:()=>w(e=>e+1),refreshKey:_})}):(0,Z.jsx)(gBe,{projectId:e.id,workingDir:E,contextRow:(0,Z.jsx)(sBe,{projectId:e.id,workingDir:O,onChangeWorkingDir:M}),initialInput:N,onSent:(e,t)=>{j(t.threadId),B({runId:t.runId,threadId:t.threadId,input:e}),I(e=>e+1)},onChatEscape:T},`terminal:${e.id}`)}),(0,Z.jsx)(`div`,{className:`project-chat-compose-mode-bar`,children:(0,Z.jsxs)(`div`,{className:`project-chat-compose-toggle`,role:`tablist`,children:[(0,Z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":x===`chat`,"aria-label":`AI chat`,className:x===`chat`?`active`:``,onClick:T,title:`AI chat (@-mention to talk to a gezel)`,children:`@`}),(0,Z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":x===`terminal`,"aria-label":`Terminal`,className:x===`terminal`?`active`:``,onClick:()=>S(`terminal`),title:`Terminal (run shell commands in this project's workspace)`,children:`>`})]})})]}),(0,Z.jsx)(w4,{open:d,defaultProjectId:e.id,projects:[e],gezels:n,projectLocked:!0,onClose:()=>f(!1),onCreated:()=>{f(!1),m(e=>e+1)}})]})})}function I4(e,t){return`connector-${e}-${t}`.replace(/[^a-zA-Z0-9_-]/g,`-`)}function L4(e){return e&&/^https:\/\//i.test(e)?e:void 0}function R4({required:e}){return e?(0,Z.jsx)(`span`,{className:`gz-connector-field-requirement`,"aria-hidden":`true`,children:`Required`}):null}function z4({id:e,description:t,helpUrl:n,helpLabel:r}){let i=L4(n);return!t&&!i?null:(0,Z.jsxs)(`span`,{id:e,className:`gz-connector-field-help`,children:[t,t&&i?` `:``,i&&(0,Z.jsx)(`a`,{href:i,target:`_blank`,rel:`noreferrer`,children:r??`Learn more`})]})}function yBe({connectorId:e,fieldKey:t,property:n,required:r,value:i,onChange:a}){let o=I4(e,t),s=`${o}-label`,c=`${o}-help`,l=n.title??t,u=n.description?c:void 0;return(0,Z.jsxs)(`div`,{className:`gz-connector-field`,children:[(0,Z.jsxs)(`label`,{id:s,className:`gz-connector-field-label`,htmlFor:o,children:[(0,Z.jsx)(`span`,{children:l}),(0,Z.jsx)(R4,{required:r})]}),(0,Z.jsxs)(`span`,{className:`gz-connector-field-control`,children:[n.type===`boolean`?(0,Z.jsx)(`input`,{id:o,type:`checkbox`,"aria-label":l,checked:i===!0,onChange:e=>a(e.target.checked),"aria-describedby":u}):(0,Z.jsx)(`input`,{id:o,type:n.type===`integer`||n.type===`number`?`number`:`text`,value:typeof i==`string`?i:``,onChange:e=>a(e.target.value),placeholder:n.type===`array`?`comma,separated`:``,min:n.minimum,max:n.maximum,step:n.type===`integer`?1:void 0,required:r,"aria-label":l,"aria-describedby":u}),(0,Z.jsx)(z4,{id:c,description:n.description})]})]})}function B4({connectorId:e,fieldKey:t,label:n,value:r,onChange:i,required:a=!1,secret:o=!1,description:s,helpUrl:c,helpLabel:l,placeholder:u}){let d=I4(e,t),f=`${d}-help`,p=!!(s||L4(c));return(0,Z.jsxs)(`div`,{className:`gz-connector-field`,children:[(0,Z.jsxs)(`label`,{className:`gz-connector-field-label`,htmlFor:d,children:[(0,Z.jsx)(`span`,{children:n}),(0,Z.jsx)(R4,{required:a})]}),(0,Z.jsxs)(`span`,{className:`gz-connector-field-control`,children:[(0,Z.jsx)(`input`,{id:d,type:o?`password`:`text`,value:r,onChange:e=>i(e.target.value),required:a,autoComplete:o?`off`:void 0,placeholder:u,"aria-label":n,"aria-describedby":p?f:void 0}),(0,Z.jsx)(z4,{id:f,description:s,helpUrl:c,helpLabel:l})]})]})}function bBe({connectorId:e,fieldKey:t,label:n,checked:r,onChange:i}){let a=I4(e,t);return(0,Z.jsxs)(`div`,{className:`gz-connector-field`,children:[(0,Z.jsx)(`label`,{className:`gz-connector-field-label`,htmlFor:a,children:(0,Z.jsx)(`span`,{children:n})}),(0,Z.jsx)(`span`,{className:`gz-connector-field-control gz-connector-checkbox-control`,children:(0,Z.jsx)(`input`,{id:a,type:`checkbox`,"aria-label":n,checked:r,onChange:e=>i(e.target.checked)})})]})}function V4({title:e,children:t}){return(0,Z.jsxs)(`section`,{className:`gz-connector-field-group`,"aria-label":e,children:[(0,Z.jsx)(`div`,{className:`gz-connector-field-group-heading`,children:e}),t]})}function xBe(e){let t={};for(let[n,r]of Object.entries(e.configSchema?.properties??{}))r.default!==void 0&&(t[n]=r.type===`boolean`?r.default===!0:String(r.default));return t}function SBe({connector:e,config:t,onConfigChange:n,displayName:r,onDisplayNameChange:i,credential:a,onCredentialChange:o,imapHost:s,onImapHostChange:c,imapPort:l,onImapPortChange:u,imapSecure:d,onImapSecureChange:f}){let p=e.secretShape?.kind,m=new Set(e.configSchema?.required??[]),h=Object.entries(e.configSchema?.properties??{}).filter(([,e])=>e.const===void 0),g=([e,t])=>m.has(e)||t[`x-gezel-priority`]===`primary`,_=h.filter(g),v=h.filter(e=>!g(e)),y=e.secretShape?.required===!0||e.secretShape?.[`x-gezel-priority`]===`primary`,b=([r,i])=>(0,Z.jsx)(yBe,{connectorId:e.id,fieldKey:r,property:i,required:m.has(r),value:t[r],onChange:e=>n(r,e)},r),x=p!==`oauth2`&&p!==`imap`&&(0,Z.jsx)(B4,{connectorId:e.id,fieldKey:`credential`,label:e.secretShape?.label??`API key / token`,value:a,onChange:o,required:e.secretShape?.required===!0,secret:!0,description:e.secretShape?.description,helpUrl:e.secretShape?.helpUrl,helpLabel:e.secretShape?.helpLabel},`credential`),S=p===`imap`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(B4,{connectorId:e.id,fieldKey:`imap-host`,label:`IMAP host`,value:s,onChange:c,required:!0,placeholder:`imap.example.com`}),(0,Z.jsx)(B4,{connectorId:e.id,fieldKey:`credential`,label:`Password / app password`,value:a,onChange:o,required:!0,secret:!0,description:e.secretShape?.description,helpUrl:e.secretShape?.helpUrl,helpLabel:e.secretShape?.helpLabel})]}),C=_.length>0||y||p===`imap`||p===`oauth2`;return(0,Z.jsxs)(Z.Fragment,{children:[e.setupInstructions&&(0,Z.jsxs)(`aside`,{className:`gz-connector-setup-instructions`,children:[(0,Z.jsx)(`strong`,{children:e.setupInstructions.title}),e.setupInstructions.description&&(0,Z.jsx)(`p`,{children:e.setupInstructions.description}),e.setupInstructions.steps&&e.setupInstructions.steps.length>0&&(0,Z.jsx)(`ol`,{children:e.setupInstructions.steps.map(e=>(0,Z.jsx)(`li`,{children:e},e))}),L4(e.setupInstructions.url)&&(0,Z.jsx)(`a`,{href:e.setupInstructions.url,target:`_blank`,rel:`noreferrer`,children:e.setupInstructions.urlLabel??`Open setup instructions`})]}),(0,Z.jsxs)(`div`,{className:`gz-connector-config-fields`,children:[C&&(0,Z.jsxs)(V4,{title:`Connection details`,children:[_.map(b),p===`oauth2`?(0,Z.jsx)(`p`,{className:`muted small gz-connector-oauth-note`,children:`You'll authorize this connector in your browser after you click Connect.`}):p===`imap`?S:y?x:null]}),(0,Z.jsxs)(V4,{title:`Additional settings`,children:[v.map(b),p===`imap`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(B4,{connectorId:e.id,fieldKey:`imap-port`,label:`Port`,value:l,onChange:u,placeholder:`993`}),(0,Z.jsx)(bBe,{connectorId:e.id,fieldKey:`imap-tls`,label:`Use TLS`,checked:d,onChange:f})]}),!y&&x,(0,Z.jsx)(B4,{connectorId:e.id,fieldKey:`display-name`,label:`Display name`,value:r,onChange:i})]})]})]})}var CBe=/^GEZEL_[A-Z0-9_]{1,120}$/,wBe=8;function TBe(e,t){if(!t||typeof t!=`object`)return null;let n=t;if(n.kind!==`oauth2`)return null;let r=typeof n.clientIdEnv==`string`?n.clientIdEnv:``;if(!CBe.test(r))return null;let i=typeof n.clientSecretEnv==`string`&&n.clientSecretEnv.length>0,a=n.clientSetup&&typeof n.clientSetup==`object`?n.clientSetup:{},o=typeof a.providerLabel==`string`&&a.providerLabel.trim()?a.providerLabel.trim():e,s=typeof a.docsUrl==`string`&&/^https:\/\//.test(a.docsUrl)?a.docsUrl:void 0,c=typeof a.redirectPort==`number`&&Number.isInteger(a.redirectPort)&&a.redirectPort>=1024&&a.redirectPort<=65535?a.redirectPort:void 0,l=typeof a.appTypeNote==`string`&&a.appTypeNote.trim()?a.appTypeNote.trim():void 0,u=typeof a.redirectNote==`string`&&a.redirectNote.trim()?a.redirectNote.trim():void 0,d=Array.isArray(a.steps)?a.steps.filter(e=>typeof e==`string`&&e.trim().length>0).map(e=>e.trim()).slice(0,wBe):[];return{clientKey:r,hasSecretField:i,secretRequired:i&&a.secretRequired===!0,providerLabel:o,...s?{docsUrl:s}:{},...l?{appTypeNote:l}:{},...c===void 0?{}:{redirectPort:c},...u?{redirectNote:u}:{},...d.length>0?{steps:d}:{}}}function EBe(e){return`http://127.0.0.1:${e}/callback`}function DBe(e){let t=e instanceof Error?e.message:typeof e==`string`?e:``;return/oauth is not configured/i.test(t)}function OBe({requirement:e,registered:t,forceOpenNonce:n,busy:r,onSave:i}){let[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(``),[d,f]=(0,X.useState)(``),[p,m]=(0,X.useState)(!1),h=(0,X.useRef)(t);h.current=t;let g=()=>{c(h.current?.clientId??``),u(``),f(``),o(!0)};(0,X.useEffect)(()=>{n&&g()},[n]);let _=e.redirectPort===void 0?null:EBe(e.redirectPort),v=async()=>{if(_)try{await navigator.clipboard.writeText(_),m(!0),setTimeout(()=>m(!1),1500)}catch{}},y=async()=>{let n=s.trim(),r=l.trim();if(!n){f(`Client ID is required.`);return}if(e.secretRequired&&!r&&!t?.hasSecret){f(`${e.providerLabel} requires a client secret.`);return}f(``);try{await i({clientId:n,...r?{clientSecret:r}:{}})}catch{return}u(``),o(!1)};return a?(0,Z.jsxs)(`div`,{className:`gz-oauth-app`,"aria-label":`${e.providerLabel} OAuth app setup`,children:[(0,Z.jsxs)(`strong`,{className:`gz-oauth-app-heading`,children:[`Your `,e.providerLabel,` app`]}),(0,Z.jsx)(`p`,{className:`muted small`,children:e.appTypeNote??`Create an OAuth app in your ${e.providerLabel} developer settings and paste its client ID here. It is stored on this machine only.`}),e.steps&&(0,Z.jsx)(`ol`,{className:`gz-oauth-app-steps`,children:e.steps.map(e=>(0,Z.jsx)(`li`,{children:e},e))}),e.docsUrl&&(0,Z.jsxs)(`a`,{className:`gz-oauth-app-docs`,href:e.docsUrl,target:`_blank`,rel:`noreferrer`,children:[`Open the `,e.providerLabel,` developer console`]}),(0,Z.jsxs)(`div`,{className:`gz-oauth-app-redirect`,children:[(0,Z.jsx)(`span`,{children:`Redirect URI to register`}),_?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`span`,{className:`gz-oauth-app-redirect-row`,children:[(0,Z.jsx)(`code`,{children:_}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void v(),title:`Copy the redirect URI`,children:p?`Copied`:`Copy`})]}),e.redirectNote&&(0,Z.jsx)(`span`,{className:`muted small`,children:e.redirectNote})]}):(0,Z.jsx)(`span`,{className:`muted small`,children:e.redirectNote??`${e.providerLabel} accepts any 127.0.0.1 port, so there is no fixed URI to register — Gezel picks a free port when you connect.`})]}),(0,Z.jsxs)(`div`,{className:`gz-oauth-app-fields`,children:[(0,Z.jsxs)(`label`,{children:[`Client ID`,(0,Z.jsx)(`input`,{value:s,onChange:e=>c(e.target.value),autoComplete:`off`,spellCheck:!1})]}),e.hasSecretField&&(0,Z.jsxs)(`label`,{children:[`Client secret`,` `,!e.secretRequired&&(0,Z.jsx)(`span`,{className:`muted`,children:`(optional — PKCE public clients don't need one)`}),(0,Z.jsx)(`input`,{type:`password`,value:l,onChange:e=>u(e.target.value),autoComplete:`off`,placeholder:t?.hasSecret?`leave blank to keep the saved secret`:``})]})]}),d&&(0,Z.jsx)(`p`,{className:`error small`,children:d}),(0,Z.jsxs)(`div`,{className:`gz-oauth-app-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>o(!1),disabled:r,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>void y(),disabled:r,children:r?`Working…`:`Save & connect`})]})]}):(0,Z.jsxs)(`div`,{className:`gz-oauth-app gz-oauth-app-summary`,children:[(0,Z.jsx)(`div`,{className:`gz-oauth-app-summary-text`,children:t?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`span`,{children:[`Connects through your `,e.providerLabel,` app`]}),(0,Z.jsx)(`code`,{title:t.clientId,children:t.clientId}),t.hasSecret&&(0,Z.jsx)(`span`,{children:`· secret saved`})]}):(0,Z.jsxs)(`span`,{children:[`Gezel ships no built-in `,e.providerLabel,` client — connecting uses an app you register once on this machine.`]})}),(0,Z.jsx)(`button`,{type:`button`,onClick:g,disabled:r,children:t?`Edit`:`Use your own ${e.providerLabel} app`})]})}async function kBe(e,t,n,r,i){let a=window.__GEZEL__;if(!a?.mailOAuthListen||!a.mailOAuthAwait)throw Error(`Connecting this source needs the Gezel desktop app.`);let{requestId:o,redirectUri:s}=await a.mailOAuthListen(i?.redirectPort===void 0?void 0:{port:i.redirectPort}),{authUrl:c,state:l}=await Q.startConnectorOAuth(e,{type:t,redirectUri:s,config:n,...r?{displayName:r}:{}}),u=await a.mailOAuthAwait(o,c);if(`error`in u)throw Error(u.error);await Q.completeConnectorOAuth(e,{state:u.state||l,code:u.code})}function H4(e){let t=`${e.id} ${(e.tags??[]).join(` `)}`.toLowerCase();return t.includes(`wiki`)?`sheet`:t.includes(`calendar`)?`calendar`:/(mail|gmail|imap|email)/.test(t)?`envelope`:/(github|git)/.test(t)?`branch`:/(issue|linear)/.test(t)?`bubbles`:/(airtable|record|data)/.test(t)?`chart`:`dots`}function U4(e){let t=e.secretShape?.kind;return t===`oauth2`?`OAuth`:t===`imap`?`Mail login`:e.secretShape?.required?e.secretShape?.label??`API token`:`Optional token`}function W4(e){return e.completeness===`window`?`Recent window`:`Full mirror`}function ABe({project:e,onProjectChange:t}){let[n,r]=(0,X.useState)(null),[i,a]=(0,X.useState)(null),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)([]),[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(!1),[v,y]=(0,X.useState)([]),[b,x]=(0,X.useState)(null),[S,C]=(0,X.useState)({}),[w,T]=(0,X.useState)(``),[E,D]=(0,X.useState)(``),[O,k]=(0,X.useState)(``),[A,j]=(0,X.useState)(``),[M,N]=(0,X.useState)(!0),[P,F]=(0,X.useState)({}),[I,L]=(0,X.useState)(0),R=(0,X.useCallback)(async()=>{try{let[t,n]=await Promise.all([Q.listConnectors(e.id),Q.listConnectorActions(e.id)]);r(t),p(n.pending)}catch(e){s(e instanceof Error?e.message:String(e))}},[e.id]),z=(0,X.useCallback)(async t=>{a(t),s(``),l(``);try{let n=await Q.commitConnectorAction(e.id,t);l(n.status===`queued-night-shift`?`Held for daytime approval (night shift).`:`Action committed.`),await R()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(null)}},[e.id,R]),B=(0,X.useCallback)(async t=>{a(t);try{await Q.discardConnectorAction(e.id,t),await R()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(null)}},[e.id,R]);(0,X.useEffect)(()=>{R()},[R]);let V=(0,X.useCallback)(()=>{h(!1),x(null),C({}),T(``),D(``),k(``),j(``),N(!0),L(0)},[]),H=(0,X.useCallback)(async()=>{let e=await Q.listOAuthClients();F(Object.fromEntries((e.clients??[]).map(e=>[e.key,{clientId:e.clientId,hasSecret:e.hasSecret}])))},[]),U=(0,X.useCallback)(async()=>{h(!0),_(!0),y([]),x(null),s(``),l(``),H().catch(()=>{});try{let e=await Q.listConnectorTypes();y(e.items.map(e=>({...e.manifest,...e.iconSvg?{iconSvg:e.iconSvg}:{},...e.logoUrl?{logoUrl:e.logoUrl}:{}})))}catch(e){s(e instanceof Error?e.message:String(e))}finally{_(!1)}},[H]),ee=(0,X.useCallback)(async t=>{a(t),s(``),l(``);try{let n=(await Q.syncConnector(e.id,t)).result;l(n.error?`Sync error: ${n.error}`:`Synced ${(n.written??0)+(n.quarantined??0)} new record(s).`),await R()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(null)}},[e.id,R]),te=(0,X.useCallback)(async t=>{a(t);try{await Q.unbindConnector(e.id,t),await R()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(null),d(null)}},[e.id,R]),W=(0,X.useCallback)(()=>{let e=b?.configSchema?.properties??{},t={};for(let[n,r]of Object.entries(e))if(r.const!==void 0)t[n]=r.const;else if(r.type===`array`){let e=typeof S[n]==`string`?S[n].trim():``;e&&(t[n]=e.split(`,`).map(e=>e.trim()).filter(Boolean))}else if(r.type===`boolean`)typeof S[n]==`boolean`&&(t[n]=S[n]);else if(r.type===`integer`||r.type===`number`){let e=typeof S[n]==`string`?S[n].trim():``;e&&(t[n]=Number(e))}else{let e=typeof S[n]==`string`?S[n].trim():``;e&&(t[n]=e)}return t},[b,S]),G=(0,X.useMemo)(()=>b?.secretShape?.kind===`oauth2`?TBe(b.name,b.secretShape):null,[b]),ne=(0,X.useCallback)(async()=>{if(!b)return;s(``),l(``);let n=W(),r=b.secretShape?.kind,i=(b.configSchema?.required??[]).find(e=>{let t=n[e];return t===void 0||t===``||Array.isArray(t)&&t.length===0});if(i){let e=b.configSchema?.properties?.[i]?.title??i;s(`${e} is required.`);return}if(r!==`oauth2`&&r!==`imap`&&b.secretShape?.required&&!E.trim()){s(`${b.secretShape.label??`API key / token`} is required.`);return}a(`add`);try{if(r===`oauth2`)await kBe(e.id,b.id,n,w.trim()||void 0,G?.redirectPort===void 0?void 0:{redirectPort:G.redirectPort});else{let t;r===`imap`?t={host:O.trim(),...A.trim()?{port:Number(A.trim())}:{},secure:M,user:String(n.address??``),pass:E}:E.trim()&&(t=E.trim()),await Q.bindConnector(e.id,{type:b.id,...w.trim()?{displayName:w.trim()}:{},config:n,...t===void 0?{}:{credential:t}})}l(`Connector added.`),V(),await R();try{let n=await Q.getProject(e.id);n&&t?.(n)}catch{}}catch(e){let t=e instanceof Error?e.message:String(e);DBe(t)&&L(e=>e+1),s(t)}finally{a(null)}},[b,e.id,W,w,E,O,A,M,V,R,t,G]),K=(0,X.useCallback)(async e=>{if(G){s(``),a(`oauth-app`);try{await Q.putOAuthClient(G.clientKey,e),await H().catch(()=>{F(t=>({...t,[G.clientKey]:{clientId:e.clientId,hasSecret:!!e.clientSecret||(t[G.clientKey]?.hasSecret??!1)}}))}),L(0)}catch(e){throw s(e instanceof Error?e.message:String(e)),e}finally{a(null)}await ne()}},[G,H,ne]),q=n?.bindings??[],re=b?.secretShape?.kind,ie=e=>{e.id!==b?.id&&(x(e),C(xBe(e)),T(``),D(``),k(``),j(``),N(!0),s(``),L(0))};return(0,Z.jsxs)(`div`,{className:`settings-section`,children:[(0,Z.jsxs)(`div`,{className:`gz-mail-header`,children:[(0,Z.jsx)(`h3`,{children:`Connections`}),!m&&(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void U(),children:`Add connection`})]}),q.length===0&&!m?(0,Z.jsx)(`p`,{className:`muted`,children:`No connectors yet. Add one to mirror an external source (email, issues, a data source) into this project as searchable files.`}):(0,Z.jsx)(`ul`,{className:`settings-list`,children:q.map(e=>(0,Z.jsxs)(`li`,{children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{children:e.displayName||e.type}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[` · `,e.type]}),(0,Z.jsx)(`div`,{className:`small`,children:e.lastError?(0,Z.jsxs)(`span`,{className:`error`,children:[`Error: `,e.lastError]}):e.lastSyncedAt?(0,Z.jsxs)(`span`,{className:`muted`,children:[`Last synced `,new Date(e.lastSyncedAt).toLocaleString()]}):(0,Z.jsx)(`span`,{className:`muted`,children:`Not synced yet`})})]}),(0,Z.jsxs)(`div`,{className:`gz-mail-link-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void ee(e.id),disabled:i===e.id,children:i===e.id?`Working…`:`Sync now`}),(0,Z.jsx)(`button`,{type:`button`,className:`danger`,onClick:()=>d(e.id),disabled:i===e.id,children:`Remove`})]})]},e.id))}),f.length>0&&(0,Z.jsxs)(`div`,{className:`settings-subsection`,children:[(0,Z.jsx)(`h4`,{children:`Pending actions`}),(0,Z.jsx)(`p`,{className:`muted small`,children:`Drafted by a gezel — review, then commit (the live write). You commit; the gezel can't.`}),(0,Z.jsx)(`ul`,{className:`settings-list`,children:f.map(e=>(0,Z.jsxs)(`li`,{children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{children:e.action}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[` · `,e.connectorType]}),e.status===`queued`&&(0,Z.jsx)(`span`,{className:`badge`,children:` held for daytime`})]}),(0,Z.jsxs)(`div`,{className:`gz-mail-link-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>void z(e.draftId),disabled:i===e.draftId,children:i===e.draftId?`Working…`:`Commit`}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void B(e.draftId),disabled:i===e.draftId,children:`Discard`})]})]},e.draftId))})]}),m&&(0,Z.jsxs)(`div`,{className:`gz-connector-picker`,children:[(0,Z.jsxs)(`div`,{className:`gz-connector-picker-heading`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{children:`Choose a connector`}),(0,Z.jsx)(`p`,{className:`muted small`,children:`Pick a source to mirror into this project's searchable files.`})]}),(0,Z.jsx)(`span`,{className:`gz-connector-picker-count`,children:g?`Loading…`:`${v.length} available`})]}),g?(0,Z.jsx)(`div`,{className:`gz-connector-picker-empty muted small`,children:`Gathering connectors…`}):v.length===0?(0,Z.jsx)(`div`,{className:`gz-connector-picker-empty muted small`,children:`No connector types are available.`}):(0,Z.jsx)(`div`,{className:`gz-connector-grid`,role:`radiogroup`,"aria-label":`Connector type`,children:v.map((e,t)=>(0,Z.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":b?.id===e.id,"aria-label":e.name,className:`gz-npd-card gz-connector-card${b?.id===e.id?` active`:``}`,onClick:()=>ie(e),style:{"--card-i":Math.min(t,11)},children:[(0,Z.jsx)(`span`,{className:`gz-npd-card-mark`,children:(0,Z.jsx)(G2,{iconSvg:e.iconSvg,logoUrl:e.logoUrl,svgClassName:`gz-npd-card-mark-svg`,fallback:(0,Z.jsx)(_4,{glyph:H4(e),size:19})})}),(0,Z.jsx)(`span`,{className:`gz-npd-card-name`,children:e.name}),(0,Z.jsx)(`span`,{className:`gz-npd-card-description`,children:e.description}),(0,Z.jsxs)(`span`,{className:`gz-connector-card-meta`,"aria-hidden":`true`,children:[(0,Z.jsx)(`span`,{children:U4(e)}),(0,Z.jsx)(`span`,{children:W4(e)})]})]},e.id))}),b&&(0,Z.jsxs)(`div`,{className:`gz-mail-link-form gz-connector-config`,"aria-label":`${b.name} setup`,children:[(0,Z.jsxs)(`div`,{className:`gz-connector-config-heading`,children:[(0,Z.jsx)(`span`,{className:`gz-connector-config-mark`,children:(0,Z.jsx)(G2,{iconSvg:b.iconSvg,logoUrl:b.logoUrl,svgClassName:`gz-npd-card-mark-svg`,fallback:(0,Z.jsx)(_4,{glyph:H4(b),size:19})})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`strong`,{children:[`Set up `,b.name]}),(0,Z.jsxs)(`div`,{className:`small muted`,children:[U4(b),` · `,W4(b)]})]})]}),(0,Z.jsx)(SBe,{connector:b,config:S,onConfigChange:(e,t)=>C(n=>({...n,[e]:t})),displayName:w,onDisplayNameChange:T,credential:E,onCredentialChange:D,imapHost:O,onImapHostChange:k,imapPort:A,onImapPortChange:j,imapSecure:M,onImapSecureChange:N}),G&&(0,Z.jsx)(OBe,{requirement:G,registered:P[G.clientKey]??null,forceOpenNonce:I,busy:i===`oauth-app`||i===`add`,onSave:K},b.id)]}),(0,Z.jsxs)(`div`,{className:`gz-mail-link-actions gz-connector-picker-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:V,disabled:i===`add`,children:`Cancel`}),b&&(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>void ne(),disabled:i===`add`,children:i===`add`?`Working…`:re===`oauth2`?`Connect`:`Add`})]})]}),o&&(0,Z.jsx)(`p`,{className:`error small`,children:o}),c&&(0,Z.jsx)(`p`,{className:`muted small`,children:c}),(0,Z.jsx)(ty,{open:u!==null,title:`Remove connector?`,message:`This removes the binding and its stored credential. Synced files stay on disk.`,confirmLabel:`Remove`,danger:!0,onConfirm:()=>{u&&te(u)},onCancel:()=>d(null)})]})}function G4(e){return e?.leadLabel?e.leadLabel:e?.mode===`solo`?`Builder`:`Voorman`}function K4(e){return e?.leadLabel?e.leadLabel.toLowerCase():e?.mode===`solo`?`builder`:`voorman`}function q4(){return Math.floor(Math.random()*2147483647)}function jBe(e){return e.manifest.kind===`gezel-template`}function J4(e){return(e??``).toLocaleLowerCase().replaceAll(/[^a-z0-9]+/g,``)}function Y4(e,t,n){return[i(e,n),e.role??``].some(e=>e.toLocaleLowerCase().includes(t))}function X4(e,t){return[e.manifest.name,e.manifest.role,e.manifest.description,...e.manifest.tags].some(e=>e.toLocaleLowerCase().includes(t))}function MBe({open:e,project:t,gezels:n,roleBasedNameOnlyMode:r,onClose:a,onAddExisting:o,onCreateTemplate:s}){let[c,l]=(0,X.useState)([]),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(!1),[m,h]=(0,X.useState)(null),[_,v]=(0,X.useState)(``),[y,b]=(0,X.useState)(null),[x,S]=(0,X.useState)(``),[C,w]=(0,X.useState)(),[T,E]=(0,X.useState)(q4),D=N(_e(t));(0,X.useEffect)(()=>{if(!e)return;let t=!1;return d(!0),h(null),v(``),b(null),Q.listCatalogItems(`gezel-template`).then(({items:e})=>{if(t)return;let n=new Map;for(let t of e)jBe(t)&&!n.has(t.manifest.id)&&n.set(t.manifest.id,t);l([...n.values()])}).catch(e=>{t||h(e.message)}).finally(()=>{t||d(!1)}),()=>{t=!0}},[e]);let O=(0,X.useMemo)(()=>new Set([...t.gezelIds??[],...t.voormanGezelId?[t.voormanGezelId]:[]]),[t.gezelIds,t.voormanGezelId]),k=(0,X.useMemo)(()=>{let e=new Map,t=0;for(let n of D?.gezelRoles.default??[])e.set(n.templateId,{...n,tier:`default`,rank:t++});for(let n of D?.gezelRoles.suggested??[])e.has(n.templateId)||e.set(n.templateId,{...n,tier:`suggested`,rank:t++});return e},[D]),A=(0,X.useMemo)(()=>{let e=new Map;for(let t of c){let n=k.get(t.manifest.id);if(n)for(let r of[J4(t.manifest.role),J4(t.manifest.name)])r&&!e.has(r)&&e.set(r,n)}return e},[k,c]),j=(0,X.useMemo)(()=>new Set(n.flatMap(e=>e.templateId?[e.templateId]:[])),[n]),M=(0,X.useMemo)(()=>new Set(n.flatMap(e=>[e.role,e.roleBasedName].map(J4).filter(Boolean))),[n]),P=(0,X.useMemo)(()=>n.filter(e=>!O.has(e.id)&&e.scope!==`project`).sort((e,t)=>i(e,r).localeCompare(i(t,r))),[O,n,r]),F=(0,X.useMemo)(()=>c.filter(e=>!j.has(e.manifest.id)&&!M.has(J4(e.manifest.role))&&!M.has(J4(e.manifest.name))).sort((e,t)=>e.manifest.name.localeCompare(t.manifest.name)),[M,j,c]),I=(0,X.useCallback)(e=>{if(e.templateId){let t=k.get(e.templateId);if(t)return t}for(let t of[J4(e.role),J4(e.roleBasedName)]){let e=A.get(t);if(e)return e}},[A,k]),L=(0,X.useMemo)(()=>{let e=[];for(let t of P){let n=I(t);n&&e.push({kind:`existing`,gezel:t,affinity:n})}for(let t of F){let n=k.get(t.manifest.id);n&&e.push({kind:`template`,template:t,affinity:n})}return e.sort((e,t)=>e.affinity.rank-t.affinity.rank||(e.kind===`existing`?i(e.gezel,r):e.template.manifest.name).localeCompare(t.kind===`existing`?i(t.gezel,r):t.template.manifest.name))},[I,P,F,k,r]),R=(0,X.useMemo)(()=>new Set(L.flatMap(e=>e.kind===`existing`?[e.gezel.id]:[])),[L]),z=(0,X.useMemo)(()=>new Set(L.flatMap(e=>e.kind===`template`?[e.template.manifest.id]:[])),[L]),B=(0,X.useMemo)(()=>P.filter(e=>!R.has(e.id)),[P,R]),V=(0,X.useMemo)(()=>F.filter(e=>!z.has(e.manifest.id)),[F,z]),H=_.trim().toLocaleLowerCase(),U=(0,X.useMemo)(()=>H?L.filter(e=>e.kind===`existing`?Y4(e.gezel,H,r):X4(e.template,H)):L,[H,r,L]),ee=(0,X.useMemo)(()=>H?B.filter(e=>Y4(e,H,r)):B,[H,B,r]),te=(0,X.useMemo)(()=>H?V.filter(e=>X4(e,H)):V,[H,V]),W=()=>{f||a()},G=async e=>{p(!0),h(null);try{await o(e),a()}catch(e){h(e.message)}finally{p(!1)}},ne=async(e,t)=>{p(!0),h(null);try{await s(e.manifest.id,t),a()}catch(e){h(e.message)}finally{p(!1)}},K=e=>{if(r){ne(e,{name:e.manifest.name});return}let t=ce(),n=e.manifest.nameSuggestions??[],i=n.length>0?n[Math.floor(Math.random()*n.length)]:t.name;b(e),S(i??t.name),w(t.gender),E(q4()),h(null)},q=y&&x.trim()?be(T,{key:`project-add-preview:${y.manifest.id}`,name:x.trim(),gender:C}):null;return(0,Z.jsx)(dm,{open:e,onOpenChange:e=>!e&&W(),children:(0,Z.jsxs)(fm,{children:[(0,Z.jsx)(gm,{}),(0,Z.jsxs)(_m,{className:`project-add-gezel-dialog`,children:[(0,Z.jsx)(mm,{asChild:!0,children:(0,Z.jsx)(`h3`,{children:y?`Customize ${y.manifest.name}`:`Add Gezel`})}),(0,Z.jsx)(hm,{className:`muted small`,children:y?`Give this new ${y.manifest.role} a name and appearance before adding them to ${t.name}.`:`Choose someone from your workshop or add a new role to ${t.name}.`}),m&&(0,Z.jsx)(`p`,{className:`error small project-add-gezel-error`,children:m}),y?(0,Z.jsxs)(`form`,{className:`project-add-gezel-customize`,onSubmit:e=>{e.preventDefault(),x.trim()&&ne(y,{name:x.trim(),...C?{gender:C}:{},appearanceSeed:T})},children:[(0,Z.jsx)(`div`,{className:`project-add-gezel-preview`,"aria-hidden":`true`,children:q&&(0,Z.jsx)(lp,{poppetje:q,variant:`full`,size:150,grainStyle:`wavy`})}),(0,Z.jsxs)(`div`,{className:`project-add-gezel-customize-fields`,children:[(0,Z.jsxs)(`label`,{children:[`Name`,(0,Z.jsx)(`input`,{type:`text`,value:x,onChange:e=>S(e.target.value),disabled:f})]}),(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:f,onClick:()=>E(q4()),children:`Reroll appearance`}),(0,Z.jsxs)(`p`,{className:`muted small`,children:[`Their role and working style come from the `,y.manifest.name,` `,`template.`]})]}),(0,Z.jsxs)(vm,{children:[(0,Z.jsx)(`button`,{type:`button`,disabled:f,onClick:()=>{b(null),h(null)},children:`Back`}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,disabled:f||!x.trim(),children:f?`Adding…`:`Add to project`})]})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`label`,{className:`project-add-gezel-search`,children:[(0,Z.jsx)(`span`,{className:`sr-only`,children:`Search gezels and roles`}),(0,Z.jsx)(`input`,{type:`text`,placeholder:`Search gezels and roles…`,value:_,onChange:e=>v(e.target.value),disabled:f})]}),(0,Z.jsxs)(`div`,{className:`project-add-gezel-options`,children:[U.length>0&&(0,Z.jsxs)(`section`,{className:`project-add-gezel-suggestions`,"aria-labelledby":`project-add-suggested-title`,children:[(0,Z.jsx)(`h4`,{id:`project-add-suggested-title`,children:`Suggested for this project type`}),D&&(0,Z.jsxs)(`p`,{className:`muted small project-add-gezel-section-hint`,children:[D.label,` projects often benefit from these roles.`]}),(0,Z.jsx)(`ul`,{className:`project-add-gezel-list`,children:U.map(e=>{let t=e.affinity.tier==="default"?`Core role`:`Suggested`;if(e.kind===`existing`){let n=i(e.gezel,r);return(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`project-add-gezel-option`,disabled:f,onClick:()=>void G(e.gezel.id),children:[(0,Z.jsx)(Up,{svg:e.gezel.icon??null,poppetje:e.gezel.poppetje,iconOverride:e.gezel.iconOverride,name:n,size:36}),(0,Z.jsxs)(`span`,{className:`project-add-gezel-option-copy`,children:[(0,Z.jsx)(`span`,{className:`project-add-gezel-option-name`,children:n}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[e.gezel.role??`Gezel`,` · `,e.affinity.reason]})]}),(0,Z.jsx)(`span`,{className:`gz-badge`,children:t})]})},`existing:${e.gezel.id}`)}return(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`project-add-gezel-option`,disabled:f,onClick:()=>K(e.template),children:[(0,Z.jsx)(Up,{poppetje:g(`project-role:${e.template.manifest.id}`,e.template.manifest.name),name:e.template.manifest.name,size:36}),(0,Z.jsxs)(`span`,{className:`project-add-gezel-option-copy`,children:[(0,Z.jsx)(`span`,{className:`project-add-gezel-option-name`,children:e.template.manifest.name}),(0,Z.jsx)(`span`,{className:`muted small`,children:e.affinity.reason})]}),(0,Z.jsx)(`span`,{className:`gz-badge`,children:t})]})},`template:${e.template.manifest.id}`)})})]}),(0,Z.jsxs)(`section`,{"aria-labelledby":`project-add-existing-title`,children:[(0,Z.jsx)(`h4`,{id:`project-add-existing-title`,children:`From your workshop`}),ee.length>0?(0,Z.jsx)(`ul`,{className:`project-add-gezel-list`,children:ee.map(e=>{let t=i(e,r);return(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`project-add-gezel-option`,disabled:f,onClick:()=>void G(e.id),children:[(0,Z.jsx)(Up,{svg:e.icon??null,poppetje:e.poppetje,iconOverride:e.iconOverride,name:t,size:36}),(0,Z.jsxs)(`span`,{className:`project-add-gezel-option-copy`,children:[(0,Z.jsx)(`span`,{className:`project-add-gezel-option-name`,children:t}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[e.role??`Gezel`,` · ready to add`]})]})]})},e.id)})}):(0,Z.jsx)(`p`,{className:`muted small project-add-gezel-empty`,children:B.length>0?`No workshop gezels match that search.`:L.some(e=>e.kind===`existing`)?`No other workshop gezels are available.`:`Every available gezel is already on this project.`})]}),(0,Z.jsxs)(`section`,{"aria-labelledby":`project-add-role-title`,children:[(0,Z.jsx)(`h4`,{id:`project-add-role-title`,children:`Add a new gezel for a role`}),u&&(0,Z.jsx)(`p`,{className:`muted small`,children:`Loading roles…`}),!u&&te.length>0?(0,Z.jsx)(`ul`,{className:`project-add-gezel-list`,children:te.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,className:`project-add-gezel-option`,disabled:f,onClick:()=>K(e),children:[(0,Z.jsx)(Up,{poppetje:g(`project-role:${e.manifest.id}`,e.manifest.name),name:e.manifest.name,size:36}),(0,Z.jsxs)(`span`,{className:`project-add-gezel-option-copy`,children:[(0,Z.jsx)(`span`,{className:`project-add-gezel-option-name`,children:e.manifest.name}),(0,Z.jsx)(`span`,{className:`muted small`,children:e.manifest.description})]}),(0,Z.jsx)(`span`,{className:`gz-badge`,children:`New role`})]})},e.manifest.id))}):!u&&(0,Z.jsx)(`p`,{className:`muted small project-add-gezel-empty`,children:V.length>0?`No new roles match that search.`:L.some(e=>e.kind===`template`)?`No other role types are available.`:`Every role type already has a gezel.`})]})]}),(0,Z.jsx)(vm,{children:(0,Z.jsx)(`button`,{type:`button`,onClick:W,disabled:f,children:`Cancel`})})]})]})]})})}function NBe({projectId:e,projectProperties:t,refreshKey:n,recentlyAddedGezelId:r}){let[i,a]=(0,X.useState)(null),[o,s]=(0,X.useState)(null),[c,l]=(0,X.useState)(null),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)(!1),m=(0,X.useCallback)(async()=>{try{let t=await Q.listSuggestedWork(e);a(t.items)}catch(e){l(e.message)}},[e]);(0,X.useEffect)(()=>{m()},[m,n]);let h=async(e,t)=>{s(e),l(null);try{await t(),await m()}catch(e){l(e.message)}finally{s(null)}},g=async(t,n)=>{d(null),await h(t.key,async()=>{await Q.enableSuggestedWork(e,{key:t.key,...n?{params:n}:{}});let r=LBe(t,n);r&&await Q.updateProject(e,{properties:r})})};if(i===null)return c?(0,Z.jsx)(`p`,{className:`error small suggested-work-error`,children:c}):null;let _=i.filter(e=>e.state!==`dismissed`),v=i.filter(e=>e.state===`dismissed`);return i.length===0?null:(0,Z.jsxs)(`div`,{className:`suggested-work`,children:[_.map(n=>(0,Z.jsx)(PBe,{item:n,busy:o===n.key,flash:n.state===`suggested`&&n.source.kind===`gezel-template`&&n.source.gezelId!==void 0&&n.source.gezelId===r,paramFormOpen:u===n.key,projectProperties:t,onEnable:e=>void g(n,e),onOpenParamForm:()=>d(n.key),onCloseParamForm:()=>d(null),onDisable:()=>void h(n.key,()=>Q.disableSuggestedWork(e,n.key)),onDismiss:()=>void h(n.key,()=>Q.dismissSuggestedWork(e,n.key,!0))},n.key)),v.length>0&&(0,Z.jsxs)(`div`,{className:`suggested-work-hidden`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`subtle small`,onClick:()=>p(e=>!e),children:f?`Hide dismissed suggestions`:`${v.length} hidden suggestion${v.length===1?``:`s`}`}),f&&v.map(t=>(0,Z.jsxs)(`div`,{className:`project-autonomous-role suggested-work-row`,children:[(0,Z.jsxs)(`div`,{className:`project-autonomous-role-copy`,children:[(0,Z.jsx)(`span`,{className:`project-autonomous-role-title`,children:t.craftbookName??t.craftbookId}),(0,Z.jsx)(`span`,{className:`muted small`,children:`Hidden from suggestions.`})]}),(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:o===t.key,onClick:()=>void h(t.key,()=>Q.dismissSuggestedWork(e,t.key,!1)),children:`Suggest again`})]},t.key))]}),c&&(0,Z.jsx)(`p`,{className:`error small suggested-work-error`,children:c})]})}function PBe({item:e,busy:t,flash:n,paramFormOpen:r,projectProperties:i,onEnable:a,onOpenParamForm:o,onCloseParamForm:s,onDisable:c,onDismiss:l}){let u=e.state===`enabled`,d=IBe(e),f=e.runMode===`night-shift`?`Runs during the Night Shift window, at most once per night.`:`Runs on schedule (cron ${e.cron}, UTC).`,p=e.source.kind===`gezel-template`?e.source.gezelName?`Suggested by ${e.source.gezelName}${e.source.role?` — ${e.source.role}`:``}.`:`Suggested by the "${e.source.templateId}" role.`:`From the "${e.source.typeId}" project type.`,m=e.pendingQuestionId?` Awaiting approval — enabling here answers the pending question.`:e.orphaned?` The sponsoring role is no longer on this crew.`:``;return(0,Z.jsxs)(`div`,{className:`project-autonomous-role suggested-work-row${u?` project-autonomous-role-active`:``}${n?` timeline-focus-flash`:``}`,children:[(0,Z.jsx)(`span`,{className:`suggested-work-glyph`,"aria-hidden":`true`,children:e.runMode===`night-shift`?(0,Z.jsx)(RBe,{}):(0,Z.jsx)(zBe,{})}),(0,Z.jsxs)(`div`,{className:`project-autonomous-role-copy`,children:[(0,Z.jsxs)(`span`,{className:`project-autonomous-role-title`,children:[e.craftbookName??e.craftbookId,` `,u?`on`:`off`]}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[e.reason?`${e.reason} `:``,f,` `,p,m]}),r&&(0,Z.jsx)(FBe,{item:e,projectProperties:i,onSubmit:a,onCancel:s})]}),(0,Z.jsxs)(`div`,{className:`suggested-work-actions`,children:[u?(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:t,onClick:c,children:t?`Updating…`:`Pause`}):(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:t||r,onClick:()=>d&&e.state===`suggested`?o():a(),children:t?`Updating…`:e.state===`paused`?`Resume`:`Enable`}),e.state===`suggested`&&(0,Z.jsx)(`button`,{type:`button`,className:`subtle small suggested-work-dismiss`,disabled:t,onClick:l,title:`Don't suggest this for this project`,children:`Don't suggest`})]})]})}function FBe({item:e,projectProperties:t,onSubmit:n,onCancel:r}){let i=e.paramSchema,[a,o]=(0,X.useState)(()=>{let n={},r=i?.properties??{};for(let[i,a]of Object.entries(r)){let r=we(a),o=r?t?.[r]:void 0;o===void 0?e.params?.[i]===void 0?a&&a.default!==void 0&&(n[i]=a.default):n[i]=e.params[i]:n[i]=o}return n}),s=(0,X.useMemo)(()=>{let e={};for(let[t,n]of Object.entries(a))n!=null&&(typeof n==`boolean`?e[t]=n?`true`:`false`:typeof n==`number`?e[t]=String(n):typeof n==`string`&&(e[t]=n));return e},[a]);return(0,Z.jsxs)(`form`,{className:`suggested-work-param-form`,onSubmit:e=>{e.preventDefault(),n(s)},children:[i&&(0,Z.jsx)(SQ,{schema:i,value:a,onChange:e=>o(e??{}),density:`compact`}),(0,Z.jsxs)(`div`,{className:`suggested-work-param-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,onClick:r,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,children:`Enable`})]})]})}function IBe(e){let t=e.paramSchema?.properties;return!!(t&&Object.keys(t).length>0)}function LBe(e,t){if(!t)return null;let n=e.paramSchema?.properties??{},r={};for(let[e,i]of Object.entries(n)){let n=we(i),a=t[e];n&&a!==void 0&&a!==``&&(r[n]=a)}return Object.keys(r).length>0?r:null}function RBe(){return(0,Z.jsx)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:(0,Z.jsx)(`path`,{d:`M12 3a9 9 0 1 0 9 9c0-.46-.04-.92-.1-1.36a5.39 5.39 0 0 1-8.54-6.5A8.97 8.97 0 0 0 12 3z`})})}function zBe(){return(0,Z.jsxs)(`svg`,{width:`15`,height:`15`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,"aria-hidden":`true`,children:[(0,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,Z.jsx)(`path`,{d:`M12 7v5l3 2`})]})}function BBe({project:e,gezels:t,boekwachterGezelId:n,recentlyAddedGezelId:r,onAddGezel:a,onCreateTemplateGezel:o,onRemoveGezel:s}){let c=fC(),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(null),h=(0,X.useMemo)(()=>{let n=new Set,r=[];if(e.voormanGezelId){let i=t.find(t=>t.id===e.voormanGezelId);i&&(r.push({gezel:i,isLead:!0}),n.add(i.id))}for(let i of e.gezelIds??[]){if(n.has(i))continue;let e=t.find(e=>e.id===i);e&&(r.push({gezel:e,isLead:!1}),n.add(i))}return r},[t,e.gezelIds,e.voormanGezelId]),g=n?t.find(e=>e.id===n):void 0,_=t.find(t=>(e.gezelIds??[]).includes(t.id)&&(t.id===n||t.templateId===`boekwachter`||t.role?.trim().toLocaleLowerCase()===`boekwachter`)),v=async e=>{let t=e===`add`?g:_,n=e===`add`?a:s;if(!(!t||!n)){f(!0),m(null);try{await n(t.id)}catch(e){m(e.message)}finally{f(!1)}}};return(0,Z.jsxs)(`section`,{id:`project-about-crew`,className:`project-crew-settings project-about-anchor`,"aria-labelledby":`project-crew-settings-title`,children:[(0,Z.jsxs)(`div`,{className:`project-crew-settings-heading`,children:[(0,Z.jsx)(`h3`,{id:`project-crew-settings-title`,className:`project-crew-settings-title`,children:`Assigned gezellen`}),a&&o&&(0,Z.jsx)(`button`,{type:`button`,className:`primary project-crew-add`,onClick:()=>u(!0),children:`Add Gezel`})]}),(0,Z.jsx)(`p`,{className:`muted small project-crew-settings-hint`,children:`The crew attached to this project. Change the lead below; task and conversation assignments are added automatically.`}),h.length>0?(0,Z.jsx)(`ul`,{className:`project-crew-list`,children:h.map(({gezel:t,isLead:n})=>{let r=i({name:t.name,roleBasedName:t.roleBasedName},c),a=n?`⭐ ${K4(e)}`:t.role;return(0,Z.jsxs)(`li`,{className:`project-crew-card${n?` project-crew-card-lead`:``}`,children:[(0,Z.jsx)(Up,{svg:t.icon??null,poppetje:t.poppetje,iconOverride:t.iconOverride,name:r,size:30}),(0,Z.jsxs)(`span`,{className:`project-crew-card-text`,children:[(0,Z.jsx)(`span`,{className:`project-crew-card-name`,children:r}),a&&(0,Z.jsx)(`span`,{className:`project-crew-card-role`,children:a})]})]},t.id)})}):(0,Z.jsx)(`p`,{className:`muted small project-crew-empty`,children:`No gezellen are assigned to this project yet.`}),(0,Z.jsxs)(`div`,{className:`project-autonomous-role${_?` project-autonomous-role-active`:``}`,children:[(0,Z.jsxs)(`div`,{className:`project-autonomous-role-copy`,children:[(0,Z.jsxs)(`span`,{className:`project-autonomous-role-title`,children:[`AI indexing `,_?`on`:`off`]}),(0,Z.jsx)(`span`,{className:`muted small`,children:_?`${_.name} studies changed files, writes short summaries and reviews, and prepares weekly digests while the workshop is quiet.`:`Structural file and symbol search stays available. Add the Boekwachter to this crew for background AI summaries, reviews, and digests.`})]}),_?(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:d||!s,onClick:()=>void v(`remove`),children:d?`Updating…`:`Remove Boekwachter`}):(0,Z.jsx)(`button`,{type:`button`,className:`subtle`,disabled:d||!g||!a,onClick:()=>void v(`add`),children:d?`Updating…`:g?`Add ${g.name}`:`No Boekwachter available`})]}),p&&(0,Z.jsx)(`p`,{className:`error small project-autonomous-role-error`,children:p}),(0,Z.jsx)(NBe,{projectId:e.id,projectProperties:e.properties,refreshKey:[e.voormanGezelId??``,...e.gezelIds??[]].join(`|`),recentlyAddedGezelId:r}),a&&o&&(0,Z.jsx)(MBe,{open:l,project:e,gezels:t,roleBasedNameOnlyMode:c,onClose:()=>u(!1),onAddExisting:a,onCreateTemplate:o})]})}var Z4=null,Q4=`gezel:git-changed`;function $4(e){window.dispatchEvent(new CustomEvent(Q4,{detail:{projectId:e}}))}function e3(e,t={}){let[n,r]=(0,X.useState)(!1),i=(0,X.useRef)(t);return i.current=t,{sync:(0,X.useCallback)(async()=>{if(Z4===e)return null;Z4=e,r(!0);try{let t=await Q.syncProjectGit(e),n=i.current;switch(t.state){case`synced`:n.onToast?.(`ok`,wLe(t));break;case`needs-save`:n.onNeedsSave?.();break;case`conflicts`:n.onConflicts?.(t);break;case`auth`:n.onToast?.(`err`,u0.syncAuth),n.onAuth?.();break;case`offline`:n.onToast?.(`err`,u0.syncOffline);break;default:n.onToast?.(`err`,t.message||u0.syncGenericError)}return $4(e),t}catch(e){return i.current.onToast?.(`err`,`Sync failed: ${e instanceof Error?e.message:String(e)}`),null}finally{Z4=null,r(!1)}},[e]),syncing:n}}var VBe=`Active — the Meester nudges the voorman, phase handoffs auto-start, and scheduled tasks tick. Read-only or Inactive — ambient gezel work pauses. Chat still works.`,HBe=`Whether Gezel-managed tools and background work may create, edit, and delete files in this project's workspace. Internal workspaces default to on; a project opened from an existing folder defaults to off (turning it on asks for confirmation first). Provider-native access such as Codex is shown separately.`,t3=[{value:`plan`,label:`Plan`,hint:`Read and reason without changing workspace files.`},{value:`edit`,label:`Edit`,hint:`Edit inside the workspace; deny boundary crossings.`},{value:`reviewed`,label:`Reviewed`,hint:`Edit in the workspace; send boundary crossings to an independent Codex reviewer.`},{value:`full`,label:`Full`,hint:`Run without Codex sandboxing or approvals. Gezel still blocks a narrow set of unmistakably destructive commands.`}],n3=[{value:`plan`,label:`Plan`,hint:`Read and reason without changing workspace files.`},{value:`default`,label:`Ask`,hint:`Let Claude request permission for tool use.`},{value:`acceptEdits`,label:`Edit`,hint:`Auto-approve file edits; gate shell commands.`},{value:`bypassPermissions`,label:`Full`,hint:`Bypass Claude permission prompts, including for shell commands.`}];function UBe(e){let t=t3.find(t=>t.value===e);return`Codex ${t?.label??e}: ${t?.hint??``}`}function WBe(e){if(e===`mixed`)return`Claude: assigned gezels currently use different permission modes.`;let t=n3.find(t=>t.value===e);return`Claude ${t?.label??e}: ${t?.hint??``}`}var r3=[{value:`active`,label:`Active`},{value:`stable`,label:`Stable`},{value:`readonly`,label:`Read-only`},{value:`inactive`,label:`Inactive`}];function i3({unlocked:e=!1}){return(0,Z.jsxs)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,focusable:`false`,children:[(0,Z.jsx)(`rect`,{x:`3`,y:`7`,width:`10`,height:`7`,rx:`1.25`,stroke:`currentColor`,strokeWidth:`1.5`}),e?(0,Z.jsx)(`path`,{d:`M5 7V5a3 3 0 0 1 5.75-1.2`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`}):(0,Z.jsx)(`path`,{d:`M5 7V5a3 3 0 0 1 6 0v2`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})]})}function GBe({projectStatus:e,statusLocked:t,onStatusChange:n,managedWritesOn:r,onManagedWorkspaceWritesChange:i,codexMode:a,onCodexModeChange:o,claudeMode:s,onClaudeModeChange:c}){let[l,u]=(0,X.useState)(!1);return!n&&!o&&!c&&(!i||r)?null:(0,Z.jsx)(`div`,{className:`project-controls-overflow`,children:(0,Z.jsxs)(U_,{open:l,onOpenChange:u,children:[(0,Z.jsx)(W_,{asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,className:`project-controls-overflow-trigger`,title:`More project controls`,"aria-label":`More project controls`,children:`…`})}),(0,Z.jsx)(K_,{className:`project-controls-overflow-popover`,side:`top`,align:`end`,children:(0,Z.jsxs)(`fieldset`,{className:`project-controls-overflow-fieldset`,children:[(0,Z.jsx)(`legend`,{className:`sr-only`,children:`Project controls overflow`}),n&&(0,Z.jsxs)(`section`,{className:`project-controls-overflow-section`,children:[(0,Z.jsx)(`span`,{className:`project-controls-overflow-label`,children:`Project status`}),(0,Z.jsx)(`div`,{className:`project-controls-overflow-options`,children:r3.map(r=>(0,Z.jsxs)(`button`,{type:`button`,className:`project-controls-overflow-item project-status-select-${r.value}`,"aria-pressed":e===r.value,disabled:t,onClick:()=>{n(r.value),u(!1)},children:[(0,Z.jsx)(`span`,{className:`project-status-select-dot`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{children:r.label})]},r.value))})]}),i&&!r&&(0,Z.jsxs)(`section`,{className:`project-controls-overflow-section`,children:[(0,Z.jsx)(`span`,{className:`project-controls-overflow-label`,children:`Built-in tools`}),(0,Z.jsxs)(`button`,{type:`button`,className:`project-controls-overflow-item`,onClick:()=>{i(!0),u(!1)},children:[(0,Z.jsx)(`span`,{className:`project-writes-select-icon`,"aria-hidden":!0,children:(0,Z.jsx)(i3,{unlocked:!0})}),(0,Z.jsx)(`span`,{children:`Allow workspace edits`})]})]}),a&&o&&(0,Z.jsxs)(`section`,{className:`project-controls-overflow-section`,children:[(0,Z.jsx)(`span`,{className:`project-controls-overflow-label`,children:`Codex access`}),(0,Z.jsx)(`div`,{className:`project-controls-overflow-options`,children:t3.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`project-controls-overflow-item`,"aria-pressed":a===e.value,title:e.hint,onClick:()=>{o(e.value),u(!1)},children:e.label},e.value))})]}),s&&c&&(0,Z.jsxs)(`section`,{className:`project-controls-overflow-section`,children:[(0,Z.jsx)(`span`,{className:`project-controls-overflow-label`,children:`Claude access`}),(0,Z.jsx)(`div`,{className:`project-controls-overflow-options`,children:n3.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`project-controls-overflow-item`,"aria-pressed":s===e.value,title:e.hint,onClick:()=>{c(e.value),u(!1)},children:e.label},e.value))})]})]})})]})})}function KBe({projectId:e,compact:t=!1,managedWorkspaceWritable:n=!0,onManagedWorkspaceWritesChange:r,codexMode:i,onCodexModeChange:a,claudeMode:o,onClaudeModeChange:s,onOpenGitHub:c,status:l,statusLocked:u=!1,onStatusChange:d}){let[f,p]=(0,X.useState)(null),[m,h]=(0,X.useState)(null),[g,_]=(0,X.useState)(null),[v,y]=(0,X.useState)(!1),[b,x]=(0,X.useState)(!1),[S,C]=(0,X.useState)(``),[w,T]=(0,X.useState)(``),[E,D]=(0,X.useState)(null),[O,k]=(0,X.useState)(!1),[A,j]=(0,X.useState)(!1),[M,N]=(0,X.useState)(null),[P,F]=(0,X.useState)(`idle`),[I,L]=(0,X.useState)(null),R=(0,X.useRef)(null),z=n,B=(0,X.useCallback)(async()=>{try{let t=await Q.getProjectGitStatus(e);p(t)}catch{}},[e]),V=(0,X.useCallback)(async()=>{try{h(await Q.getProjectIndexStatus(e))}catch{}},[e]);(0,X.useEffect)(()=>{B(),V();let e=window.setInterval(()=>{B(),V()},3e4);return()=>window.clearInterval(e)},[B,V]);let H=m?.aiDrive!=null||P!==`idle`;(0,X.useEffect)(()=>{if(!H)return;let e=window.setInterval(()=>void V(),5e3);return()=>window.clearInterval(e)},[H,V]),(0,X.useEffect)(()=>{let t=t=>{t.detail?.projectId===e&&B()};return window.addEventListener(Q4,t),()=>window.removeEventListener(Q4,t)},[e,B]);let U=(0,X.useCallback)(async()=>{if(!(A||m===null||m.state===`disabled`||m.state===`indexing`)){j(!0),N(null);try{await Q.refreshProjectIndex(e),h(e=>({state:`indexing`,...e?.meta?{meta:e.meta}:{}})),window.setTimeout(()=>void V(),800)}catch{N(`Couldn’t start the index update. Try again.`)}finally{j(!1)}}},[A,m,e,V]),ee=(0,X.useRef)(null),te=(0,X.useCallback)(async()=>{if(!(P!==`idle`||m===null||m.state===`disabled`||m.aiDrive!=null)){F(`starting`),L(null),ee.current=m;try{await Q.driveIndexEnrichment(e,{intensity:`full`}),F(`running`),window.setTimeout(()=>void V(),800)}catch(e){let t=e&&typeof e==`object`&&`details`in e?e.details?.message:void 0;L(t??`Couldn’t start the full scan. Try again.`),F(`idle`)}}},[P,m,e,V]);(0,X.useEffect)(()=>{P===`running`&&m!==ee.current&&m!==null&&m.aiDrive==null&&F(`idle`)},[P,m]),(0,X.useEffect)(()=>{if(!v)return;let e=e=>{R.current&&!R.current.contains(e.target)&&(y(!1),x(!1))};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[v]),(0,X.useEffect)(()=>{!v||g||Q.listProjectGitBranches(e).then(_).catch(()=>_({local:[],remote:[]}))},[v,g,e]);let W=(0,X.useCallback)((e,t)=>{D({kind:e,text:t}),window.setTimeout(()=>D(null),4e3)},[]),{sync:G,syncing:ne}=e3(e,{onToast:W,onNeedsSave:()=>{W(`err`,`Save your changes first — they’re waiting in the GitHub tab.`),c?.()},onConflicts:()=>c?.(),onAuth:()=>c?.()}),K=(0,X.useCallback)(async()=>{await G(),await B()},[G,B]),q=(0,X.useCallback)(async t=>{y(!1),T(`branch`);try{await Q.setProjectGitBranch(e,t),await B(),W(`ok`,`Switched to ${t}.`)}catch(e){W(`err`,`Couldn’t switch: ${e instanceof Error?e.message:String(e)}`)}finally{T(``)}},[e,B,W]),re=(0,X.useCallback)(async t=>{t.preventDefault();let n=S.trim();if(n){y(!1),x(!1),C(``),T(`branch`);try{await Q.createProjectGitBranch(e,n),_(null),await B(),W(`ok`,`Created and switched to ${n}.`)}catch(e){W(`err`,`Couldn’t create: ${e instanceof Error?e.message:String(e)}`)}finally{T(``)}}},[S,e,B,W]),ie=!!f?.github,J=f?.branch,ae=f?.github?.lastSyncedAt,oe=m?.state??`never`,se=m?.aiScanPending===!0,Y=oe===`disabled`?`disabled`:oe===`indexing`?`indexing`:oe===`fresh`?se?`scan`:`fresh`:`stale`,ce=m?.enrichment;ce&&qBe(ce.embedded,ce.eligible);let le=ce?JBe(ce):null,ue=m?.aiDrive??null,de=m===null?`Checking workspace index`:oe===`disabled`?`Workspace indexing is off`:oe===`indexing`?`Scanning workspace`:oe===`never`?`Workspace not indexed`:oe===`stale`?`Workspace scan is out of date`:se?le===null?`AI indexing is pending`:`AI indexing ${le}% complete`:`Workspace index is ready`,fe=`Indexing status: ${de}`,pe=m===null||oe===`disabled`||oe===`indexing`||A,me=f?TLe({mergeInProgress:f.mergeInProgress,changesCount:f.changesCount,ahead:f.ahead,behind:f.behind}):``,he=f?.mergeInProgress===!0||(f?.changesCount??0)>0||(f?.ahead??0)>0||(f?.behind??0)>0;return(0,Z.jsxs)(`div`,{className:`project-git-status-bar${t?` is-compact`:``}`,children:[(0,Z.jsxs)(`div`,{className:`project-git-status-bar-left`,children:[ie&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`project-git-branch-picker`,ref:R,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`project-git-branch-chip`,onClick:()=>y(e=>!e),disabled:!f?.exists,title:`Switch branch`,children:[(0,Z.jsx)(`span`,{className:`project-git-icon`,"aria-hidden":!0,children:`⎇`}),(0,Z.jsx)(`span`,{className:`project-git-branch-name`,children:J??`(detached)`}),(0,Z.jsx)(N_,{className:`project-git-chevron`})]}),v&&(0,Z.jsxs)(`div`,{className:`project-git-branch-menu`,role:`menu`,children:[g===null?(0,Z.jsx)(`div`,{className:`project-git-branch-loading muted small`,children:`Loading branches…`}):(0,Z.jsxs)(Z.Fragment,{children:[g.local.length>0&&(0,Z.jsxs)(`div`,{className:`project-git-branch-group`,children:[(0,Z.jsx)(`div`,{className:`project-git-branch-group-label muted small`,children:`Local`}),g.local.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`project-git-branch-item${e===J?` is-current`:``}`,onClick:()=>void q(e),children:e},`local-${e}`))]}),g.remote.length>0&&(0,Z.jsxs)(`div`,{className:`project-git-branch-group`,children:[(0,Z.jsx)(`div`,{className:`project-git-branch-group-label muted small`,children:`Remote`}),g.remote.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`project-git-branch-item`,onClick:()=>void q(e),children:e},`remote-${e}`))]})]}),(0,Z.jsx)(`div`,{className:`project-git-branch-divider`}),b?(0,Z.jsxs)(`form`,{className:`project-git-new-branch-form`,onSubmit:re,children:[(0,Z.jsx)(`input`,{value:S,onChange:e=>C(e.target.value),placeholder:`new-branch-name`,autoFocus:!0}),(0,Z.jsx)(`button`,{type:`submit`,className:`primary`,children:`Create`})]}):(0,Z.jsx)(`button`,{type:`button`,className:`project-git-branch-item project-git-new-branch-trigger`,onClick:()=>x(!0),children:`+ new branch`})]})]}),f&&!t&&(0,Z.jsxs)(`button`,{type:`button`,className:`project-git-status-chip${he?` has-attention`:``}${f.mergeInProgress?` has-conflict`:``}`,onClick:c,title:`Open the GitHub tab`,children:[me,!he&&ae&&(0,Z.jsxs)(`span`,{className:`muted small`,children:[` · synced `,a3(ae)]})]})]}),(0,Z.jsxs)(U_,{open:O,onOpenChange:e=>{k(e),e&&(N(null),V())},children:[(0,Z.jsx)(W_,{asChild:!0,children:(0,Z.jsxs)(`button`,{type:`button`,className:`project-index-chip project-index-chip-${Y}`,"aria-label":fe,title:`Open indexing status`,children:[(0,Z.jsxs)(`svg`,{className:`project-index-icon`,width:`14`,height:`14`,viewBox:`0 0 16 16`,"aria-hidden":`true`,focusable:`false`,children:[(0,Z.jsx)(`rect`,{x:`3`,y:`2`,width:`10.5`,height:`12`,rx:`1.3`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,Z.jsx)(`line`,{x1:`6`,y1:`2`,x2:`6`,y2:`14`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,Z.jsx)(`line`,{x1:`8`,y1:`5.5`,x2:`11.5`,y2:`5.5`,stroke:`currentColor`,strokeWidth:`1.1`,strokeLinecap:`round`}),(0,Z.jsx)(`line`,{x1:`8`,y1:`8`,x2:`11.5`,y2:`8`,stroke:`currentColor`,strokeWidth:`1.1`,strokeLinecap:`round`}),(0,Z.jsx)(`line`,{x1:`8`,y1:`10.5`,x2:`10.5`,y2:`10.5`,stroke:`currentColor`,strokeWidth:`1.1`,strokeLinecap:`round`})]}),(0,Z.jsx)(`span`,{className:`project-index-dot`,"aria-hidden":!0})]})}),(0,Z.jsx)(K_,{className:`project-index-popover`,side:`top`,align:`center`,"aria-label":`Indexing status`,children:(0,Z.jsxs)(`div`,{className:`project-index-panel`,children:[(0,Z.jsxs)(`div`,{className:`project-index-panel-heading`,children:[(0,Z.jsx)(`span`,{className:`project-index-panel-dot project-index-panel-dot-${Y}`,"aria-hidden":!0}),(0,Z.jsx)(`strong`,{children:de})]}),ce&&ce.eligible>0&&le!==null&&(0,Z.jsxs)(`div`,{className:`project-index-panel-progress`,children:[(0,Z.jsxs)(`div`,{className:`project-index-panel-progress-label`,children:[(0,Z.jsx)(`span`,{children:`Indexing progress`}),(0,Z.jsxs)(`strong`,{children:[le,`%`]})]}),(0,Z.jsx)(`div`,{className:`project-index-panel-progress-track`,role:`progressbar`,"aria-label":`Indexing progress`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":le,tabIndex:-1,children:(0,Z.jsx)(`span`,{style:{width:`${le}%`}})}),(0,Z.jsxs)(`span`,{className:`project-index-panel-caption`,children:[ce.embedded,` of `,ce.eligible,` files searchable`,ce.pending>0?` · ${ce.pending} waiting`:``]})]}),(0,Z.jsxs)(`dl`,{className:`project-index-panel-details`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`File scan`}),(0,Z.jsx)(`dd`,{children:YBe(oe)})]}),m?.meta&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`Indexed`}),(0,Z.jsxs)(`dd`,{children:[m.meta.fileCount,` file`,m.meta.fileCount===1?``:`s`,` ·`,` `,m.meta.commandCount,` command`,m.meta.commandCount===1?``:`s`]})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`Last scan`}),(0,Z.jsxs)(`dd`,{children:[a3(m.meta.scannedAt),` ·`,` `,XBe(m.meta.durationMs)]})]})]}),ue&&(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`AI scan`}),(0,Z.jsx)(`dd`,{children:ue===`full`?`Running at full speed`:`Running quietly in background`})]}),ce&&(ce.shadowsPending??0)>0&&(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`Media scan`}),(0,Z.jsxs)(`dd`,{children:[ce.shadowsPending,` waiting`]})]}),ce&&ce.eligible>0&&(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`AI summaries`}),(0,Z.jsxs)(`dd`,{children:[ce.summarized,` of `,ce.eligible,` files`,(ce.skipped??0)>0?` · ${ce.skipped} skipped after repeated failures`:``]})]}),ce?.reviews&&ce.reviews.eligible>0&&(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`dt`,{children:`Quality review`}),(0,Z.jsxs)(`dd`,{children:[ce.reviews.reviewed,` of `,ce.reviews.eligible,ce.reviews.pending>0?` · ${ce.reviews.pending} waiting`:``,ce.reviews.stale>0?` · ${ce.reviews.stale} to refresh`:``]})]})]}),(0,Z.jsxs)(`div`,{className:`project-index-panel-footer`,children:[(0,Z.jsx)(`span`,{className:`project-index-panel-note`,children:oe===`disabled`?`Workspace indexing is off. Turn it on in Project Settings.`:ue===`full`?`Full scan in progress — it shares the model with chat, so counts move as calls finish.`:ue===`background`?`Background scan in progress — it politely waits while you chat.`:oe===`indexing`?`The status updates automatically while the scan runs.`:se?`AI indexing continues while the app is idle.`:`Refresh the index whenever you need the latest workspace state.`}),(0,Z.jsxs)(`div`,{className:`project-index-panel-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`project-index-update-button`,disabled:pe,onClick:()=>void U(),children:oe===`indexing`||A?`Updating index…`:`Update index now`}),oe!==`disabled`&&(0,Z.jsx)(`button`,{type:`button`,className:`project-index-update-button project-index-full-scan-button`,disabled:P!==`idle`||ue!==null||m===null,onClick:()=>void te(),title:`Bring the whole index up to date at full speed — file scan plus AI summaries, rollups, and reviews, run to completion. Shares the model with chat while it works.`,children:P===`starting`?`Starting full scan…`:P===`running`||ue===`full`?`Full scan running…`:ue===`background`?`Background scan running…`:`Full AI scan now`})]}),M&&(0,Z.jsx)(`span`,{className:`project-index-panel-error`,role:`alert`,children:M}),I&&(0,Z.jsx)(`span`,{className:`project-index-panel-error`,role:`alert`,children:I})]})]})})]}),(0,Z.jsxs)(`div`,{className:`project-controls-inline`,children:[d&&(0,Z.jsxs)(gv,{value:l??`active`,disabled:u,onValueChange:e=>d(e),children:[(0,Z.jsxs)(bv,{className:`project-status-select project-status-select-${l??`active`}`,title:u?`Archived projects are inactive. Restore this project to change its status.`:VBe,"aria-label":`Project status`,children:[(0,Z.jsx)(`span`,{className:`project-status-select-dot`,"aria-hidden":!0}),(0,Z.jsx)(_v,{})]}),(0,Z.jsx)(xv,{children:r3.map(e=>(0,Z.jsx)(Sv,{value:e.value,children:e.label},e.value))})]}),r&&(!t||!z)&&(0,Z.jsxs)(gv,{value:z?`on`:`off`,onValueChange:e=>r(e===`on`),children:[(0,Z.jsxs)(bv,{className:`project-writes-select project-writes-select-${z?`on`:`off`}`,title:HBe,"aria-label":`Built-in tool workspace access for this project`,children:[(0,Z.jsx)(`span`,{className:`project-writes-select-icon`,"aria-hidden":!0,children:(0,Z.jsx)(i3,{unlocked:z})}),(0,Z.jsx)(`span`,{className:`project-permission-scope`,children:`Tools:`}),(0,Z.jsx)(_v,{})]}),(0,Z.jsxs)(xv,{children:[(0,Z.jsx)(Sv,{value:`on`,children:`Can edit`}),(0,Z.jsx)(Sv,{value:`off`,children:`Read-only`})]})]}),i&&a&&(0,Z.jsxs)(gv,{value:i,onValueChange:e=>a(e),children:[(0,Z.jsxs)(bv,{className:`project-writes-select project-codex-mode project-codex-mode-${i}`,title:UBe(i),"aria-label":`Codex execution mode for this project`,children:[(0,Z.jsx)(`span`,{className:`project-writes-select-icon`,"aria-hidden":!0,children:(0,Z.jsx)(i3,{unlocked:i!==`plan`})}),(0,Z.jsx)(`span`,{className:`project-permission-scope`,children:`Codex:`}),(0,Z.jsx)(_v,{})]}),(0,Z.jsx)(xv,{children:t3.map(e=>(0,Z.jsx)(Sv,{value:e.value,textValue:e.label,children:e.label},e.value))})]}),o&&s&&(0,Z.jsxs)(gv,{value:o,onValueChange:e=>{e!==`mixed`&&s(e)},children:[(0,Z.jsxs)(bv,{className:`project-writes-select project-claude-mode project-claude-mode-${o}`,title:WBe(o),"aria-label":`Claude execution mode for this project`,children:[(0,Z.jsx)(`span`,{className:`project-writes-select-icon`,"aria-hidden":!0,children:(0,Z.jsx)(i3,{unlocked:o!==`plan`&&o!==`mixed`})}),(0,Z.jsx)(`span`,{className:`project-permission-scope`,children:`Claude:`}),(0,Z.jsx)(_v,{})]}),(0,Z.jsxs)(xv,{children:[o===`mixed`&&(0,Z.jsx)(Sv,{value:`mixed`,disabled:!0,children:`Mixed`}),n3.map(e=>(0,Z.jsx)(Sv,{value:e.value,textValue:e.label,children:e.label},e.value))]})]})]}),t&&(0,Z.jsx)(GBe,{projectStatus:l??`active`,statusLocked:u,onStatusChange:d,managedWritesOn:z,onManagedWorkspaceWritesChange:r,codexMode:i,onCodexModeChange:a,claudeMode:o,onClaudeModeChange:s}),!r&&!z&&(0,Z.jsxs)(`span`,{className:`project-lockdown-chip`,title:`Managed workspace edits are off for this project. Enable "Allow built-in tools and background work to modify the workspace" in Project → Settings.`,"aria-label":`Built-in tool workspace access is read-only for this project.`,children:[(0,Z.jsx)(`span`,{className:`project-lockdown-chip-icon`,"aria-hidden":!0,children:(0,Z.jsx)(i3,{})}),(0,Z.jsx)(`span`,{className:`project-lockdown-chip-label`,children:`edits off`})]})]}),!t&&(0,Z.jsx)(`div`,{className:`project-git-status-bar-right`,children:ie&&(0,Z.jsx)(`button`,{type:`button`,className:`project-git-action`,onClick:()=>void K(),disabled:ne||w!==``,title:`Get new changes from GitHub and send yours`,children:ne?`Syncing…`:`Sync`})}),E&&(0,Z.jsx)(`output`,{className:`project-git-toast project-git-toast-${E.kind}`,children:E.text})]})}function a3(e){let t=Date.parse(e);if(!Number.isFinite(t))return`recently`;let n=Date.now()-t,r=Math.max(1,Math.round(n/1e3));if(r<60)return`${r}s ago`;let i=Math.round(r/60);if(i<60)return`${i}m ago`;let a=Math.round(i/60);return a<24?`${a}h ago`:new Date(t).toLocaleDateString()}function qBe(e,t){return t<=0?null:Math.round(Math.min(Math.max(e,0),t)/t*100)}function JBe(e){let t=[[e.summarized,e.eligible],[e.embedded,e.eligible]];e.reviews&&t.push([e.reviews.reviewed,e.reviews.eligible]);let n=0,r=0;for(let[e,i]of t)i<=0||(n+=Math.min(Math.max(e,0),i),r+=i);return r>0?Math.round(n/r*100):null}function YBe(e){switch(e){case`fresh`:return`Up to date`;case`stale`:return`Needs a rescan`;case`indexing`:return`Scanning now`;case`never`:return`Not scanned yet`;case`disabled`:return`Off for this project`}}function XBe(e){if(e<1e3)return`${Math.max(1,Math.round(e))}ms`;if(e<6e4)return`${(e/1e3).toFixed(+(e<1e4))}s`;let t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);return n>0?`${t}m ${n}s`:`${t}m`}var o3=[{id:`imap`,label:`IMAP`},{id:`gmail`,label:`Gmail`},{id:`microsoft365`,label:`Microsoft 365`},{id:`outlook`,label:`Outlook.com`}],ZBe=e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim()),QBe={microsoft365:`organizations`,outlook:`consumers`};async function s3(e,t){await Q.bindConnector(e,{type:`mail-imap`,displayName:t.address,config:{provider:`imap`,address:t.address,syncFolders:t.syncFolders??[`INBOX`]},credential:{host:t.host,...t.port?{port:t.port}:{},...t.secure===void 0?{}:{secure:t.secure},user:t.address,pass:t.pass}})}async function c3(e,t,n){let r=window.__GEZEL__;if(!r?.mailOAuthListen||!r.mailOAuthAwait)throw Error(`Connecting Gmail / Microsoft needs the Gezel desktop app.`);let{requestId:i,redirectUri:a}=await r.mailOAuthListen(),o=QBe[t],{authUrl:s,state:c}=await Q.startConnectorOAuth(e,{type:`mail-${t}`,redirectUri:a,displayName:n,loginHint:n,config:{provider:t,address:n,...o?{tenant:o}:{}}}),l=await r.mailOAuthAwait(i,s);if(`error`in l)throw Error(l.error);await Q.completeConnectorOAuth(e,{state:l.state||c,code:l.code})}var l3=e=>e.type.startsWith(`mail-`);function $Be({project:e,onProjectChange:t}){let[n,r]=(0,X.useState)(null),[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(`imap`),[m,h]=(0,X.useState)(``),[g,_]=(0,X.useState)(``),[v,y]=(0,X.useState)(``),[b,x]=(0,X.useState)(``),[S,C]=(0,X.useState)(!0),w=(0,X.useCallback)(async()=>{try{r(await Q.listConnectors(e.id))}catch(e){s(e instanceof Error?e.message:String(e))}},[e.id]);(0,X.useEffect)(()=>{w()},[w]);let T=(0,X.useCallback)(()=>{p(`imap`),h(``),_(``),y(``),x(``),C(!0)},[]),E=(0,X.useCallback)(async()=>{a(!0),s(``),l(``);try{let t=(n?.bindings??[]).filter(l3),r=(await Promise.all(t.map(t=>Q.syncConnector(e.id,t.id).then(e=>e.result).catch(()=>({}))))).reduce((e,t)=>e+(t.written??0)+(t.quarantined??0),0);l(r>0?`Synced ${r} new message(s).`:`Synced — no new mail.`),await w()}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(!1)}},[e.id,n,w]),D=(0,X.useCallback)(async()=>{s(``),l(``);let n=m.trim();if(!ZBe(n)){s(`Enter a valid email address.`);return}if(f===`imap`&&(!g.trim()||!b)){s(`IMAP needs a host and a password.`);return}a(!0);try{f===`imap`?await s3(e.id,{address:n,host:g.trim(),...v.trim()?{port:Number(v.trim())}:{},secure:S,pass:b}):await c3(e.id,f,n),l(`Mailbox linked.`),d(!1),T(),await w();try{let n=await Q.getProject(e.id);n&&t?.(n)}catch{}}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(!1)}},[e.id,f,m,g,v,b,S,w,t,T]),O=(n?.bindings??[]).filter(l3);return(0,Z.jsxs)(`div`,{className:`gz-mail-tab`,children:[(0,Z.jsxs)(`div`,{className:`gz-mail-header`,children:[(0,Z.jsx)(`h3`,{children:`Mail`}),O.length>0&&(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void E(),disabled:i,children:i?`Working…`:`Sync now`})]}),O.length===0?(0,Z.jsx)(`p`,{className:`muted`,children:`No mailbox linked yet. Connect one to start syncing mail into this project as searchable files.`}):(0,Z.jsx)(`ul`,{className:`gz-mail-accounts`,children:O.map(e=>(0,Z.jsxs)(`li`,{className:`gz-mail-account`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{children:e.displayName??e.id}),(0,Z.jsxs)(`span`,{className:`muted small`,children:[` · `,e.type.replace(/^mail-/,``)]})]}),(0,Z.jsx)(`div`,{className:`small`,children:e.lastError?(0,Z.jsxs)(`span`,{className:`error`,children:[`Error: `,e.lastError]}):e.lastSyncedAt?(0,Z.jsxs)(`span`,{className:`muted`,children:[`Last synced `,new Date(e.lastSyncedAt).toLocaleString()]}):(0,Z.jsx)(`span`,{className:`muted`,children:`Not synced yet`})})]},e.id))}),u?(0,Z.jsxs)(`div`,{className:`gz-mail-link-form`,children:[(0,Z.jsxs)(`div`,{className:`gz-type-field`,children:[(0,Z.jsx)(`span`,{className:`gz-type-field-label`,children:`Provider`}),(0,Z.jsx)(`div`,{className:`gz-type-picker`,role:`radiogroup`,"aria-label":`Mail provider`,children:o3.map(e=>(0,Z.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":e.id===f,className:`gz-type-chip${e.id===f?` active`:``}`,onClick:()=>p(e.id),children:e.label},e.id))})]}),(0,Z.jsxs)(`label`,{children:[`Email address`,(0,Z.jsx)(`input`,{type:`email`,value:m,onChange:e=>h(e.target.value),placeholder:`you@example.com`,autoComplete:`email`})]}),f===`imap`?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`label`,{children:[`IMAP host`,(0,Z.jsx)(`input`,{value:g,onChange:e=>_(e.target.value),placeholder:`imap.example.com`})]}),(0,Z.jsxs)(`div`,{className:`gz-imap-row`,children:[(0,Z.jsxs)(`label`,{className:`gz-imap-port`,children:[`Port `,(0,Z.jsx)(`span`,{className:`muted`,children:`(optional)`}),(0,Z.jsx)(`input`,{value:v,onChange:e=>y(e.target.value),placeholder:`993`,inputMode:`numeric`})]}),(0,Z.jsxs)(`label`,{className:`gz-imap-tls`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:S,onChange:e=>C(e.target.checked)}),`Use TLS`]})]}),(0,Z.jsxs)(`label`,{children:[`Password / app password`,(0,Z.jsx)(`input`,{type:`password`,value:b,onChange:e=>x(e.target.value),autoComplete:`off`})]})]}):(0,Z.jsxs)(`p`,{className:`muted small`,children:[`You'll authorize `,o3.find(e=>e.id===f)?.label,` in your browser — a window opens when you click Connect.`]}),(0,Z.jsxs)(`div`,{className:`gz-mail-link-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>{d(!1),T(),s(``)},disabled:i,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`button`,className:`primary`,onClick:()=>void D(),disabled:i,children:i?`Connecting…`:f===`imap`?`Link`:`Connect`})]})]}):(0,Z.jsx)(`button`,{type:`button`,className:`gz-mail-connect`,onClick:()=>{d(!0),s(``),l(``)},children:`Connect a mailbox`}),o&&(0,Z.jsx)(`p`,{className:`error small`,children:o}),c&&(0,Z.jsx)(`p`,{className:`muted small`,children:c})]})}var u3=`gezel:output-pane-maximized`,d3=`gezel:restore-output-pane`;function f3(e){window.dispatchEvent(new CustomEvent(u3,{detail:{maximized:e}}))}function eVe(){window.dispatchEvent(new CustomEvent(d3))}var tVe=360,p3={width:16,height:16,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,focusable:!1},nVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M12.5 8a4.5 4.5 0 1 1-1.32-3.18`}),(0,Z.jsx)(`path`,{d:`M12.8 2.6v2.6h-2.6`})]}),rVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M8 3.5H4.2A0.7 0.7 0 0 0 3.5 4.2V11.8A0.7 0.7 0 0 0 4.2 12.5H11.8A0.7 0.7 0 0 0 12.5 11.8V8`}),(0,Z.jsx)(`path`,{d:`M9.5 3.5H12.5V6.5`}),(0,Z.jsx)(`path`,{d:`M12.5 3.5 8 8`})]}),iVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M9.5 3.5H12.5V6.5`}),(0,Z.jsx)(`path`,{d:`M12.5 3.5 9 7`}),(0,Z.jsx)(`path`,{d:`M6.5 12.5H3.5V9.5`}),(0,Z.jsx)(`path`,{d:`M3.5 12.5 7 9`})]}),aVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M12.5 6.5H9.5V3.5`}),(0,Z.jsx)(`path`,{d:`M9.5 6.5 12.8 3.2`}),(0,Z.jsx)(`path`,{d:`M3.5 9.5H6.5V12.5`}),(0,Z.jsx)(`path`,{d:`M6.5 9.5 3.2 12.8`})]}),oVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M4 4 12 12`}),(0,Z.jsx)(`path`,{d:`M12 4 4 12`})]}),sVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M5 5 6.2 3.5H9.8L11 5H12.5A1 1 0 0 1 13.5 6V12A1 1 0 0 1 12.5 13H3.5A1 1 0 0 1 2.5 12V6A1 1 0 0 1 3.5 5H5Z`}),(0,Z.jsx)(`circle`,{cx:`8`,cy:`9`,r:`2.25`})]}),cVe=()=>(0,Z.jsxs)(`svg`,{...p3,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M4 2.5H9.5L12 5V13.5H4Z`}),(0,Z.jsx)(`path`,{d:`M9.5 2.5V5H12`}),(0,Z.jsx)(`path`,{d:`M6 8H10`}),(0,Z.jsx)(`path`,{d:`M6 10.5H9`})]});function lVe({actions:e}){let[t,n]=(0,X.useState)(!1),r=(0,X.useRef)(null);return(0,X.useEffect)(()=>{if(!t)return;let e=e=>{r.current&&!r.current.contains(e.target)&&n(!1)},i=e=>{e.key===`Escape`&&n(!1)};return window.addEventListener(`mousedown`,e),window.addEventListener(`keydown`,i),()=>{window.removeEventListener(`mousedown`,e),window.removeEventListener(`keydown`,i)}},[t]),(0,Z.jsxs)(`div`,{className:`project-output-menu`,ref:r,children:[(0,Z.jsx)(`button`,{type:`button`,className:`project-output-btn`,onClick:()=>n(e=>!e),title:`More actions`,"aria-label":`More output actions`,"aria-haspopup":`menu`,"aria-expanded":t,children:`⋯`}),t&&(0,Z.jsx)(`div`,{className:`project-output-menu-dropdown`,role:`menu`,children:e.map(e=>(0,Z.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`project-output-menu-item`,onClick:()=>{n(!1),e.onClick()},disabled:e.disabled,title:e.title,children:[(0,Z.jsx)(`span`,{className:`project-output-menu-item-glyph`,"aria-hidden":`true`,children:e.icon}),(0,Z.jsx)(`span`,{children:e.label})]},e.key))})]})}function uVe({projectId:e,htmlFiles:t,typePage:n,onClose:r,onDebugFrame:i}){let[a,o]=(0,X.useState)(``),[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(0),[p,m]=(0,X.useState)(!1),[h,g]=(0,X.useState)(!1),[_,v]=(0,X.useState)(``),[y,b]=(0,X.useState)(!1),[x,S]=(0,X.useState)(null),[C,w]=(0,X.useState)(`idle`),[T,E]=(0,X.useState)(null),D=(0,X.useRef)([]),O=(0,X.useRef)(null),k=(0,X.useRef)(null),A=x0(k,tVe);(0,X.useEffect)(()=>{let e=!1;return Q.getConfig().then(t=>{e||b(t.debugMode===!0)}).catch(()=>{}),()=>{e=!0}},[]),(0,X.useEffect)(()=>{let n=!1;if(t.length===0){c(``),u(!1);return}return u(!0),(async()=>{let r=await _Ve(e,t);n||(c(r),u(!1))})(),()=>{n=!0}},[e,(0,X.useMemo)(()=>[...t].sort().join(`
|
|
890
890
|
`),[t])]);let j=(0,X.useMemo)(()=>{let e=[];n&&e.push({id:`type::${n.entry}`,source:`type`,path:n.entry,label:n.label});for(let n of t)e.push({id:`workspace::${n}`,source:`workspace`,path:n,label:fVe(n)});return e},[n,t]),M=(n?j[0]:void 0)??(s?j.find(e=>e.source===`workspace`&&e.path===s):void 0)??j.find(e=>e.source===`workspace`),N=j.find(e=>e.id===a)??M??null,P=(0,X.useCallback)(()=>f(e=>e+1),[]);(0,X.useEffect)(()=>{let e=e=>{e.key===`F5`?(e.preventDefault(),m(e=>!e)):e.key===`Escape`&&p&&(e.preventDefault(),m(!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[p]),(0,X.useEffect)(()=>{let e=()=>m(!1);return window.addEventListener(d3,e),()=>{window.removeEventListener(d3,e),f3(!1)}},[]),(0,X.useEffect)(()=>{f3(p)},[p]);let F=(0,X.useCallback)(()=>{!N||!T||window.open(T,`_blank`,`noopener,noreferrer`)},[N,T]),I=(0,X.useCallback)(e=>{let t=[...D.current,e];D.current=t.length>200?t.slice(-200):t},[]);(0,X.useEffect)(()=>{D.current=[],v(``),S(null),w(`idle`)},[N?.id,d]),(0,X.useEffect)(()=>{y||(S(null),w(`idle`))},[y]);let L=(0,X.useCallback)(e=>{S(e),w(`idle`)},[]),R=(0,X.useCallback)(async()=>{if(x)try{await navigator.clipboard.writeText(dVe(x)),w(`copied`)}catch{w(`error`)}},[x]),z=(0,X.useCallback)(async()=>{if(!N||h)return;let t=window.__GEZEL__?.capturePageRegion;if(!t){v(`Screenshots need the desktop app.`);return}let n=O.current;if(n){g(!0),v(``);try{let r=n.getBoundingClientRect(),a=await t({x:r.left,y:r.top,width:r.width,height:r.height});if(!a.ok)throw Error(a.error);let o=pVe(a.dataUrl),{relativePath:s}=await Q.uploadProjectAttachment(e,o,`image/png`),c=mVe(N.path,s,D.current);i?.(c)}catch(e){v(e instanceof Error?e.message:String(e))}finally{g(!1)}}},[e,N,h,i]),B=[{key:`reload`,label:`Reload`,icon:(0,Z.jsx)(nVe,{}),onClick:P,disabled:!N,title:`Reload the preview`,ariaLabel:`Reload the preview`},{key:`open`,label:`Open in browser`,icon:(0,Z.jsx)(rVe,{}),onClick:F,disabled:!N||!T,title:`Open in your default browser`,ariaLabel:`Open in your default browser`},{key:`maximize`,label:p?`Restore`:`Maximize`,icon:p?(0,Z.jsx)(aVe,{}):(0,Z.jsx)(iVe,{}),onClick:()=>m(e=>!e),title:p?`Restore (F5)`:`Maximize (F5)`,ariaLabel:p?`Restore output pane`:`Maximize output pane`}];p||B.push({key:`close`,label:`Hide output`,icon:(0,Z.jsx)(oVe,{}),onClick:r,title:`Hide output pane`,ariaLabel:`Hide output pane`});let V=(0,Z.jsxs)(`div`,{className:`project-output-toolbar`,ref:k,children:[j.length>0&&(0,Z.jsxs)(gv,{value:N?.id,onValueChange:e=>o(e),children:[(0,Z.jsx)(bv,{className:`project-output-picker${A?` is-compact`:``}`,"aria-label":N?`Choose output page. Current page: ${N.label}`:`Choose output page`,children:A?(0,Z.jsx)(`span`,{className:`project-output-picker-icon`,"aria-hidden":`true`,children:(0,Z.jsx)(cVe,{})}):(0,Z.jsx)(_v,{placeholder:l?`Detecting…`:`Select a target…`})}),(0,Z.jsx)(xv,{children:j.map(e=>(0,Z.jsx)(Sv,{value:e.id,textValue:e.label,children:e.label},e.id))})]}),(0,Z.jsx)(`span`,{className:`project-output-toolbar-spacer`}),A?(0,Z.jsx)(lVe,{actions:B}):B.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:`project-output-btn`,onClick:e.onClick,disabled:e.disabled,title:e.title,"aria-label":e.ariaLabel,children:e.icon},e.key))]}),H=N?(0,Z.jsx)(c0,{projectId:e,path:N.path,source:N.source,title:N.label,className:`project-output-iframe`,refreshKey:d,onLog:I,onUrlReady:E,...N.source===`type`&&n?.pageTools?.length?{pageTools:n.pageTools}:{},...y?{onPageScriptError:L}:{},onRequestRefresh:P}):l?(0,Z.jsx)(`div`,{className:`project-output-empty`,children:(0,Z.jsx)(`p`,{className:`muted small`,children:`Detecting output target…`})}):(0,Z.jsx)(`div`,{className:`project-output-empty`,children:(0,Z.jsxs)(`p`,{className:`muted small`,children:[`No previewable HTML in this workspace yet. When a gezel writes an `,(0,Z.jsx)(`code`,{children:`index.html`}),`, it'll show up here.`]})}),U=i||y&&x?(0,Z.jsxs)(`div`,{className:`project-output-debugbar`,children:[_&&(0,Z.jsx)(`span`,{className:`project-output-debugbar-error small`,role:`alert`,children:_}),y&&x&&(0,Z.jsx)(`output`,{className:`project-output-script-error-label small`,children:x.response?.error??x.transportError??`Script failed`}),(0,Z.jsx)(`span`,{className:`project-output-toolbar-spacer`}),y&&x&&(0,Z.jsx)(`button`,{type:`button`,className:`project-output-script-error-copy`,onClick:()=>void R(),title:`Copy the full script run, including logs and call trace`,"aria-label":`Copy full script error details`,children:C===`copied`?`Copied`:C===`error`?`Copy failed`:`Copy details`}),i&&(0,Z.jsx)(`button`,{type:`button`,className:`project-output-btn`,onClick:z,disabled:!N||h,title:`Send a screenshot + browser state to the chat`,"aria-label":`Send a debug frame to the chat`,children:(0,Z.jsx)(sVe,{})})]}):null;return(0,Z.jsxs)(`aside`,{className:`project-output-pane${p?` project-output-pane-maximized`:``}`,children:[V,(0,Z.jsx)(`div`,{ref:O,className:`project-output-pane-body`,children:H}),U]})}function dVe(e){let t=[`# Gezel page script error`,``,`Tool: ${e.tool}`];return e.response&&(t.push(`Run ID: ${e.response.runId}`),t.push(`Status: ${e.response.status}`),e.response.error&&t.push(`Error: ${e.response.error}`),t.push(``,`## Page invoke response`,``,"```json"),t.push(JSON.stringify(e.response,null,2)),t.push("```")),e.run&&(t.push(``,`## Full script run`,``,"```json"),t.push(JSON.stringify(e.run,null,2)),t.push("```")),e.transportError&&t.push(``,`Transport error: ${e.transportError}`),e.detailLoadError&&t.push(``,`Full run could not be loaded: ${e.detailLoadError}`),`${t.join(`
|
|
891
891
|
`)}\n`}function fVe(e){let t=e.lastIndexOf(`/`),n=t>=0?e.slice(0,t+1):``,r=e.slice(t+1).replace(/\.html?$/i,``);return n+(r.toLowerCase()===`index`?`(Default Page)`:r)}function pVe(e){let t=e.indexOf(`,`),n=e.slice(0,t).match(/data:([^;]+)/)?.[1]??`application/octet-stream`,r=atob(e.slice(t+1)),i=new Uint8Array(r.length);for(let e=0;e<r.length;e++)i[e]=r.charCodeAt(e);return new Blob([i],{type:n})}function mVe(e,t,n){let r=[];if(r.push(``),n.length>0){r.push(``),r.push(`**Browser state:** ${n.length} console event(s) captured since load:`),r.push(``);for(let e of n.slice(-50))r.push(`- ${hVe(e)}`)}return r.join(`
|
|
892
892
|
`)}function hVe(e){let t=e.kind===`console.error`?(e.detail.args??[]).join(` `):e.detail.message??`(unknown error)`,n=[e.detail.filename,e.detail.lineno?String(e.detail.lineno):null,e.detail.colno?String(e.detail.colno):null].filter(Boolean).join(`:`);return`**${e.kind}:** ${t}${n?` _(${n})_`:``}`}var gVe=24;async function _Ve(e,t){if(t.length===0)return``;if(t.length===1)return t[0]??``;let n=t.slice(0,gVe);return vVe(await Promise.all(n.map(async t=>{let[n,r]=await Promise.all([Q.statProjectWorkspacePath(e,t).catch(()=>null),Q.readProjectWorkspaceFile(e,t).then(e=>e.content).catch(()=>``)]);return{path:t,size:n?.size??r.length,mtimeMs:n?.mtime?Date.parse(n.mtime):0,placeholder:bVe(r)}})))||(t[0]??``)}function vVe(e){if(e.length===0)return``;let t=Math.max(1,...e.map(e=>e.size)),n=e.map(e=>e.mtimeMs).filter(e=>e>0),r=n.length?Math.max(...n):0,i=n.length?Math.min(...n):0,a=r-i,o=e[0],s=-1/0;for(let n of e){let e=n.size/t,r=a>0?(n.mtimeMs-i)/a:0,c=+!!/(^|\/)index\.html?$/i.test(n.path),l=(n.placeholder?0:1e3)+e*100+r*40+c*10;l>s&&(s=l,o=n)}return o?.path??``}var yVe=[`logic here`,`code here`,`goes here`,`your code`,`add your`,`fill in`,`coming soon`,`placeholder`,`todo`,`fixme`];function bVe(e){if(!e.trim())return!0;let t=[...e.matchAll(/<script\b[^>]*>([\s\S]*?)<\/script>/gi)].map(e=>e[1]??``),n=t.length>0,r=t.join(`
|