claudekit-cli 3.33.0-dev.11 → 3.33.0-dev.13

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.
@@ -0,0 +1,210 @@
1
+ var Z1=Object.defineProperty;var eb=(n,e,t)=>e in n?Z1(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var tu=(n,e,t)=>eb(n,typeof e!="symbol"?e+"":e,t);import{r as b,a as vp,R as tb,b as nb}from"./vendor-DNUgy55u.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function t(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=t(i);fetch(i.href,s)}})();var wp={exports:{}},aa={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var rb=b,ib=Symbol.for("react.element"),sb=Symbol.for("react.fragment"),ob=Object.prototype.hasOwnProperty,ab=rb.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,lb={key:!0,ref:!0,__self:!0,__source:!0};function kp(n,e,t){var r,i={},s=null,o=null;t!==void 0&&(s=""+t),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(o=e.ref);for(r in e)ob.call(e,r)&&!lb.hasOwnProperty(r)&&(i[r]=e[r]);if(n&&n.defaultProps)for(r in e=n.defaultProps,e)i[r]===void 0&&(i[r]=e[r]);return{$$typeof:ib,type:n,key:s,ref:o,props:i,_owner:ab.current}}aa.Fragment=sb;aa.jsx=kp;aa.jsxs=kp;wp.exports=aa;var d=wp.exports,Il={},nu=vp;Il.createRoot=nu.createRoot,Il.hydrateRoot=nu.hydrateRoot;/**
10
+ * react-router v7.11.0
11
+ *
12
+ * Copyright (c) Remix Software Inc.
13
+ *
14
+ * This source code is licensed under the MIT license found in the
15
+ * LICENSE.md file in the root directory of this source tree.
16
+ *
17
+ * @license MIT
18
+ */var Sp=n=>{throw TypeError(n)},cb=(n,e,t)=>e.has(n)||Sp("Cannot "+t),Ta=(n,e,t)=>(cb(n,e,"read from private field"),t?t.call(n):e.get(n)),hb=(n,e,t)=>e.has(n)?Sp("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,t),ru="popstate";function ub(n={}){function e(r,i){let{pathname:s,search:o,hash:a}=r.location;return di("",{pathname:s,search:o,hash:a},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function t(r,i){return typeof i=="string"?i:Ut(i)}return fb(e,t,null,n)}function oe(n,e){if(n===!1||n===null||typeof n>"u")throw new Error(e)}function Oe(n,e){if(!n){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function db(){return Math.random().toString(36).substring(2,10)}function iu(n,e){return{usr:n.state,key:n.key,idx:e}}function di(n,e,t=null,r){return{pathname:typeof n=="string"?n:n.pathname,search:"",hash:"",...typeof e=="string"?Pn(e):e,state:t,key:e&&e.key||r||db()}}function Ut({pathname:n="/",search:e="",hash:t=""}){return e&&e!=="?"&&(n+=e.charAt(0)==="?"?e:"?"+e),t&&t!=="#"&&(n+=t.charAt(0)==="#"?t:"#"+t),n}function Pn(n){let e={};if(n){let t=n.indexOf("#");t>=0&&(e.hash=n.substring(t),n=n.substring(0,t));let r=n.indexOf("?");r>=0&&(e.search=n.substring(r),n=n.substring(0,r)),n&&(e.pathname=n)}return e}function fb(n,e,t,r={}){let{window:i=document.defaultView,v5Compat:s=!1}=r,o=i.history,a="POP",l=null,c=h();c==null&&(c=0,o.replaceState({...o.state,idx:c},""));function h(){return(o.state||{idx:null}).idx}function u(){a="POP";let y=h(),v=y==null?null:y-c;c=y,l&&l({action:a,location:g.location,delta:v})}function f(y,v){a="PUSH";let S=di(g.location,y,v);c=h()+1;let C=iu(S,c),A=g.createHref(S);try{o.pushState(C,"",A)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;i.location.assign(A)}s&&l&&l({action:a,location:g.location,delta:1})}function p(y,v){a="REPLACE";let S=di(g.location,y,v);c=h();let C=iu(S,c),A=g.createHref(S);o.replaceState(C,"",A),s&&l&&l({action:a,location:g.location,delta:0})}function m(y){return Cp(y)}let g={get action(){return a},get location(){return n(i,o)},listen(y){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(ru,u),l=y,()=>{i.removeEventListener(ru,u),l=null}},createHref(y){return e(i,y)},createURL:m,encodeLocation(y){let v=m(y);return{pathname:v.pathname,search:v.search,hash:v.hash}},push:f,replace:p,go(y){return o.go(y)}};return g}function Cp(n,e=!1){let t="http://localhost";typeof window<"u"&&(t=window.location.origin!=="null"?window.location.origin:window.location.href),oe(t,"No window.location.(origin|href) available to create URL");let r=typeof n=="string"?n:Ut(n);return r=r.replace(/ $/,"%20"),!e&&r.startsWith("//")&&(r=t+r),new URL(r,t)}var Jr,su=class{constructor(n){if(hb(this,Jr,new Map),n)for(let[e,t]of n)this.set(e,t)}get(n){if(Ta(this,Jr).has(n))return Ta(this,Jr).get(n);if(n.defaultValue!==void 0)return n.defaultValue;throw new Error("No value found for context")}set(n,e){Ta(this,Jr).set(n,e)}};Jr=new WeakMap;var pb=new Set(["lazy","caseSensitive","path","id","index","children"]);function mb(n){return pb.has(n)}var gb=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function bb(n){return gb.has(n)}function yb(n){return n.index===!0}function fi(n,e,t=[],r={},i=!1){return n.map((s,o)=>{let a=[...t,String(o)],l=typeof s.id=="string"?s.id:a.join("-");if(oe(s.index!==!0||!s.children,"Cannot specify children on an index route"),oe(i||!r[l],`Found a route id collision on id "${l}". Route id's must be globally unique within Data Router usages`),yb(s)){let c={...s,id:l};return r[l]=ou(c,e(c)),c}else{let c={...s,id:l,children:void 0};return r[l]=ou(c,e(c)),s.children&&(c.children=fi(s.children,e,a,r,i)),c}})}function ou(n,e){return Object.assign(n,{...e,...typeof e.lazy=="object"&&e.lazy!=null?{lazy:{...n.lazy,...e.lazy}}:{}})}function dn(n,e,t="/"){return Xr(n,e,t,!1)}function Xr(n,e,t,r){let i=typeof e=="string"?Pn(e):e,s=vt(i.pathname||"/",t);if(s==null)return null;let o=Op(n);vb(o);let a=null;for(let l=0;a==null&&l<o.length;++l){let c=Eb(s);a=Mb(o[l],c,r)}return a}function xb(n,e){let{route:t,pathname:r,params:i}=n;return{id:t.id,pathname:r,params:i,data:e[t.id],loaderData:e[t.id],handle:t.handle}}function Op(n,e=[],t=[],r="",i=!1){let s=(o,a,l=i,c)=>{let h={relativePath:c===void 0?o.path||"":c,caseSensitive:o.caseSensitive===!0,childrenIndex:a,route:o};if(h.relativePath.startsWith("/")){if(!h.relativePath.startsWith(r)&&l)return;oe(h.relativePath.startsWith(r),`Absolute route path "${h.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),h.relativePath=h.relativePath.slice(r.length)}let u=_t([r,h.relativePath]),f=t.concat(h);o.children&&o.children.length>0&&(oe(o.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${u}".`),Op(o.children,e,f,u,l)),!(o.path==null&&!o.index)&&e.push({path:u,score:Pb(u,o.index),routesMeta:f})};return n.forEach((o,a)=>{if(o.path===""||!o.path?.includes("?"))s(o,a);else for(let l of jp(o.path))s(o,a,!0,l)}),e}function jp(n){let e=n.split("/");if(e.length===0)return[];let[t,...r]=e,i=t.endsWith("?"),s=t.replace(/\?$/,"");if(r.length===0)return i?[s,""]:[s];let o=jp(r.join("/")),a=[];return a.push(...o.map(l=>l===""?s:[s,l].join("/"))),i&&a.push(...o),a.map(l=>n.startsWith("/")&&l===""?"/":l)}function vb(n){n.sort((e,t)=>e.score!==t.score?t.score-e.score:Ab(e.routesMeta.map(r=>r.childrenIndex),t.routesMeta.map(r=>r.childrenIndex)))}var wb=/^:[\w-]+$/,kb=3,Sb=2,Cb=1,Ob=10,jb=-2,au=n=>n==="*";function Pb(n,e){let t=n.split("/"),r=t.length;return t.some(au)&&(r+=jb),e&&(r+=Sb),t.filter(i=>!au(i)).reduce((i,s)=>i+(wb.test(s)?kb:s===""?Cb:Ob),r)}function Ab(n,e){return n.length===e.length&&n.slice(0,-1).every((r,i)=>r===e[i])?n[n.length-1]-e[e.length-1]:0}function Mb(n,e,t=!1){let{routesMeta:r}=n,i={},s="/",o=[];for(let a=0;a<r.length;++a){let l=r[a],c=a===r.length-1,h=s==="/"?e:e.slice(s.length)||"/",u=No({path:l.relativePath,caseSensitive:l.caseSensitive,end:c},h),f=l.route;if(!u&&c&&t&&!r[r.length-1].route.index&&(u=No({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},h)),!u)return null;Object.assign(i,u.params),o.push({params:i,pathname:_t([s,u.pathname]),pathnameBase:Lb(_t([s,u.pathnameBase])),route:f}),u.pathnameBase!=="/"&&(s=_t([s,u.pathnameBase]))}return o}function No(n,e){typeof n=="string"&&(n={path:n,caseSensitive:!1,end:!0});let[t,r]=Db(n.path,n.caseSensitive,n.end),i=e.match(t);if(!i)return null;let s=i[0],o=s.replace(/(.)\/+$/,"$1"),a=i.slice(1);return{params:r.reduce((c,{paramName:h,isOptional:u},f)=>{if(h==="*"){let m=a[f]||"";o=s.slice(0,s.length-m.length).replace(/(.)\/+$/,"$1")}const p=a[f];return u&&!p?c[h]=void 0:c[h]=(p||"").replace(/%2F/g,"/"),c},{}),pathname:s,pathnameBase:o,pattern:n}}function Db(n,e=!1,t=!0){Oe(n==="*"||!n.endsWith("*")||n.endsWith("/*"),`Route path "${n}" will be treated as if it were "${n.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${n.replace(/\*$/,"/*")}".`);let r=[],i="^"+n.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,a,l)=>(r.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return n.endsWith("*")?(r.push({paramName:"*"}),i+=n==="*"||n==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):t?i+="\\/*$":n!==""&&n!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,e?void 0:"i"),r]}function Eb(n){try{return n.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return Oe(!1,`The URL path "${n}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${e}).`),n}}function vt(n,e){if(e==="/")return n;if(!n.toLowerCase().startsWith(e.toLowerCase()))return null;let t=e.endsWith("/")?e.length-1:e.length,r=n.charAt(t);return r&&r!=="/"?null:n.slice(t)||"/"}function Tb({basename:n,pathname:e}){return e==="/"?n:_t([n,e])}var Pp=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,la=n=>Pp.test(n);function Nb(n,e="/"){let{pathname:t,search:r="",hash:i=""}=typeof n=="string"?Pn(n):n,s;if(t)if(la(t))s=t;else{if(t.includes("//")){let o=t;t=t.replace(/\/\/+/g,"/"),Oe(!1,`Pathnames cannot have embedded double slashes - normalizing ${o} -> ${t}`)}t.startsWith("/")?s=lu(t.substring(1),"/"):s=lu(t,e)}else s=e;return{pathname:s,search:Rb(r),hash:Ib(i)}}function lu(n,e){let t=e.replace(/\/+$/,"").split("/");return n.split("/").forEach(i=>{i===".."?t.length>1&&t.pop():i!=="."&&t.push(i)}),t.length>1?t.join("/"):"/"}function Na(n,e,t,r){return`Cannot include a '${n}' character in a manually specified \`to.${e}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${t}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Ap(n){return n.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function ca(n){let e=Ap(n);return e.map((t,r)=>r===e.length-1?t.pathname:t.pathnameBase)}function ha(n,e,t,r=!1){let i;typeof n=="string"?i=Pn(n):(i={...n},oe(!i.pathname||!i.pathname.includes("?"),Na("?","pathname","search",i)),oe(!i.pathname||!i.pathname.includes("#"),Na("#","pathname","hash",i)),oe(!i.search||!i.search.includes("#"),Na("#","search","hash",i)));let s=n===""||i.pathname==="",o=s?"/":i.pathname,a;if(o==null)a=t;else{let u=e.length-1;if(!r&&o.startsWith("..")){let f=o.split("/");for(;f[0]==="..";)f.shift(),u-=1;i.pathname=f.join("/")}a=u>=0?e[u]:"/"}let l=Nb(i,a),c=o&&o!=="/"&&o.endsWith("/"),h=(s||o===".")&&t.endsWith("/");return!l.pathname.endsWith("/")&&(c||h)&&(l.pathname+="/"),l}var _t=n=>n.join("/").replace(/\/\/+/g,"/"),Lb=n=>n.replace(/\/+$/,"").replace(/^\/*/,"/"),Rb=n=>!n||n==="?"?"":n.startsWith("?")?n:"?"+n,Ib=n=>!n||n==="#"?"":n.startsWith("#")?n:"#"+n,ys=class{constructor(n,e,t,r=!1){this.status=n,this.statusText=e||"",this.internal=r,t instanceof Error?(this.data=t.toString(),this.error=t):this.data=t}};function pi(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.internal=="boolean"&&"data"in n}function xs(n){return n.map(e=>e.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Mp=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Dp(n,e){let t=n;if(typeof t!="string"||!Pp.test(t))return{absoluteURL:void 0,isExternal:!1,to:t};let r=t,i=!1;if(Mp)try{let s=new URL(window.location.href),o=t.startsWith("//")?new URL(s.protocol+t):new URL(t),a=vt(o.pathname,e);o.origin===s.origin&&a!=null?t=a+o.search+o.hash:i=!0}catch{Oe(!1,`<Link to="${t}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:t}}var gn=Symbol("Uninstrumented");function Bb(n,e){let t={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};n.forEach(i=>i({id:e.id,index:e.index,path:e.path,instrument(s){let o=Object.keys(t);for(let a of o)s[a]&&t[a].push(s[a])}}));let r={};if(typeof e.lazy=="function"&&t.lazy.length>0){let i=ar(t.lazy,e.lazy,()=>{});i&&(r.lazy=i)}if(typeof e.lazy=="object"){let i=e.lazy;["middleware","loader","action"].forEach(s=>{let o=i[s],a=t[`lazy.${s}`];if(typeof o=="function"&&a.length>0){let l=ar(a,o,()=>{});l&&(r.lazy=Object.assign(r.lazy||{},{[s]:l}))}})}return["loader","action"].forEach(i=>{let s=e[i];if(typeof s=="function"&&t[i].length>0){let o=s[gn]??s,a=ar(t[i],o,(...l)=>cu(l[0]));a&&(a[gn]=o,r[i]=a)}}),e.middleware&&e.middleware.length>0&&t.middleware.length>0&&(r.middleware=e.middleware.map(i=>{let s=i[gn]??i,o=ar(t.middleware,s,(...a)=>cu(a[0]));return o?(o[gn]=s,o):i})),r}function $b(n,e){let t={navigate:[],fetch:[]};if(e.forEach(r=>r({instrument(i){let s=Object.keys(i);for(let o of s)i[o]&&t[o].push(i[o])}})),t.navigate.length>0){let r=n.navigate[gn]??n.navigate,i=ar(t.navigate,r,(...s)=>{let[o,a]=s;return{to:typeof o=="number"||typeof o=="string"?o:o?Ut(o):".",...hu(n,a??{})}});i&&(i[gn]=r,n.navigate=i)}if(t.fetch.length>0){let r=n.fetch[gn]??n.fetch,i=ar(t.fetch,r,(...s)=>{let[o,,a,l]=s;return{href:a??".",fetcherKey:o,...hu(n,l??{})}});i&&(i[gn]=r,n.fetch=i)}return n}function ar(n,e,t){return n.length===0?null:async(...r)=>{let i=await Ep(n,t(...r),()=>e(...r),n.length-1);if(i.type==="error")throw i.value;return i.value}}async function Ep(n,e,t,r){let i=n[r],s;if(i){let o,a=async()=>(o?console.error("You cannot call instrumented handlers more than once"):o=Ep(n,e,t,r-1),s=await o,oe(s,"Expected a result"),s.type==="error"&&s.value instanceof Error?{status:"error",error:s.value}:{status:"success",error:void 0});try{await i(a,e)}catch(l){console.error("An instrumentation function threw an error:",l)}o||await a(),await o}else try{s={type:"success",value:await t()}}catch(o){s={type:"error",value:o}}return s||{type:"error",value:new Error("No result assigned in instrumentation chain.")}}function cu(n){let{request:e,context:t,params:r,unstable_pattern:i}=n;return{request:Fb(e),params:{...r},unstable_pattern:i,context:zb(t)}}function hu(n,e){return{currentUrl:Ut(n.state.location),..."formMethod"in e?{formMethod:e.formMethod}:{},..."formEncType"in e?{formEncType:e.formEncType}:{},..."formData"in e?{formData:e.formData}:{},..."body"in e?{body:e.body}:{}}}function Fb(n){return{method:n.method,url:n.url,headers:{get:(...e)=>n.headers.get(...e)}}}function zb(n){if(Hb(n)){let e={...n};return Object.freeze(e),e}else return{get:e=>n.get(e)}}var Vb=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Hb(n){if(n===null||typeof n!="object")return!1;const e=Object.getPrototypeOf(n);return e===Object.prototype||e===null||Object.getOwnPropertyNames(e).sort().join("\0")===Vb}var Tp=["POST","PUT","PATCH","DELETE"],_b=new Set(Tp),Wb=["GET",...Tp],Ub=new Set(Wb),Np=new Set([301,302,303,307,308]),Kb=new Set([307,308]),La={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Gb={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},_r={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},qb=n=>({hasErrorBoundary:!!n.hasErrorBoundary}),Lp="remix-router-transitions",Rp=Symbol("ResetLoaderData");function Yb(n){const e=n.window?n.window:typeof window<"u"?window:void 0,t=typeof e<"u"&&typeof e.document<"u"&&typeof e.document.createElement<"u";oe(n.routes.length>0,"You must provide a non-empty routes array to createRouter");let r=n.hydrationRouteProperties||[],i=n.mapRouteProperties||qb,s=i;if(n.unstable_instrumentations){let w=n.unstable_instrumentations;s=O=>({...i(O),...Bb(w.map(M=>M.route).filter(Boolean),O)})}let o={},a=fi(n.routes,s,void 0,o),l,c=n.basename||"/";c.startsWith("/")||(c=`/${c}`);let h=n.dataStrategy||ey,u={...n.future},f=null,p=new Set,m=null,g=null,y=null,v=n.hydrationData!=null,S=dn(a,n.history.location,c),C=!1,A=null,k;if(S==null&&!n.patchRoutesOnNavigation){let w=pt(404,{pathname:n.history.location.pathname}),{matches:O,route:M}=Vs(a);k=!0,S=O,A={[M.id]:w}}else if(S&&!n.hydrationData&&Is(S,a,n.history.location.pathname).active&&(S=null),S)if(S.some(w=>w.route.lazy))k=!1;else if(!S.some(w=>Bc(w.route)))k=!0;else{let w=n.hydrationData?n.hydrationData.loaderData:null,O=n.hydrationData?n.hydrationData.errors:null;if(O){let M=S.findIndex(B=>O[B.route.id]!==void 0);k=S.slice(0,M+1).every(B=>!$l(B.route,w,O))}else k=S.every(M=>!$l(M.route,w,O))}else{k=!1,S=[];let w=Is(null,a,n.history.location.pathname);w.active&&w.matches&&(C=!0,S=w.matches)}let j,x={historyAction:n.history.action,location:n.history.location,matches:S,initialized:k,navigation:La,restoreScrollPosition:n.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:n.hydrationData&&n.hydrationData.loaderData||{},actionData:n.hydrationData&&n.hydrationData.actionData||null,errors:n.hydrationData&&n.hydrationData.errors||A,fetchers:new Map,blockers:new Map},T="POP",P=null,R=!1,L,I=!1,W=new Map,U=null,D=!1,$=!1,V=new Set,F=new Map,q=0,re=-1,se=new Map,me=new Set,ke=new Map,Me=new Map,De=new Set,dt=new Map,En,Fr=null;function R1(){if(f=n.history.listen(({action:w,location:O,delta:M})=>{if(En){En(),En=void 0;return}Oe(dt.size===0||M!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let B=Qh({currentLocation:x.location,nextLocation:O,historyAction:w});if(B&&M!=null){let z=new Promise(J=>{En=J});n.history.go(M*-1),Rs(B,{state:"blocked",location:O,proceed(){Rs(B,{state:"proceeding",proceed:void 0,reset:void 0,location:O}),z.then(()=>n.history.go(M))},reset(){let J=new Map(x.blockers);J.set(B,_r),He({blockers:J})}}),P?.resolve(),P=null;return}return Tn(w,O)}),t){yy(e,W);let w=()=>xy(e,W);e.addEventListener("pagehide",w),U=()=>e.removeEventListener("pagehide",w)}return x.initialized||Tn("POP",x.location,{initialHydration:!0}),j}function I1(){f&&f(),U&&U(),p.clear(),L&&L.abort(),x.fetchers.forEach((w,O)=>Ma(O)),x.blockers.forEach((w,O)=>Yh(O))}function B1(w){return p.add(w),()=>p.delete(w)}function He(w,O={}){w.matches&&(w.matches=w.matches.map(z=>{let J=o[z.route.id],Y=z.route;return Y.element!==J.element||Y.errorElement!==J.errorElement||Y.hydrateFallbackElement!==J.hydrateFallbackElement?{...z,route:J}:z})),x={...x,...w};let M=[],B=[];x.fetchers.forEach((z,J)=>{z.state==="idle"&&(De.has(J)?M.push(J):B.push(J))}),De.forEach(z=>{!x.fetchers.has(z)&&!F.has(z)&&M.push(z)}),[...p].forEach(z=>z(x,{deletedFetchers:M,newErrors:w.errors??null,viewTransitionOpts:O.viewTransitionOpts,flushSync:O.flushSync===!0})),M.forEach(z=>Ma(z)),B.forEach(z=>x.fetchers.delete(z))}function tr(w,O,{flushSync:M}={}){let B=x.actionData!=null&&x.navigation.formMethod!=null&&We(x.navigation.formMethod)&&x.navigation.state==="loading"&&w.state?._isRedirect!==!0,z;O.actionData?Object.keys(O.actionData).length>0?z=O.actionData:z=null:B?z=x.actionData:z=null;let J=O.loaderData?vu(x.loaderData,O.loaderData,O.matches||[],O.errors):x.loaderData,Y=x.blockers;Y.size>0&&(Y=new Map(Y),Y.forEach((ne,Z)=>Y.set(Z,_r)));let Q=D?!1:Xh(w,O.matches||x.matches),X=R===!0||x.navigation.formMethod!=null&&We(x.navigation.formMethod)&&w.state?._isRedirect!==!0;l&&(a=l,l=void 0),D||T==="POP"||(T==="PUSH"?n.history.push(w,w.state):T==="REPLACE"&&n.history.replace(w,w.state));let te;if(T==="POP"){let ne=W.get(x.location.pathname);ne&&ne.has(w.pathname)?te={currentLocation:x.location,nextLocation:w}:W.has(w.pathname)&&(te={currentLocation:w,nextLocation:x.location})}else if(I){let ne=W.get(x.location.pathname);ne?ne.add(w.pathname):(ne=new Set([w.pathname]),W.set(x.location.pathname,ne)),te={currentLocation:x.location,nextLocation:w}}He({...O,actionData:z,loaderData:J,historyAction:T,location:w,initialized:!0,navigation:La,revalidation:"idle",restoreScrollPosition:Q,preventScrollReset:X,blockers:Y},{viewTransitionOpts:te,flushSync:M===!0}),T="POP",R=!1,I=!1,D=!1,$=!1,P?.resolve(),P=null,Fr?.resolve(),Fr=null}async function Hh(w,O){if(P?.resolve(),P=null,typeof w=="number"){P||(P=Cu());let fe=P.promise;return n.history.go(w),fe}let M=Bl(x.location,x.matches,c,w,O?.fromRouteId,O?.relative),{path:B,submission:z,error:J}=uu(!1,M,O),Y=x.location,Q=di(x.location,B,O&&O.state);Q={...Q,...n.history.encodeLocation(Q)};let X=O&&O.replace!=null?O.replace:void 0,te="PUSH";X===!0?te="REPLACE":X===!1||z!=null&&We(z.formMethod)&&z.formAction===x.location.pathname+x.location.search&&(te="REPLACE");let ne=O&&"preventScrollReset"in O?O.preventScrollReset===!0:void 0,Z=(O&&O.flushSync)===!0,de=Qh({currentLocation:Y,nextLocation:Q,historyAction:te});if(de){Rs(de,{state:"blocked",location:Q,proceed(){Rs(de,{state:"proceeding",proceed:void 0,reset:void 0,location:Q}),Hh(w,O)},reset(){let fe=new Map(x.blockers);fe.set(de,_r),He({blockers:fe})}});return}await Tn(te,Q,{submission:z,pendingError:J,preventScrollReset:ne,replace:O&&O.replace,enableViewTransition:O&&O.viewTransition,flushSync:Z,callSiteDefaultShouldRevalidate:O&&O.unstable_defaultShouldRevalidate})}function $1(){Fr||(Fr=Cu()),Aa(),He({revalidation:"loading"});let w=Fr.promise;return x.navigation.state==="submitting"?w:x.navigation.state==="idle"?(Tn(x.historyAction,x.location,{startUninterruptedRevalidation:!0}),w):(Tn(T||x.historyAction,x.navigation.location,{overrideNavigation:x.navigation,enableViewTransition:I===!0}),w)}async function Tn(w,O,M){L&&L.abort(),L=null,T=w,D=(M&&M.startUninterruptedRevalidation)===!0,Y1(x.location,x.matches),R=(M&&M.preventScrollReset)===!0,I=(M&&M.enableViewTransition)===!0;let B=l||a,z=M&&M.overrideNavigation,J=M?.initialHydration&&x.matches&&x.matches.length>0&&!C?x.matches:dn(B,O,c),Y=(M&&M.flushSync)===!0;if(J&&x.initialized&&!$&&ly(x.location,O)&&!(M&&M.submission&&We(M.submission.formMethod))){tr(O,{matches:J},{flushSync:Y});return}let Q=Is(J,B,O.pathname);if(Q.active&&Q.matches&&(J=Q.matches),!J){let{error:Re,notFoundMatches:qe,route:ge}=Da(O.pathname);tr(O,{matches:qe,loaderData:{},errors:{[ge.id]:Re}},{flushSync:Y});return}L=new AbortController;let X=ir(n.history,O,L.signal,M&&M.submission),te=n.getContext?await n.getContext():new su,ne;if(M&&M.pendingError)ne=[fn(J).route.id,{type:"error",error:M.pendingError}];else if(M&&M.submission&&We(M.submission.formMethod)){let Re=await F1(X,O,M.submission,J,te,Q.active,M&&M.initialHydration===!0,{replace:M.replace,flushSync:Y});if(Re.shortCircuited)return;if(Re.pendingActionResult){let[qe,ge]=Re.pendingActionResult;if(lt(ge)&&pi(ge.error)&&ge.error.status===404){L=null,tr(O,{matches:Re.matches,loaderData:{},errors:{[qe]:ge.error}});return}}J=Re.matches||J,ne=Re.pendingActionResult,z=Ra(O,M.submission),Y=!1,Q.active=!1,X=ir(n.history,X.url,X.signal)}let{shortCircuited:Z,matches:de,loaderData:fe,errors:Be}=await z1(X,O,J,te,Q.active,z,M&&M.submission,M&&M.fetcherSubmission,M&&M.replace,M&&M.initialHydration===!0,Y,ne,M&&M.callSiteDefaultShouldRevalidate);Z||(L=null,tr(O,{matches:de||J,...wu(ne),loaderData:fe,errors:Be}))}async function F1(w,O,M,B,z,J,Y,Q={}){Aa();let X=gy(O,M);if(He({navigation:X},{flushSync:Q.flushSync===!0}),J){let Z=await Bs(B,O.pathname,w.signal);if(Z.type==="aborted")return{shortCircuited:!0};if(Z.type==="error"){if(Z.partialMatches.length===0){let{matches:fe,route:Be}=Vs(a);return{matches:fe,pendingActionResult:[Be.id,{type:"error",error:Z.error}]}}let de=fn(Z.partialMatches).route.id;return{matches:Z.partialMatches,pendingActionResult:[de,{type:"error",error:Z.error}]}}else if(Z.matches)B=Z.matches;else{let{notFoundMatches:de,error:fe,route:Be}=Da(O.pathname);return{matches:de,pendingActionResult:[Be.id,{type:"error",error:fe}]}}}let te,ne=vo(B,O);if(!ne.route.action&&!ne.route.lazy)te={type:"error",error:pt(405,{method:w.method,pathname:O.pathname,routeId:ne.route.id})};else{let Z=dr(s,o,w,B,ne,Y?[]:r,z),de=await zr(w,Z,z,null);if(te=de[ne.route.id],!te){for(let fe of B)if(de[fe.route.id]){te=de[fe.route.id];break}}if(w.signal.aborted)return{shortCircuited:!0}}if(Vn(te)){let Z;return Q&&Q.replace!=null?Z=Q.replace:Z=bu(te.response.headers.get("Location"),new URL(w.url),c)===x.location.pathname+x.location.search,await Nn(w,te,!0,{submission:M,replace:Z}),{shortCircuited:!0}}if(lt(te)){let Z=fn(B,ne.route.id);return(Q&&Q.replace)!==!0&&(T="PUSH"),{matches:B,pendingActionResult:[Z.route.id,te,ne.route.id]}}return{matches:B,pendingActionResult:[ne.route.id,te]}}async function z1(w,O,M,B,z,J,Y,Q,X,te,ne,Z,de){let fe=J||Ra(O,Y),Be=Y||Q||Su(fe),Re=!D&&!te;if(z){if(Re){let _e=_h(Z);He({navigation:fe,..._e!==void 0?{actionData:_e}:{}},{flushSync:ne})}let ue=await Bs(M,O.pathname,w.signal);if(ue.type==="aborted")return{shortCircuited:!0};if(ue.type==="error"){if(ue.partialMatches.length===0){let{matches:nr,route:In}=Vs(a);return{matches:nr,loaderData:{},errors:{[In.id]:ue.error}}}let _e=fn(ue.partialMatches).route.id;return{matches:ue.partialMatches,loaderData:{},errors:{[_e]:ue.error}}}else if(ue.matches)M=ue.matches;else{let{error:_e,notFoundMatches:nr,route:In}=Da(O.pathname);return{matches:nr,loaderData:{},errors:{[In.id]:_e}}}}let qe=l||a,{dsMatches:ge,revalidatingFetchers:ft}=du(w,B,s,o,n.history,x,M,Be,O,te?[]:r,te===!0,$,V,De,ke,me,qe,c,n.patchRoutesOnNavigation!=null,Z,de);if(re=++q,!n.dataStrategy&&!ge.some(ue=>ue.shouldLoad)&&!ge.some(ue=>ue.route.middleware&&ue.route.middleware.length>0)&&ft.length===0){let ue=Gh();return tr(O,{matches:M,loaderData:{},errors:Z&&lt(Z[1])?{[Z[0]]:Z[1].error}:null,...wu(Z),...ue?{fetchers:new Map(x.fetchers)}:{}},{flushSync:ne}),{shortCircuited:!0}}if(Re){let ue={};if(!z){ue.navigation=fe;let _e=_h(Z);_e!==void 0&&(ue.actionData=_e)}ft.length>0&&(ue.fetchers=V1(ft)),He(ue,{flushSync:ne})}ft.forEach(ue=>{Xt(ue.key),ue.controller&&F.set(ue.key,ue.controller)});let Ln=()=>ft.forEach(ue=>Xt(ue.key));L&&L.signal.addEventListener("abort",Ln);let{loaderResults:Vr,fetcherResults:ln}=await Wh(ge,ft,w,B);if(w.signal.aborted)return{shortCircuited:!0};L&&L.signal.removeEventListener("abort",Ln),ft.forEach(ue=>F.delete(ue.key));let Et=Hs(Vr);if(Et)return await Nn(w,Et.result,!0,{replace:X}),{shortCircuited:!0};if(Et=Hs(ln),Et)return me.add(Et.key),await Nn(w,Et.result,!0,{replace:X}),{shortCircuited:!0};let{loaderData:Ea,errors:Hr}=xu(x,M,Vr,Z,ft,ln);te&&x.errors&&(Hr={...x.errors,...Hr});let Rn=Gh(),$s=qh(re),Fs=Rn||$s||ft.length>0;return{matches:M,loaderData:Ea,errors:Hr,...Fs?{fetchers:new Map(x.fetchers)}:{}}}function _h(w){if(w&&!lt(w[1]))return{[w[0]]:w[1].data};if(x.actionData)return Object.keys(x.actionData).length===0?null:x.actionData}function V1(w){return w.forEach(O=>{let M=x.fetchers.get(O.key),B=Wr(void 0,M?M.data:void 0);x.fetchers.set(O.key,B)}),new Map(x.fetchers)}async function H1(w,O,M,B){Xt(w);let z=(B&&B.flushSync)===!0,J=l||a,Y=Bl(x.location,x.matches,c,M,O,B?.relative),Q=dn(J,Y,c),X=Is(Q,J,Y);if(X.active&&X.matches&&(Q=X.matches),!Q){Jt(w,O,pt(404,{pathname:Y}),{flushSync:z});return}let{path:te,submission:ne,error:Z}=uu(!0,Y,B);if(Z){Jt(w,O,Z,{flushSync:z});return}let de=n.getContext?await n.getContext():new su,fe=(B&&B.preventScrollReset)===!0;if(ne&&We(ne.formMethod)){await _1(w,O,te,Q,de,X.active,z,fe,ne,B&&B.unstable_defaultShouldRevalidate);return}ke.set(w,{routeId:O,path:te}),await W1(w,O,te,Q,de,X.active,z,fe,ne)}async function _1(w,O,M,B,z,J,Y,Q,X,te){Aa(),ke.delete(w);let ne=x.fetchers.get(w);Qt(w,by(X,ne),{flushSync:Y});let Z=new AbortController,de=ir(n.history,M,Z.signal,X);if(J){let Se=await Bs(B,new URL(de.url).pathname,de.signal,w);if(Se.type==="aborted")return;if(Se.type==="error"){Jt(w,O,Se.error,{flushSync:Y});return}else if(Se.matches)B=Se.matches;else{Jt(w,O,pt(404,{pathname:M}),{flushSync:Y});return}}let fe=vo(B,M);if(!fe.route.action&&!fe.route.lazy){let Se=pt(405,{method:X.formMethod,pathname:M,routeId:O});Jt(w,O,Se,{flushSync:Y});return}F.set(w,Z);let Be=q,Re=dr(s,o,de,B,fe,r,z),qe=await zr(de,Re,z,w),ge=qe[fe.route.id];if(!ge){for(let Se of Re)if(qe[Se.route.id]){ge=qe[Se.route.id];break}}if(de.signal.aborted){F.get(w)===Z&&F.delete(w);return}if(De.has(w)){if(Vn(ge)||lt(ge)){Qt(w,Zt(void 0));return}}else{if(Vn(ge))if(F.delete(w),re>Be){Qt(w,Zt(void 0));return}else return me.add(w),Qt(w,Wr(X)),Nn(de,ge,!1,{fetcherSubmission:X,preventScrollReset:Q});if(lt(ge)){Jt(w,O,ge.error);return}}let ft=x.navigation.location||x.location,Ln=ir(n.history,ft,Z.signal),Vr=l||a,ln=x.navigation.state!=="idle"?dn(Vr,x.navigation.location,c):x.matches;oe(ln,"Didn't find any matches after fetcher action");let Et=++q;se.set(w,Et);let Ea=Wr(X,ge.data);x.fetchers.set(w,Ea);let{dsMatches:Hr,revalidatingFetchers:Rn}=du(Ln,z,s,o,n.history,x,ln,X,ft,r,!1,$,V,De,ke,me,Vr,c,n.patchRoutesOnNavigation!=null,[fe.route.id,ge],te);Rn.filter(Se=>Se.key!==w).forEach(Se=>{let zs=Se.key,eu=x.fetchers.get(zs),X1=Wr(void 0,eu?eu.data:void 0);x.fetchers.set(zs,X1),Xt(zs),Se.controller&&F.set(zs,Se.controller)}),He({fetchers:new Map(x.fetchers)});let $s=()=>Rn.forEach(Se=>Xt(Se.key));Z.signal.addEventListener("abort",$s);let{loaderResults:Fs,fetcherResults:ue}=await Wh(Hr,Rn,Ln,z);if(Z.signal.aborted)return;if(Z.signal.removeEventListener("abort",$s),se.delete(w),F.delete(w),Rn.forEach(Se=>F.delete(Se.key)),x.fetchers.has(w)){let Se=Zt(ge.data);x.fetchers.set(w,Se)}let _e=Hs(Fs);if(_e)return Nn(Ln,_e.result,!1,{preventScrollReset:Q});if(_e=Hs(ue),_e)return me.add(_e.key),Nn(Ln,_e.result,!1,{preventScrollReset:Q});let{loaderData:nr,errors:In}=xu(x,ln,Fs,void 0,Rn,ue);qh(Et),x.navigation.state==="loading"&&Et>re?(oe(T,"Expected pending action"),L&&L.abort(),tr(x.navigation.location,{matches:ln,loaderData:nr,errors:In,fetchers:new Map(x.fetchers)})):(He({errors:In,loaderData:vu(x.loaderData,nr,ln,In),fetchers:new Map(x.fetchers)}),$=!1)}async function W1(w,O,M,B,z,J,Y,Q,X){let te=x.fetchers.get(w);Qt(w,Wr(X,te?te.data:void 0),{flushSync:Y});let ne=new AbortController,Z=ir(n.history,M,ne.signal);if(J){let ge=await Bs(B,new URL(Z.url).pathname,Z.signal,w);if(ge.type==="aborted")return;if(ge.type==="error"){Jt(w,O,ge.error,{flushSync:Y});return}else if(ge.matches)B=ge.matches;else{Jt(w,O,pt(404,{pathname:M}),{flushSync:Y});return}}let de=vo(B,M);F.set(w,ne);let fe=q,Be=dr(s,o,Z,B,de,r,z),qe=(await zr(Z,Be,z,w))[de.route.id];if(F.get(w)===ne&&F.delete(w),!Z.signal.aborted){if(De.has(w)){Qt(w,Zt(void 0));return}if(Vn(qe))if(re>fe){Qt(w,Zt(void 0));return}else{me.add(w),await Nn(Z,qe,!1,{preventScrollReset:Q});return}if(lt(qe)){Jt(w,O,qe.error);return}Qt(w,Zt(qe.data))}}async function Nn(w,O,M,{submission:B,fetcherSubmission:z,preventScrollReset:J,replace:Y}={}){M||(P?.resolve(),P=null),O.response.headers.has("X-Remix-Revalidate")&&($=!0);let Q=O.response.headers.get("Location");oe(Q,"Expected a Location header on the redirect Response"),Q=bu(Q,new URL(w.url),c);let X=di(x.location,Q,{_isRedirect:!0});if(t){let Be=!1;if(O.response.headers.has("X-Remix-Reload-Document"))Be=!0;else if(la(Q)){const Re=Cp(Q,!0);Be=Re.origin!==e.location.origin||vt(Re.pathname,c)==null}if(Be){Y?e.location.replace(Q):e.location.assign(Q);return}}L=null;let te=Y===!0||O.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:ne,formAction:Z,formEncType:de}=x.navigation;!B&&!z&&ne&&Z&&de&&(B=Su(x.navigation));let fe=B||z;if(Kb.has(O.response.status)&&fe&&We(fe.formMethod))await Tn(te,X,{submission:{...fe,formAction:Q},preventScrollReset:J||R,enableViewTransition:M?I:void 0});else{let Be=Ra(X,B);await Tn(te,X,{overrideNavigation:Be,fetcherSubmission:z,preventScrollReset:J||R,enableViewTransition:M?I:void 0})}}async function zr(w,O,M,B){let z,J={};try{z=await ny(h,w,O,B,M,!1)}catch(Y){return O.filter(Q=>Q.shouldLoad).forEach(Q=>{J[Q.route.id]={type:"error",error:Y}}),J}if(w.signal.aborted)return J;if(!We(w.method))for(let Y of O){if(z[Y.route.id]?.type==="error")break;!z.hasOwnProperty(Y.route.id)&&!x.loaderData.hasOwnProperty(Y.route.id)&&(!x.errors||!x.errors.hasOwnProperty(Y.route.id))&&Y.shouldCallHandler()&&(z[Y.route.id]={type:"error",result:new Error(`No result returned from dataStrategy for route ${Y.route.id}`)})}for(let[Y,Q]of Object.entries(z))if(dy(Q)){let X=Q.result;J[Y]={type:"redirect",response:oy(X,w,Y,O,c)}}else J[Y]=await sy(Q);return J}async function Wh(w,O,M,B){let z=zr(M,w,B,null),J=Promise.all(O.map(async X=>{if(X.matches&&X.match&&X.request&&X.controller){let ne=(await zr(X.request,X.matches,B,X.key))[X.match.route.id];return{[X.key]:ne}}else return Promise.resolve({[X.key]:{type:"error",error:pt(404,{pathname:X.path})}})})),Y=await z,Q=(await J).reduce((X,te)=>Object.assign(X,te),{});return{loaderResults:Y,fetcherResults:Q}}function Aa(){$=!0,ke.forEach((w,O)=>{F.has(O)&&V.add(O),Xt(O)})}function Qt(w,O,M={}){x.fetchers.set(w,O),He({fetchers:new Map(x.fetchers)},{flushSync:(M&&M.flushSync)===!0})}function Jt(w,O,M,B={}){let z=fn(x.matches,O);Ma(w),He({errors:{[z.route.id]:M},fetchers:new Map(x.fetchers)},{flushSync:(B&&B.flushSync)===!0})}function Uh(w){return Me.set(w,(Me.get(w)||0)+1),De.has(w)&&De.delete(w),x.fetchers.get(w)||Gb}function U1(w,O){Xt(w,O?.reason),Qt(w,Zt(null))}function Ma(w){let O=x.fetchers.get(w);F.has(w)&&!(O&&O.state==="loading"&&se.has(w))&&Xt(w),ke.delete(w),se.delete(w),me.delete(w),De.delete(w),V.delete(w),x.fetchers.delete(w)}function K1(w){let O=(Me.get(w)||0)-1;O<=0?(Me.delete(w),De.add(w)):Me.set(w,O),He({fetchers:new Map(x.fetchers)})}function Xt(w,O){let M=F.get(w);M&&(M.abort(O),F.delete(w))}function Kh(w){for(let O of w){let M=Uh(O),B=Zt(M.data);x.fetchers.set(O,B)}}function Gh(){let w=[],O=!1;for(let M of me){let B=x.fetchers.get(M);oe(B,`Expected fetcher: ${M}`),B.state==="loading"&&(me.delete(M),w.push(M),O=!0)}return Kh(w),O}function qh(w){let O=[];for(let[M,B]of se)if(B<w){let z=x.fetchers.get(M);oe(z,`Expected fetcher: ${M}`),z.state==="loading"&&(Xt(M),se.delete(M),O.push(M))}return Kh(O),O.length>0}function G1(w,O){let M=x.blockers.get(w)||_r;return dt.get(w)!==O&&dt.set(w,O),M}function Yh(w){x.blockers.delete(w),dt.delete(w)}function Rs(w,O){let M=x.blockers.get(w)||_r;oe(M.state==="unblocked"&&O.state==="blocked"||M.state==="blocked"&&O.state==="blocked"||M.state==="blocked"&&O.state==="proceeding"||M.state==="blocked"&&O.state==="unblocked"||M.state==="proceeding"&&O.state==="unblocked",`Invalid blocker state transition: ${M.state} -> ${O.state}`);let B=new Map(x.blockers);B.set(w,O),He({blockers:B})}function Qh({currentLocation:w,nextLocation:O,historyAction:M}){if(dt.size===0)return;dt.size>1&&Oe(!1,"A router only supports one blocker at a time");let B=Array.from(dt.entries()),[z,J]=B[B.length-1],Y=x.blockers.get(z);if(!(Y&&Y.state==="proceeding")&&J({currentLocation:w,nextLocation:O,historyAction:M}))return z}function Da(w){let O=pt(404,{pathname:w}),M=l||a,{matches:B,route:z}=Vs(M);return{notFoundMatches:B,route:z,error:O}}function q1(w,O,M){if(m=w,y=O,g=M||null,!v&&x.navigation===La){v=!0;let B=Xh(x.location,x.matches);B!=null&&He({restoreScrollPosition:B})}return()=>{m=null,y=null,g=null}}function Jh(w,O){return g&&g(w,O.map(B=>xb(B,x.loaderData)))||w.key}function Y1(w,O){if(m&&y){let M=Jh(w,O);m[M]=y()}}function Xh(w,O){if(m){let M=Jh(w,O),B=m[M];if(typeof B=="number")return B}return null}function Is(w,O,M){if(n.patchRoutesOnNavigation)if(w){if(Object.keys(w[0].params).length>0)return{active:!0,matches:Xr(O,M,c,!0)}}else return{active:!0,matches:Xr(O,M,c,!0)||[]};return{active:!1,matches:null}}async function Bs(w,O,M,B){if(!n.patchRoutesOnNavigation)return{type:"success",matches:w};let z=w;for(;;){let J=l==null,Y=l||a,Q=o;try{await n.patchRoutesOnNavigation({signal:M,path:O,matches:z,fetcherKey:B,patch:(ne,Z)=>{M.aborted||fu(ne,Z,Y,Q,s,!1)}})}catch(ne){return{type:"error",error:ne,partialMatches:z}}finally{J&&!M.aborted&&(a=[...a])}if(M.aborted)return{type:"aborted"};let X=dn(Y,O,c),te=null;if(X){if(Object.keys(X[0].params).length===0)return{type:"success",matches:X};if(te=Xr(Y,O,c,!0),!(te&&z.length<te.length&&Zh(z,te.slice(0,z.length))))return{type:"success",matches:X}}if(te||(te=Xr(Y,O,c,!0)),!te||Zh(z,te))return{type:"success",matches:null};z=te}}function Zh(w,O){return w.length===O.length&&w.every((M,B)=>M.route.id===O[B].route.id)}function Q1(w){o={},l=fi(w,s,void 0,o)}function J1(w,O,M=!1){let B=l==null;fu(w,O,l||a,o,s,M),B&&(a=[...a],He({}))}return j={get basename(){return c},get future(){return u},get state(){return x},get routes(){return a},get window(){return e},initialize:R1,subscribe:B1,enableScrollRestoration:q1,navigate:Hh,fetch:H1,revalidate:$1,createHref:w=>n.history.createHref(w),encodeLocation:w=>n.history.encodeLocation(w),getFetcher:Uh,resetFetcher:U1,deleteFetcher:K1,dispose:I1,getBlocker:G1,deleteBlocker:Yh,patchRoutes:J1,_internalFetchControllers:F,_internalSetRoutes:Q1,_internalSetStateDoNotUseOrYouWillBreakYourApp(w){He(w)}},n.unstable_instrumentations&&(j=$b(j,n.unstable_instrumentations.map(w=>w.router).filter(Boolean))),j}function Qb(n){return n!=null&&("formData"in n&&n.formData!=null||"body"in n&&n.body!==void 0)}function Bl(n,e,t,r,i,s){let o,a;if(i){o=[];for(let c of e)if(o.push(c),c.route.id===i){a=c;break}}else o=e,a=e[e.length-1];let l=ha(r||".",ca(o),vt(n.pathname,t)||n.pathname,s==="path");if(r==null&&(l.search=n.search,l.hash=n.hash),(r==null||r===""||r===".")&&a){let c=Fc(l.search);if(a.route.index&&!c)l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index";else if(!a.route.index&&c){let h=new URLSearchParams(l.search),u=h.getAll("index");h.delete("index"),u.filter(p=>p).forEach(p=>h.append("index",p));let f=h.toString();l.search=f?`?${f}`:""}}return t!=="/"&&(l.pathname=Tb({basename:t,pathname:l.pathname})),Ut(l)}function uu(n,e,t){if(!t||!Qb(t))return{path:e};if(t.formMethod&&!my(t.formMethod))return{path:e,error:pt(405,{method:t.formMethod})};let r=()=>({path:e,error:pt(400,{type:"invalid-body"})}),s=(t.formMethod||"get").toUpperCase(),o=Vp(e);if(t.body!==void 0){if(t.formEncType==="text/plain"){if(!We(s))return r();let u=typeof t.body=="string"?t.body:t.body instanceof FormData||t.body instanceof URLSearchParams?Array.from(t.body.entries()).reduce((f,[p,m])=>`${f}${p}=${m}
19
+ `,""):String(t.body);return{path:e,submission:{formMethod:s,formAction:o,formEncType:t.formEncType,formData:void 0,json:void 0,text:u}}}else if(t.formEncType==="application/json"){if(!We(s))return r();try{let u=typeof t.body=="string"?JSON.parse(t.body):t.body;return{path:e,submission:{formMethod:s,formAction:o,formEncType:t.formEncType,formData:void 0,json:u,text:void 0}}}catch{return r()}}}oe(typeof FormData=="function","FormData is not available in this environment");let a,l;if(t.formData)a=zl(t.formData),l=t.formData;else if(t.body instanceof FormData)a=zl(t.body),l=t.body;else if(t.body instanceof URLSearchParams)a=t.body,l=yu(a);else if(t.body==null)a=new URLSearchParams,l=new FormData;else try{a=new URLSearchParams(t.body),l=yu(a)}catch{return r()}let c={formMethod:s,formAction:o,formEncType:t&&t.formEncType||"application/x-www-form-urlencoded",formData:l,json:void 0,text:void 0};if(We(c.formMethod))return{path:e,submission:c};let h=Pn(e);return n&&h.search&&Fc(h.search)&&a.append("index",""),h.search=`?${a}`,{path:Ut(h),submission:c}}function du(n,e,t,r,i,s,o,a,l,c,h,u,f,p,m,g,y,v,S,C,A){let k=C?lt(C[1])?C[1].error:C[1].data:void 0,j=i.createURL(s.location),x=i.createURL(l),T;if(h&&s.errors){let D=Object.keys(s.errors)[0];T=o.findIndex($=>$.route.id===D)}else if(C&&lt(C[1])){let D=C[0];T=o.findIndex($=>$.route.id===D)-1}let P=C?C[1].statusCode:void 0,R=P&&P>=400,L={currentUrl:j,currentParams:s.matches[0]?.params||{},nextUrl:x,nextParams:o[0].params,...a,actionResult:k,actionStatus:P},I=xs(o),W=o.map((D,$)=>{let{route:V}=D,F=null;if(T!=null&&$>T?F=!1:V.lazy?F=!0:Bc(V)?h?F=$l(V,s.loaderData,s.errors):Jb(s.loaderData,s.matches[$],D)&&(F=!0):F=!1,F!==null)return Fl(t,r,n,I,D,c,e,F);let q=!1;typeof A=="boolean"?q=A:R?q=!1:(u||j.pathname+j.search===x.pathname+x.search||j.search!==x.search||Xb(s.matches[$],D))&&(q=!0);let re={...L,defaultShouldRevalidate:q},se=ri(D,re);return Fl(t,r,n,I,D,c,e,se,re,A)}),U=[];return m.forEach((D,$)=>{if(h||!o.some(Me=>Me.route.id===D.routeId)||p.has($))return;let V=s.fetchers.get($),F=V&&V.state!=="idle"&&V.data===void 0,q=dn(y,D.path,v);if(!q){if(S&&F)return;U.push({key:$,routeId:D.routeId,path:D.path,matches:null,match:null,request:null,controller:null});return}if(g.has($))return;let re=vo(q,D.path),se=new AbortController,me=ir(i,D.path,se.signal),ke=null;if(f.has($))f.delete($),ke=dr(t,r,me,q,re,c,e);else if(F)u&&(ke=dr(t,r,me,q,re,c,e));else{let Me;typeof A=="boolean"?Me=A:R?Me=!1:Me=u;let De={...L,defaultShouldRevalidate:Me};ri(re,De)&&(ke=dr(t,r,me,q,re,c,e,De))}ke&&U.push({key:$,routeId:D.routeId,path:D.path,matches:ke,match:re,request:me,controller:se})}),{dsMatches:W,revalidatingFetchers:U}}function Bc(n){return n.loader!=null||n.middleware!=null&&n.middleware.length>0}function $l(n,e,t){if(n.lazy)return!0;if(!Bc(n))return!1;let r=e!=null&&n.id in e,i=t!=null&&t[n.id]!==void 0;return!r&&i?!1:typeof n.loader=="function"&&n.loader.hydrate===!0?!0:!r&&!i}function Jb(n,e,t){let r=!e||t.route.id!==e.route.id,i=!n.hasOwnProperty(t.route.id);return r||i}function Xb(n,e){let t=n.route.path;return n.pathname!==e.pathname||t!=null&&t.endsWith("*")&&n.params["*"]!==e.params["*"]}function ri(n,e){if(n.route.shouldRevalidate){let t=n.route.shouldRevalidate(e);if(typeof t=="boolean")return t}return e.defaultShouldRevalidate}function fu(n,e,t,r,i,s){let o;if(n){let c=r[n];oe(c,`No route found to patch children into: routeId = ${n}`),c.children||(c.children=[]),o=c.children}else o=t;let a=[],l=[];if(e.forEach(c=>{let h=o.find(u=>Ip(c,u));h?l.push({existingRoute:h,newRoute:c}):a.push(c)}),a.length>0){let c=fi(a,i,[n||"_","patch",String(o?.length||"0")],r);o.push(...c)}if(s&&l.length>0)for(let c=0;c<l.length;c++){let{existingRoute:h,newRoute:u}=l[c],f=h,[p]=fi([u],i,[],{},!0);Object.assign(f,{element:p.element?p.element:f.element,errorElement:p.errorElement?p.errorElement:f.errorElement,hydrateFallbackElement:p.hydrateFallbackElement?p.hydrateFallbackElement:f.hydrateFallbackElement})}}function Ip(n,e){return"id"in n&&"id"in e&&n.id===e.id?!0:n.index===e.index&&n.path===e.path&&n.caseSensitive===e.caseSensitive?(!n.children||n.children.length===0)&&(!e.children||e.children.length===0)?!0:n.children.every((t,r)=>e.children?.some(i=>Ip(t,i))):!1}var pu=new WeakMap,Bp=({key:n,route:e,manifest:t,mapRouteProperties:r})=>{let i=t[e.id];if(oe(i,"No route found in manifest"),!i.lazy||typeof i.lazy!="object")return;let s=i.lazy[n];if(!s)return;let o=pu.get(i);o||(o={},pu.set(i,o));let a=o[n];if(a)return a;let l=(async()=>{let c=mb(n),u=i[n]!==void 0&&n!=="hasErrorBoundary";if(c)Oe(!c,"Route property "+n+" is not a supported lazy route property. This property will be ignored."),o[n]=Promise.resolve();else if(u)Oe(!1,`Route "${i.id}" has a static property "${n}" defined. The lazy property will be ignored.`);else{let f=await s();f!=null&&(Object.assign(i,{[n]:f}),Object.assign(i,r(i)))}typeof i.lazy=="object"&&(i.lazy[n]=void 0,Object.values(i.lazy).every(f=>f===void 0)&&(i.lazy=void 0))})();return o[n]=l,l},mu=new WeakMap;function Zb(n,e,t,r,i){let s=t[n.id];if(oe(s,"No route found in manifest"),!n.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof n.lazy=="function"){let h=mu.get(s);if(h)return{lazyRoutePromise:h,lazyHandlerPromise:h};let u=(async()=>{oe(typeof n.lazy=="function","No lazy route function found");let f=await n.lazy(),p={};for(let m in f){let g=f[m];if(g===void 0)continue;let y=bb(m),S=s[m]!==void 0&&m!=="hasErrorBoundary";y?Oe(!y,"Route property "+m+" is not a supported property to be returned from a lazy route function. This property will be ignored."):S?Oe(!S,`Route "${s.id}" has a static property "${m}" defined but its lazy function is also returning a value for this property. The lazy route property "${m}" will be ignored.`):p[m]=g}Object.assign(s,p),Object.assign(s,{...r(s),lazy:void 0})})();return mu.set(s,u),u.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:u}}let o=Object.keys(n.lazy),a=[],l;for(let h of o){if(i&&i.includes(h))continue;let u=Bp({key:h,route:n,manifest:t,mapRouteProperties:r});u&&(a.push(u),h===e&&(l=u))}let c=a.length>0?Promise.all(a).then(()=>{}):void 0;return c?.catch(()=>{}),l?.catch(()=>{}),{lazyRoutePromise:c,lazyHandlerPromise:l}}async function gu(n){let e=n.matches.filter(i=>i.shouldLoad),t={};return(await Promise.all(e.map(i=>i.resolve()))).forEach((i,s)=>{t[e[s].route.id]=i}),t}async function ey(n){return n.matches.some(e=>e.route.middleware)?$p(n,()=>gu(n)):gu(n)}function $p(n,e){return ty(n,e,r=>{if(py(r))throw r;return r},hy,t);function t(r,i,s){if(s)return Promise.resolve(Object.assign(s.value,{[i]:{type:"error",result:r}}));{let{matches:o}=n,a=Math.min(Math.max(o.findIndex(c=>c.route.id===i),0),Math.max(o.findIndex(c=>c.shouldCallHandler()),0)),l=fn(o,o[a].route.id).route.id;return Promise.resolve({[l]:{type:"error",result:r}})}}}async function ty(n,e,t,r,i){let{matches:s,request:o,params:a,context:l,unstable_pattern:c}=n,h=s.flatMap(f=>f.route.middleware?f.route.middleware.map(p=>[f.route.id,p]):[]);return await Fp({request:o,params:a,context:l,unstable_pattern:c},h,e,t,r,i)}async function Fp(n,e,t,r,i,s,o=0){let{request:a}=n;if(a.signal.aborted)throw a.signal.reason??new Error(`Request aborted: ${a.method} ${a.url}`);let l=e[o];if(!l)return await t();let[c,h]=l,u,f=async()=>{if(u)throw new Error("You may only call `next()` once per middleware");try{return u={value:await Fp(n,e,t,r,i,s,o+1)},u.value}catch(p){return u={value:await s(p,c,u)},u.value}};try{let p=await h(n,f),m=p!=null?r(p):void 0;return i(m)?m:u?m??u.value:(u={value:await f()},u.value)}catch(p){return await s(p,c,u)}}function zp(n,e,t,r,i){let s=Bp({key:"middleware",route:r.route,manifest:e,mapRouteProperties:n}),o=Zb(r.route,We(t.method)?"action":"loader",e,n,i);return{middleware:s,route:o.lazyRoutePromise,handler:o.lazyHandlerPromise}}function Fl(n,e,t,r,i,s,o,a,l=null,c){let h=!1,u=zp(n,e,t,i,s);return{...i,_lazyPromises:u,shouldLoad:a,shouldRevalidateArgs:l,shouldCallHandler(f){return h=!0,l?typeof c=="boolean"?ri(i,{...l,defaultShouldRevalidate:c}):typeof f=="boolean"?ri(i,{...l,defaultShouldRevalidate:f}):ri(i,l):a},resolve(f){let{lazy:p,loader:m,middleware:g}=i.route,y=h||a||f&&!We(t.method)&&(p||m),v=g&&g.length>0&&!m&&!p;return y&&(We(t.method)||!v)?ry({request:t,unstable_pattern:r,match:i,lazyHandlerPromise:u?.handler,lazyRoutePromise:u?.route,handlerOverride:f,scopedContext:o}):Promise.resolve({type:"data",result:void 0})}}}function dr(n,e,t,r,i,s,o,a=null){return r.map(l=>l.route.id!==i.route.id?{...l,shouldLoad:!1,shouldRevalidateArgs:a,shouldCallHandler:()=>!1,_lazyPromises:zp(n,e,t,l,s),resolve:()=>Promise.resolve({type:"data",result:void 0})}:Fl(n,e,t,xs(r),l,s,o,!0,a))}async function ny(n,e,t,r,i,s){t.some(c=>c._lazyPromises?.middleware)&&await Promise.all(t.map(c=>c._lazyPromises?.middleware));let o={request:e,unstable_pattern:xs(t),params:t[0].params,context:i,matches:t},l=await n({...o,fetcherKey:r,runClientMiddleware:c=>{let h=o;return $p(h,()=>c({...h,fetcherKey:r,runClientMiddleware:()=>{throw new Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))}});try{await Promise.all(t.flatMap(c=>[c._lazyPromises?.handler,c._lazyPromises?.route]))}catch{}return l}async function ry({request:n,unstable_pattern:e,match:t,lazyHandlerPromise:r,lazyRoutePromise:i,handlerOverride:s,scopedContext:o}){let a,l,c=We(n.method),h=c?"action":"loader",u=f=>{let p,m=new Promise((v,S)=>p=S);l=()=>p(),n.signal.addEventListener("abort",l);let g=v=>typeof f!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${h}" [routeId: ${t.route.id}]`)):f({request:n,unstable_pattern:e,params:t.params,context:o},...v!==void 0?[v]:[]),y=(async()=>{try{return{type:"data",result:await(s?s(S=>g(S)):g())}}catch(v){return{type:"error",result:v}}})();return Promise.race([y,m])};try{let f=c?t.route.action:t.route.loader;if(r||i)if(f){let p,[m]=await Promise.all([u(f).catch(g=>{p=g}),r,i]);if(p!==void 0)throw p;a=m}else{await r;let p=c?t.route.action:t.route.loader;if(p)[a]=await Promise.all([u(p),i]);else if(h==="action"){let m=new URL(n.url),g=m.pathname+m.search;throw pt(405,{method:n.method,pathname:g,routeId:t.route.id})}else return{type:"data",result:void 0}}else if(f)a=await u(f);else{let p=new URL(n.url),m=p.pathname+p.search;throw pt(404,{pathname:m})}}catch(f){return{type:"error",result:f}}finally{l&&n.signal.removeEventListener("abort",l)}return a}async function iy(n){let e=n.headers.get("Content-Type");return e&&/\bapplication\/json\b/.test(e)?n.body==null?null:n.json():n.text()}async function sy(n){let{result:e,type:t}=n;if($c(e)){let r;try{r=await iy(e)}catch(i){return{type:"error",error:i}}return t==="error"?{type:"error",error:new ys(e.status,e.statusText,r),statusCode:e.status,headers:e.headers}:{type:"data",data:r,statusCode:e.status,headers:e.headers}}return t==="error"?ku(e)?e.data instanceof Error?{type:"error",error:e.data,statusCode:e.init?.status,headers:e.init?.headers?new Headers(e.init.headers):void 0}:{type:"error",error:cy(e),statusCode:pi(e)?e.status:void 0,headers:e.init?.headers?new Headers(e.init.headers):void 0}:{type:"error",error:e,statusCode:pi(e)?e.status:void 0}:ku(e)?{type:"data",data:e.data,statusCode:e.init?.status,headers:e.init?.headers?new Headers(e.init.headers):void 0}:{type:"data",data:e}}function oy(n,e,t,r,i){let s=n.headers.get("Location");if(oe(s,"Redirects returned/thrown from loaders/actions must have a Location header"),!la(s)){let o=r.slice(0,r.findIndex(a=>a.route.id===t)+1);s=Bl(new URL(e.url),o,i,s),n.headers.set("Location",s)}return n}function bu(n,e,t){if(la(n)){let r=n,i=r.startsWith("//")?new URL(e.protocol+r):new URL(r),s=vt(i.pathname,t)!=null;if(i.origin===e.origin&&s)return i.pathname+i.search+i.hash}return n}function ir(n,e,t,r){let i=n.createURL(Vp(e)).toString(),s={signal:t};if(r&&We(r.formMethod)){let{formMethod:o,formEncType:a}=r;s.method=o.toUpperCase(),a==="application/json"?(s.headers=new Headers({"Content-Type":a}),s.body=JSON.stringify(r.json)):a==="text/plain"?s.body=r.text:a==="application/x-www-form-urlencoded"&&r.formData?s.body=zl(r.formData):s.body=r.formData}return new Request(i,s)}function zl(n){let e=new URLSearchParams;for(let[t,r]of n.entries())e.append(t,typeof r=="string"?r:r.name);return e}function yu(n){let e=new FormData;for(let[t,r]of n.entries())e.append(t,r);return e}function ay(n,e,t,r=!1,i=!1){let s={},o=null,a,l=!1,c={},h=t&&lt(t[1])?t[1].error:void 0;return n.forEach(u=>{if(!(u.route.id in e))return;let f=u.route.id,p=e[f];if(oe(!Vn(p),"Cannot handle redirect results in processLoaderData"),lt(p)){let m=p.error;if(h!==void 0&&(m=h,h=void 0),o=o||{},i)o[f]=m;else{let g=fn(n,f);o[g.route.id]==null&&(o[g.route.id]=m)}r||(s[f]=Rp),l||(l=!0,a=pi(p.error)?p.error.status:500),p.headers&&(c[f]=p.headers)}else s[f]=p.data,p.statusCode&&p.statusCode!==200&&!l&&(a=p.statusCode),p.headers&&(c[f]=p.headers)}),h!==void 0&&t&&(o={[t[0]]:h},t[2]&&(s[t[2]]=void 0)),{loaderData:s,errors:o,statusCode:a||200,loaderHeaders:c}}function xu(n,e,t,r,i,s){let{loaderData:o,errors:a}=ay(e,t,r);return i.filter(l=>!l.matches||l.matches.some(c=>c.shouldLoad)).forEach(l=>{let{key:c,match:h,controller:u}=l;if(u&&u.signal.aborted)return;let f=s[c];if(oe(f,"Did not find corresponding fetcher result"),lt(f)){let p=fn(n.matches,h?.route.id);a&&a[p.route.id]||(a={...a,[p.route.id]:f.error}),n.fetchers.delete(c)}else if(Vn(f))oe(!1,"Unhandled fetcher revalidation redirect");else{let p=Zt(f.data);n.fetchers.set(c,p)}}),{loaderData:o,errors:a}}function vu(n,e,t,r){let i=Object.entries(e).filter(([,s])=>s!==Rp).reduce((s,[o,a])=>(s[o]=a,s),{});for(let s of t){let o=s.route.id;if(!e.hasOwnProperty(o)&&n.hasOwnProperty(o)&&s.route.loader&&(i[o]=n[o]),r&&r.hasOwnProperty(o))break}return i}function wu(n){return n?lt(n[1])?{actionData:{}}:{actionData:{[n[0]]:n[1].data}}:{}}function fn(n,e){return(e?n.slice(0,n.findIndex(r=>r.route.id===e)+1):[...n]).reverse().find(r=>r.route.hasErrorBoundary===!0)||n[0]}function Vs(n){let e=n.length===1?n[0]:n.find(t=>t.index||!t.path||t.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:e}],route:e}}function pt(n,{pathname:e,routeId:t,method:r,type:i,message:s}={}){let o="Unknown Server Error",a="Unknown @remix-run/router error";return n===400?(o="Bad Request",r&&e&&t?a=`You made a ${r} request to "${e}" but did not provide a \`loader\` for route "${t}", so there is no way to handle the request.`:i==="invalid-body"&&(a="Unable to encode submission body")):n===403?(o="Forbidden",a=`Route "${t}" does not match URL "${e}"`):n===404?(o="Not Found",a=`No route matches URL "${e}"`):n===405&&(o="Method Not Allowed",r&&e&&t?a=`You made a ${r.toUpperCase()} request to "${e}" but did not provide an \`action\` for route "${t}", so there is no way to handle the request.`:r&&(a=`Invalid request method "${r.toUpperCase()}"`)),new ys(n||500,o,new Error(a),!0)}function Hs(n){let e=Object.entries(n);for(let t=e.length-1;t>=0;t--){let[r,i]=e[t];if(Vn(i))return{key:r,result:i}}}function Vp(n){let e=typeof n=="string"?Pn(n):n;return Ut({...e,hash:""})}function ly(n,e){return n.pathname!==e.pathname||n.search!==e.search?!1:n.hash===""?e.hash!=="":n.hash===e.hash?!0:e.hash!==""}function cy(n){return new ys(n.init?.status??500,n.init?.statusText??"Internal Server Error",n.data)}function hy(n){return n!=null&&typeof n=="object"&&Object.entries(n).every(([e,t])=>typeof e=="string"&&uy(t))}function uy(n){return n!=null&&typeof n=="object"&&"type"in n&&"result"in n&&(n.type==="data"||n.type==="error")}function dy(n){return $c(n.result)&&Np.has(n.result.status)}function lt(n){return n.type==="error"}function Vn(n){return(n&&n.type)==="redirect"}function ku(n){return typeof n=="object"&&n!=null&&"type"in n&&"data"in n&&"init"in n&&n.type==="DataWithResponseInit"}function $c(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.headers=="object"&&typeof n.body<"u"}function fy(n){return Np.has(n)}function py(n){return $c(n)&&fy(n.status)&&n.headers.has("Location")}function my(n){return Ub.has(n.toUpperCase())}function We(n){return _b.has(n.toUpperCase())}function Fc(n){return new URLSearchParams(n).getAll("index").some(e=>e==="")}function vo(n,e){let t=typeof e=="string"?Pn(e).search:e.search;if(n[n.length-1].route.index&&Fc(t||""))return n[n.length-1];let r=Ap(n);return r[r.length-1]}function Su(n){let{formMethod:e,formAction:t,formEncType:r,text:i,formData:s,json:o}=n;if(!(!e||!t||!r)){if(i!=null)return{formMethod:e,formAction:t,formEncType:r,formData:void 0,json:void 0,text:i};if(s!=null)return{formMethod:e,formAction:t,formEncType:r,formData:s,json:void 0,text:void 0};if(o!==void 0)return{formMethod:e,formAction:t,formEncType:r,formData:void 0,json:o,text:void 0}}}function Ra(n,e){return e?{state:"loading",location:n,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text}:{state:"loading",location:n,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function gy(n,e){return{state:"submitting",location:n,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text}}function Wr(n,e){return n?{state:"loading",formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text,data:e}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function by(n,e){return{state:"submitting",formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text,data:e?e.data:void 0}}function Zt(n){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:n}}function yy(n,e){try{let t=n.sessionStorage.getItem(Lp);if(t){let r=JSON.parse(t);for(let[i,s]of Object.entries(r||{}))s&&Array.isArray(s)&&e.set(i,new Set(s||[]))}}catch{}}function xy(n,e){if(e.size>0){let t={};for(let[r,i]of e)t[r]=[...i];try{n.sessionStorage.setItem(Lp,JSON.stringify(t))}catch(r){Oe(!1,`Failed to save applied view transitions in sessionStorage (${r}).`)}}}function Cu(){let n,e,t=new Promise((r,i)=>{n=async s=>{r(s);try{await t}catch{}},e=async s=>{i(s);try{await t}catch{}}});return{promise:t,resolve:n,reject:e}}var Jn=b.createContext(null);Jn.displayName="DataRouter";var vs=b.createContext(null);vs.displayName="DataRouterState";var Hp=b.createContext(!1);function vy(){return b.useContext(Hp)}var zc=b.createContext({isTransitioning:!1});zc.displayName="ViewTransition";var _p=b.createContext(new Map);_p.displayName="Fetchers";var wy=b.createContext(null);wy.displayName="Await";var ht=b.createContext(null);ht.displayName="Navigation";var ua=b.createContext(null);ua.displayName="Location";var kt=b.createContext({outlet:null,matches:[],isDataRoute:!1});kt.displayName="Route";var Vc=b.createContext(null);Vc.displayName="RouteError";var Wp="REACT_ROUTER_ERROR",ky="REDIRECT",Sy="ROUTE_ERROR_RESPONSE";function Cy(n){if(n.startsWith(`${Wp}:${ky}:{`))try{let e=JSON.parse(n.slice(28));if(typeof e=="object"&&e&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.location=="string"&&typeof e.reloadDocument=="boolean"&&typeof e.replace=="boolean")return e}catch{}}function Oy(n){if(n.startsWith(`${Wp}:${Sy}:{`))try{let e=JSON.parse(n.slice(40));if(typeof e=="object"&&e&&typeof e.status=="number"&&typeof e.statusText=="string")return new ys(e.status,e.statusText,e.data)}catch{}}function jy(n,{relative:e}={}){oe(Ar(),"useHref() may be used only in the context of a <Router> component.");let{basename:t,navigator:r}=b.useContext(ht),{hash:i,pathname:s,search:o}=ws(n,{relative:e}),a=s;return t!=="/"&&(a=s==="/"?t:_t([t,s])),r.createHref({pathname:a,search:o,hash:i})}function Ar(){return b.useContext(ua)!=null}function Kt(){return oe(Ar(),"useLocation() may be used only in the context of a <Router> component."),b.useContext(ua).location}var Up="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Kp(n){b.useContext(ht).static||b.useLayoutEffect(n)}function an(){let{isDataRoute:n}=b.useContext(kt);return n?Vy():Py()}function Py(){oe(Ar(),"useNavigate() may be used only in the context of a <Router> component.");let n=b.useContext(Jn),{basename:e,navigator:t}=b.useContext(ht),{matches:r}=b.useContext(kt),{pathname:i}=Kt(),s=JSON.stringify(ca(r)),o=b.useRef(!1);return Kp(()=>{o.current=!0}),b.useCallback((l,c={})=>{if(Oe(o.current,Up),!o.current)return;if(typeof l=="number"){t.go(l);return}let h=ha(l,JSON.parse(s),i,c.relative==="path");n==null&&e!=="/"&&(h.pathname=h.pathname==="/"?e:_t([e,h.pathname])),(c.replace?t.replace:t.push)(h,c.state,c)},[e,t,s,i,n])}var Gp=b.createContext(null);function Ay(){return b.useContext(Gp)}function My(n){let e=b.useContext(kt).outlet;return b.useMemo(()=>e&&b.createElement(Gp.Provider,{value:n},e),[e,n])}function qp(){let{matches:n}=b.useContext(kt),e=n[n.length-1];return e?e.params:{}}function ws(n,{relative:e}={}){let{matches:t}=b.useContext(kt),{pathname:r}=Kt(),i=JSON.stringify(ca(t));return b.useMemo(()=>ha(n,JSON.parse(i),r,e==="path"),[n,i,r,e])}function Dy(n,e,t,r,i){oe(Ar(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:s}=b.useContext(ht),{matches:o}=b.useContext(kt),a=o[o.length-1],l=a?a.params:{},c=a?a.pathname:"/",h=a?a.pathnameBase:"/",u=a&&a.route;{let S=u&&u.path||"";Qp(c,!u||S.endsWith("*")||S.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${c}" (under <Route path="${S}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
20
+
21
+ Please change the parent <Route path="${S}"> to <Route path="${S==="/"?"*":`${S}/*`}">.`)}let f=Kt(),p;p=f;let m=p.pathname||"/",g=m;if(h!=="/"){let S=h.replace(/^\//,"").split("/");g="/"+m.replace(/^\//,"").split("/").slice(S.length).join("/")}let y=dn(n,{pathname:g});return Oe(u||y!=null,`No routes matched location "${p.pathname}${p.search}${p.hash}" `),Oe(y==null||y[y.length-1].route.element!==void 0||y[y.length-1].route.Component!==void 0||y[y.length-1].route.lazy!==void 0,`Matched leaf route at location "${p.pathname}${p.search}${p.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`),Ry(y&&y.map(S=>Object.assign({},S,{params:Object.assign({},l,S.params),pathname:_t([h,s.encodeLocation?s.encodeLocation(S.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:S.pathname]),pathnameBase:S.pathnameBase==="/"?h:_t([h,s.encodeLocation?s.encodeLocation(S.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:S.pathnameBase])})),o,t,r,i)}function Ey(){let n=zy(),e=pi(n)?`${n.status} ${n.statusText}`:n instanceof Error?n.message:JSON.stringify(n),t=n instanceof Error?n.stack:null,r="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:r},s={padding:"2px 4px",backgroundColor:r},o=null;return console.error("Error handled by React Router default ErrorBoundary:",n),o=b.createElement(b.Fragment,null,b.createElement("p",null,"💿 Hey developer 👋"),b.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",b.createElement("code",{style:s},"ErrorBoundary")," or"," ",b.createElement("code",{style:s},"errorElement")," prop on your route.")),b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},e),t?b.createElement("pre",{style:i},t):null,o)}var Ty=b.createElement(Ey,null),Yp=class extends b.Component{constructor(n){super(n),this.state={location:n.location,revalidation:n.revalidation,error:n.error}}static getDerivedStateFromError(n){return{error:n}}static getDerivedStateFromProps(n,e){return e.location!==n.location||e.revalidation!=="idle"&&n.revalidation==="idle"?{error:n.error,location:n.location,revalidation:n.revalidation}:{error:n.error!==void 0?n.error:e.error,location:e.location,revalidation:n.revalidation||e.revalidation}}componentDidCatch(n,e){this.props.onError?this.props.onError(n,e):console.error("React Router caught the following error during render",n)}render(){let n=this.state.error;if(this.context&&typeof n=="object"&&n&&"digest"in n&&typeof n.digest=="string"){const t=Oy(n.digest);t&&(n=t)}let e=n!==void 0?b.createElement(kt.Provider,{value:this.props.routeContext},b.createElement(Vc.Provider,{value:n,children:this.props.component})):this.props.children;return this.context?b.createElement(Ny,{error:n},e):e}};Yp.contextType=Hp;var Ia=new WeakMap;function Ny({children:n,error:e}){let{basename:t}=b.useContext(ht);if(typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){let r=Cy(e.digest);if(r){let i=Ia.get(e);if(i)throw i;let s=Dp(r.location,t);if(Mp&&!Ia.get(e))if(s.isExternal||r.reloadDocument)window.location.href=s.absoluteURL||s.to;else{const o=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(s.to,{replace:r.replace}));throw Ia.set(e,o),o}return b.createElement("meta",{httpEquiv:"refresh",content:`0;url=${s.absoluteURL||s.to}`})}}return n}function Ly({routeContext:n,match:e,children:t}){let r=b.useContext(Jn);return r&&r.static&&r.staticContext&&(e.route.errorElement||e.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=e.route.id),b.createElement(kt.Provider,{value:n},t)}function Ry(n,e=[],t=null,r=null,i=null){if(n==null){if(!t)return null;if(t.errors)n=t.matches;else if(e.length===0&&!t.initialized&&t.matches.length>0)n=t.matches;else return null}let s=n,o=t?.errors;if(o!=null){let h=s.findIndex(u=>u.route.id&&o?.[u.route.id]!==void 0);oe(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),s=s.slice(0,Math.min(s.length,h+1))}let a=!1,l=-1;if(t)for(let h=0;h<s.length;h++){let u=s[h];if((u.route.HydrateFallback||u.route.hydrateFallbackElement)&&(l=h),u.route.id){let{loaderData:f,errors:p}=t,m=u.route.loader&&!f.hasOwnProperty(u.route.id)&&(!p||p[u.route.id]===void 0);if(u.route.lazy||m){a=!0,l>=0?s=s.slice(0,l+1):s=[s[0]];break}}}let c=t&&r?(h,u)=>{r(h,{location:t.location,params:t.matches?.[0]?.params??{},unstable_pattern:xs(t.matches),errorInfo:u})}:void 0;return s.reduceRight((h,u,f)=>{let p,m=!1,g=null,y=null;t&&(p=o&&u.route.id?o[u.route.id]:void 0,g=u.route.errorElement||Ty,a&&(l<0&&f===0?(Qp("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),m=!0,y=null):l===f&&(m=!0,y=u.route.hydrateFallbackElement||null)));let v=e.concat(s.slice(0,f+1)),S=()=>{let C;return p?C=g:m?C=y:u.route.Component?C=b.createElement(u.route.Component,null):u.route.element?C=u.route.element:C=h,b.createElement(Ly,{match:u,routeContext:{outlet:h,matches:v,isDataRoute:t!=null},children:C})};return t&&(u.route.ErrorBoundary||u.route.errorElement||f===0)?b.createElement(Yp,{location:t.location,revalidation:t.revalidation,component:g,error:p,children:S(),routeContext:{outlet:null,matches:v,isDataRoute:!0},onError:c}):S()},null)}function Hc(n){return`${n} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Iy(n){let e=b.useContext(Jn);return oe(e,Hc(n)),e}function By(n){let e=b.useContext(vs);return oe(e,Hc(n)),e}function $y(n){let e=b.useContext(kt);return oe(e,Hc(n)),e}function _c(n){let e=$y(n),t=e.matches[e.matches.length-1];return oe(t.route.id,`${n} can only be used on routes that contain a unique "id"`),t.route.id}function Fy(){return _c("useRouteId")}function zy(){let n=b.useContext(Vc),e=By("useRouteError"),t=_c("useRouteError");return n!==void 0?n:e.errors?.[t]}function Vy(){let{router:n}=Iy("useNavigate"),e=_c("useNavigate"),t=b.useRef(!1);return Kp(()=>{t.current=!0}),b.useCallback(async(i,s={})=>{Oe(t.current,Up),t.current&&(typeof i=="number"?await n.navigate(i):await n.navigate(i,{fromRouteId:e,...s}))},[n,e])}var Ou={};function Qp(n,e,t){!e&&!Ou[n]&&(Ou[n]=!0,Oe(!1,t))}var ju={};function Pu(n,e){!n&&!ju[e]&&(ju[e]=!0,console.warn(e))}var Hy="useOptimistic",Au=tb[Hy],_y=()=>{};function Wy(n){return Au?Au(n):[n,_y]}function Uy(n){let e={hasErrorBoundary:n.hasErrorBoundary||n.ErrorBoundary!=null||n.errorElement!=null};return n.Component&&(n.element&&Oe(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(e,{element:b.createElement(n.Component),Component:void 0})),n.HydrateFallback&&(n.hydrateFallbackElement&&Oe(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(e,{hydrateFallbackElement:b.createElement(n.HydrateFallback),HydrateFallback:void 0})),n.ErrorBoundary&&(n.errorElement&&Oe(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(e,{errorElement:b.createElement(n.ErrorBoundary),ErrorBoundary:void 0})),e}var Ky=["HydrateFallback","hydrateFallbackElement"],Gy=class{constructor(){this.status="pending",this.promise=new Promise((n,e)=>{this.resolve=t=>{this.status==="pending"&&(this.status="resolved",n(t))},this.reject=t=>{this.status==="pending"&&(this.status="rejected",e(t))}})}};function qy({router:n,flushSync:e,onError:t,unstable_useTransitions:r}){r=vy()||r;let[s,o]=b.useState(n.state),[a,l]=Wy(s),[c,h]=b.useState(),[u,f]=b.useState({isTransitioning:!1}),[p,m]=b.useState(),[g,y]=b.useState(),[v,S]=b.useState(),C=b.useRef(new Map),A=b.useCallback((T,{deletedFetchers:P,newErrors:R,flushSync:L,viewTransitionOpts:I})=>{R&&t&&Object.values(R).forEach(U=>t(U,{location:T.location,params:T.matches[0]?.params??{},unstable_pattern:xs(T.matches)})),T.fetchers.forEach((U,D)=>{U.data!==void 0&&C.current.set(D,U.data)}),P.forEach(U=>C.current.delete(U)),Pu(L===!1||e!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let W=n.window!=null&&n.window.document!=null&&typeof n.window.document.startViewTransition=="function";if(Pu(I==null||W,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!I||!W){e&&L?e(()=>o(T)):r===!1?o(T):b.startTransition(()=>{r===!0&&l(U=>Mu(U,T)),o(T)});return}if(e&&L){e(()=>{g&&(p?.resolve(),g.skipTransition()),f({isTransitioning:!0,flushSync:!0,currentLocation:I.currentLocation,nextLocation:I.nextLocation})});let U=n.window.document.startViewTransition(()=>{e(()=>o(T))});U.finished.finally(()=>{e(()=>{m(void 0),y(void 0),h(void 0),f({isTransitioning:!1})})}),e(()=>y(U));return}g?(p?.resolve(),g.skipTransition(),S({state:T,currentLocation:I.currentLocation,nextLocation:I.nextLocation})):(h(T),f({isTransitioning:!0,flushSync:!1,currentLocation:I.currentLocation,nextLocation:I.nextLocation}))},[n.window,e,g,p,r,l,t]);b.useLayoutEffect(()=>n.subscribe(A),[n,A]),b.useEffect(()=>{u.isTransitioning&&!u.flushSync&&m(new Gy)},[u]),b.useEffect(()=>{if(p&&c&&n.window){let T=c,P=p.promise,R=n.window.document.startViewTransition(async()=>{r===!1?o(T):b.startTransition(()=>{r===!0&&l(L=>Mu(L,T)),o(T)}),await P});R.finished.finally(()=>{m(void 0),y(void 0),h(void 0),f({isTransitioning:!1})}),y(R)}},[c,p,n.window,r,l]),b.useEffect(()=>{p&&c&&a.location.key===c.location.key&&p.resolve()},[p,g,a.location,c]),b.useEffect(()=>{!u.isTransitioning&&v&&(h(v.state),f({isTransitioning:!0,flushSync:!1,currentLocation:v.currentLocation,nextLocation:v.nextLocation}),S(void 0))},[u.isTransitioning,v]);let k=b.useMemo(()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:T=>n.navigate(T),push:(T,P,R)=>n.navigate(T,{state:P,preventScrollReset:R?.preventScrollReset}),replace:(T,P,R)=>n.navigate(T,{replace:!0,state:P,preventScrollReset:R?.preventScrollReset})}),[n]),j=n.basename||"/",x=b.useMemo(()=>({router:n,navigator:k,static:!1,basename:j,onError:t}),[n,k,j,t]);return b.createElement(b.Fragment,null,b.createElement(Jn.Provider,{value:x},b.createElement(vs.Provider,{value:a},b.createElement(_p.Provider,{value:C.current},b.createElement(zc.Provider,{value:u},b.createElement(Xy,{basename:j,location:a.location,navigationType:a.historyAction,navigator:k,unstable_useTransitions:r},b.createElement(Yy,{routes:n.routes,future:n.future,state:a,onError:t})))))),null)}function Mu(n,e){return{...n,navigation:e.navigation.state!=="idle"?e.navigation:n.navigation,revalidation:e.revalidation!=="idle"?e.revalidation:n.revalidation,actionData:e.navigation.state!=="submitting"?e.actionData:n.actionData,fetchers:e.fetchers}}var Yy=b.memo(Qy);function Qy({routes:n,future:e,state:t,onError:r}){return Dy(n,void 0,t,r,e)}function Du({to:n,replace:e,state:t,relative:r}){oe(Ar(),"<Navigate> may be used only in the context of a <Router> component.");let{static:i}=b.useContext(ht);Oe(!i,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:s}=b.useContext(kt),{pathname:o}=Kt(),a=an(),l=ha(n,ca(s),o,r==="path"),c=JSON.stringify(l);return b.useEffect(()=>{a(JSON.parse(c),{replace:e,state:t,relative:r})},[a,c,r,e,t]),null}function Jy(n){return My(n.context)}function Xy({basename:n="/",children:e=null,location:t,navigationType:r="POP",navigator:i,static:s=!1,unstable_useTransitions:o}){oe(!Ar(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let a=n.replace(/^\/*/,"/"),l=b.useMemo(()=>({basename:a,navigator:i,static:s,unstable_useTransitions:o,future:{}}),[a,i,s,o]);typeof t=="string"&&(t=Pn(t));let{pathname:c="/",search:h="",hash:u="",state:f=null,key:p="default"}=t,m=b.useMemo(()=>{let g=vt(c,a);return g==null?null:{location:{pathname:g,search:h,hash:u,state:f,key:p},navigationType:r}},[a,c,h,u,f,p,r]);return Oe(m!=null,`<Router basename="${a}"> is not able to match the URL "${c}${h}${u}" because it does not start with the basename, so the <Router> won't render anything.`),m==null?null:b.createElement(ht.Provider,{value:l},b.createElement(ua.Provider,{children:e,value:m}))}var wo="get",ko="application/x-www-form-urlencoded";function da(n){return typeof HTMLElement<"u"&&n instanceof HTMLElement}function Zy(n){return da(n)&&n.tagName.toLowerCase()==="button"}function ex(n){return da(n)&&n.tagName.toLowerCase()==="form"}function tx(n){return da(n)&&n.tagName.toLowerCase()==="input"}function nx(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}function rx(n,e){return n.button===0&&(!e||e==="_self")&&!nx(n)}var _s=null;function ix(){if(_s===null)try{new FormData(document.createElement("form"),0),_s=!1}catch{_s=!0}return _s}var sx=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Ba(n){return n!=null&&!sx.has(n)?(Oe(!1,`"${n}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${ko}"`),null):n}function ox(n,e){let t,r,i,s,o;if(ex(n)){let a=n.getAttribute("action");r=a?vt(a,e):null,t=n.getAttribute("method")||wo,i=Ba(n.getAttribute("enctype"))||ko,s=new FormData(n)}else if(Zy(n)||tx(n)&&(n.type==="submit"||n.type==="image")){let a=n.form;if(a==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let l=n.getAttribute("formaction")||a.getAttribute("action");if(r=l?vt(l,e):null,t=n.getAttribute("formmethod")||a.getAttribute("method")||wo,i=Ba(n.getAttribute("formenctype"))||Ba(a.getAttribute("enctype"))||ko,s=new FormData(a,n),!ix()){let{name:c,type:h,value:u}=n;if(h==="image"){let f=c?`${c}.`:"";s.append(`${f}x`,"0"),s.append(`${f}y`,"0")}else c&&s.append(c,u)}}else{if(da(n))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');t=wo,r=null,i=ko,o=n}return s&&i==="text/plain"&&(o=s,s=void 0),{action:r,method:t.toLowerCase(),encType:i,formData:s,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Wc(n,e){if(n===!1||n===null||typeof n>"u")throw new Error(e)}function ax(n,e,t){let r=typeof n=="string"?new URL(n,typeof window>"u"?"server://singlefetch/":window.location.origin):n;return r.pathname==="/"?r.pathname=`_root.${t}`:e&&vt(r.pathname,e)==="/"?r.pathname=`${e.replace(/\/$/,"")}/_root.${t}`:r.pathname=`${r.pathname.replace(/\/$/,"")}.${t}`,r}async function lx(n,e){if(n.id in e)return e[n.id];try{let t=await import(n.module);return e[n.id]=t,t}catch(t){return console.error(`Error loading route module \`${n.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function cx(n){return n==null?!1:n.href==null?n.rel==="preload"&&typeof n.imageSrcSet=="string"&&typeof n.imageSizes=="string":typeof n.rel=="string"&&typeof n.href=="string"}async function hx(n,e,t){let r=await Promise.all(n.map(async i=>{let s=e.routes[i.route.id];if(s){let o=await lx(s,t);return o.links?o.links():[]}return[]}));return px(r.flat(1).filter(cx).filter(i=>i.rel==="stylesheet"||i.rel==="preload").map(i=>i.rel==="stylesheet"?{...i,rel:"prefetch",as:"style"}:{...i,rel:"prefetch"}))}function Eu(n,e,t,r,i,s){let o=(l,c)=>t[c]?l.route.id!==t[c].route.id:!0,a=(l,c)=>t[c].pathname!==l.pathname||t[c].route.path?.endsWith("*")&&t[c].params["*"]!==l.params["*"];return s==="assets"?e.filter((l,c)=>o(l,c)||a(l,c)):s==="data"?e.filter((l,c)=>{let h=r.routes[l.route.id];if(!h||!h.hasLoader)return!1;if(o(l,c)||a(l,c))return!0;if(l.route.shouldRevalidate){let u=l.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:t[0]?.params||{},nextUrl:new URL(n,window.origin),nextParams:l.params,defaultShouldRevalidate:!0});if(typeof u=="boolean")return u}return!0}):[]}function ux(n,e,{includeHydrateFallback:t}={}){return dx(n.map(r=>{let i=e.routes[r.route.id];if(!i)return[];let s=[i.module];return i.clientActionModule&&(s=s.concat(i.clientActionModule)),i.clientLoaderModule&&(s=s.concat(i.clientLoaderModule)),t&&i.hydrateFallbackModule&&(s=s.concat(i.hydrateFallbackModule)),i.imports&&(s=s.concat(i.imports)),s}).flat(1))}function dx(n){return[...new Set(n)]}function fx(n){let e={},t=Object.keys(n).sort();for(let r of t)e[r]=n[r];return e}function px(n,e){let t=new Set;return new Set(e),n.reduce((r,i)=>{let s=JSON.stringify(fx(i));return t.has(s)||(t.add(s),r.push({key:s,link:i})),r},[])}function Jp(){let n=b.useContext(Jn);return Wc(n,"You must render this element inside a <DataRouterContext.Provider> element"),n}function mx(){let n=b.useContext(vs);return Wc(n,"You must render this element inside a <DataRouterStateContext.Provider> element"),n}var Uc=b.createContext(void 0);Uc.displayName="FrameworkContext";function Xp(){let n=b.useContext(Uc);return Wc(n,"You must render this element inside a <HydratedRouter> element"),n}function gx(n,e){let t=b.useContext(Uc),[r,i]=b.useState(!1),[s,o]=b.useState(!1),{onFocus:a,onBlur:l,onMouseEnter:c,onMouseLeave:h,onTouchStart:u}=e,f=b.useRef(null);b.useEffect(()=>{if(n==="render"&&o(!0),n==="viewport"){let g=v=>{v.forEach(S=>{o(S.isIntersecting)})},y=new IntersectionObserver(g,{threshold:.5});return f.current&&y.observe(f.current),()=>{y.disconnect()}}},[n]),b.useEffect(()=>{if(r){let g=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(g)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return t?n!=="intent"?[s,f,{}]:[s,f,{onFocus:Ur(a,p),onBlur:Ur(l,m),onMouseEnter:Ur(c,p),onMouseLeave:Ur(h,m),onTouchStart:Ur(u,p)}]:[!1,f,{}]}function Ur(n,e){return t=>{n&&n(t),t.defaultPrevented||e(t)}}function bx({page:n,...e}){let{router:t}=Jp(),r=b.useMemo(()=>dn(t.routes,n,t.basename),[t.routes,n,t.basename]);return r?b.createElement(xx,{page:n,matches:r,...e}):null}function yx(n){let{manifest:e,routeModules:t}=Xp(),[r,i]=b.useState([]);return b.useEffect(()=>{let s=!1;return hx(n,e,t).then(o=>{s||i(o)}),()=>{s=!0}},[n,e,t]),r}function xx({page:n,matches:e,...t}){let r=Kt(),{manifest:i,routeModules:s}=Xp(),{basename:o}=Jp(),{loaderData:a,matches:l}=mx(),c=b.useMemo(()=>Eu(n,e,l,i,r,"data"),[n,e,l,i,r]),h=b.useMemo(()=>Eu(n,e,l,i,r,"assets"),[n,e,l,i,r]),u=b.useMemo(()=>{if(n===r.pathname+r.search+r.hash)return[];let m=new Set,g=!1;if(e.forEach(v=>{let S=i.routes[v.route.id];!S||!S.hasLoader||(!c.some(C=>C.route.id===v.route.id)&&v.route.id in a&&s[v.route.id]?.shouldRevalidate||S.hasClientLoader?g=!0:m.add(v.route.id))}),m.size===0)return[];let y=ax(n,o,"data");return g&&m.size>0&&y.searchParams.set("_routes",e.filter(v=>m.has(v.route.id)).map(v=>v.route.id).join(",")),[y.pathname+y.search]},[o,a,r,i,c,e,n,s]),f=b.useMemo(()=>ux(h,i),[h,i]),p=yx(h);return b.createElement(b.Fragment,null,u.map(m=>b.createElement("link",{key:m,rel:"prefetch",as:"fetch",href:m,...t})),f.map(m=>b.createElement("link",{key:m,rel:"modulepreload",href:m,...t})),p.map(({key:m,link:g})=>b.createElement("link",{key:m,nonce:t.nonce,...g})))}function vx(...n){return e=>{n.forEach(t=>{typeof t=="function"?t(e):t!=null&&(t.current=e)})}}var wx=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{wx&&(window.__reactRouterVersion="7.11.0")}catch{}function kx(n,e){return Yb({basename:e?.basename,getContext:e?.getContext,future:e?.future,history:ub({window:e?.window}),hydrationData:Sx(),routes:n,mapRouteProperties:Uy,hydrationRouteProperties:Ky,dataStrategy:e?.dataStrategy,patchRoutesOnNavigation:e?.patchRoutesOnNavigation,window:e?.window,unstable_instrumentations:e?.unstable_instrumentations}).initialize()}function Sx(){let n=window?.__staticRouterHydrationData;return n&&n.errors&&(n={...n,errors:Cx(n.errors)}),n}function Cx(n){if(!n)return null;let e=Object.entries(n),t={};for(let[r,i]of e)if(i&&i.__type==="RouteErrorResponse")t[r]=new ys(i.status,i.statusText,i.data,i.internal===!0);else if(i&&i.__type==="Error"){if(i.__subType){let s=window[i.__subType];if(typeof s=="function")try{let o=new s(i.message);o.stack="",t[r]=o}catch{}}if(t[r]==null){let s=new Error(i.message);s.stack="",t[r]=s}}else t[r]=i;return t}var Zp=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,em=b.forwardRef(function({onClick:e,discover:t="render",prefetch:r="none",relative:i,reloadDocument:s,replace:o,state:a,target:l,to:c,preventScrollReset:h,viewTransition:u,unstable_defaultShouldRevalidate:f,...p},m){let{basename:g,unstable_useTransitions:y}=b.useContext(ht),v=typeof c=="string"&&Zp.test(c),S=Dp(c,g);c=S.to;let C=jy(c,{relative:i}),[A,k,j]=gx(r,p),x=Ax(c,{replace:o,state:a,target:l,preventScrollReset:h,relative:i,viewTransition:u,unstable_defaultShouldRevalidate:f,unstable_useTransitions:y});function T(R){e&&e(R),R.defaultPrevented||x(R)}let P=b.createElement("a",{...p,...j,href:S.absoluteURL||C,onClick:S.isExternal||s?e:T,ref:vx(m,k),target:l,"data-discover":!v&&t==="render"?"true":void 0});return A&&!v?b.createElement(b.Fragment,null,P,b.createElement(bx,{page:C})):P});em.displayName="Link";var Ox=b.forwardRef(function({"aria-current":e="page",caseSensitive:t=!1,className:r="",end:i=!1,style:s,to:o,viewTransition:a,children:l,...c},h){let u=ws(o,{relative:c.relative}),f=Kt(),p=b.useContext(vs),{navigator:m,basename:g}=b.useContext(ht),y=p!=null&&Nx(u)&&a===!0,v=m.encodeLocation?m.encodeLocation(u).pathname:u.pathname,S=f.pathname,C=p&&p.navigation&&p.navigation.location?p.navigation.location.pathname:null;t||(S=S.toLowerCase(),C=C?C.toLowerCase():null,v=v.toLowerCase()),C&&g&&(C=vt(C,g)||C);const A=v!=="/"&&v.endsWith("/")?v.length-1:v.length;let k=S===v||!i&&S.startsWith(v)&&S.charAt(A)==="/",j=C!=null&&(C===v||!i&&C.startsWith(v)&&C.charAt(v.length)==="/"),x={isActive:k,isPending:j,isTransitioning:y},T=k?e:void 0,P;typeof r=="function"?P=r(x):P=[r,k?"active":null,j?"pending":null,y?"transitioning":null].filter(Boolean).join(" ");let R=typeof s=="function"?s(x):s;return b.createElement(em,{...c,"aria-current":T,className:P,ref:h,style:R,to:o,viewTransition:a},typeof l=="function"?l(x):l)});Ox.displayName="NavLink";var jx=b.forwardRef(({discover:n="render",fetcherKey:e,navigate:t,reloadDocument:r,replace:i,state:s,method:o=wo,action:a,onSubmit:l,relative:c,preventScrollReset:h,viewTransition:u,unstable_defaultShouldRevalidate:f,...p},m)=>{let{unstable_useTransitions:g}=b.useContext(ht),y=Ex(),v=Tx(a,{relative:c}),S=o.toLowerCase()==="get"?"get":"post",C=typeof a=="string"&&Zp.test(a),A=k=>{if(l&&l(k),k.defaultPrevented)return;k.preventDefault();let j=k.nativeEvent.submitter,x=j?.getAttribute("formmethod")||o,T=()=>y(j||k.currentTarget,{fetcherKey:e,method:x,navigate:t,replace:i,state:s,relative:c,preventScrollReset:h,viewTransition:u,unstable_defaultShouldRevalidate:f});g&&t!==!1?b.startTransition(()=>T()):T()};return b.createElement("form",{ref:m,method:S,action:v,onSubmit:r?l:A,...p,"data-discover":!C&&n==="render"?"true":void 0})});jx.displayName="Form";function Px(n){return`${n} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function tm(n){let e=b.useContext(Jn);return oe(e,Px(n)),e}function Ax(n,{target:e,replace:t,state:r,preventScrollReset:i,relative:s,viewTransition:o,unstable_defaultShouldRevalidate:a,unstable_useTransitions:l}={}){let c=an(),h=Kt(),u=ws(n,{relative:s});return b.useCallback(f=>{if(rx(f,e)){f.preventDefault();let p=t!==void 0?t:Ut(h)===Ut(u),m=()=>c(n,{replace:p,state:r,preventScrollReset:i,relative:s,viewTransition:o,unstable_defaultShouldRevalidate:a});l?b.startTransition(()=>m()):m()}},[h,c,u,t,r,e,n,i,s,o,a,l])}var Mx=0,Dx=()=>`__${String(++Mx)}__`;function Ex(){let{router:n}=tm("useSubmit"),{basename:e}=b.useContext(ht),t=Fy(),r=n.fetch,i=n.navigate;return b.useCallback(async(s,o={})=>{let{action:a,method:l,encType:c,formData:h,body:u}=ox(s,e);if(o.navigate===!1){let f=o.fetcherKey||Dx();await r(f,t,o.action||a,{unstable_defaultShouldRevalidate:o.unstable_defaultShouldRevalidate,preventScrollReset:o.preventScrollReset,formData:h,body:u,formMethod:o.method||l,formEncType:o.encType||c,flushSync:o.flushSync})}else await i(o.action||a,{unstable_defaultShouldRevalidate:o.unstable_defaultShouldRevalidate,preventScrollReset:o.preventScrollReset,formData:h,body:u,formMethod:o.method||l,formEncType:o.encType||c,replace:o.replace,state:o.state,fromRouteId:t,flushSync:o.flushSync,viewTransition:o.viewTransition})},[r,i,e,t])}function Tx(n,{relative:e}={}){let{basename:t}=b.useContext(ht),r=b.useContext(kt);oe(r,"useFormAction must be used inside a RouteContext");let[i]=r.matches.slice(-1),s={...ws(n||".",{relative:e})},o=Kt();if(n==null){s.search=o.search;let a=new URLSearchParams(s.search),l=a.getAll("index");if(l.some(h=>h==="")){a.delete("index"),l.filter(u=>u).forEach(u=>a.append("index",u));let h=a.toString();s.search=h?`?${h}`:""}}return(!n||n===".")&&i.route.index&&(s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index"),t!=="/"&&(s.pathname=s.pathname==="/"?t:_t([t,s.pathname])),Ut(s)}function Nx(n,{relative:e}={}){let t=b.useContext(zc);oe(t!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=tm("useViewTransitionState"),i=ws(n,{relative:e});if(!t.isTransitioning)return!1;let s=vt(t.currentLocation.pathname,r)||t.currentLocation.pathname,o=vt(t.nextLocation.pathname,r)||t.nextLocation.pathname;return No(i.pathname,o)!=null||No(i.pathname,s)!=null}function Lx(n){return b.createElement(qy,{flushSync:vp.flushSync,...n})}const Rx={en:{loading:"Loading...",error:"Error",selectProject:"Select a project to view dashboard",controlCenter:"Control Center",settings:"Settings",sync:"Sync",offline:"Offline",switchToLight:"Switch to light mode",switchToDark:"Switch to dark mode",settingsSection:"Settings",configEditor:"Config Editor",projects:"Projects",addProject:"Add Project",global:"Global",skills:"Skills",health:"Health",collapse:"Collapse",expand:"Expand",installing:"Installing...",manage:"Manage",uninstall:"Uninstall",installGlobally:"Install Globally",installGloballyDesc:"Available to all projects instead of current project only",selectAtLeastOneAgent:"Please select at least one agent",installationFailed:"Installation failed",allSkills:"All Skills",refresh:"Refresh",browseAndManageSkills:"Browse and manage skills for your agents",detected:"Detected",notDetected:"Not detected",sessions:"sessions",noSessions:"No sessions",terminal:"Terminal",terminalSub:"Open bash at path",editor:"Editor",editorSub:"Open in VS Code",launch:"Launch",launchSub:"Start Claude Code",config:"Config",configSub:"Manage project settings",recentSessions:"Recent Sessions",viewAllHistory:"View All History",showLess:"Show Less",actionFailed:"Action failed",loadingSessions:"Loading sessions...",noSessionsFound:"No sessions found",configuration:"Claude Settings",activeKit:"Active Kit",aiModel:"Model",hooks:"Hooks",active:"active",mcpServers:"MCP Servers",connected:"connected",editProjectConfig:"Edit Project Config",globalSettings:"(Global)",globalSkills:"Global Skills",loadingSkills:"Loading skills...",noDescription:"No description",browseSkillsMarketplace:"Browse Skills Marketplace",backToDashboard:"Back to Dashboard",educationalConfigEditor:"Educational Config Editor",discard:"Discard",saveChanges:"Save Changes",mergedView:"Merged View",localConfig:"Local (.ck.json)",globalConfig:"Global",syntaxValid:"Syntax Valid",configurationHelp:"Configuration Help",field:"Field",type:"Type",default:"Default",description:"Description",validValues:"Valid Values",systemEffect:"System Effect",exampleUsage:"Example Usage",knowledgeBase:"Knowledge Base",clickToSeeHelp:"Click on any configuration field to see detailed documentation and usage examples.",extractedFrom:"Extracted from ClaudeKit v2.x Specification",resetToDefault:"Reset",saving:"Saving...",saved:"Saved",confirmReset:"Reset to Default?",confirmResetMessage:"All changes will be lost and replaced with default values.",confirm:"Confirm",saveFailed:"Save failed",configTab:"Config",systemTab:"System",formTab:"Form",jsonTab:"JSON",installedKit:"Installed Kit",kitVersion:"Kit Version",installedOn:"Installed On",noKitInstalled:"No kit installed",components:"Components",agents:"Agents",commands:"Commands",workflows:"Workflows",kitSkills:"Skills",fileOwnership:"File Ownership",ownershipCk:"kit-managed",ownershipUser:"user-owned",ownershipModified:"modified",componentInventory:"Component Inventory",installedHooks:"Installed Hooks",installedMcpServers:"MCP Servers",lastChecked:"Last update check",staleIndicator:"Stale",skippedVersion:"Skipped",filesModifiedFromDefaults:"files modified from kit defaults",cliCard:"ClaudeKit CLI",checkForUpdates:"Check for Updates",checking:"Checking...",upToDate:"Up to date",updateAvailable:"Update available",updateNow:"Update Now",updating:"Updating...",updateSuccess:"Update Complete!",updateFailed:"Update Failed",closeModal:"Close",showDetails:"Show Details",hideDetails:"Hide Details",environment:"Environment",claudeConfigPath:"Claude config",nodeVersion:"Node",bunVersion:"Bun",osVersion:"OS",channelStable:"Stable",channelBeta:"Beta",betaBadge:"Beta",latestVersion:"Latest",selectVersion:"Select version",loadingVersions:"Loading versions...",prereleaseLabel:"Pre",currentVersionLabel:"Current",checkAll:"Check All",checkingAll:"Checking...",updateAll:"Update All",updatesAvailable:"{count} updates available",allUpToDate:"All up to date",addProjectTitle:"Add Project",addProjectDescription:"Add a new ClaudeKit project to the control center",projectPath:"Project Path",pathPlaceholder:"/path/to/project",alias:"Alias",aliasOptional:"(optional)",aliasPlaceholder:"my-project",aliasDescription:"Custom display name for the project",pathRequired:"Path is required",failedToAdd:"Failed to add project",cancel:"Cancel",adding:"Adding...",somethingWentWrong:"Something went wrong",reloadApp:"Reload App",serverNotRunning:"Server Not Running",startServerMessage:"The Config UI requires the backend server to be running.",runThisCommand:"Run this command",tryAgain:"Try Again",projectConfig:"Project Config",inheritedFromGlobal:"Inherited from Global",localOverride:"Local Override",viewGlobalConfig:"This field inherits from global config. View",onboardingTitle:"Welcome to ClaudeKit",onboardingSubtitle:"Choose your kit and get started in minutes",kitEngineerName:"ClaudeKit Engineer",kitEngineerTagline:"AI-powered coding with skills, hooks, and multi-agent workflows",kitMarketingName:"ClaudeKit Marketing",kitMarketingTagline:"Content automation: campaigns, social media, analytics",featureAgents:"AI Agents",featureAgentsDesc:"Specialized agents for different tasks",featureHooks:"Lifecycle Hooks",featureHooksDesc:"Customize Claude's behavior at key moments",featureSkills:"Skills Library",featureSkillsDesc:"Pre-built capabilities you can activate",featureMultiAgent:"Multi-Agent Workflows",featureMultiAgentDesc:"Coordinate multiple agents for complex tasks",featureContent:"Content Generation",featureContentDesc:"Automated content creation and optimization",featureSocial:"Social Media Tools",featureSocialDesc:"Scheduling, analytics, and engagement automation",stepChooseKit:"Choose Kit",stepConfigure:"Configure",stepInstall:"Install",back:"Back",next:"Next",install:"Install",installSuccess:"Installation Complete!",installSuccessDesc:"{kit} is ready to use",getStarted:"Get Started",goToDashboard:"Go to Dashboard",kitConfig:"Kit Config",kitConfigSubtitle:"Configure ClaudeKit Engineer settings",scopeGlobal:"Global",scopeProject:"Project",sectionGeneral:"General",sectionPaths:"Paths",sectionPrivacy:"Privacy & Trust",sectionProject:"Project Detection",sectionIntegrations:"Integrations",sectionHooks:"Hooks",sectionAdvanced:"Advanced",fieldCodingLevel:"Coding Level",fieldCodingLevelDesc:"Your coding experience level (-1=auto, 0=beginner, 1=intermediate, 2=advanced, 3=expert, 4=tech-lead, 5=god-mode)",fieldStatusline:"Statusline Mode",fieldStatuslineDesc:"How much info to show in the status line",fieldThinkingLanguage:"Thinking Language",fieldThinkingLanguageDesc:"Language for Claude's internal reasoning (null=English)",fieldResponseLanguage:"Response Language",fieldResponseLanguageDesc:"Language for Claude's responses (null=match user)",fieldDocsPath:"Docs Directory",fieldDocsPathDesc:"Path to documentation directory",fieldPlansPath:"Plans Directory",fieldPlansPathDesc:"Path to plans directory",fieldPrivacyBlock:"Privacy Block",fieldPrivacyBlockDesc:"Block access to sensitive files (.env, credentials)",fieldTrustEnabled:"Trust Mode",fieldTrustEnabledDesc:"Enable auto-approval for tool calls",fieldTrustPassphrase:"Trust Passphrase",fieldTrustPassphraseDesc:"Passphrase to enable trust mode",fieldProjectType:"Project Type",fieldProjectTypeDesc:"Override auto-detected project type",fieldPackageManager:"Package Manager",fieldPackageManagerDesc:"Override auto-detected package manager",fieldFramework:"Framework",fieldFrameworkDesc:"Override auto-detected framework",fieldGeminiModel:"Gemini Model",fieldGeminiModelDesc:"Gemini model for CLI commands",fieldResearchUseGemini:"Use Gemini for Research",fieldResearchUseGeminiDesc:"Use Gemini CLI instead of WebSearch",fieldDocsMaxLoc:"Max Lines per Doc",fieldDocsMaxLocDesc:"Maximum lines of code per documentation file",fieldPlanNamingFormat:"Plan Naming Format",fieldPlanNamingFormatDesc:"Format for plan directory names",fieldPlanDateFormat:"Plan Date Format",fieldPlanDateFormatDesc:"Date format for plan names (moment.js)",fieldPlanValidationMode:"Validation Mode",fieldPlanValidationModeDesc:"How to validate plans before implementation",fieldPlanMinQuestions:"Min Questions",fieldPlanMinQuestionsDesc:"Minimum validation questions",fieldPlanMaxQuestions:"Max Questions",fieldPlanMaxQuestionsDesc:"Maximum validation questions",fieldAssertions:"Assertions",fieldAssertionsDesc:"Code assertions and rules to enforce",fieldHookSessionInit:"Session Init",fieldHookSessionInitDesc:"Project detection and environment setup",fieldHookSubagentInit:"Subagent Init",fieldHookSubagentInitDesc:"Inject context to subagents",fieldHookDescriptiveName:"Descriptive Name",fieldHookDescriptiveNameDesc:"Enforce kebab-case descriptive file naming for scripts",fieldHookDevRulesReminder:"Dev Rules Reminder",fieldHookDevRulesReminderDesc:"Inject development rules context",fieldHookUsageContextAwareness:"Usage Context Awareness",fieldHookUsageContextAwarenessDesc:"Usage limits awareness",fieldHookContextTracking:"Context Tracking",fieldHookContextTrackingDesc:"Context window tracking (% used, token counts)",fieldHookScoutBlock:"Scout Block",fieldHookScoutBlockDesc:"Block heavy directories from exploration",fieldHookPrivacyBlock:"Privacy Block Hook",fieldHookPrivacyBlockDesc:"Block sensitive files from reading",fieldHookPostEditSimplify:"Post-Edit Simplify",fieldHookPostEditSimplifyDesc:"Simplify reminder after edits",skillsPageTitle:"Skills Management",skillsPageDesc:"Install ClaudeKit skills to your coding agents",availableSkills:"Available Skills",installedSkills:"Installed Skills",noSkillsFound:"No skills found",installSkill:"Install",uninstallSkill:"Uninstall",manageSkill:"Manage",syncRegistry:"Sync",installSkillTitle:"Install Skill",selectAgents:"Select target agents",installLocation:"Installation location",globalInstall:"Global",projectInstall:"Project",confirmInstall:"Install to selected agents",installingSkill:"Installing...",skillInstallSuccess:"Skill installed successfully",skillInstallFailed:"Installation failed",agentClaudeCode:"Claude Code",agentCursor:"Cursor",agentCodex:"Codex",agentOpencode:"OpenCode",agentGoose:"Goose",agentGeminiCli:"Gemini CLI",agentAntigravity:"Antigravity",agentGithubCopilot:"GitHub Copilot",agentAmp:"Amp",agentKilo:"Kilo",agentRoo:"Roo",agentWindsurf:"Windsurf",agentCline:"Cline",agentOpenhands:"OpenHands",installed:"Installed",notInstalled:"Not installed",allAgents:"All Agents",filterByAgent:"Filter by agent",skillsTitle:"Skills",skillsSubtitle:"Browse, install, and manage skills for your coding agents",availableCount:"Available",installedCount:"Installed",agentsCount:"Agents",searchSkills:"Search skills...",searchShortcut:"/",sortAZ:"A-Z",sortCategory:"Category",sortInstalledFirst:"Installed first",listView:"List view",gridView:"Grid view",categoryAll:"All",categoryAI:"AI",categoryUIUX:"UI/UX",categoryBackend:"Backend",categorySecurity:"Security",categoryDevOps:"DevOps",categoryDatabase:"Database",categoryDevelopment:"Development",categoryResearch:"Research",categoryGeneral:"General",categoryCore:"Core",categoryDocumentation:"Documentation",categoryTooling:"Tooling",categoryMedia:"Media",categoryFrameworks:"Frameworks",skillsCountLabel:"{count} skills",installToAll:"Install to All Detected",scopeLabel:"Installation Scope",agentInstalled:"Installed",agentNotInstalled:"Not installed",skillSource:"Source location",skillSourceBadge:"Source",detailPanelClose:"Close",versionLabel:"v{version}",installAllToAllAgents:"Install All to All Agents",bulkInstallFailed:"Bulk install failed",noAgentsDetected:"No agents detected",kitBadgeEngineer:"Engineer",kitBadgeMarketing:"Marketing",customizedBadge:"Customized",installedVersionLabel:"Installed Version",installedAtLabel:"Installed At",sourceTimestampLabel:"Source Date",kitLabel:"Kit",skillMetadata:"Skill Info",developmentFeature:"Development",betaFeature:"Beta",experimentalFeature:"Experimental"},vi:{loading:"Đang tải...",error:"Lỗi",selectProject:"Chọn dự án để xem bảng điều khiển",controlCenter:"Trung tâm điều khiển",settings:"Cài đặt",sync:"Đồng bộ",offline:"Ngoại tuyến",switchToLight:"Chuyển sang chế độ sáng",switchToDark:"Chuyển sang chế độ tối",settingsSection:"Cài đặt",configEditor:"Trình chỉnh sửa cấu hình",projects:"Dự án",addProject:"Thêm dự án",global:"Toàn cục",skills:"Kỹ năng",health:"Sức khỏe",collapse:"Thu gọn",expand:"Mở rộng",installing:"Đang cài đặt...",manage:"Quản lý",uninstall:"Gỡ cài đặt",installGlobally:"Cài đặt toàn cục",installGloballyDesc:"Khả dụng cho tất cả dự án thay vì chỉ dự án hiện tại",selectAtLeastOneAgent:"Vui lòng chọn ít nhất một agent",installationFailed:"Cài đặt thất bại",allSkills:"Tất cả kỹ năng",refresh:"Làm mới",browseAndManageSkills:"Duyệt và quản lý kỹ năng cho agents của bạn",detected:"Đã phát hiện",notDetected:"Chưa phát hiện",sessions:"phiên",noSessions:"Không có phiên",terminal:"Terminal",terminalSub:"Mở bash tại đường dẫn",editor:"Trình soạn thảo",editorSub:"Mở trong VS Code",launch:"Khởi chạy",launchSub:"Bắt đầu Claude Code",config:"Cấu hình",configSub:"Quản lý cài đặt dự án",recentSessions:"Phiên gần đây",viewAllHistory:"Xem tất cả lịch sử",showLess:"Thu gọn",actionFailed:"Thao tác thất bại",loadingSessions:"Đang tải phiên...",noSessionsFound:"Không tìm thấy phiên nào",configuration:"Cài đặt Claude",activeKit:"Kit hoạt động",aiModel:"Mô hình",hooks:"Hooks",active:"hoạt động",mcpServers:"Máy chủ MCP",connected:"kết nối",editProjectConfig:"Chỉnh sửa cấu hình dự án",globalSettings:"(Toàn cục)",globalSkills:"Kỹ năng toàn cục",loadingSkills:"Đang tải kỹ năng...",noDescription:"Không có mô tả",browseSkillsMarketplace:"Duyệt Skills Marketplace",backToDashboard:"Quay lại bảng điều khiển",educationalConfigEditor:"Trình chỉnh sửa cấu hình hướng dẫn",discard:"Hủy bỏ",saveChanges:"Lưu thay đổi",mergedView:"Chế độ gộp",localConfig:"Cục bộ (.ck.json)",globalConfig:"Toàn cục",syntaxValid:"Cú pháp hợp lệ",configurationHelp:"Hướng dẫn cấu hình",field:"Trường",type:"Kiểu",default:"Mặc định",description:"Mô tả",validValues:"Giá trị hợp lệ",systemEffect:"Hiệu ứng hệ thống",exampleUsage:"Ví dụ sử dụng",knowledgeBase:"Cơ sở kiến thức",clickToSeeHelp:"Nhấp vào bất kỳ trường cấu hình nào để xem tài liệu chi tiết và ví dụ sử dụng.",extractedFrom:"Trích xuất từ ClaudeKit v2.x Specification",resetToDefault:"Đặt lại",saving:"Đang lưu...",saved:"Đã lưu",confirmReset:"Đặt lại về mặc định?",confirmResetMessage:"Tất cả thay đổi sẽ bị mất và được thay thế bằng giá trị mặc định.",confirm:"Xác nhận",saveFailed:"Lưu thất bại",configTab:"Cấu hình",systemTab:"Hệ thống",formTab:"Biểu mẫu",jsonTab:"JSON",installedKit:"Kit đã cài",kitVersion:"Phiên bản Kit",installedOn:"Cài đặt vào",noKitInstalled:"Chưa cài kit",components:"Thành phần",agents:"Agents",commands:"Commands",workflows:"Workflows",kitSkills:"Skills",fileOwnership:"Quyền sở hữu tệp",ownershipCk:"do kit quản lý",ownershipUser:"do người dùng",ownershipModified:"đã chỉnh sửa",componentInventory:"Thành phần đã cài",installedHooks:"Hooks đã cài",installedMcpServers:"MCP Servers",lastChecked:"Kiểm tra cập nhật",staleIndicator:"Cũ",skippedVersion:"Đã bỏ qua",filesModifiedFromDefaults:"tệp đã sửa so với mặc định",cliCard:"ClaudeKit CLI",checkForUpdates:"Kiểm tra cập nhật",checking:"Đang kiểm tra...",upToDate:"Đã cập nhật",updateAvailable:"Có bản cập nhật",updateNow:"Cập nhật ngay",updating:"Đang cập nhật...",updateSuccess:"Cập nhật hoàn tất!",updateFailed:"Cập nhật thất bại",closeModal:"Đóng",showDetails:"Xem chi tiết",hideDetails:"Ẩn chi tiết",environment:"Môi trường",claudeConfigPath:"Cấu hình Claude",nodeVersion:"Node",bunVersion:"Bun",osVersion:"Hệ điều hành",channelStable:"Ổn định",channelBeta:"Beta",betaBadge:"Beta",latestVersion:"Mới nhất",selectVersion:"Chọn phiên bản",loadingVersions:"Đang tải...",prereleaseLabel:"Thử nghiệm",currentVersionLabel:"Hiện tại",checkAll:"Kiểm tra tất cả",checkingAll:"Đang kiểm tra...",updateAll:"Cập nhật tất cả",updatesAvailable:"{count} bản cập nhật",allUpToDate:"Tất cả đã cập nhật",addProjectTitle:"Thêm dự án",addProjectDescription:"Thêm dự án ClaudeKit mới vào trung tâm điều khiển",projectPath:"Đường dẫn dự án",pathPlaceholder:"/đường/dẫn/dự/án",alias:"Bí danh",aliasOptional:"(tùy chọn)",aliasPlaceholder:"dự-án-của-tôi",aliasDescription:"Tên hiển thị tùy chỉnh cho dự án",pathRequired:"Đường dẫn bắt buộc",failedToAdd:"Không thể thêm dự án",cancel:"Hủy",adding:"Đang thêm...",somethingWentWrong:"Đã xảy ra lỗi",reloadApp:"Tải lại ứng dụng",serverNotRunning:"Máy chủ không chạy",startServerMessage:"Config UI yêu cầu máy chủ backend đang chạy.",runThisCommand:"Chạy lệnh này",tryAgain:"Thử lại",projectConfig:"Cấu hình dự án",inheritedFromGlobal:"Kế thừa từ toàn cục",localOverride:"Ghi đè cục bộ",viewGlobalConfig:"Trường này kế thừa từ cấu hình toàn cục. Xem",onboardingTitle:"Chào mừng đến ClaudeKit",onboardingSubtitle:"Chọn kit của bạn và bắt đầu trong vài phút",kitEngineerName:"ClaudeKit Engineer",kitEngineerTagline:"Lập trình AI với skills, hooks và multi-agent",kitMarketingName:"ClaudeKit Marketing",kitMarketingTagline:"Tự động hóa nội dung: chiến dịch, mạng xã hội, phân tích",featureAgents:"AI Agents",featureAgentsDesc:"Các agent chuyên biệt cho từng tác vụ",featureHooks:"Lifecycle Hooks",featureHooksDesc:"Tùy chỉnh hành vi của Claude tại các thời điểm quan trọng",featureSkills:"Thư viện Skills",featureSkillsDesc:"Các khả năng có sẵn bạn có thể kích hoạt",featureMultiAgent:"Multi-Agent Workflows",featureMultiAgentDesc:"Phối hợp nhiều agent cho các tác vụ phức tạp",featureContent:"Tạo nội dung",featureContentDesc:"Tự động tạo và tối ưu nội dung",featureSocial:"Công cụ mạng xã hội",featureSocialDesc:"Lên lịch, phân tích và tự động tương tác",stepChooseKit:"Chọn Kit",stepConfigure:"Cấu hình",stepInstall:"Cài đặt",back:"Quay lại",next:"Tiếp theo",install:"Cài đặt",installSuccess:"Cài đặt hoàn tất!",installSuccessDesc:"{kit} đã sẵn sàng sử dụng",getStarted:"Bắt đầu",goToDashboard:"Đi đến Dashboard",kitConfig:"Cấu hình Kit",kitConfigSubtitle:"Cấu hình ClaudeKit Engineer",scopeGlobal:"Toàn cục",scopeProject:"Dự án",sectionGeneral:"Cài đặt chung",sectionPaths:"Đường dẫn",sectionPrivacy:"Bảo mật & Tin cậy",sectionProject:"Phát hiện dự án",sectionIntegrations:"Tích hợp",sectionHooks:"Hooks",sectionAdvanced:"Nâng cao",fieldCodingLevel:"Cấp độ lập trình",fieldCodingLevelDesc:"Cấp độ kinh nghiệm (-1=tự động, 0=mới bắt đầu, 1=trung cấp, 2=nâng cao, 3=chuyên gia, 4=tech-lead, 5=thần)",fieldStatusline:"Chế độ thanh trạng thái",fieldStatuslineDesc:"Lượng thông tin hiển thị trên thanh trạng thái",fieldThinkingLanguage:"Ngôn ngữ suy nghĩ",fieldThinkingLanguageDesc:"Ngôn ngữ cho suy luận nội bộ của Claude (null=Tiếng Anh)",fieldResponseLanguage:"Ngôn ngữ phản hồi",fieldResponseLanguageDesc:"Ngôn ngữ cho phản hồi của Claude (null=theo người dùng)",fieldDocsPath:"Thư mục tài liệu",fieldDocsPathDesc:"Đường dẫn đến thư mục tài liệu",fieldPlansPath:"Thư mục kế hoạch",fieldPlansPathDesc:"Đường dẫn đến thư mục kế hoạch",fieldPrivacyBlock:"Chặn quyền riêng tư",fieldPrivacyBlockDesc:"Chặn truy cập file nhạy cảm (.env, credentials)",fieldTrustEnabled:"Chế độ tin cậy",fieldTrustEnabledDesc:"Tự động phê duyệt các tool calls",fieldTrustPassphrase:"Mật khẩu tin cậy",fieldTrustPassphraseDesc:"Mật khẩu để bật chế độ tin cậy",fieldProjectType:"Loại dự án",fieldProjectTypeDesc:"Ghi đè loại dự án tự động phát hiện",fieldPackageManager:"Trình quản lý gói",fieldPackageManagerDesc:"Ghi đè trình quản lý gói tự động phát hiện",fieldFramework:"Framework",fieldFrameworkDesc:"Ghi đè framework tự động phát hiện",fieldGeminiModel:"Mô hình Gemini",fieldGeminiModelDesc:"Mô hình Gemini cho các lệnh CLI",fieldResearchUseGemini:"Dùng Gemini cho nghiên cứu",fieldResearchUseGeminiDesc:"Dùng Gemini CLI thay vì WebSearch",fieldDocsMaxLoc:"Số dòng tối đa/tài liệu",fieldDocsMaxLocDesc:"Số dòng code tối đa cho mỗi file tài liệu",fieldPlanNamingFormat:"Định dạng tên kế hoạch",fieldPlanNamingFormatDesc:"Định dạng cho tên thư mục kế hoạch",fieldPlanDateFormat:"Định dạng ngày kế hoạch",fieldPlanDateFormatDesc:"Định dạng ngày cho tên kế hoạch (moment.js)",fieldPlanValidationMode:"Chế độ xác thực",fieldPlanValidationModeDesc:"Cách xác thực kế hoạch trước khi triển khai",fieldPlanMinQuestions:"Số câu hỏi tối thiểu",fieldPlanMinQuestionsDesc:"Số câu hỏi xác thực tối thiểu",fieldPlanMaxQuestions:"Số câu hỏi tối đa",fieldPlanMaxQuestionsDesc:"Số câu hỏi xác thực tối đa",fieldAssertions:"Assertions",fieldAssertionsDesc:"Các assertions và quy tắc cần thực thi",fieldHookSessionInit:"Khởi tạo phiên",fieldHookSessionInitDesc:"Phát hiện dự án và thiết lập môi trường",fieldHookSubagentInit:"Khởi tạo subagent",fieldHookSubagentInitDesc:"Inject context vào subagents",fieldHookDescriptiveName:"Tên mô tả",fieldHookDescriptiveNameDesc:"Bắt buộc đặt tên file dạng kebab-case mô tả cho scripts",fieldHookDevRulesReminder:"Nhắc nhở quy tắc dev",fieldHookDevRulesReminderDesc:"Inject context quy tắc phát triển",fieldHookUsageContextAwareness:"Nhận thức ngữ cảnh sử dụng",fieldHookUsageContextAwarenessDesc:"Nhận thức giới hạn sử dụng",fieldHookContextTracking:"Theo dõi ngữ cảnh",fieldHookContextTrackingDesc:"Theo dõi cửa sổ ngữ cảnh (% đã dùng, số token)",fieldHookScoutBlock:"Chặn Scout",fieldHookScoutBlockDesc:"Chặn thư mục nặng khỏi việc khám phá",fieldHookPrivacyBlock:"Hook chặn quyền riêng tư",fieldHookPrivacyBlockDesc:"Chặn đọc file nhạy cảm",fieldHookPostEditSimplify:"Đơn giản sau chỉnh sửa",fieldHookPostEditSimplifyDesc:"Nhắc đơn giản sau khi chỉnh sửa",skillsPageTitle:"Quản lý Kỹ năng",skillsPageDesc:"Cài đặt kỹ năng ClaudeKit cho các agent lập trình",availableSkills:"Kỹ năng có sẵn",installedSkills:"Kỹ năng đã cài",noSkillsFound:"Không tìm thấy kỹ năng",installSkill:"Cài đặt",uninstallSkill:"Gỡ cài đặt",manageSkill:"Quản lý",syncRegistry:"Đồng bộ",installSkillTitle:"Cài đặt Kỹ năng",selectAgents:"Chọn agent đích",installLocation:"Vị trí cài đặt",globalInstall:"Toàn cục",projectInstall:"Dự án",confirmInstall:"Cài đặt cho các agent đã chọn",installingSkill:"Đang cài đặt...",skillInstallSuccess:"Cài đặt kỹ năng thành công",skillInstallFailed:"Cài đặt thất bại",agentClaudeCode:"Claude Code",agentCursor:"Cursor",agentCodex:"Codex",agentOpencode:"OpenCode",agentGoose:"Goose",agentGeminiCli:"Gemini CLI",agentAntigravity:"Antigravity",agentGithubCopilot:"GitHub Copilot",agentAmp:"Amp",agentKilo:"Kilo",agentRoo:"Roo",agentWindsurf:"Windsurf",agentCline:"Cline",agentOpenhands:"OpenHands",installed:"Đã cài",notInstalled:"Chưa cài",allAgents:"Tất cả Agent",filterByAgent:"Lọc theo agent",skillsTitle:"Kỹ năng",skillsSubtitle:"Duyệt, cài đặt và quản lý kỹ năng cho coding agents",availableCount:"Có sẵn",installedCount:"Đã cài",agentsCount:"Agents",searchSkills:"Tìm kiếm kỹ năng...",searchShortcut:"/",sortAZ:"A-Z",sortCategory:"Danh mục",sortInstalledFirst:"Đã cài trước",listView:"Dạng danh sách",gridView:"Dạng lưới",categoryAll:"Tất cả",categoryAI:"AI",categoryUIUX:"UI/UX",categoryBackend:"Backend",categorySecurity:"Bảo mật",categoryDevOps:"DevOps",categoryDatabase:"Cơ sở dữ liệu",categoryDevelopment:"Phát triển",categoryResearch:"Nghiên cứu",categoryGeneral:"Tổng quát",categoryCore:"Cốt lõi",categoryDocumentation:"Tài liệu",categoryTooling:"Công cụ",categoryMedia:"Phương tiện",categoryFrameworks:"Framework",skillsCountLabel:"{count} kỹ năng",installToAll:"Cài cho tất cả đã phát hiện",scopeLabel:"Phạm vi cài đặt",agentInstalled:"Đã cài",agentNotInstalled:"Chưa cài",skillSource:"Vị trí nguồn",skillSourceBadge:"Nguồn",detailPanelClose:"Đóng",versionLabel:"v{version}",installAllToAllAgents:"Cài tất cả cho tất cả Agent",bulkInstallFailed:"Cài hàng loạt thất bại",noAgentsDetected:"Không phát hiện agent nào",kitBadgeEngineer:"Engineer",kitBadgeMarketing:"Marketing",customizedBadge:"Đã tùy chỉnh",installedVersionLabel:"Phiên bản cài đặt",installedAtLabel:"Cài đặt lúc",sourceTimestampLabel:"Ngày nguồn",kitLabel:"Kit",skillMetadata:"Thông tin Skill",developmentFeature:"Đang phát triển",betaFeature:"Beta",experimentalFeature:"Thử nghiệm"}},Kc=b.createContext(null),nm="ck-dashboard-lang";function Ix(){const n=localStorage.getItem(nm);return n==="en"||n==="vi"?n:navigator.language.startsWith("vi")?"vi":"en"}function Bx({children:n}){const[e,t]=b.useState(Ix),r=s=>{localStorage.setItem(nm,s),t(s)},i=s=>Rx[e][s];return d.jsx(Kc.Provider,{value:{lang:e,setLang:r,t:i},children:n})}function he(){const n=b.useContext(Kc);if(!n)throw new Error("useI18n must be used within I18nProvider");return n}class $x extends b.Component{constructor(){super(...arguments);tu(this,"state",{hasError:!1,error:null})}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,r){console.error("App error:",t,r.componentStack)}render(){if(this.state.hasError){const t=this.state.error?.name==="ServerUnavailableError";return d.jsx(Kc.Consumer,{children:r=>d.jsx("div",{className:"flex h-screen items-center justify-center bg-dash-bg",children:d.jsx("div",{className:"text-center space-y-4 max-w-md px-6",children:t?d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"w-16 h-16 mx-auto rounded-full bg-orange-500/10 border border-orange-500/30 flex items-center justify-center text-3xl",children:"🔌"}),d.jsx("h1",{className:"text-2xl font-bold text-orange-500",children:r?.t("serverNotRunning")??"Server Not Running"}),d.jsx("p",{className:"text-dash-text-secondary",children:r?.t("startServerMessage")??"The Config UI requires the backend server to be running."}),d.jsxs("div",{className:"bg-dash-surface border border-dash-border rounded-lg p-4",children:[d.jsx("p",{className:"text-xs text-dash-text-muted uppercase tracking-widest mb-2 font-bold",children:r?.t("runThisCommand")??"Run this command"}),d.jsx("code",{className:"block text-sm text-dash-accent font-mono bg-dash-bg px-3 py-2 rounded border border-dash-border",children:"ck config ui"})]}),d.jsx("button",{onClick:()=>window.location.reload(),className:"px-6 py-2 bg-dash-accent text-dash-bg rounded-lg font-bold hover:bg-dash-accent-hover transition-colors",children:r?.t("tryAgain")??"Try Again"})]}):d.jsxs(d.Fragment,{children:[d.jsx("h1",{className:"text-2xl font-bold text-red-500",children:r?.t("somethingWentWrong")??"Something went wrong"}),d.jsx("p",{className:"text-dash-text-muted",children:this.state.error?.message}),d.jsx("button",{onClick:()=>window.location.reload(),className:"px-4 py-2 bg-dash-accent text-white rounded-md hover:opacity-90",children:r?.t("reloadApp")??"Reload App"})]})})})})}return this.props.children}}const mi=({direction:n="horizontal",isDragging:e=!1,onMouseDown:t})=>{const r=n==="horizontal";return d.jsx("div",{onMouseDown:t,className:`
22
+ group flex items-center justify-center shrink-0
23
+ ${r?"w-2 cursor-col-resize":"h-2 cursor-row-resize"}
24
+ ${e?"bg-dash-accent/20":"hover:bg-dash-surface-hover/50"}
25
+ transition-colors
26
+ `,children:d.jsx("div",{className:`
27
+ rounded-full transition-all
28
+ ${r?"w-0.5 h-8":"h-0.5 w-8"}
29
+ ${e?"bg-dash-accent":"bg-dash-border group-hover:bg-dash-text-muted"}
30
+ `})})},Fx={brainstorm:"Core",fix:"Core",fixing:"Development",cook:"Core","code-review":"Core",git:"Core",planning:"Core",scout:"Core","sequential-thinking":"Development","context-engineering":"Development","find-skills":"Core","skill-creator":"Core","problem-solving":"Development",debug:"Core",copywriting:"Documentation","docs-seeker":"Documentation",docusaurus:"Documentation","markdown-novel-viewer":"Documentation",mintlify:"Documentation","prompt-engineer":"Documentation",repomix:"Documentation","claude-code-hooks":"Tooling",gkg:"Tooling","mcp-management":"Tooling","plans-kanban":"Tooling","template-skill":"Tooling","agent-browser":"Media","chrome-devtools":"Media","media-processing":"Media",remotion:"Media",shader:"Media",threejs:"Media","google-adk-python":"Frameworks","mobile-development":"Frameworks","payment-integration":"Frameworks",powershell:"Frameworks",shopify:"Frameworks",supabase:"Frameworks","react-best-practices":"Frameworks","web-frameworks":"Frameworks"},Ws=["Core","AI","UI/UX","Security","DevOps","Backend","Database","Documentation","Tooling","Media","Frameworks","Development","Research","General"],zt={Core:"#D4A574",AI:"#7C6BF0",Security:"#E56B6F",DevOps:"#4ECDC4",Backend:"#4A9BD9","UI/UX":"#F7A072",Database:"#B8D4E3",Documentation:"#8B9DC3",Tooling:"#C49B66",Media:"#E88D67",Frameworks:"#7CB4B8",Development:"#95D5B2",Research:"#DDA0DD",General:"#6B6560"};var pn=(n=>(n.HEALTHY="healthy",n.WARNING="warning",n.ERROR="error",n.LOADING="loading",n.UNKNOWN="unknown",n))(pn||{}),It=(n=>(n.ENGINEER="engineer",n.MARKETING="marketing",n.ARCHITECT="architect",n.RESEARCHER="researcher",n.DEVOP="devops",n))(It||{});const zx=({isOpen:n,onClose:e,onAdd:t})=>{const{t:r}=he(),[i,s]=b.useState(""),[o,a]=b.useState(""),[l,c]=b.useState(!1),[h,u]=b.useState(null);b.useEffect(()=>{n||(s(""),a(""),u(null),c(!1))},[n]),b.useEffect(()=>{if(!n)return;const p=m=>{m.key==="Escape"&&e()};return document.addEventListener("keydown",p),()=>document.removeEventListener("keydown",p)},[n]),b.useEffect(()=>{if(!n)return;const p=document.activeElement;return document.querySelector("#project-path")?.focus(),()=>{p?.focus()}},[n]);const f=async p=>{if(p.preventDefault(),!i.trim()){u(r("pathRequired"));return}try{c(!0),u(null);const m={path:i.trim(),...o.trim()&&{alias:o.trim()}};await t(m),e()}catch(m){u(m instanceof Error?m.message:r("failedToAdd"))}finally{c(!1)}};return n?d.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:e,children:d.jsxs("div",{className:"bg-dash-surface border border-dash-border rounded-lg shadow-xl max-w-md w-full mx-4",onClick:p=>p.stopPropagation(),children:[d.jsxs("div",{className:"px-6 py-4 border-b border-dash-border",children:[d.jsx("h2",{className:"text-lg font-bold text-dash-text",children:r("addProjectTitle")}),d.jsx("p",{className:"text-sm text-dash-text-muted mt-1",children:r("addProjectDescription")})]}),d.jsxs("form",{onSubmit:f,className:"p-6 space-y-4",children:[d.jsxs("div",{children:[d.jsxs("label",{htmlFor:"project-path",className:"block text-sm font-medium text-dash-text mb-2",children:[r("projectPath")," ",d.jsx("span",{className:"text-red-500",children:"*"})]}),d.jsx("input",{id:"project-path",type:"text",value:i,onChange:p=>s(p.target.value),placeholder:r("pathPlaceholder"),disabled:l,className:"w-full px-3 py-2 bg-dash-bg border border-dash-border rounded-md text-dash-text placeholder-dash-text-muted focus:outline-none focus:ring-2 focus:ring-dash-accent focus:border-transparent disabled:opacity-50 disabled:cursor-not-allowed"})]}),d.jsxs("div",{children:[d.jsxs("label",{htmlFor:"project-alias",className:"block text-sm font-medium text-dash-text mb-2",children:[r("alias")," ",r("aliasOptional")]}),d.jsx("input",{id:"project-alias",type:"text",value:o,onChange:p=>a(p.target.value),placeholder:r("aliasPlaceholder"),disabled:l,className:"w-full px-3 py-2 bg-dash-bg border border-dash-border rounded-md text-dash-text placeholder-dash-text-muted focus:outline-none focus:ring-2 focus:ring-dash-accent focus:border-transparent disabled:opacity-50 disabled:cursor-not-allowed"}),d.jsx("p",{className:"text-xs text-dash-text-muted mt-1",children:r("aliasDescription")})]}),h&&d.jsx("div",{className:"px-3 py-2 bg-red-500/10 border border-red-500/20 rounded-md",children:d.jsx("p",{className:"text-sm text-red-500",children:h})}),d.jsxs("div",{className:"flex gap-3 pt-2",children:[d.jsx("button",{type:"button",onClick:e,disabled:l,className:"flex-1 px-4 py-2 border border-dash-border rounded-md text-dash-text-secondary hover:bg-dash-surface-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:r("cancel")}),d.jsx("button",{type:"submit",disabled:l||!i.trim(),className:"flex-1 px-4 py-2 bg-dash-accent text-white rounded-md hover:bg-dash-accent/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:r(l?"adding":"addProject")})]})]})]})}):null},Vx=({vertical:n=!1})=>{const{lang:e,setLang:t}=he();return d.jsxs("div",{className:`flex ${n?"flex-col":""} items-center rounded-lg border border-dash-border overflow-hidden`,children:[d.jsx("button",{onClick:()=>t("en"),className:`px-2 py-1 text-xs font-medium transition-colors ${e==="en"?"bg-dash-accent text-dash-bg":"text-dash-text-muted hover:bg-dash-surface-hover"}`,title:"English",children:"EN"}),d.jsx("button",{onClick:()=>t("vi"),className:`px-2 py-1 text-xs font-medium transition-colors ${e==="vi"?"bg-dash-accent text-dash-bg":"text-dash-text-muted hover:bg-dash-surface-hover"}`,title:"Tiếng Việt",children:"VI"})]})},Hx=({projects:n,currentProjectId:e,isCollapsed:t,width:r,isConnected:i,theme:s,onSwitchProject:o,onToggle:a,onAddProject:l,onToggleTheme:c})=>{const{t:h}=he(),u=an(),f=Kt(),[p,m]=b.useState(!1),g=f.pathname==="/config/global",y=f.pathname==="/skills",v=[...n].filter(k=>!k.path.endsWith("/.claude")&&k.path!=="~/.claude").sort((k,j)=>k.pinned&&!j.pinned?-1:!k.pinned&&j.pinned?1:k.name.localeCompare(j.name)),S=r?{width:`${r}px`}:void 0,C=r?"":t?"w-14":"w-72",A=r?r>=160:!t;return d.jsxs("aside",{style:S,className:`${C} bg-dash-surface border-r border-dash-border flex flex-col transition-all duration-300 ease-in-out z-20 h-full overflow-hidden`,children:[d.jsxs("div",{className:`flex items-center ${A?"p-6 gap-3":"p-2 justify-center"}`,children:[d.jsx("img",{src:"/images/logo-transparent-32.png",alt:"ClaudeKit",className:"w-8 h-8 shrink-0"}),A&&d.jsxs("div",{className:"overflow-hidden",children:[d.jsx("h1",{className:"text-sm font-bold truncate tracking-tight text-dash-text",children:"ClaudeKit"}),d.jsx("p",{className:"text-[10px] text-dash-text-muted font-medium uppercase tracking-wider",children:h("controlCenter")})]})]}),d.jsxs("div",{className:`${A?"px-4":"px-2"} py-2 space-y-1`,children:[A&&d.jsx("p",{className:"px-2 pb-2 text-[10px] font-bold text-dash-text-muted uppercase tracking-widest",children:h("settingsSection")}),d.jsx(Tu,{icon:d.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:[d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})]}),label:h("configEditor"),isCollapsed:!A,active:g,onClick:()=>u("/config/global")}),d.jsx(Tu,{icon:d.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z"})}),label:h("skills"),isCollapsed:!A,active:y,onClick:()=>u("/skills")})]}),d.jsxs("div",{className:`flex-1 overflow-y-auto overflow-x-hidden ${A?"px-4":"px-2"} py-2 space-y-1 border-t border-dash-border`,children:[A&&d.jsx("p",{className:"px-2 pb-2 pt-2 text-[10px] font-bold text-dash-text-muted uppercase tracking-widest",children:h("projects")}),v.map(k=>{const j=f.pathname.endsWith("/config"),x=e===k.id&&!g&&!j&&!y;return d.jsxs("button",{onClick:()=>o(k.id),className:`w-full group relative flex items-center ${A?"gap-3 p-2.5":"justify-center p-2"} rounded-md transition-colors ${x?"bg-dash-accent-subtle text-dash-accent border border-dash-accent/10":"text-dash-text-secondary hover:bg-dash-surface-hover hover:text-dash-text border border-transparent"}`,children:[d.jsx("div",{className:`w-2 h-2 rounded-full shrink-0 ${k.health===pn.HEALTHY?"bg-dash-accent":k.health===pn.WARNING?"bg-orange-400":"bg-red-500"} ${x?"animate-pulse":""}`}),A&&d.jsxs(d.Fragment,{children:[k.pinned&&d.jsx("span",{className:"text-xs",children:"📌"}),d.jsx("span",{className:"text-sm font-medium truncate",children:k.name})]}),!A&&d.jsxs("div",{className:"absolute left-14 px-2 py-1 bg-dash-text text-dash-bg text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none border border-dash-border z-50",children:[k.pinned&&"📌 ",k.name]})]},k.id)}),d.jsxs("button",{onClick:()=>m(!0),className:`w-full flex items-center ${A?"gap-3 p-2.5":"justify-center p-2"} rounded-md text-dash-text-muted hover:bg-dash-surface-hover hover:text-dash-text-secondary transition-colors mt-4`,children:[d.jsx("div",{className:`${A?"w-5 h-5":""} flex items-center justify-center`,children:d.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})})}),A&&d.jsx("span",{className:"text-sm font-medium",children:h("addProject")})]})]}),d.jsx(zx,{isOpen:p,onClose:()=>m(!1),onAdd:l}),d.jsx("div",{className:"border-t border-dash-border",children:d.jsxs("div",{className:`py-3 flex items-center ${A?"px-3 justify-between":"justify-center flex-col gap-2"}`,children:[d.jsxs("div",{className:"flex items-center gap-2",title:h(i?"sync":"offline"),children:[d.jsx("div",{className:`w-2 h-2 rounded-full shrink-0 ${i?"bg-dash-accent shadow-[0_0_8px_var(--dash-accent-glow)]":"bg-red-500"}`}),A&&d.jsx("span",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest",children:h(i?"sync":"offline")})]}),d.jsxs("div",{className:`flex items-center gap-1 ${A?"":"flex-col"}`,children:[d.jsx(Vx,{vertical:!A}),d.jsx("button",{onClick:c,className:"w-8 h-8 rounded-lg flex items-center justify-center text-dash-text-muted hover:bg-dash-surface-hover hover:text-dash-text transition-colors",title:h(s==="dark"?"switchToLight":"switchToDark"),children:s==="dark"?d.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364-6.364l-.707.707M6.343 17.657l-.707.707M17.657 17.657l-.707-.707M6.343 6.343l-.707-.707M12 5a7 7 0 100 14 7 7 0 000-14z"})}):d.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})})}),d.jsx("button",{onClick:a,className:"w-8 h-8 rounded-lg flex items-center justify-center text-dash-text-muted hover:bg-dash-surface-hover hover:text-dash-text transition-colors",title:h(t?"expand":"collapse"),children:t?d.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 5l7 7-7 7M5 5l7 7-7 7"})}):d.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 19l-7-7 7-7m8 14l-7-7 7-7"})})})]})]})})]})},Tu=({icon:n,label:e,badge:t,badgeColor:r="bg-dash-accent-subtle text-dash-accent",isCollapsed:i,active:s,onClick:o,disabled:a})=>d.jsxs("button",{onClick:o,disabled:a,className:`w-full group relative flex items-center ${i?"justify-center p-2":"gap-3 p-2"} rounded-md transition-colors ${a?"opacity-50 cursor-not-allowed":s?"bg-dash-surface-hover text-dash-text":"text-dash-text-secondary hover:bg-dash-surface-hover hover:text-dash-text"}`,children:[d.jsx("div",{className:`${i?"":"w-5 h-5"} flex items-center justify-center`,children:n}),!i&&d.jsxs(d.Fragment,{children:[d.jsx("span",{className:"text-sm font-medium flex-1 text-left",children:e}),t&&d.jsx("span",{className:`text-[10px] font-bold px-1.5 py-0.5 rounded ${r}`,children:t})]}),i&&d.jsx("div",{className:"absolute left-14 px-2 py-1 bg-dash-text text-dash-bg text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none border border-dash-border z-50",children:e})]}),Xe="/api";class $a extends Error{constructor(){super("Backend server is not running. Start it with: ck config ui"),this.name="ServerUnavailableError"}}async function At(){try{if(!(await fetch(`${Xe}/health`,{method:"GET"})).ok)throw new $a}catch(n){throw n instanceof $a?n:new $a}}function Gc(n){return{id:n.id,name:n.name,path:n.path,health:n.health,kitType:n.kitType||"engineer",model:n.model,activeHooks:n.activeHooks,mcpServers:n.mcpServers,skills:n.skills,pinned:n.pinned,tags:n.tags,addedAt:n.addedAt,lastOpened:n.lastOpened}}async function rm(){await At();const n=await fetch(`${Xe}/projects`);if(!n.ok)throw new Error("Failed to fetch projects");return(await n.json()).map(Gc)}async function im(){await At();const n=await fetch(`${Xe}/skills`);if(!n.ok)throw new Error("Failed to fetch skills");return n.json()}async function _x(n,e){try{await At();const t=e!==void 0?`?limit=${e}`:"",r=await fetch(`${Xe}/sessions/${encodeURIComponent(n)}${t}`);return r.ok?r.json():[]}catch{return[]}}async function Wx(n,e){await At();const t=await fetch(`${Xe}/actions/open`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:n,path:e})});if(!t.ok){const r=await t.json().catch(()=>({error:"Action failed"}));throw new Error(r.error||"Action failed")}}async function Ux(n){await At();const e=await fetch(`${Xe}/projects`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!e.ok){const r=await e.text();throw new Error(r||"Failed to add project")}const t=await e.json();return Gc(t)}async function Kx(n){await At();const e=await fetch(`${Xe}/projects/${encodeURIComponent(n)}`,{method:"DELETE"});if(!e.ok){const t=await e.text();throw new Error(t||"Failed to remove project")}}async function Gx(n,e){await At();const t=await fetch(`${Xe}/projects/${encodeURIComponent(n)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const i=await t.text();throw new Error(i||"Failed to update project")}const r=await t.json();return Gc(r)}async function qx(){const n=await fetch(`${Xe}/metadata/global`);return n.ok?n.json():(console.error("Failed to fetch global metadata"),{})}async function Yx(n){const e=await fetch(`${Xe}/config/project/${encodeURIComponent(n)}`);if(!e.ok)throw new Error("Failed to fetch project config");return e.json()}async function Qx(n,e){if(!(await fetch(`${Xe}/config/project/${encodeURIComponent(n)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:e})})).ok)throw new Error("Failed to save project config")}async function Jx(){await At();const n=await fetch(`${Xe}/skills/installed`);if(!n.ok)throw new Error("Failed to fetch installed skills");return n.json()}async function Xx(){await At();const n=await fetch(`${Xe}/agents`);if(!n.ok)throw new Error("Failed to fetch agents");return n.json()}async function Nu(n,e,t){await At();const r=await fetch(`${Xe}/skills/install`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({skillName:n,agents:e,global:t})});if(!r.ok){const i=await r.text();throw new Error(i||"Failed to install skill")}return r.json()}async function Zx(n,e){await At();const t=await fetch(`${Xe}/skills/uninstall`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({skillName:n,agents:e})});if(!t.ok){const r=await t.text();throw new Error(r||"Failed to uninstall skill")}return t.json()}function ev(){const[n,e]=b.useState([]),[t,r]=b.useState(!0),[i,s]=b.useState(null),o=b.useCallback(async()=>{try{r(!0),s(null);const a=await im();e(a)}catch(a){s(a instanceof Error?a.message:"Failed to load skills")}finally{r(!1)}},[]);return b.useEffect(()=>{o()},[o]),{skills:n,loading:t,error:i,reload:o}}function tv(n){const[e,t]=b.useState([]),[r,i]=b.useState(!1),[s,o]=b.useState(null),a=b.useCallback(async()=>{if(!n){t([]);return}try{i(!0),o(null);const l=await _x(n,999);t(l)}catch(l){o(l instanceof Error?l.message:"Failed to load sessions")}finally{i(!1)}},[n]);return b.useEffect(()=>{a()},[a]),{sessions:e,loading:r,error:s,reload:a}}function nv(){const[n,e]=b.useState([]),[t,r]=b.useState(!0),[i,s]=b.useState(null),o=b.useCallback(async()=>{try{r(!0),s(null);const h=await rm();e(h)}catch(h){s(h instanceof Error?h.message:"Failed to load projects")}finally{r(!1)}},[]),a=b.useCallback(async h=>{const u=await Ux(h);return await o(),u},[o]),l=b.useCallback(async h=>{await Kx(h),await o()},[o]),c=b.useCallback(async(h,u)=>{const f=await Gx(h,u);return await o(),f},[o]);return b.useEffect(()=>{o()},[o]),{projects:n,loading:t,error:i,reload:o,addProject:a,removeProject:l,updateProject:c}}function rv({storageKey:n,defaultSize:e,minSize:t,maxSize:r,direction:i="horizontal"}){const[s,o]=b.useState(()=>{if(typeof window>"u")return e;const f=localStorage.getItem(n);if(f){const p=Number.parseInt(f,10);if(!Number.isNaN(p)&&p>=t&&p<=r)return p}return e}),[a,l]=b.useState(!1);b.useEffect(()=>{localStorage.setItem(n,String(s))},[s,n]);const c=b.useCallback(f=>{f.preventDefault(),l(!0);const p=i==="horizontal"?f.clientX:f.clientY,m=s,g=v=>{const C=(i==="horizontal"?v.clientX:v.clientY)-p,A=Math.max(t,Math.min(r,m+C));o(A)},y=()=>{l(!1),document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",y),document.body.style.cursor="",document.body.style.userSelect=""};document.addEventListener("mousemove",g),document.addEventListener("mouseup",y),document.body.style.cursor=i==="horizontal"?"col-resize":"row-resize",document.body.style.userSelect="none"},[s,t,r,i]),h=b.useCallback(()=>{o(e)},[e]),u=b.useCallback(f=>{o(Math.max(t,Math.min(r,f)))},[t,r]);return{size:s,isDragging:a,startDrag:c,setSize:u,reset:h}}const iv=()=>{const{t:n}=he(),e=an(),t=Kt(),{projectId:r}=qp(),[i,s]=b.useState(null);b.useEffect(()=>{r&&s(r)},[r]);const[o,a]=b.useState(()=>typeof window<"u"&&localStorage.getItem("claudekit-theme")||"dark"),[l]=b.useState(!0),{size:c,isDragging:h,startDrag:u,setSize:f}=rv({storageKey:"claudekit-sidebar-width",defaultSize:288,minSize:56,maxSize:400}),p=c<=56,{projects:m,loading:g,error:y,addProject:v}=nv(),S=async x=>{await v(x)};b.useEffect(()=>{const x=t.pathname==="/";m.length===0||r||!x||e(`/project/${m[0].id}`,{replace:!0})},[m,r,e,t.pathname]),b.useEffect(()=>{const x=window.document.documentElement;o==="dark"?(x.classList.add("dark"),x.setAttribute("data-theme","dark")):(x.classList.remove("dark"),x.setAttribute("data-theme","light")),localStorage.setItem("claudekit-theme",o)},[o]);const C=()=>a(x=>x==="light"?"dark":"light"),A=b.useMemo(()=>m.find(x=>x.id===i)||null,[m,i]),k=x=>{e(`/project/${x}`)},j=()=>{f(p?288:56)};return g?d.jsx("div",{className:"flex h-screen w-full bg-dash-bg text-dash-text items-center justify-center",children:d.jsx("div",{className:"animate-pulse text-dash-text-muted",children:n("loading")})}):y?d.jsx("div",{className:"flex h-screen w-full bg-dash-bg text-dash-text items-center justify-center",children:d.jsxs("div",{className:"text-red-500",children:[n("error"),": ",y]})}):d.jsxs("div",{className:"flex h-screen w-full bg-dash-bg text-dash-text overflow-hidden font-sans transition-colors duration-300",children:[d.jsx(Hx,{projects:m,currentProjectId:i,isCollapsed:p,width:c,isConnected:l,theme:o,onSwitchProject:k,onToggle:j,onAddProject:S,onToggleTheme:C}),d.jsx(mi,{direction:"horizontal",isDragging:h,onMouseDown:u}),d.jsx("div",{className:"flex-1 flex flex-col min-w-0 h-full relative",children:d.jsx("main",{className:"flex-1 flex flex-col overflow-hidden p-4 md:p-6",children:d.jsx(Jy,{context:{project:A,isConnected:l,theme:o,onToggleTheme:C}})})})]})},sm=({title:n,filePath:e,onBack:t,onSave:r,onReset:i,saveStatus:s,syntaxError:o,showResetConfirm:a,setShowResetConfirm:l,badge:c})=>{const{t:h}=he();return d.jsxs("div",{className:"flex items-center justify-between mb-3 shrink-0",children:[d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsx("button",{onClick:t,className:"px-2 py-1 rounded-lg bg-dash-surface hover:bg-dash-surface-hover border border-dash-border text-sm text-dash-text-secondary hover:text-dash-text flex items-center group transition-all font-medium shadow-sm",title:h("backToDashboard"),children:d.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4 group-hover:-translate-x-0.5 transition-transform",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}),d.jsx("h1",{className:"text-xl font-bold tracking-tight text-dash-text",children:n}),c,d.jsx("span",{className:"text-xs text-dash-text-muted mono",children:e})]}),d.jsxs("div",{className:"flex items-center gap-2 relative",children:[a?d.jsxs("div",{className:"flex items-center gap-2 bg-red-500/10 border border-red-500/30 rounded-lg px-2 py-1 animate-in fade-in duration-200",children:[d.jsx("span",{className:"text-xs text-red-500 font-medium",children:h("confirmReset")}),d.jsx("button",{onClick:i,className:"px-2 py-0.5 rounded bg-red-500 text-white text-xs font-bold hover:bg-red-600 transition-colors",children:h("confirm")}),d.jsx("button",{onClick:()=>l(!1),className:"px-2 py-0.5 rounded bg-dash-surface text-dash-text-secondary text-xs font-bold hover:bg-dash-surface-hover transition-colors border border-dash-border",children:h("cancel")})]}):d.jsx("button",{onClick:()=>l(!0),className:"px-3 py-1.5 rounded-lg bg-dash-surface text-xs font-bold text-dash-text-secondary hover:bg-dash-surface-hover transition-colors border border-dash-border",children:h("resetToDefault")}),d.jsx("button",{onClick:r,disabled:!!o||s==="saving",className:`px-3 py-1.5 rounded-lg text-xs font-bold transition-all tracking-widest uppercase ${o?"bg-dash-surface text-dash-text-muted cursor-not-allowed border border-dash-border":s==="saved"?"bg-green-500 text-white shadow-lg shadow-green-500/20":s==="error"?"bg-red-500 text-white":"bg-dash-accent text-dash-bg hover:bg-dash-accent-hover shadow-lg shadow-dash-accent/20"}`,children:h(s==="saving"?"saving":s==="saved"?"saved":s==="error"?"saveFailed":"saveChanges")})]})]})};function sv(n,e,t){const r={...n},i=e.split(".");let s=r;for(let o=0;o<i.length-1;o++){const a=i[o];!(a in s)||typeof s[a]!="object"||s[a]===null?s[a]={}:s[a]={...s[a]},s=s[a]}return s[i[i.length-1]]=t,r}function Vl(n,e){const t=e.split(".");let r=n;for(const i of t){if(r==null||typeof r!="object")return;r=r[i]}return r}function ov(n,e){const t=e.split(".");let r=n;for(const i of t){if(!r.properties)return{};const s=r.properties;if(!s[i])return{};r=s[i]}return r}const av=({value:n,onChange:e,disabled:t})=>d.jsx("input",{type:"text",value:n??"",onChange:r=>e(r.target.value||null),disabled:t,className:`w-full px-3 py-2 text-sm bg-dash-bg border border-dash-border rounded-lg
31
+ text-dash-text placeholder-dash-text-muted
32
+ focus:outline-none focus:ring-2 focus:ring-dash-accent/50 focus:border-dash-accent
33
+ disabled:opacity-50 disabled:cursor-not-allowed
34
+ transition-colors`,placeholder:"Enter value..."}),lv=({value:n,onChange:e,schema:t,disabled:r})=>d.jsx("input",{type:"number",value:n!=null?String(n):"",onChange:i=>{const s=i.target.value;if(s==="")e(null);else{const o=t.type==="integer"?Number.parseInt(s,10):Number.parseFloat(s);Number.isNaN(o)||e(o)}},min:t.minimum,max:t.maximum,disabled:r,className:`w-full px-3 py-2 text-sm bg-dash-bg border border-dash-border rounded-lg
35
+ text-dash-text placeholder-dash-text-muted
36
+ focus:outline-none focus:ring-2 focus:ring-dash-accent/50 focus:border-dash-accent
37
+ disabled:opacity-50 disabled:cursor-not-allowed
38
+ transition-colors`}),cv=({value:n,onChange:e,disabled:t})=>{const r=n===!0;return d.jsx("button",{type:"button",role:"switch","aria-checked":r,onClick:()=>e(!r),disabled:t,className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors
39
+ focus:outline-none focus:ring-2 focus:ring-dash-accent/50
40
+ disabled:opacity-50 disabled:cursor-not-allowed
41
+ ${r?"bg-dash-accent":"bg-dash-border"}`,children:d.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white shadow-sm transition-transform
42
+ ${r?"translate-x-6":"translate-x-1"}`})})},hv=({value:n,onChange:e,schema:t,disabled:r})=>{const i=t.enum||[];return d.jsxs("select",{value:n!=null?String(n):"",onChange:s=>{const o=s.target.value;o===""?e(null):i.includes(Number(o))?e(Number(o)):e(o)},disabled:r,className:`w-full px-3 py-2 text-sm bg-dash-bg border border-dash-border rounded-lg
43
+ text-dash-text
44
+ focus:outline-none focus:ring-2 focus:ring-dash-accent/50 focus:border-dash-accent
45
+ disabled:opacity-50 disabled:cursor-not-allowed
46
+ transition-colors appearance-none cursor-pointer`,children:[d.jsx("option",{value:"",children:"-- Select --"}),i.map(s=>d.jsx("option",{value:String(s),children:String(s)},String(s)))]})},uv=({value:n,onChange:e,disabled:t})=>{const r=Array.isArray(n)?n:[],[i,s]=b.useState(""),o=()=>{i.trim()&&(e([...r,i.trim()]),s(""))},a=l=>{const c=r.filter((h,u)=>u!==l);e(c.length>0?c:[])};return d.jsxs("div",{className:"space-y-2",children:[d.jsx("div",{className:"flex flex-wrap gap-1.5",children:r.map((l,c)=>d.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 bg-dash-bg border border-dash-border rounded text-xs text-dash-text",children:[String(l),!t&&d.jsx("button",{type:"button",onClick:()=>a(c),className:"text-dash-text-muted hover:text-red-500 transition-colors",children:d.jsx("svg",{className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]},c))}),!t&&d.jsxs("div",{className:"flex gap-2",children:[d.jsx("input",{type:"text",value:i,onChange:l=>s(l.target.value),onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),o())},placeholder:"Add item...",className:`flex-1 px-2 py-1 text-xs bg-dash-bg border border-dash-border rounded
47
+ text-dash-text placeholder-dash-text-muted
48
+ focus:outline-none focus:ring-1 focus:ring-dash-accent/50`}),d.jsx("button",{type:"button",onClick:o,className:"px-2 py-1 text-xs bg-dash-accent text-white rounded hover:bg-dash-accent-hover transition-colors",children:"+"})]})]})},dv=({value:n,onChange:e,disabled:t})=>{const[r,i]=b.useState(!1);return d.jsxs("div",{className:"relative",children:[d.jsx("input",{type:r?"text":"password",value:n??"",onChange:s=>e(s.target.value||null),disabled:t,className:`w-full px-3 py-2 pr-10 text-sm bg-dash-bg border border-dash-border rounded-lg
49
+ text-dash-text placeholder-dash-text-muted
50
+ focus:outline-none focus:ring-2 focus:ring-dash-accent/50 focus:border-dash-accent
51
+ disabled:opacity-50 disabled:cursor-not-allowed
52
+ transition-colors`,placeholder:"Enter passphrase..."}),d.jsx("button",{type:"button",onClick:()=>i(!r),className:"absolute right-2 top-1/2 -translate-y-1/2 text-dash-text-muted hover:text-dash-text transition-colors",children:r?d.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21"})}):d.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:[d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})]})})]})},fv={default:"bg-gray-500/10 text-gray-500 dark:bg-gray-400/10 dark:text-gray-400",project:"bg-orange-500/10 text-orange-600 dark:text-orange-400",global:"bg-blue-500/10 text-blue-600 dark:text-blue-400"},pv=({source:n})=>{const{t:e}=he(),t=()=>{switch(n){case"default":return e("default");case"project":return e("scopeProject");case"global":return e("scopeGlobal")}};return d.jsx("span",{className:`text-[9px] px-1.5 py-0.5 rounded font-bold uppercase tracking-wider ${fv[n]}`,children:t()})};function mv(n,e){if(e.includes("passphrase")||e.includes("password"))return"password";if(n.enum&&n.enum.length>0)return"enum";switch(Array.isArray(n.type)?n.type.find(r=>r!=="null")||"string":n.type||"string"){case"boolean":return"boolean";case"integer":case"number":return"number";case"array":return"array";case"object":return"object";default:return"string"}}const gv=({fieldPath:n,label:e,description:t,schema:r,value:i,source:s,onChange:o,disabled:a})=>{const l=mv(r,n),c=()=>{const h={value:i,onChange:o,schema:r,disabled:a};switch(l){case"boolean":return d.jsx(cv,{...h});case"number":return d.jsx(lv,{...h});case"enum":return d.jsx(hv,{...h});case"array":return d.jsx(uv,{...h});case"password":return d.jsx(dv,{...h});case"object":return null;default:return d.jsx(av,{...h})}};return l==="object"?null:d.jsx("div",{className:"py-3 border-b border-dash-border/50 last:border-b-0",children:d.jsxs("div",{className:"flex items-start justify-between gap-4",children:[d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[d.jsx("span",{className:"text-sm font-medium text-dash-text",children:e}),d.jsx(pv,{source:s})]}),t&&d.jsx("p",{className:"text-xs text-dash-text-muted mb-2 leading-relaxed",children:t}),d.jsx("p",{className:"text-[10px] text-dash-text-muted/50 font-mono mb-2",children:n})]}),d.jsx("div",{className:l==="boolean"?"shrink-0":"w-1/2 max-w-xs",children:c()})]})})},bv=({id:n,title:e,defaultCollapsed:t=!1,children:r})=>{const[i,s]=b.useState(t);return d.jsxs("div",{className:"bg-dash-surface border border-dash-border rounded-lg overflow-hidden",children:[d.jsxs("button",{type:"button",onClick:()=>s(!i),className:"w-full flex items-center justify-between px-4 py-3 bg-dash-surface-hover/30 hover:bg-dash-surface-hover/50 transition-colors","aria-expanded":!i,"aria-controls":`section-${n}`,children:[d.jsx("h3",{className:"text-sm font-bold text-dash-text uppercase tracking-wider",children:e}),d.jsx("svg",{className:`w-4 h-4 text-dash-text-muted transition-transform duration-200 ${i?"":"rotate-180"}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),d.jsx("div",{id:`section-${n}`,className:`transition-all duration-200 ease-in-out ${i?"max-h-0 overflow-hidden":"max-h-[2000px]"}`,children:d.jsx("div",{className:"px-4 py-2",children:r})})]})},yv=({schema:n,value:e,sources:t,sections:r,onChange:i,disabled:s})=>d.jsx("div",{className:"space-y-4",children:r.map((o,a)=>d.jsx(bv,{id:o.id,title:o.title,defaultCollapsed:o.defaultCollapsed??a>1,children:o.fields.map(l=>{const c=ov(n,l.path),h=Vl(e,l.path),u=t[l.path]||"default";return d.jsx(gv,{fieldPath:l.path,label:l.label,description:l.description||c.description,schema:c,value:h,source:u,onChange:f=>i(l.path,f),disabled:s},l.path)})},o.id))}),om=({width:n,isLoading:e,schema:t,config:r,sources:i,sections:s,onChange:o})=>{const{t:a}=he();return d.jsxs("div",{style:{width:`${n}%`},className:"bg-dash-surface border border-dash-border rounded-xl overflow-hidden flex flex-col shadow-sm min-w-0",children:[d.jsx("div",{className:"p-3 border-b border-dash-border bg-dash-surface-hover/50 shrink-0",children:d.jsx("h3",{className:"text-xs font-bold text-dash-text-secondary uppercase tracking-widest",children:a("formTab")})}),d.jsx("div",{className:"flex-1 overflow-auto p-4",children:e?d.jsx("div",{className:"h-full flex items-center justify-center",children:d.jsx("div",{className:"animate-pulse text-dash-text-muted text-sm",children:a("loading")})}):t?d.jsx(yv,{schema:t,value:r,sources:i,sections:s,onChange:o}):null})]})},am=1024;let xv=0,Fa=class{constructor(e,t){this.from=e,this.to=t}};class ae{constructor(e={}){this.id=xv++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=it.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}}ae.closedBy=new ae({deserialize:n=>n.split(" ")});ae.openedBy=new ae({deserialize:n=>n.split(" ")});ae.group=new ae({deserialize:n=>n.split(" ")});ae.isolate=new ae({deserialize:n=>{if(n&&n!="rtl"&&n!="ltr"&&n!="auto")throw new RangeError("Invalid value for isolate: "+n);return n||"auto"}});ae.contextHash=new ae({perNode:!0});ae.lookAhead=new ae({perNode:!0});ae.mounted=new ae({perNode:!0});class ii{constructor(e,t,r,i=!1){this.tree=e,this.overlay=t,this.parser=r,this.bracketed=i}static get(e){return e&&e.props&&e.props[ae.mounted.id]}}const vv=Object.create(null);class it{constructor(e,t,r,i=0){this.name=e,this.props=t,this.id=r,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):vv,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new it(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(i)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return i}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(ae.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let i of r.split(" "))t[i]=e[r];return r=>{for(let i=r.prop(ae.group),s=-1;s<(i?i.length:0);s++){let o=t[s<0?r.name:i[s]];if(o)return o}}}}it.none=new it("",Object.create(null),0,8);class qc{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let r of this.types){let i=null;for(let s of e){let o=s(r);if(o){i||(i=Object.assign({},r.props));let a=o[1],l=o[0];l.combine&&l.id in i&&(a=l.combine(i[l.id],a)),i[l.id]=a}}t.push(i?new it(r.name,i,r.id,r.flags):r)}return new qc(t)}}const Us=new WeakMap,Lu=new WeakMap;var Ce;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays",n[n.EnterBracketed=16]="EnterBracketed"})(Ce||(Ce={}));class Pe{constructor(e,t,r,i,s){if(this.type=e,this.children=t,this.positions=r,this.length=i,this.props=null,s&&s.length){this.props=Object.create(null);for(let[o,a]of s)this.props[typeof o=="number"?o:o.id]=a}}toString(){let e=ii.get(this);if(e&&!e.overlay)return e.tree.toString();let t="";for(let r of this.children){let i=r.toString();i&&(t&&(t+=","),t+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new _l(this.topNode,e)}cursorAt(e,t=0,r=0){let i=Us.get(this)||this.topNode,s=new _l(i);return s.moveTo(e,t),Us.set(this,s._tree),s}get topNode(){return new xt(this,0,0,null)}resolve(e,t=0){let r=gi(Us.get(this)||this.topNode,e,t,!1);return Us.set(this,r),r}resolveInner(e,t=0){let r=gi(Lu.get(this)||this.topNode,e,t,!0);return Lu.set(this,r),r}resolveStack(e,t=0){return Sv(this,e,t)}iterate(e){let{enter:t,leave:r,from:i=0,to:s=this.length}=e,o=e.mode||0,a=(o&Ce.IncludeAnonymous)>0;for(let l=this.cursor(o|Ce.IncludeAnonymous);;){let c=!1;if(l.from<=s&&l.to>=i&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Jc(it.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,i)=>new Pe(this.type,t,r,i,this.propValues),e.makeTree||((t,r,i)=>new Pe(it.none,t,r,i)))}static build(e){return Cv(e)}}Pe.empty=new Pe(it.none,[],[],0);class Yc{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Yc(this.buffer,this.index)}}class wn{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return it.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],r=this.buffer[e+3],i=this.set.types[t],s=i.name;if(/\W/.test(s)&&!i.isError&&(s=JSON.stringify(s)),e+=4,r==e)return s;let o=[];for(;e<r;)o.push(this.childString(e)),e=this.buffer[e+3];return s+"("+o.join(",")+")"}findChild(e,t,r,i,s){let{buffer:o}=this,a=-1;for(let l=e;l!=t&&!(lm(s,i,o[l+1],o[l+2])&&(a=l,r>0));l=o[l+3]);return a}slice(e,t,r){let i=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a<t;){s[l++]=i[a++],s[l++]=i[a++]-r;let c=s[l++]=i[a++]-r;s[l++]=i[a++]-e,o=Math.max(o,c)}return new wn(s,o,this.set)}}function lm(n,e,t,r){switch(n){case-2:return t<e;case-1:return r>=e&&t<e;case 0:return t<e&&r>e;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function gi(n,e,t,r){for(var i;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to<e);){let o=!r&&n instanceof xt&&n.index<0?null:n.parent;if(!o)return n;n=o}let s=r?0:Ce.IgnoreOverlays;if(r)for(let o=n,a=o.parent;a;o=a,a=o.parent)o instanceof xt&&o.index<0&&((i=a.enter(e,t,s))===null||i===void 0?void 0:i.from)!=o.from&&(n=a);for(;;){let o=n.enter(e,t,s);if(!o)return n;n=o}}class cm{cursor(e=0){return new _l(this,e)}getChild(e,t=null,r=null){let i=Ru(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return Ru(this,e,t,r)}resolve(e,t=0){return gi(this,e,t,!1)}resolveInner(e,t=0){return gi(this,e,t,!0)}matchContext(e){return Hl(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),r=this;for(;t;){let i=t.lastChild;if(!i||i.to!=t.to)break;i.type.isError&&i.from==i.to?(r=t,t=i.prevSibling):t=i}return r}get node(){return this}get next(){return this.parent}}class xt extends cm{constructor(e,t,r,i){super(),this._tree=e,this.from=t,this.index=r,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,r,i,s=0){var o;for(let a=this;;){for(let{children:l,positions:c}=a._tree,h=t>0?l.length:-1;e!=h;e+=t){let u=l[e],f=c[e]+a.from;if(!(!(s&Ce.EnterBracketed&&u instanceof Pe&&((o=ii.get(u))===null||o===void 0?void 0:o.overlay)===null&&(f>=r||f+u.length<=r))&&!lm(i,r,f,f+u.length))){if(u instanceof wn){if(s&Ce.ExcludeBuffers)continue;let p=u.findChild(0,u.buffer.length,t,r-f,i);if(p>-1)return new bn(new wv(a,u,e,f),null,p)}else if(s&Ce.IncludeAnonymous||!u.type.isAnonymous||Qc(u)){let p;if(!(s&Ce.IgnoreMounts)&&(p=ii.get(u))&&!p.overlay)return new xt(p.tree,f,e,a);let m=new xt(u,f,e,a);return s&Ce.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(t<0?u.children.length-1:0,t,r,i,s)}}}if(s&Ce.IncludeAnonymous||!a.type.isAnonymous||(a.index>=0?e=a.index+t:e=t<0?-1:a._parent._tree.children.length,a=a._parent,!a))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,r=0){let i;if(!(r&Ce.IgnoreOverlays)&&(i=ii.get(this._tree))&&i.overlay){let s=e-this.from,o=r&Ce.EnterBracketed&&i.bracketed;for(let{from:a,to:l}of i.overlay)if((t>0||o?a<=s:a<s)&&(t<0||o?l>=s:l>s))return new xt(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function Ru(n,e,t,r){let i=n.cursor(),s=[];if(!i.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=i.type.is(t),!i.nextSibling())return s}for(;;){if(r!=null&&i.type.is(r))return s;if(i.type.is(e)&&s.push(i.node),!i.nextSibling())return r==null?s:[]}}function Hl(n,e,t=e.length-1){for(let r=n;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}class wv{constructor(e,t,r,i){this.parent=e,this.buffer=t,this.index=r,this.start=i}}class bn extends cm{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,r){super(),this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new bn(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,r=0){if(r&Ce.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new bn(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new bn(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new bn(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,i=this.index+4,s=r.buffer[this.index+3];if(s>i){let o=r.buffer[this.index+1];e.push(r.slice(i,s,o)),t.push(0)}return new Pe(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function hm(n){if(!n.length)return null;let e=0,t=n[0];for(let s=1;s<n.length;s++){let o=n[s];(o.from>t.from||o.to<t.to)&&(t=o,e=s)}let r=t instanceof xt&&t.index<0?null:t.parent,i=n.slice();return r?i[e]=r:i.splice(e,1),new kv(i,t)}class kv{constructor(e,t){this.heads=e,this.node=t}get next(){return hm(this.heads)}}function Sv(n,e,t){let r=n.resolveInner(e,t),i=null;for(let s=r instanceof xt?r:r.context.parent;s;s=s.parent)if(s.index<0){let o=s.parent;(i||(i=[r])).push(o.resolve(e,t)),s=o}else{let o=ii.get(s.tree);if(o&&o.overlay&&o.overlay[0].from<=e&&o.overlay[o.overlay.length-1].to>=e){let a=new xt(o.tree,o.overlay[0].from+s.from,-1,s);(i||(i=[r])).push(gi(a,e,t,!1))}}return i?hm(i):r}class _l{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~Ce.EnterBracketed,e instanceof xt)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:r,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=r+i.buffer[e+1],this.to=r+i.buffer[e+2],!0}yield(e){return e?e instanceof xt?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,r=this.mode){return this.buffer?r&Ce.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Ce.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Ce.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,r=this.stack.length-1;if(e<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(t.findChild(i,this.index,-1,0,4))}else{let i=t.buffer[this.index+3];if(i<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,r,{buffer:i}=this;if(i){if(e>0){if(this.index<i.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(i.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:r}=i)}else({index:t,_parent:r}=this._tree);for(;r;{index:t,_parent:r}=r)if(t>-1)for(let s=t+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let a=r._tree.children[s];if(this.mode&Ce.IncludeAnonymous||a instanceof wn||!a.type.isAnonymous||Qc(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,r=0;if(e&&e.context==this.buffer)e:for(let i=this.index,s=this.stack.length;s>=0;){for(let o=e;o;o=o._parent)if(o.index==i){if(i==this.index)return o;t=o,r=s+1;break e}i=this.stack[--s]}for(let i=r;i<this.stack.length;i++)t=new bn(this.buffer,t,this.stack[i]);return this.bufferNode=new bn(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let r=0;;){let i=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(i=!0)}for(;;){if(i&&t&&t(this),i=this.type.isAnonymous,!r)return;if(this.nextSibling())break;this.parent(),r--,i=!0}}}matchContext(e){if(!this.buffer)return Hl(this.node.parent,e);let{buffer:t}=this.buffer,{types:r}=t.set;for(let i=e.length-1,s=this.stack.length-1;i>=0;s--){if(s<0)return Hl(this._tree,e,i);let o=r[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}}function Qc(n){return n.children.some(e=>e instanceof wn||!e.type.isAnonymous||Qc(e))}function Cv(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:i=am,reused:s=[],minRepeatType:o=r.types.length}=n,a=Array.isArray(t)?new Yc(t,t.length):t,l=r.types,c=0,h=0;function u(k,j,x,T,P,R){let{id:L,start:I,end:W,size:U}=a,D=h,$=c;if(U<0)if(a.next(),U==-1){let se=s[L];x.push(se),T.push(I-k);return}else if(U==-3){c=L;return}else if(U==-4){h=L;return}else throw new RangeError(`Unrecognized record size: ${U}`);let V=l[L],F,q,re=I-k;if(W-I<=i&&(q=y(a.pos-j,P))){let se=new Uint16Array(q.size-q.skip),me=a.pos-q.size,ke=se.length;for(;a.pos>me;)ke=v(q.start,se,ke);F=new wn(se,W-q.start,r),re=q.start-k}else{let se=a.pos-U;a.next();let me=[],ke=[],Me=L>=o?L:-1,De=0,dt=W;for(;a.pos>se;)Me>=0&&a.id==Me&&a.size>=0?(a.end<=dt-i&&(m(me,ke,I,De,a.end,dt,Me,D,$),De=me.length,dt=a.end),a.next()):R>2500?f(I,se,me,ke):u(I,se,me,ke,Me,R+1);if(Me>=0&&De>0&&De<me.length&&m(me,ke,I,De,I,dt,Me,D,$),me.reverse(),ke.reverse(),Me>-1&&De>0){let En=p(V,$);F=Jc(V,me,ke,0,me.length,0,W-I,En,En)}else F=g(V,me,ke,W-I,D-W,$)}x.push(F),T.push(re)}function f(k,j,x,T){let P=[],R=0,L=-1;for(;a.pos>j;){let{id:I,start:W,end:U,size:D}=a;if(D>4)a.next();else{if(L>-1&&W<L)break;L<0&&(L=U-i),P.push(I,W,U),R++,a.next()}}if(R){let I=new Uint16Array(R*4),W=P[P.length-2];for(let U=P.length-3,D=0;U>=0;U-=3)I[D++]=P[U],I[D++]=P[U+1]-W,I[D++]=P[U+2]-W,I[D++]=D;x.push(new wn(I,P[2]-W,r)),T.push(W-k)}}function p(k,j){return(x,T,P)=>{let R=0,L=x.length-1,I,W;if(L>=0&&(I=x[L])instanceof Pe){if(!L&&I.type==k&&I.length==P)return I;(W=I.prop(ae.lookAhead))&&(R=T[L]+I.length+W)}return g(k,x,T,P,R,j)}}function m(k,j,x,T,P,R,L,I,W){let U=[],D=[];for(;k.length>T;)U.push(k.pop()),D.push(j.pop()+x-P);k.push(g(r.types[L],U,D,R-P,I-R,W)),j.push(P-x)}function g(k,j,x,T,P,R,L){if(R){let I=[ae.contextHash,R];L=L?[I].concat(L):[I]}if(P>25){let I=[ae.lookAhead,P];L=L?[I].concat(L):[I]}return new Pe(k,j,x,T,L)}function y(k,j){let x=a.fork(),T=0,P=0,R=0,L=x.end-i,I={size:0,start:0,skip:0};e:for(let W=x.pos-k;x.pos>W;){let U=x.size;if(x.id==j&&U>=0){I.size=T,I.start=P,I.skip=R,R+=4,T+=4,x.next();continue}let D=x.pos-U;if(U<0||D<W||x.start<L)break;let $=x.id>=o?4:0,V=x.start;for(x.next();x.pos>D;){if(x.size<0)if(x.size==-3||x.size==-4)$+=4;else break e;else x.id>=o&&($+=4);x.next()}P=V,T+=U,R+=$}return(j<0||T==k)&&(I.size=T,I.start=P,I.skip=R),I.size>4?I:void 0}function v(k,j,x){let{id:T,start:P,end:R,size:L}=a;if(a.next(),L>=0&&T<o){let I=x;if(L>4){let W=a.pos-(L-4);for(;a.pos>W;)x=v(k,j,x)}j[--x]=I,j[--x]=R-k,j[--x]=P-k,j[--x]=T}else L==-3?c=T:L==-4&&(h=T);return x}let S=[],C=[];for(;a.pos>0;)u(n.start||0,n.bufferStart||0,S,C,-1,0);let A=(e=n.length)!==null&&e!==void 0?e:S.length?C[0]+S[0].length:0;return new Pe(l[n.topID],S.reverse(),C.reverse(),A)}const Iu=new WeakMap;function So(n,e){if(!n.isAnonymous||e instanceof wn||e.type!=n)return 1;let t=Iu.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof Pe)){t=1;break}t+=So(n,r)}Iu.set(e,t)}return t}function Jc(n,e,t,r,i,s,o,a,l){let c=0;for(let m=r;m<i;m++)c+=So(n,e[m]);let h=Math.ceil(c*1.5/8),u=[],f=[];function p(m,g,y,v,S){for(let C=y;C<v;){let A=C,k=g[C],j=So(n,m[C]);for(C++;C<v;C++){let x=So(n,m[C]);if(j+x>=h)break;j+=x}if(C==A+1){if(j>h){let x=m[A];p(x.children,x.positions,0,x.children.length,g[A]+S);continue}u.push(m[A])}else{let x=g[C-1]+m[C-1].length-k;u.push(Jc(n,m,g,A,C,k,x,null,l))}f.push(k+S-s)}}return p(e,t,r,i,0),(a||l)(u,f,o)}class Un{constructor(e,t,r,i,s=!1,o=!1){this.from=e,this.to=t,this.tree=r,this.offset=i,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],r=!1){let i=[new Un(0,e.length,e,0,!1,r)];for(let s of t)s.to>e.length&&i.push(s);return i}static applyChanges(e,t,r=128){if(!t.length)return e;let i=[],s=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let h=a<t.length?t[a]:null,u=h?h.fromA:1e9;if(u-l>=r)for(;o&&o.from<u;){let f=o;if(l>=f.from||u<=f.to||c){let p=Math.max(f.from,l)-c,m=Math.min(f.to,u)-c;f=p>=m?null:new Un(p,m,f.tree,f.offset+c,a>0,!!h)}if(f&&i.push(f),o.to>u)break;o=s<e.length?e[s++]:null}if(!h)break;l=h.toA,c=h.toA-h.toB}return i}}class um{startParse(e,t,r){return typeof e=="string"&&(e=new Ov(e)),r=r?r.length?r.map(i=>new Fa(i.from,i.to)):[new Fa(0,0)]:[new Fa(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let i=this.startParse(e,t,r);for(;;){let s=i.advance();if(s)return s}}}class Ov{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}new ae({perNode:!0});var Bu={};class Lo{constructor(e,t,r,i,s,o,a,l,c,h=0,u){this.p=e,this.stack=t,this.state=r,this.reducePos=i,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=c,this.lookAhead=h,this.parent=u}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,r=0){let i=e.parser.context;return new Lo(e,[],t,r,r,0,[],0,i?new $u(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let r=e>>19,i=e&65535,{parser:s}=this.p,o=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),a=s.dynamicPrecedence(i);if(a&&(this.score+=a),r==0){this.pushState(s.getGoto(this.state,i,!0),this.reducePos),i<s.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,o?8:4,!0),this.reduceContext(i,this.reducePos);return}let l=this.stack.length-(r-1)*3-(e&262144?6:0),c=l?this.stack[l-2]:this.p.ranges[0].from,h=this.reducePos-c;h>=2e3&&!(!((t=this.p.parser.nodeSet.types[i])===null||t===void 0)&&t.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=h):this.p.lastBigReductionSize<h&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=c,this.p.lastBigReductionSize=h));let u=l?this.stack[l-1]:0,f=this.bufferBase+this.buffer.length-u;if(i<s.minRepeatTerm||e&131072){let p=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,c,p,f+4,!0)}if(e&262144)this.state=this.stack[l];else{let p=this.stack[l-3];this.state=s.getGoto(p,i,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(i,c)}storeNode(e,t,r,i=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let o=this,a=this.buffer.length;if(a==0&&o.parent&&(a=o.bufferBase-o.parent.bufferBase,o=o.parent),a>0&&o.buffer[a-4]==0&&o.buffer[a-1]>-1){if(t==r)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=r;return}}}if(!s||this.pos==r)this.buffer.push(e,t,r,i);else{let o=this.buffer.length;if(o>0&&(this.buffer[o-4]!=0||this.buffer[o-1]<0)){let a=!1;for(let l=o;l>0&&this.buffer[l-2]>r;l-=4)if(this.buffer[l-1]>=0){a=!0;break}if(a)for(;o>0&&this.buffer[o-2]>r;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,i>4&&(i-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=r,this.buffer[o+3]=i}}shift(e,t,r,i){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=i,this.shiftContext(t,r),t<=this.p.parser.maxNode&&this.buffer.push(t,r,i,4);else{let s=e,{parser:o}=this.p;(i>this.pos||t<=o.maxNode)&&(this.pos=i,o.stateFlag(s,1)||(this.reducePos=i)),this.pushState(s,r),this.shiftContext(t,r),t<=o.maxNode&&this.buffer.push(t,r,i,4)}}apply(e,t,r,i){e&65536?this.reduce(e):this.shift(e,t,r,i)}useNode(e,t){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=e)&&(this.p.reused.push(e),r++);let i=this.pos;this.reducePos=this.pos=i+e.length,this.pushState(t,i),this.buffer.push(r,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let r=e.buffer.slice(t),i=e.bufferBase+t;for(;e&&i==e.bufferBase;)e=e.parent;return new Lo(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let r=e<=this.p.parser.maxNode;r&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,r?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new jv(this);;){let r=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(r==0)return!1;if(!(r&65536))return!0;t.reduce(r)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let i=[];for(let s=0,o;s<t.length;s+=2)(o=t[s+1])!=this.state&&this.p.parser.hasAction(o,e)&&i.push(t[s],o);if(this.stack.length<120)for(let s=0;i.length<8&&s<t.length;s+=2){let o=t[s+1];i.some((a,l)=>l&1&&a==o)||i.push(t[s],o)}t=i}let r=[];for(let i=0;i<t.length&&r.length<4;i+=2){let s=t[i+1];if(s==this.state)continue;let o=this.split();o.pushState(s,this.pos),o.storeNode(0,o.pos,o.pos,4,!0),o.shiftContext(t[i],this.pos),o.reducePos=this.pos,o.score-=200,r.push(o)}return r}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let r=t>>19,i=t&65535,s=this.stack.length-r*3;if(s<0||e.getGoto(this.stack[s],i,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],r=(i,s)=>{if(!t.includes(i))return t.push(i),e.allActions(i,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-s;if(a>1){let l=o&65535,c=this.stack.length-a*3;if(c>=0&&e.getGoto(this.stack[c],l,!1)>=0)return a<<19|65536|l}}else{let a=r(o,s+1);if(a!=null)return a}})};return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new $u(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){return e<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=e,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class $u{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class jv{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,r=e>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=i}}class Ro{constructor(e,t,r){this.stack=e,this.pos=t,this.index=r,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new Ro(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new Ro(this.stack,this.pos,this.index)}}function Ks(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let r=0,i=0;r<n.length;){let s=0;for(;;){let o=n.charCodeAt(r++),a=!1;if(o==126){s=65535;break}o>=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),s+=l,a)break;s*=46}t?t[i++]=s:t=new e(s)}return t}class Co{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const Fu=new Co;class Pv{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Fu,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let r=this.range,i=this.rangeIndex,s=this.pos+e;for(;s<r.from;){if(!i)return null;let o=this.ranges[--i];s-=r.from-o.to,r=o}for(;t<0?s>r.to:s>=r.to;){if(i==this.ranges.length-1)return null;let o=this.ranges[++i];s+=o.from-r.to,r=o}return s}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,r,i;if(t>=0&&t<this.chunk.length)r=this.pos+e,i=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(r=s,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=r;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-r)),i=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),i}acceptToken(e,t=0){let r=t?this.resolveOffset(t,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=r}acceptTokenTo(e,t){this.token.value=e,this.token.end=t}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Fu,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let r="";for(let i of this.ranges){if(i.from>=t)break;i.to>e&&(r+=this.input.read(Math.max(i.from,e),Math.min(i.to,t)))}return r}}class fr{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;Av(this.data,e,t,this.id,r.data,r.tokenPrecTable)}}fr.prototype.contextual=fr.prototype.fallback=fr.prototype.extend=!1;fr.prototype.fallback=fr.prototype.extend=!1;function Av(n,e,t,r,i,s){let o=0,a=1<<r,{dialect:l}=t.p.parser;e:for(;a&n[o];){let c=n[o+1];for(let p=o+3;p<c;p+=2)if((n[p+1]&a)>0){let m=n[p];if(l.allows(m)&&(e.token.value==-1||e.token.value==m||Mv(m,e.token.value,i,s))){e.acceptToken(m);break}}let h=e.next,u=0,f=n[o+2];if(e.next<0&&f>u&&n[c+f*3-3]==65535){o=n[c+f*3-1];continue e}for(;u<f;){let p=u+f>>1,m=c+p+(p<<1),g=n[m],y=n[m+1]||65536;if(h<g)f=p;else if(h>=y)u=p+1;else{o=n[m+2],e.advance();continue e}}break}}function zu(n,e,t){for(let r=e,i;(i=n[r])!=65535;r++)if(i==t)return r-e;return-1}function Mv(n,e,t,r){let i=zu(t,r,e);return i<0||zu(t,r,n)<i}const st=typeof process<"u"&&Bu&&/\bparse\b/.test(Bu.LOG);let za=null;function Vu(n,e,t){let r=n.cursor(Ce.IncludeAnonymous);for(r.moveTo(e);;)if(!(t<0?r.childBefore(e):r.childAfter(e)))for(;;){if((t<0?r.to<e:r.from>e)&&!r.type.isError)return t<0?Math.max(0,Math.min(r.to-1,e-25)):Math.min(n.length,Math.max(r.from+1,e+25));if(t<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return t<0?0:n.length}}class Dv{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Vu(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Vu(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let r=this.trees[t],i=this.index[t];if(i==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=r.children[i],o=this.start[t]+r.positions[i];if(o>e)return this.nextStart=o,null;if(s instanceof Pe){if(o==e){if(o<this.safeFrom)return null;let a=o+s.length;if(a<=this.safeTo){let l=s.prop(ae.lookAhead);if(!l||a+l<this.fragment.to)return s}}this.index[t]++,o+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+s.length}}}class Ev{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new Co)}getActions(e){let t=0,r=null,{parser:i}=e.p,{tokenizers:s}=i,o=i.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let c=0;c<s.length;c++){if(!(1<<c&o))continue;let h=s[c],u=this.tokens[c];if(!(r&&!h.fallback)&&((h.contextual||u.start!=e.pos||u.mask!=o||u.context!=a)&&(this.updateCachedToken(u,h,e),u.mask=o,u.context=a),u.lookAhead>u.end+25&&(l=Math.max(u.lookAhead,l)),u.value!=0)){let f=t;if(u.extended>-1&&(t=this.addActions(e,u.extended,u.end,t)),t=this.addActions(e,u.value,u.end,t),!h.extend&&(r=u,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!r&&e.pos==this.stream.end&&(r=new Co,r.value=e.p.parser.eofTerm,r.start=r.end=e.pos,t=this.addActions(e,r.value,r.end,t)),this.mainToken=r,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Co,{pos:r,p:i}=e;return t.start=r,t.end=Math.min(r+1,i.stream.end),t.value=r==i.stream.end?i.parser.eofTerm:0,t}updateCachedToken(e,t,r){let i=this.stream.clipPos(r.pos);if(t.token(this.stream.reset(i,e),r),e.value>-1){let{parser:s}=r.p;for(let o=0;o<s.specialized.length;o++)if(s.specialized[o]==e.value){let a=s.specializers[o](this.stream.read(e.start,e.end),r);if(a>=0&&r.p.parser.dialect.allows(a>>1)){a&1?e.extended=a>>1:e.value=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(i+1)}putAction(e,t,r,i){for(let s=0;s<i;s+=3)if(this.actions[s]==e)return i;return this.actions[i++]=e,this.actions[i++]=t,this.actions[i++]=r,i}addActions(e,t,r,i){let{state:s}=e,{parser:o}=e.p,{data:a}=o;for(let l=0;l<2;l++)for(let c=o.stateSlot(s,l?2:1);;c+=3){if(a[c]==65535)if(a[c+1]==1)c=en(a,c+2);else{i==0&&a[c+1]==2&&(i=this.putAction(en(a,c+2),t,r,i));break}a[c]==t&&(i=this.putAction(en(a,c+1),t,r,i))}return i}}class Tv{constructor(e,t,r,i){this.parser=e,this.input=t,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new Pv(t,i),this.tokens=new Ev(e,this.stream),this.topTerm=e.top[1];let{from:s}=i[0];this.stacks=[Lo.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new Dv(r,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,r=this.stacks=[],i,s;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;o<e.length;o++){let a=e[o];for(;;){if(this.tokens.mainToken=null,a.pos>t)r.push(a);else{if(this.advanceStack(a,r,e))continue;{i||(i=[],s=[]),i.push(a);let l=this.tokens.getMainToken(a);s.push(l.value,l.end)}}break}}if(!r.length){let o=i&&Lv(i);if(o)return st&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw st&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&i){let o=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,s,r);if(o)return st&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(r.length>o)for(r.sort((a,l)=>l.score-a.score);r.length>o;)r.pop();r.some(a=>a.reducePos>t)&&this.recovering--}else if(r.length>1){e:for(let o=0;o<r.length-1;o++){let a=r[o];for(let l=o+1;l<r.length;l++){let c=r[l];if(a.sameState(c)||a.buffer.length>500&&c.buffer.length>500)if((a.score-c.score||a.buffer.length-c.buffer.length)>0)r.splice(l--,1);else{r.splice(o--,1);continue e}}}r.length>12&&(r.sort((o,a)=>a.score-o.score),r.splice(12,r.length-12))}this.minStackPos=r[0].pos;for(let o=1;o<r.length;o++)r[o].pos<this.minStackPos&&(this.minStackPos=r[o].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,r){let i=e.pos,{parser:s}=this,o=st?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,h=c?e.curContext.hash:0;for(let u=this.fragments.nodeAt(i);u;){let f=this.parser.nodeSet.types[u.type.id]==u.type?s.getGoto(e.state,u.type.id):-1;if(f>-1&&u.length&&(!c||(u.prop(ae.contextHash)||0)==h))return e.useNode(u,f),st&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(u.type.id)})`),!0;if(!(u instanceof Pe)||u.children.length==0||u.positions[0]>0)break;let p=u.children[0];if(p instanceof Pe&&u.positions[0]==0)u=p;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),st&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(a&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let c=0;c<l.length;){let h=l[c++],u=l[c++],f=l[c++],p=c==l.length||!r,m=p?e:e.split(),g=this.tokens.mainToken;if(m.apply(h,u,g?g.start:m.pos,f),st&&console.log(o+this.stackID(m)+` (via ${h&65536?`reduce of ${s.getName(h&65535)}`:"shift"} for ${s.getName(u)} @ ${i}${m==e?"":", split"})`),p)return!0;m.pos>i?t.push(m):r.push(m)}return!1}advanceFully(e,t){let r=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>r)return Hu(e,t),!0}}runRecovery(e,t,r){let i=null,s=!1;for(let o=0;o<e.length;o++){let a=e[o],l=t[o<<1],c=t[(o<<1)+1],h=st?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),st&&console.log(h+this.stackID(a)+" (restarted)"),this.advanceFully(a,r))))continue;let u=a.split(),f=h;for(let p=0;p<10&&u.forceReduce()&&(st&&console.log(f+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,r));p++)st&&(f=this.stackID(u)+" -> ");for(let p of a.recoverByInsert(l))st&&console.log(h+this.stackID(p)+" (via recover-insert)"),this.advanceFully(p,r);this.stream.end>a.pos?(c==a.pos&&(c++,l=0),a.recoverByDelete(l,c),st&&console.log(h+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),Hu(a,r)):(!i||i.score<a.score)&&(i=a)}return i}stackToTree(e){return e.close(),Pe.build({buffer:Ro.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(za||(za=new WeakMap)).get(e);return t||za.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}}function Hu(n,e){for(let t=0;t<e.length;t++){let r=e[t];if(r.pos==n.pos&&r.sameState(n)){e[t].score<n.score&&(e[t]=n);return}}e.push(n)}class Nv{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}}class Io extends um{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let a=0;a<e.repeatNodeCount;a++)t.push("");let r=Object.keys(e.topRules).map(a=>e.topRules[a][1]),i=[];for(let a=0;a<t.length;a++)i.push([]);function s(a,l,c){i[a].push([l,l.deserialize(String(c))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=ae[l]);for(let c=1;c<a.length;){let h=a[c++];if(h>=0)s(h,l,a[c++]);else{let u=a[c+-h];for(let f=-h;f>0;f--)s(a[c++],l,u);c++}}}this.nodeSet=new qc(t.map((a,l)=>it.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:i[l],top:r.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=am;let o=Ks(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(_u),this.states=Ks(e.states,Uint32Array),this.data=Ks(e.stateData),this.goto=Ks(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new fr(o,a):a),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,r){let i=new Tv(this,e,t,r);for(let s of this.wrappers)i=s(i,e,t,r);return i}getGoto(e,t,r=!1){let i=this.goto;if(t>=i[0])return-1;for(let s=i[t+1];;){let o=i[s++],a=o&1,l=i[s++];if(a&&r)return l;for(let c=s+(o>>1);s<c;s++)if(i[s]==e)return l;if(a)return-1}}hasAction(e,t){let r=this.data;for(let i=0;i<2;i++)for(let s=this.stateSlot(e,i?2:1),o;;s+=3){if((o=r[s])==65535)if(r[s+1]==1)o=r[s=en(r,s+2)];else{if(r[s+1]==2)return en(r,s+2);break}if(o==t||o==0)return en(r,s+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,r=>r==t?!0:null)}allActions(e,t){let r=this.stateSlot(e,4),i=r?t(r):void 0;for(let s=this.stateSlot(e,1);i==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=en(this.data,s+2);else break;i=t(en(this.data,s+1))}return i}nextStates(e){let t=[];for(let r=this.stateSlot(e,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=en(this.data,r+2);else break;if(!(this.data[r+2]&1)){let i=this.data[r+1];t.some((s,o)=>o&1&&s==i)||t.push(this.data[r],i)}}return t}configure(e){let t=Object.assign(Object.create(Io.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let r=this.topRules[e.top];if(!r)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=r}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(r=>{let i=e.tokenizers.find(s=>s.from==r);return i?i.to:r})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((r,i)=>{let s=e.specializers.find(a=>a.from==r.external);if(!s)return r;let o=Object.assign(Object.assign({},r),{external:s.to});return t.specializers[i]=_u(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),r=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(r[o]=!0)}let i=null;for(let s=0;s<t.length;s++)if(!r[s])for(let o=this.dialects[t[s]],a;(a=this.data[o++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[a]=1;return new Nv(e,r,i)}static deserialize(e){return new Io(e)}}function en(n,e){return n[e]|n[e+1]<<16}function Lv(n){let e=null;for(let t of n){let r=t.p.stoppedAt;(t.pos==t.p.stream.end||r!=null&&t.pos>r)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function _u(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}let Rv=0;class mt{constructor(e,t,r,i){this.name=e,this.set=t,this.base=r,this.modified=i,this.id=Rv++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let r=typeof e=="string"?e:"?";if(e instanceof mt&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let i=new mt(r,[],null,[]);if(i.set.push(i),t)for(let s of t.set)i.set.push(s);return i}static defineModifier(e){let t=new Bo(e);return r=>r.modified.indexOf(t)>-1?r:Bo.get(r.base||r,r.modified.concat(t).sort((i,s)=>i.id-s.id))}}let Iv=0;class Bo{constructor(e){this.name=e,this.instances=[],this.id=Iv++}static get(e,t){if(!t.length)return e;let r=t[0].instances.find(a=>a.base==e&&Bv(t,a.modified));if(r)return r;let i=[],s=new mt(e.name,i,e,t);for(let a of t)a.instances.push(s);let o=$v(t);for(let a of e.set)if(!a.modified.length)for(let l of o)i.push(Bo.get(a,l));return s}}function Bv(n,e){return n.length==e.length&&n.every((t,r)=>t==e[r])}function $v(n){let e=[[]];for(let t=0;t<n.length;t++)for(let r=0,i=e.length;r<i;r++)e.push(e[r].concat(n[t]));return e.sort((t,r)=>r.length-t.length)}function dm(n){let e=Object.create(null);for(let t in n){let r=n[t];Array.isArray(r)||(r=[r]);for(let i of t.split(" "))if(i){let s=[],o=2,a=i;for(let u=0;;){if(a=="..."&&u>0&&u+3==i.length){o=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!f)throw new RangeError("Invalid path: "+i);if(s.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),u+=f[0].length,u==i.length)break;let p=i[u++];if(u==i.length&&p=="!"){o=0;break}if(p!="/")throw new RangeError("Invalid path: "+i);a=i.slice(u)}let l=s.length-1,c=s[l];if(!c)throw new RangeError("Invalid path: "+i);let h=new bi(r,o,l>0?s.slice(0,l):null);e[c]=h.sort(e[c])}}return fm.add(e)}const fm=new ae({combine(n,e){let t,r,i;for(;n||e;){if(!n||e&&n.depth>=e.depth?(i=e,e=e.next):(i=n,n=n.next),t&&t.mode==i.mode&&!i.context&&!t.context)continue;let s=new bi(i.tags,i.mode,i.context);t?t.next=s:r=s,t=s}return r}});class bi{constructor(e,t,r,i){this.tags=e,this.mode=t,this.context=r,this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}}bi.empty=new bi([],2,null);function pm(n,e){let t=Object.create(null);for(let s of n)if(!Array.isArray(s.tag))t[s.tag.id]=s.class;else for(let o of s.tag)t[o.id]=s.class;let{scope:r,all:i=null}=e||{};return{style:s=>{let o=i;for(let a of s)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:r}}function Fv(n,e){let t=null;for(let r of n){let i=r.style(e);i&&(t=t?t+" "+i:i)}return t}function zv(n,e,t,r=0,i=n.length){let s=new Vv(r,Array.isArray(e)?e:[e],t);s.highlightRange(n.cursor(),r,i,"",s.highlighters),s.flush(i)}class Vv{constructor(e,t,r){this.at=e,this.highlighters=t,this.span=r,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,r,i,s){let{type:o,from:a,to:l}=e;if(a>=r||l<=t)return;o.isTop&&(s=this.highlighters.filter(p=>!p.scope||p.scope(o)));let c=i,h=Hv(e)||bi.empty,u=Fv(s,h.tags);if(u&&(c&&(c+=" "),c+=u,h.mode==1&&(i+=(i?" ":"")+u)),this.startSpan(Math.max(t,a),c),h.opaque)return;let f=e.tree&&e.tree.prop(ae.mounted);if(f&&f.overlay){let p=e.node.enter(f.overlay[0].from+a,1),m=this.highlighters.filter(y=>!y.scope||y.scope(f.tree.type)),g=e.firstChild();for(let y=0,v=a;;y++){let S=y<f.overlay.length?f.overlay[y]:null,C=S?S.from+a:l,A=Math.max(t,v),k=Math.min(r,C);if(A<k&&g)for(;e.from<k&&(this.highlightRange(e,A,k,i,s),this.startSpan(Math.min(k,e.to),c),!(e.to>=C||!e.nextSibling())););if(!S||C>r)break;v=S.to+a,v>t&&(this.highlightRange(p.cursor(),Math.max(t,S.from+a),Math.min(r,v),"",m),this.startSpan(Math.min(r,v),c))}g&&e.parent()}else if(e.firstChild()){f&&(i="");do if(!(e.to<=t)){if(e.from>=r)break;this.highlightRange(e,t,r,i,s),this.startSpan(Math.min(r,e.to),c)}while(e.nextSibling());e.parent()}}}function Hv(n){let e=n.type.prop(fm);for(;e&&e.context&&!n.matchContext(e.context);)e=e.next;return e||null}const H=mt.define,Gs=H(),hn=H(),Wu=H(hn),Uu=H(hn),un=H(),qs=H(un),Va=H(un),Rt=H(),Bn=H(Rt),Tt=H(),Nt=H(),Wl=H(),Kr=H(Wl),Ys=H(),E={comment:Gs,lineComment:H(Gs),blockComment:H(Gs),docComment:H(Gs),name:hn,variableName:H(hn),typeName:Wu,tagName:H(Wu),propertyName:Uu,attributeName:H(Uu),className:H(hn),labelName:H(hn),namespace:H(hn),macroName:H(hn),literal:un,string:qs,docString:H(qs),character:H(qs),attributeValue:H(qs),number:Va,integer:H(Va),float:H(Va),bool:H(un),regexp:H(un),escape:H(un),color:H(un),url:H(un),keyword:Tt,self:H(Tt),null:H(Tt),atom:H(Tt),unit:H(Tt),modifier:H(Tt),operatorKeyword:H(Tt),controlKeyword:H(Tt),definitionKeyword:H(Tt),moduleKeyword:H(Tt),operator:Nt,derefOperator:H(Nt),arithmeticOperator:H(Nt),logicOperator:H(Nt),bitwiseOperator:H(Nt),compareOperator:H(Nt),updateOperator:H(Nt),definitionOperator:H(Nt),typeOperator:H(Nt),controlOperator:H(Nt),punctuation:Wl,separator:H(Wl),bracket:Kr,angleBracket:H(Kr),squareBracket:H(Kr),paren:H(Kr),brace:H(Kr),content:Rt,heading:Bn,heading1:H(Bn),heading2:H(Bn),heading3:H(Bn),heading4:H(Bn),heading5:H(Bn),heading6:H(Bn),contentSeparator:H(Rt),list:H(Rt),quote:H(Rt),emphasis:H(Rt),strong:H(Rt),link:H(Rt),monospace:H(Rt),strikethrough:H(Rt),inserted:H(),deleted:H(),changed:H(),invalid:H(),meta:Ys,documentMeta:H(Ys),annotation:H(Ys),processingInstruction:H(Ys),definition:mt.defineModifier("definition"),constant:mt.defineModifier("constant"),function:mt.defineModifier("function"),standard:mt.defineModifier("standard"),local:mt.defineModifier("local"),special:mt.defineModifier("special")};for(let n in E){let e=E[n];e instanceof mt&&(e.name=n)}pm([{tag:E.link,class:"tok-link"},{tag:E.heading,class:"tok-heading"},{tag:E.emphasis,class:"tok-emphasis"},{tag:E.strong,class:"tok-strong"},{tag:E.keyword,class:"tok-keyword"},{tag:E.atom,class:"tok-atom"},{tag:E.bool,class:"tok-bool"},{tag:E.url,class:"tok-url"},{tag:E.labelName,class:"tok-labelName"},{tag:E.inserted,class:"tok-inserted"},{tag:E.deleted,class:"tok-deleted"},{tag:E.literal,class:"tok-literal"},{tag:E.string,class:"tok-string"},{tag:E.number,class:"tok-number"},{tag:[E.regexp,E.escape,E.special(E.string)],class:"tok-string2"},{tag:E.variableName,class:"tok-variableName"},{tag:E.local(E.variableName),class:"tok-variableName tok-local"},{tag:E.definition(E.variableName),class:"tok-variableName tok-definition"},{tag:E.special(E.variableName),class:"tok-variableName2"},{tag:E.definition(E.propertyName),class:"tok-propertyName tok-definition"},{tag:E.typeName,class:"tok-typeName"},{tag:E.namespace,class:"tok-namespace"},{tag:E.className,class:"tok-className"},{tag:E.macroName,class:"tok-macroName"},{tag:E.propertyName,class:"tok-propertyName"},{tag:E.operator,class:"tok-operator"},{tag:E.comment,class:"tok-comment"},{tag:E.meta,class:"tok-meta"},{tag:E.invalid,class:"tok-invalid"},{tag:E.punctuation,class:"tok-punctuation"}]);const _v=dm({String:E.string,Number:E.number,"True False":E.bool,PropertyName:E.propertyName,Null:E.null,", :":E.separator,"[ ]":E.squareBracket,"{ }":E.brace}),Wv=Io.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[_v],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});let Ul=[],mm=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e<n.length;e++)(e%2?mm:Ul).push(t=t+n[e])})();function Uv(n){if(n<768)return!1;for(let e=0,t=Ul.length;;){let r=e+t>>1;if(n<Ul[r])t=r;else if(n>=mm[r])e=r+1;else return!0;if(e==t)return!1}}function Ku(n){return n>=127462&&n<=127487}const Gu=8205;function Kv(n,e,t=!0,r=!0){return(t?gm:Gv)(n,e,r)}function gm(n,e,t){if(e==n.length)return e;e&&bm(n.charCodeAt(e))&&ym(n.charCodeAt(e-1))&&e--;let r=Ha(n,e);for(e+=qu(r);e<n.length;){let i=Ha(n,e);if(r==Gu||i==Gu||t&&Uv(i))e+=qu(i),r=i;else if(Ku(i)){let s=0,o=e-2;for(;o>=0&&Ku(Ha(n,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function Gv(n,e,t){for(;e>0;){let r=gm(n,e-2,t);if(r<e)return r;e--}return 0}function Ha(n,e){let t=n.charCodeAt(e);if(!ym(t)||e+1==n.length)return t;let r=n.charCodeAt(e+1);return bm(r)?(t-55296<<10)+(r-56320)+65536:t}function bm(n){return n>=56320&&n<57344}function ym(n){return n>=55296&&n<56320}function qu(n){return n<65536?1:2}class pe{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,r){[e,t]=vr(this,e,t);let i=[];return this.decompose(0,e,i,2),r.length&&r.decompose(0,r.length,i,3),this.decompose(t,this.length,i,1),Bt.from(i,this.length-(t-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=vr(this,e,t);let r=[];return this.decompose(e,t,r,0),Bt.from(r,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),r=this.length-this.scanIdentical(e,-1),i=new si(this),s=new si(e);for(let o=t,a=t;;){if(i.next(o),s.next(o),o=0,i.lineBreak!=s.lineBreak||i.done!=s.done||i.value!=s.value)return!1;if(a+=i.value.length,i.done||a>=r)return!0}}iter(e=1){return new si(this,e)}iterRange(e,t=this.length){return new xm(this,e,t)}iterLines(e,t){let r;if(e==null)r=this.iter();else{t==null&&(t=this.lines+1);let i=this.line(e).from;r=this.iterRange(i,Math.max(i,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new vm(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?pe.empty:e.length<=32?new je(e):Bt.from(je.split(e,[]))}}class je extends pe{constructor(e,t=qv(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,r,i){for(let s=0;;s++){let o=this.text[s],a=i+o.length;if((t?r:a)>=e)return new Yv(i,a,r,o);i=a+1,r++}}decompose(e,t,r,i){let s=e<=0&&t>=this.length?this:new je(Yu(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(i&1){let o=r.pop(),a=Oo(s.text,o.text.slice(),0,s.length);if(a.length<=32)r.push(new je(a,o.length+s.length));else{let l=a.length>>1;r.push(new je(a.slice(0,l)),new je(a.slice(l)))}}else r.push(s)}replace(e,t,r){if(!(r instanceof je))return super.replace(e,t,r);[e,t]=vr(this,e,t);let i=Oo(this.text,Oo(r.text,Yu(this.text,0,e)),t),s=this.length+r.length-(t-e);return i.length<=32?new je(i,s):Bt.from(je.split(i,[]),s)}sliceString(e,t=this.length,r=`
53
+ `){[e,t]=vr(this,e,t);let i="";for(let s=0,o=0;s<=t&&o<this.text.length;o++){let a=this.text[o],l=s+a.length;s>e&&o&&(i+=r),e<l&&t>s&&(i+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return i}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let r=[],i=-1;for(let s of e)r.push(s),i+=s.length+1,r.length==32&&(t.push(new je(r,i)),r=[],i=-1);return i>-1&&t.push(new je(r,i)),t}}class Bt extends pe{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,t,r,i){for(let s=0;;s++){let o=this.children[s],a=i+o.length,l=r+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,r,i);i=a+1,r=l+1}}decompose(e,t,r,i){for(let s=0,o=0;o<=t&&s<this.children.length;s++){let a=this.children[s],l=o+a.length;if(e<=l&&t>=o){let c=i&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?r.push(a):a.decompose(e-o,t-o,r,c)}o=l+1}}replace(e,t,r){if([e,t]=vr(this,e,t),r.lines<this.lines)for(let i=0,s=0;i<this.children.length;i++){let o=this.children[i],a=s+o.length;if(e>=s&&t<=a){let l=o.replace(e-s,t-s,r),c=this.lines-o.lines+l.lines;if(l.lines<c>>4&&l.lines>c>>6){let h=this.children.slice();return h[i]=l,new Bt(h,this.length-(t-e)+r.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,r)}sliceString(e,t=this.length,r=`
54
+ `){[e,t]=vr(this,e,t);let i="";for(let s=0,o=0;s<this.children.length&&o<=t;s++){let a=this.children[s],l=o+a.length;o>e&&s&&(i+=r),e<l&&t>o&&(i+=a.sliceString(e-o,t-o,r)),o=l+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof Bt))return 0;let r=0,[i,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;i+=t,s+=t){if(i==o||s==a)return r;let l=this.children[i],c=e.children[s];if(l!=c)return r+l.scanIdentical(c,t);r+=l.length+1}}static from(e,t=e.reduce((r,i)=>r+i.length+1,-1)){let r=0;for(let p of e)r+=p.lines;if(r<32){let p=[];for(let m of e)m.flatten(p);return new je(p,t)}let i=Math.max(32,r>>5),s=i<<1,o=i>>1,a=[],l=0,c=-1,h=[];function u(p){let m;if(p.lines>s&&p instanceof Bt)for(let g of p.children)u(g);else p.lines>o&&(l>o||!l)?(f(),a.push(p)):p instanceof je&&l&&(m=h[h.length-1])instanceof je&&p.lines+m.lines<=32?(l+=p.lines,c+=p.length+1,h[h.length-1]=new je(m.text.concat(p.text),m.length+1+p.length)):(l+p.lines>i&&f(),l+=p.lines,c+=p.length+1,h.push(p))}function f(){l!=0&&(a.push(h.length==1?h[0]:Bt.from(h,c)),c=-1,l=h.length=0)}for(let p of e)u(p);return f(),a.length==1?a[0]:new Bt(a,t)}}pe.empty=new je([""],0);function qv(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Oo(n,e,t=0,r=1e9){for(let i=0,s=0,o=!0;s<n.length&&i<=r;s++){let a=n[s],l=i+a.length;l>=t&&(l>r&&(a=a.slice(0,r-i)),i<t&&(a=a.slice(t-i)),o?(e[e.length-1]+=a,o=!1):e.push(a)),i=l+1}return e}function Yu(n,e,t){return Oo(n,[""],e,t)}class si{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof je?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,i=this.nodes[r],s=this.offsets[r],o=s>>1,a=i instanceof je?i.text.length:i.children.length;if(o==(t>0?a:0)){if(r==0)return this.done=!0,this.value="",this;t>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[r]+=t,e==0)return this.lineBreak=!0,this.value=`
55
+ `,this;e--}else if(i instanceof je){let l=i.text[o+(t<0?-1:0)];if(this.offsets[r]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=i.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[r]+=t):(t<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof je?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class xm{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new si(e,t>r?-1:1),this.pos=t>r?e.length:0,this.from=Math.min(t,r),this.to=Math.max(t,r)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let r=t<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=r?i:t<0?i.slice(i.length-r):i.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class vm{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:r,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(pe.prototype[Symbol.iterator]=function(){return this.iter()},si.prototype[Symbol.iterator]=xm.prototype[Symbol.iterator]=vm.prototype[Symbol.iterator]=function(){return this});class Yv{constructor(e,t,r,i){this.from=e,this.to=t,this.number=r,this.text=i}get length(){return this.to-this.from}}function vr(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function Ne(n,e,t=!0,r=!0){return Kv(n,e,t,r)}function Qv(n){return n>=56320&&n<57344}function Jv(n){return n>=55296&&n<56320}function Ze(n,e){let t=n.charCodeAt(e);if(!Jv(t)||e+1==n.length)return t;let r=n.charCodeAt(e+1);return Qv(r)?(t-55296<<10)+(r-56320)+65536:t}function Xc(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function $t(n){return n<65536?1:2}const Kl=/\r\n?|\n/;var Qe=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(Qe||(Qe={}));class Wt{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let r=this.sections[t+1];e+=r<0?this.sections[t]:r}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,r=0,i=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(r,i,s),i+=s):i+=o,r+=s}}iterChangedRanges(e,t=!1){Gl(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let r=this.sections[t++],i=this.sections[t++];i<0?e.push(r,i):e.push(i,r)}return new Wt(e)}composeDesc(e){return this.empty?e:e.empty?this:wm(this,e)}mapDesc(e,t=!1){return e.empty?this:ql(this,e,t)}mapPos(e,t=-1,r=Qe.Simple){let i=0,s=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=i+a;if(l<0){if(c>e)return s+(e-i);s+=a}else{if(r!=Qe.Simple&&c>=e&&(r==Qe.TrackDel&&i<e&&c>e||r==Qe.TrackBefore&&i<e||r==Qe.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==i||t<0?s:s+l;s+=l}i=c}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return s}touchesRange(e,t=e){for(let r=0,i=0;r<this.sections.length&&i<=t;){let s=this.sections[r++],o=this.sections[r++],a=i+s;if(o>=0&&i<=t&&a>=e)return i<e&&a>t?"cover":!0;i=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let r=this.sections[t++],i=this.sections[t++];e+=(e?" ":"")+r+(i>=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new Wt(e)}static create(e){return new Wt(e)}}class Te extends Wt{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Gl(this,(t,r,i,s,o)=>e=e.replace(i,i+(r-t),o),!1),e}mapDesc(e,t=!1){return ql(this,e,t,!0)}invert(e){let t=this.sections.slice(),r=[];for(let i=0,s=0;i<t.length;i+=2){let o=t[i],a=t[i+1];if(a>=0){t[i]=a,t[i+1]=o;let l=i>>1;for(;r.length<l;)r.push(pe.empty);r.push(o?e.slice(s,s+o):pe.empty)}s+=o}return new Te(t,r)}compose(e){return this.empty?e:e.empty?this:wm(this,e,!0)}map(e,t=!1){return e.empty?this:ql(this,e,t,!0)}iterChanges(e,t=!1){Gl(this,e,t)}get desc(){return Wt.create(this.sections)}filter(e){let t=[],r=[],i=[],s=new yi(this);e:for(let o=0,a=0;;){let l=o==e.length?1e9:e[o++];for(;a<l||a==l&&s.len==0;){if(s.done)break e;let h=Math.min(s.len,l-a);Ue(i,h,-1);let u=s.ins==-1?-1:s.off==0?s.ins:0;Ue(t,h,u),u>0&&yn(r,t,s.text),s.forward(h),a+=h}let c=e[o++];for(;a<c;){if(s.done)break e;let h=Math.min(s.len,c-a);Ue(t,h,-1),Ue(i,h,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(h),a+=h}}return{changes:new Te(t,r),filtered:Wt.create(i)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let r=this.sections[t],i=this.sections[t+1];i<0?e.push(r):i==0?e.push([r]):e.push([r].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,r){let i=[],s=[],o=0,a=null;function l(h=!1){if(!h&&!i.length)return;o<t&&Ue(i,t-o,-1);let u=new Te(i,s);a=a?a.compose(u.map(a)):u,i=[],s=[],o=0}function c(h){if(Array.isArray(h))for(let u of h)c(u);else if(h instanceof Te){if(h.length!=t)throw new RangeError(`Mismatched change set length (got ${h.length}, expected ${t})`);l(),a=a?a.compose(h.map(a)):h}else{let{from:u,to:f=u,insert:p}=h;if(u>f||u<0||f>t)throw new RangeError(`Invalid change range ${u} to ${f} (in doc of length ${t})`);let m=p?typeof p=="string"?pe.of(p.split(r||Kl)):p:pe.empty,g=m.length;if(u==f&&g==0)return;u<o&&l(),u>o&&Ue(i,u-o,-1),Ue(i,f-u,g),yn(s,i,m),o=f}}return c(e),l(!a),a}static empty(e){return new Te(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],r=[];for(let i=0;i<e.length;i++){let s=e[i];if(typeof s=="number")t.push(s,-1);else{if(!Array.isArray(s)||typeof s[0]!="number"||s.some((o,a)=>a&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;r.length<i;)r.push(pe.empty);r[i]=pe.of(s.slice(1)),t.push(s[0],r[i].length)}}}return new Te(t,r)}static createSet(e,t){return new Te(e,t)}}function Ue(n,e,t,r=!1){if(e==0&&t<=0)return;let i=n.length-2;i>=0&&t<=0&&t==n[i+1]?n[i]+=e:i>=0&&e==0&&n[i]==0?n[i+1]+=t:r?(n[i]+=e,n[i+1]+=t):n.push(e,t)}function yn(n,e,t){if(t.length==0)return;let r=e.length-2>>1;if(r<n.length)n[n.length-1]=n[n.length-1].append(t);else{for(;n.length<r;)n.push(pe.empty);n.push(t)}}function Gl(n,e,t){let r=n.inserted;for(let i=0,s=0,o=0;o<n.sections.length;){let a=n.sections[o++],l=n.sections[o++];if(l<0)i+=a,s+=a;else{let c=i,h=s,u=pe.empty;for(;c+=a,h+=l,l&&r&&(u=u.append(r[o-2>>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)a=n.sections[o++],l=n.sections[o++];e(i,c,s,h,u),i=c,s=h}}}function ql(n,e,t,r=!1){let i=[],s=r?[]:null,o=new yi(n),a=new yi(e);for(let l=-1;;){if(o.done&&a.len||a.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&a.ins==-1){let c=Math.min(o.len,a.len);Ue(i,c,-1),o.forward(c),a.forward(c)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len<o.len||a.len==o.len&&!t))){let c=a.len;for(Ue(i,a.ins,-1);c;){let h=Math.min(o.len,c);o.ins>=0&&l<o.i&&o.len<=h&&(Ue(i,0,o.ins),s&&yn(s,i,o.text),l=o.i),o.forward(h),c-=h}a.next()}else if(o.ins>=0){let c=0,h=o.len;for(;h;)if(a.ins==-1){let u=Math.min(h,a.len);c+=u,h-=u,a.forward(u)}else if(a.ins==0&&a.len<h)h-=a.len,a.next();else break;Ue(i,c,l<o.i?o.ins:0),s&&l<o.i&&yn(s,i,o.text),l=o.i,o.forward(o.len-h)}else{if(o.done&&a.done)return s?Te.createSet(i,s):Wt.create(i);throw new Error("Mismatched change set lengths")}}}function wm(n,e,t=!1){let r=[],i=t?[]:null,s=new yi(n),o=new yi(e);for(let a=!1;;){if(s.done&&o.done)return i?Te.createSet(r,i):Wt.create(r);if(s.ins==0)Ue(r,s.len,0,a),s.next();else if(o.len==0&&!o.done)Ue(r,0,o.ins,a),i&&yn(i,r,o.text),o.next();else{if(s.done||o.done)throw new Error("Mismatched change set lengths");{let l=Math.min(s.len2,o.len),c=r.length;if(s.ins==-1){let h=o.ins==-1?-1:o.off?0:o.ins;Ue(r,l,h,a),i&&h&&yn(i,r,o.text)}else o.ins==-1?(Ue(r,s.off?0:s.len,l,a),i&&yn(i,r,s.textBit(l))):(Ue(r,s.off?0:s.len,o.off?0:o.ins,a),i&&!o.off&&yn(i,r,o.text));a=(s.ins>l||o.ins>=0&&o.len>l)&&(a||r.length>c),s.forward2(l),o.forward(l)}}}}class yi{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?pe.empty:e[t]}textBit(e){let{inserted:t}=this.set,r=this.i-2>>1;return r>=t.length&&!e?pe.empty:t[r].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class Hn{constructor(e,t,r){this.from=e,this.to=t,this.flags=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let r,i;return this.empty?r=i=e.mapPos(this.from,t):(r=e.mapPos(this.from,1),i=e.mapPos(this.to,-1)),r==this.from&&i==this.to?this:new Hn(r,i,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return N.range(e,t);let r=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return N.range(this.anchor,r)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return N.range(e.anchor,e.head)}static create(e,t,r){return new Hn(e,t,r)}}class N{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:N.create(this.ranges.map(r=>r.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let r=0;r<this.ranges.length;r++)if(!this.ranges[r].eq(e.ranges[r],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new N([this.main],0)}addRange(e,t=!0){return N.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let r=this.ranges.slice();return r[t]=e,N.create(r,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new N(e.ranges.map(t=>Hn.fromJSON(t)),e.main)}static single(e,t=e){return new N([N.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let r=0,i=0;i<e.length;i++){let s=e[i];if(s.empty?s.from<=r:s.from<r)return N.normalized(e.slice(),t);r=s.to}return new N(e,t)}static cursor(e,t=0,r,i){return Hn.create(e,e,(t==0?0:t<0?8:16)|(r==null?7:Math.min(6,r))|(i??16777215)<<6)}static range(e,t,r,i){let s=(r??16777215)<<6|(i==null?7:Math.min(6,i));return t<e?Hn.create(t,e,48|s):Hn.create(e,t,(t>e?8:0)|s)}static normalized(e,t=0){let r=e[t];e.sort((i,s)=>i.from-s.from),t=e.indexOf(r);for(let i=1;i<e.length;i++){let s=e[i],o=e[i-1];if(s.empty?s.from<=o.to:s.from<o.to){let a=o.from,l=Math.max(s.to,o.to);i<=t&&t--,e.splice(--i,2,s.anchor>s.head?N.range(l,a):N.range(a,l))}}return new N(e,t)}}function km(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let Zc=0;class G{constructor(e,t,r,i,s){this.combine=e,this.compareInput=t,this.compare=r,this.isStatic=i,this.id=Zc++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new G(e.combine||(t=>t),e.compareInput||((t,r)=>t===r),e.compare||(e.combine?(t,r)=>t===r:eh),!!e.static,e.enables)}of(e){return new jo([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new jo(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new jo(e,this,2,t)}from(e,t){return t||(t=r=>r),this.compute([e],r=>t(r.field(e)))}}function eh(n,e){return n==e||n.length==e.length&&n.every((t,r)=>t===e[r])}class jo{constructor(e,t,r,i){this.dependencies=e,this.facet=t,this.type=r,this.value=i,this.id=Zc++}dynamicSlot(e){var t;let r=this.value,i=this.facet.compareInput,s=this.id,o=e[s]>>1,a=this.type==2,l=!1,c=!1,h=[];for(let u of this.dependencies)u=="doc"?l=!0:u=="selection"?c=!0:((t=e[u.id])!==null&&t!==void 0?t:1)&1||h.push(e[u.id]);return{create(u){return u.values[o]=r(u),1},update(u,f){if(l&&f.docChanged||c&&(f.docChanged||f.selection)||Yl(u,h)){let p=r(u);if(a?!Qu(p,u.values[o],i):!i(p,u.values[o]))return u.values[o]=p,1}return 0},reconfigure:(u,f)=>{let p,m=f.config.address[s];if(m!=null){let g=Fo(f,m);if(this.dependencies.every(y=>y instanceof G?f.facet(y)===u.facet(y):y instanceof Ve?f.field(y,!1)==u.field(y,!1):!0)||(a?Qu(p=r(u),g,i):i(p=r(u),g)))return u.values[o]=g,0}else p=r(u);return u.values[o]=p,1}}}}function Qu(n,e,t){if(n.length!=e.length)return!1;for(let r=0;r<n.length;r++)if(!t(n[r],e[r]))return!1;return!0}function Yl(n,e){let t=!1;for(let r of e)oi(n,r)&1&&(t=!0);return t}function Xv(n,e,t){let r=t.map(l=>n[l.id]),i=t.map(l=>l.type),s=r.filter(l=>!(l&1)),o=n[e.id]>>1;function a(l){let c=[];for(let h=0;h<r.length;h++){let u=Fo(l,r[h]);if(i[h]==2)for(let f of u)c.push(f);else c.push(u)}return e.combine(c)}return{create(l){for(let c of r)oi(l,c);return l.values[o]=a(l),1},update(l,c){if(!Yl(l,s))return 0;let h=a(l);return e.compare(h,l.values[o])?0:(l.values[o]=h,1)},reconfigure(l,c){let h=Yl(l,r),u=c.config.facets[e.id],f=c.facet(e);if(u&&!h&&eh(t,u))return l.values[o]=f,0;let p=a(l);return e.compare(p,f)?(l.values[o]=f,0):(l.values[o]=p,1)}}}const Qs=G.define({static:!0});class Ve{constructor(e,t,r,i,s){this.id=e,this.createF=t,this.updateF=r,this.compareF=i,this.spec=s,this.provides=void 0}static define(e){let t=new Ve(Zc++,e.create,e.update,e.compare||((r,i)=>r===i),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Qs).find(r=>r.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:r=>(r.values[t]=this.create(r),1),update:(r,i)=>{let s=r.values[t],o=this.updateF(s,i);return this.compareF(s,o)?0:(r.values[t]=o,1)},reconfigure:(r,i)=>{let s=r.facet(Qs),o=i.facet(Qs),a;return(a=s.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(r.values[t]=a.create(r),1):i.config.address[this.id]!=null?(r.values[t]=i.field(this),0):(r.values[t]=this.create(r),1)}}}init(e){return[this,Qs.of({field:this,create:e})]}get extension(){return this}}const Fn={lowest:4,low:3,default:2,high:1,highest:0};function Gr(n){return e=>new Sm(e,n)}const Xn={highest:Gr(Fn.highest),high:Gr(Fn.high),default:Gr(Fn.default),low:Gr(Fn.low),lowest:Gr(Fn.lowest)};class Sm{constructor(e,t){this.inner=e,this.prec=t}}class fa{of(e){return new Ql(this,e)}reconfigure(e){return fa.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Ql{constructor(e,t){this.compartment=e,this.inner=t}}class $o{constructor(e,t,r,i,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=r,this.address=i,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<r.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,r){let i=[],s=Object.create(null),o=new Map;for(let f of Zv(e,t,o))f instanceof Ve?i.push(f):(s[f.facet.id]||(s[f.facet.id]=[])).push(f);let a=Object.create(null),l=[],c=[];for(let f of i)a[f.id]=c.length<<1,c.push(p=>f.slot(p));let h=r?.config.facets;for(let f in s){let p=s[f],m=p[0].facet,g=h&&h[f]||[];if(p.every(y=>y.type==0))if(a[m.id]=l.length<<1|1,eh(g,p))l.push(r.facet(m));else{let y=m.combine(p.map(v=>v.value));l.push(r&&m.compare(y,r.facet(m))?r.facet(m):y)}else{for(let y of p)y.type==0?(a[y.id]=l.length<<1|1,l.push(y.value)):(a[y.id]=c.length<<1,c.push(v=>y.dynamicSlot(v)));a[m.id]=c.length<<1,c.push(y=>Xv(y,m,p))}}let u=c.map(f=>f(a));return new $o(e,o,u,a,l,s)}}function Zv(n,e,t){let r=[[],[],[],[],[]],i=new Map;function s(o,a){let l=i.get(o);if(l!=null){if(l<=a)return;let c=r[l].indexOf(o);c>-1&&r[l].splice(c,1),o instanceof Ql&&t.delete(o.compartment)}if(i.set(o,a),Array.isArray(o))for(let c of o)s(c,a);else if(o instanceof Ql){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),s(c,a)}else if(o instanceof Sm)s(o.inner,o.prec);else if(o instanceof Ve)r[a].push(o),o.provides&&s(o.provides,a);else if(o instanceof jo)r[a].push(o),o.facet.extensions&&s(o.facet.extensions,Fn.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(c,a)}}return s(n,Fn.default),r.reduce((o,a)=>o.concat(a))}function oi(n,e){if(e&1)return 2;let t=e>>1,r=n.status[t];if(r==4)throw new Error("Cyclic dependency between fields and/or facets");if(r&2)return r;n.status[t]=4;let i=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|i}function Fo(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const Cm=G.define(),Jl=G.define({combine:n=>n.some(e=>e),static:!0}),Om=G.define({combine:n=>n.length?n[0]:void 0,static:!0}),jm=G.define(),Pm=G.define(),Am=G.define(),Mm=G.define({combine:n=>n.length?n[0]:!1});class Gt{constructor(e,t){this.type=e,this.value=t}static define(){return new e2}}class e2{of(e){return new Gt(this,e)}}class t2{constructor(e){this.map=e}of(e){return new ie(this,e)}}class ie{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new ie(this.type,t)}is(e){return this.type==e}static define(e={}){return new t2(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let r=[];for(let i of e){let s=i.map(t);s&&r.push(s)}return r}}ie.reconfigure=ie.define();ie.appendConfig=ie.define();class Le{constructor(e,t,r,i,s,o){this.startState=e,this.changes=t,this.selection=r,this.effects=i,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,r&&km(r,t.newLength),s.some(a=>a.type==Le.time)||(this.annotations=s.concat(Le.time.of(Date.now())))}static create(e,t,r,i,s,o){return new Le(e,t,r,i,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(Le.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}Le.time=Gt.define();Le.userEvent=Gt.define();Le.addToHistory=Gt.define();Le.remote=Gt.define();function n2(n,e){let t=[];for(let r=0,i=0;;){let s,o;if(r<n.length&&(i==e.length||e[i]>=n[r]))s=n[r++],o=n[r++];else if(i<e.length)s=e[i++],o=e[i++];else return t;!t.length||t[t.length-1]<s?t.push(s,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function Dm(n,e,t){var r;let i,s,o;return t?(i=e.changes,s=Te.empty(e.changes.length),o=n.changes.compose(e.changes)):(i=e.changes.map(n.changes),s=n.changes.mapDesc(e.changes,!0),o=n.changes.compose(i)),{changes:o,selection:e.selection?e.selection.map(s):(r=n.selection)===null||r===void 0?void 0:r.map(i),effects:ie.mapEffects(n.effects,i).concat(ie.mapEffects(e.effects,s)),annotations:n.annotations.length?n.annotations.concat(e.annotations):e.annotations,scrollIntoView:n.scrollIntoView||e.scrollIntoView}}function Xl(n,e,t){let r=e.selection,i=pr(e.annotations);return e.userEvent&&(i=i.concat(Le.userEvent.of(e.userEvent))),{changes:e.changes instanceof Te?e.changes:Te.of(e.changes||[],t,n.facet(Om)),selection:r&&(r instanceof N?r:N.single(r.anchor,r.head)),effects:pr(e.effects),annotations:i,scrollIntoView:!!e.scrollIntoView}}function Em(n,e,t){let r=Xl(n,e.length?e[0]:{},n.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let s=1;s<e.length;s++){e[s].filter===!1&&(t=!1);let o=!!e[s].sequential;r=Dm(r,Xl(n,e[s],o?r.changes.newLength:n.doc.length),o)}let i=Le.create(n,r.changes,r.selection,r.effects,r.annotations,r.scrollIntoView);return i2(t?r2(i):i)}function r2(n){let e=n.startState,t=!0;for(let i of e.facet(jm)){let s=i(n);if(s===!1){t=!1;break}Array.isArray(s)&&(t=t===!0?s:n2(t,s))}if(t!==!0){let i,s;if(t===!1)s=n.changes.invertedDesc,i=Te.empty(e.doc.length);else{let o=n.changes.filter(t);i=o.changes,s=o.filtered.mapDesc(o.changes).invertedDesc}n=Le.create(e,i,n.selection&&n.selection.map(s),ie.mapEffects(n.effects,s),n.annotations,n.scrollIntoView)}let r=e.facet(Pm);for(let i=r.length-1;i>=0;i--){let s=r[i](n);s instanceof Le?n=s:Array.isArray(s)&&s.length==1&&s[0]instanceof Le?n=s[0]:n=Em(e,pr(s),!1)}return n}function i2(n){let e=n.startState,t=e.facet(Am),r=n;for(let i=t.length-1;i>=0;i--){let s=t[i](n);s&&Object.keys(s).length&&(r=Dm(r,Xl(e,s,n.changes.newLength),!0))}return r==n?n:Le.create(e,n.changes,n.selection,r.effects,r.annotations,r.scrollIntoView)}const s2=[];function pr(n){return n==null?s2:Array.isArray(n)?n:[n]}var we=function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n}(we||(we={}));const o2=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Zl;try{Zl=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function a2(n){if(Zl)return Zl.test(n);for(let e=0;e<n.length;e++){let t=n[e];if(/\w/.test(t)||t>"€"&&(t.toUpperCase()!=t.toLowerCase()||o2.test(t)))return!0}return!1}function l2(n){return e=>{if(!/\S/.test(e))return we.Space;if(a2(e))return we.Word;for(let t=0;t<n.length;t++)if(e.indexOf(n[t])>-1)return we.Word;return we.Other}}class ce{constructor(e,t,r,i,s,o){this.config=e,this.doc=t,this.selection=r,this.values=i,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let a=0;a<this.config.dynamicSlots.length;a++)oi(this,a<<1);this.computeSlot=null}field(e,t=!0){let r=this.config.address[e.id];if(r==null){if(t)throw new RangeError("Field is not present in this state");return}return oi(this,r),Fo(this,r)}update(...e){return Em(this,e,!0)}applyTransaction(e){let t=this.config,{base:r,compartments:i}=t;for(let a of e.effects)a.is(fa.reconfigure)?(t&&(i=new Map,t.compartments.forEach((l,c)=>i.set(c,l)),t=null),i.set(a.value.compartment,a.value.extension)):a.is(ie.reconfigure)?(t=null,r=a.value):a.is(ie.appendConfig)&&(t=null,r=pr(r).concat(a.value));let s;t?s=e.startState.values.slice():(t=$o.resolve(r,i,this),s=new ce(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(Jl)?e.newSelection:e.newSelection.asSingle();new ce(t,e.newDoc,o,s,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:N.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,r=e(t.ranges[0]),i=this.changes(r.changes),s=[r.range],o=pr(r.effects);for(let a=1;a<t.ranges.length;a++){let l=e(t.ranges[a]),c=this.changes(l.changes),h=c.map(i);for(let f=0;f<a;f++)s[f]=s[f].map(h);let u=i.mapDesc(c,!0);s.push(l.range.map(u)),i=i.compose(h),o=ie.mapEffects(o,h).concat(ie.mapEffects(pr(l.effects),u))}return{changes:i,selection:N.create(s,t.mainIndex),effects:o}}changes(e=[]){return e instanceof Te?e:Te.of(e,this.doc.length,this.facet(ce.lineSeparator))}toText(e){return pe.of(e.split(this.facet(ce.lineSeparator)||Kl))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(oi(this,t),Fo(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let r in e){let i=e[r];i instanceof Ve&&this.config.address[i.id]!=null&&(t[r]=i.spec.toJSON(this.field(e[r]),this))}return t}static fromJSON(e,t={},r){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let i=[];if(r){for(let s in r)if(Object.prototype.hasOwnProperty.call(e,s)){let o=r[s],a=e[s];i.push(o.init(l=>o.spec.fromJSON(a,l)))}}return ce.create({doc:e.doc,selection:N.fromJSON(e.selection),extensions:t.extensions?i.concat([t.extensions]):i})}static create(e={}){let t=$o.resolve(e.extensions||[],new Map),r=e.doc instanceof pe?e.doc:pe.of((e.doc||"").split(t.staticFacet(ce.lineSeparator)||Kl)),i=e.selection?e.selection instanceof N?e.selection:N.single(e.selection.anchor,e.selection.head):N.single(0);return km(i,r.length),t.staticFacet(Jl)||(i=i.asSingle()),new ce(t,r,i,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(ce.tabSize)}get lineBreak(){return this.facet(ce.lineSeparator)||`
56
+ `}get readOnly(){return this.facet(Mm)}phrase(e,...t){for(let r of this.facet(ce.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(r,i)=>{if(i=="$")return"$";let s=+(i||1);return!s||s>t.length?r:t[s-1]})),e}languageDataAt(e,t,r=-1){let i=[];for(let s of this.facet(Cm))for(let o of s(this,t,r))Object.prototype.hasOwnProperty.call(o,e)&&i.push(o[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return l2(t.length?t[0]:"")}wordAt(e){let{text:t,from:r,length:i}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,a=e-r;for(;o>0;){let l=Ne(t,o,!1);if(s(t.slice(l,o))!=we.Word)break;o=l}for(;a<i;){let l=Ne(t,a);if(s(t.slice(a,l))!=we.Word)break;a=l}return o==a?null:N.range(o+r,a+r)}}ce.allowMultipleSelections=Jl;ce.tabSize=G.define({combine:n=>n.length?n[0]:4});ce.lineSeparator=Om;ce.readOnly=Mm;ce.phrases=G.define({compare(n,e){let t=Object.keys(n),r=Object.keys(e);return t.length==r.length&&t.every(i=>n[i]==e[i])}});ce.languageData=Cm;ce.changeFilter=jm;ce.transactionFilter=Pm;ce.transactionExtender=Am;fa.reconfigure=ie.define();function qt(n,e,t={}){let r={};for(let i of n)for(let s of Object.keys(i)){let o=i[s],a=r[s];if(a===void 0)r[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))r[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let i in e)r[i]===void 0&&(r[i]=e[i]);return r}class kn{eq(e){return this==e}range(e,t=e){return xi.create(e,t,this)}}kn.prototype.startSide=kn.prototype.endSide=0;kn.prototype.point=!1;kn.prototype.mapMode=Qe.TrackDel;function th(n,e){return n==e||n.constructor==e.constructor&&n.eq(e)}class xi{constructor(e,t,r){this.from=e,this.to=t,this.value=r}static create(e,t,r){return new xi(e,t,r)}}function ec(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}class nh{constructor(e,t,r,i){this.from=e,this.to=t,this.value=r,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,r,i=0){let s=r?this.to:this.from;for(let o=i,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(r?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,r,i){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(r,1e9,!1,s);s<o;s++)if(i(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let r=[],i=[],s=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],h=this.from[l]+e,u=this.to[l]+e,f,p;if(h==u){let m=t.mapPos(h,c.startSide,c.mapMode);if(m==null||(f=p=m,c.startSide!=c.endSide&&(p=t.mapPos(h,c.endSide),p<f)))continue}else if(f=t.mapPos(h,c.startSide),p=t.mapPos(u,c.endSide),f>p||f==p&&c.startSide>0&&c.endSide<=0)continue;(p-f||c.endSide-c.startSide)<0||(o<0&&(o=f),c.point&&(a=Math.max(a,p-f)),r.push(c),i.push(f-o),s.push(p-o))}return{mapped:r.length?new nh(i,s,r,a):null,pos:o}}}class le{constructor(e,t,r,i){this.chunkPos=e,this.chunk=t,this.nextLayer=r,this.maxPoint=i}static create(e,t,r,i){return new le(e,t,r,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:r=!1,filterFrom:i=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(r&&(t=t.slice().sort(ec)),this.isEmpty)return t.length?le.of(t):this;let a=new Tm(this,null,-1).goto(0),l=0,c=[],h=new rn;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let u=t[l++];h.addInner(u.from,u.to,u.value)||c.push(u)}else a.rangeIndex==1&&a.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(a.chunkIndex)<t[l].from)&&(!o||i>this.chunkEnd(a.chunkIndex)||s<this.chunkPos[a.chunkIndex])&&h.addChunk(this.chunkPos[a.chunkIndex],this.chunk[a.chunkIndex])?a.nextChunk():((!o||i>a.to||s<a.from||o(a.from,a.to,a.value))&&(h.addInner(a.from,a.to,a.value)||c.push(xi.create(a.from,a.to,a.value))),a.next());return h.finishInner(this.nextLayer.isEmpty&&!c.length?le.empty:this.nextLayer.update({add:c,filter:o,filterFrom:i,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],r=[],i=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)i=Math.max(i,l.maxPoint),t.push(l),r.push(e.mapPos(a));else if(c===!0){let{mapped:h,pos:u}=l.map(a,e);h&&(i=Math.max(i,h.maxPoint),t.push(h),r.push(u))}}let s=this.nextLayer.map(e);return t.length==0?s:new le(r,t,s||le.empty,i)}between(e,t,r){if(!this.isEmpty){for(let i=0;i<this.chunk.length;i++){let s=this.chunkPos[i],o=this.chunk[i];if(t>=s&&e<=s+o.length&&o.between(s,e-s,t-s,r)===!1)return}this.nextLayer.between(e,t,r)}}iter(e=0){return vi.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return vi.from(e).goto(t)}static compare(e,t,r,i,s=-1){let o=e.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=s),a=t.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=s),l=Ju(o,a,r),c=new qr(o,l,s),h=new qr(a,l,s);r.iterGaps((u,f,p)=>Xu(c,u,h,f,p,i)),r.empty&&r.length==0&&Xu(c,0,h,0,0,i)}static eq(e,t,r=0,i){i==null&&(i=999999999);let s=e.filter(h=>!h.isEmpty&&t.indexOf(h)<0),o=t.filter(h=>!h.isEmpty&&e.indexOf(h)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let a=Ju(s,o),l=new qr(s,a,0).goto(r),c=new qr(o,a,0).goto(r);for(;;){if(l.to!=c.to||!tc(l.active,c.active)||l.point&&(!c.point||!th(l.point,c.point)))return!1;if(l.to>i)return!0;l.next(),c.next()}}static spans(e,t,r,i,s=-1){let o=new qr(e,null,s).goto(t),a=t,l=o.openStart;for(;;){let c=Math.min(o.to,r);if(o.point){let h=o.activeForPoint(o.to),u=o.pointFrom<t?h.length+1:o.point.startSide<0?h.length:Math.min(h.length,l);i.point(a,c,o.point,h,u,o.pointRank),l=Math.min(o.openEnd(c),h.length)}else c>a&&(i.span(a,c,o.active,l),l=o.openEnd(c));if(o.to>r)return l+(o.point&&o.to>r?1:0);a=o.to,o.next()}}static of(e,t=!1){let r=new rn;for(let i of e instanceof xi?[e]:t?c2(e):e)r.add(i.from,i.to,i.value);return r.finish()}static join(e){if(!e.length)return le.empty;let t=e[e.length-1];for(let r=e.length-2;r>=0;r--)for(let i=e[r];i!=le.empty;i=i.nextLayer)t=new le(i.chunkPos,i.chunk,t,Math.max(i.maxPoint,t.maxPoint));return t}}le.empty=new le([],[],null,-1);function c2(n){if(n.length>1)for(let e=n[0],t=1;t<n.length;t++){let r=n[t];if(ec(e,r)>0)return n.slice().sort(ec);e=r}return n}le.empty.nextLayer=le.empty;class rn{finishChunk(e){this.chunks.push(new nh(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,r){this.addInner(e,t,r)||(this.nextLayer||(this.nextLayer=new rn)).add(e,t,r)}addInner(e,t,r){let i=e-this.lastTo||r.startSide-this.last.endSide;if(i<=0&&(e-this.lastFrom||r.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return i<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=r,this.lastFrom=e,this.lastTo=t,this.value.push(r),r.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let r=t.value.length-1;return this.last=t.value[r],this.lastFrom=t.from[r]+e,this.lastTo=t.to[r]+e,!0}finish(){return this.finishInner(le.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=le.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Ju(n,e,t){let r=new Map;for(let s of n)for(let o=0;o<s.chunk.length;o++)s.chunk[o].maxPoint<=0&&r.set(s.chunk[o],s.chunkPos[o]);let i=new Set;for(let s of e)for(let o=0;o<s.chunk.length;o++){let a=r.get(s.chunk[o]);a!=null&&(t?t.mapPos(a):a)==s.chunkPos[o]&&!t?.touchesRange(a,a+s.chunk[o].length)&&i.add(s.chunk[o])}return i}class Tm{constructor(e,t,r,i=0){this.layer=e,this.skip=t,this.minPoint=r,this.rank=i}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,r){for(;this.chunkIndex<this.layer.chunk.length;){let i=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(i)||this.layer.chunkEnd(this.chunkIndex)<e||i.maxPoint<this.minPoint))break;this.chunkIndex++,r=!1}if(this.chunkIndex<this.layer.chunk.length){let i=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!r||this.rangeIndex<i)&&this.setRangeIndex(i)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],r=e+t.from[this.rangeIndex];if(this.from=r,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}}class vi{constructor(e){this.heap=e}static from(e,t=null,r=-1){let i=[];for(let s=0;s<e.length;s++)for(let o=e[s];!o.isEmpty;o=o.nextLayer)o.maxPoint>=r&&i.push(new Tm(o,t,r,s));return i.length==1?i[0]:new vi(i)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let r of this.heap)r.goto(e,t);for(let r=this.heap.length>>1;r>=0;r--)_a(this.heap,r);return this.next(),this}forward(e,t){for(let r of this.heap)r.forward(e,t);for(let r=this.heap.length>>1;r>=0;r--)_a(this.heap,r);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),_a(this.heap,0)}}}function _a(n,e){for(let t=n[e];;){let r=(e<<1)+1;if(r>=n.length)break;let i=n[r];if(r+1<n.length&&i.compare(n[r+1])>=0&&(i=n[r+1],r++),t.compare(i)<0)break;n[r]=t,n[e]=i,e=r}}class qr{constructor(e,t,r){this.minPoint=r,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=vi.from(e,t,r)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Js(this.active,e),Js(this.activeTo,e),Js(this.activeRank,e),this.minActive=Zu(this.active,this.activeTo)}addActive(e){let t=0,{value:r,to:i,rank:s}=this.cursor;for(;t<this.activeRank.length&&(s-this.activeRank[t]||i-this.activeTo[t])>0;)t++;Xs(this.active,t,r),Xs(this.activeTo,t,i),Xs(this.activeRank,t,s),e&&Xs(e,t,this.cursor.from),this.minActive=Zu(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let r=this.openStart<0?[]:null;for(;;){let i=this.minActive;if(i>-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>e){this.to=this.activeTo[i],this.endSide=this.active[i].endSide;break}this.removeActive(i),r&&Js(r,i)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(r),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=s,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=s.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(r){this.openStart=0;for(let i=r.length-1;i>=0&&r[i]<e;i--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let r=this.active.length-1;r>=0&&!(this.activeRank[r]<this.pointRank);r--)(this.activeTo[r]>e||this.activeTo[r]==e&&this.active[r].endSide>=this.point.endSide)&&t.push(this.active[r]);return t.reverse()}openEnd(e){let t=0;for(let r=this.activeTo.length-1;r>=0&&this.activeTo[r]>e;r--)t++;return t}}function Xu(n,e,t,r,i,s){n.goto(e),t.goto(r);let o=r+i,a=r,l=r-e,c=!!s.boundChange;for(let h=!1;;){let u=n.to+l-t.to,f=u||n.endSide-t.endSide,p=f<0?n.to+l:t.to,m=Math.min(p,o);if(n.point||t.point?(n.point&&t.point&&th(n.point,t.point)&&tc(n.activeForPoint(n.to),t.activeForPoint(t.to))||s.comparePoint(a,m,n.point,t.point),h=!1):(h&&s.boundChange(a),m>a&&!tc(n.active,t.active)&&s.compareRange(a,m,n.active,t.active),c&&m<o&&(u||n.openEnd(p)!=t.openEnd(p))&&(h=!0)),p>o)break;a=p,f<=0&&n.next(),f>=0&&t.next()}}function tc(n,e){if(n.length!=e.length)return!1;for(let t=0;t<n.length;t++)if(n[t]!=e[t]&&!th(n[t],e[t]))return!1;return!0}function Js(n,e){for(let t=e,r=n.length-1;t<r;t++)n[t]=n[t+1];n.pop()}function Xs(n,e,t){for(let r=n.length-1;r>=e;r--)n[r+1]=n[r];n[e]=t}function Zu(n,e){let t=-1,r=1e9;for(let i=0;i<e.length;i++)(e[i]-r||n[i].endSide-n[t].endSide)<0&&(t=i,r=e[i]);return t}function Mr(n,e,t=n.length){let r=0;for(let i=0;i<t&&i<n.length;)n.charCodeAt(i)==9?(r+=e-r%e,i++):(r++,i=Ne(n,i));return r}function nc(n,e,t,r){for(let i=0,s=0;;){if(s>=e)return i;if(i==n.length)break;s+=n.charCodeAt(i)==9?t-s%t:1,i=Ne(n,i)}return r===!0?-1:n.length}const rc="ͼ",ed=typeof Symbol>"u"?"__"+rc:Symbol.for(rc),ic=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),td=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class Sn{constructor(e,t){this.rules=[];let{finish:r}=t||{};function i(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,a,l,c){let h=[],u=/^@(\w+)\b/.exec(o[0]),f=u&&u[1]=="keyframes";if(u&&a==null)return l.push(o[0]+";");for(let p in a){let m=a[p];if(/&/.test(p))s(p.split(/,\s*/).map(g=>o.map(y=>g.replace(/&/,y))).reduce((g,y)=>g.concat(y)),m,l);else if(m&&typeof m=="object"){if(!u)throw new RangeError("The value of a property ("+p+") should be a primitive value.");s(i(p),m,h,f)}else m!=null&&h.push(p.replace(/_.*/,"").replace(/[A-Z]/g,g=>"-"+g.toLowerCase())+": "+m+";")}(h.length||f)&&l.push((r&&!u&&!c?o.map(r):o).join(", ")+" {"+h.join(" ")+"}")}for(let o in e)s(i(o),e[o],this.rules)}getRules(){return this.rules.join(`
57
+ `)}static newName(){let e=td[ed]||1;return td[ed]=e+1,rc+e.toString(36)}static mount(e,t,r){let i=e[ic],s=r&&r.nonce;i?s&&i.setNonce(s):i=new h2(e,s),i.mount(Array.isArray(t)?t:[t],e)}}let nd=new Map;class h2{constructor(e,t){let r=e.ownerDocument||e,i=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let s=nd.get(r);if(s)return e[ic]=s;this.sheet=new i.CSSStyleSheet,nd.set(r,this)}else this.styleTag=r.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[ic]=this}mount(e,t){let r=this.sheet,i=0,s=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<s&&l>-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),r)for(let c=0;c<a.rules.length;c++)r.insertRule(a.rules[c],i++)}else{for(;s<l;)i+=this.modules[s++].rules.length;i+=a.rules.length,s++}}if(r)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
58
+ `;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}}var Cn={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},wi={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},u2=typeof navigator<"u"&&/Mac/.test(navigator.platform),d2=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Fe=0;Fe<10;Fe++)Cn[48+Fe]=Cn[96+Fe]=String(Fe);for(var Fe=1;Fe<=24;Fe++)Cn[Fe+111]="F"+Fe;for(var Fe=65;Fe<=90;Fe++)Cn[Fe]=String.fromCharCode(Fe+32),wi[Fe]=String.fromCharCode(Fe);for(var Wa in Cn)wi.hasOwnProperty(Wa)||(wi[Wa]=Cn[Wa]);function f2(n){var e=u2&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||d2&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?wi:Cn)[n.keyCode]||n.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function be(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var i=t[r];typeof i=="string"?n.setAttribute(r,i):i!=null&&(n[r]=i)}e++}for(;e<arguments.length;e++)Nm(n,arguments[e]);return n}function Nm(n,e){if(typeof e=="string")n.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)n.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)Nm(n,e[t]);else throw new RangeError("Unsupported child node: "+e)}let Ye=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},sc=typeof document<"u"?document:{documentElement:{style:{}}};const oc=/Edge\/(\d+)/.exec(Ye.userAgent),Lm=/MSIE \d/.test(Ye.userAgent),ac=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Ye.userAgent),pa=!!(Lm||ac||oc),rd=!pa&&/gecko\/(\d+)/i.test(Ye.userAgent),Ua=!pa&&/Chrome\/(\d+)/.exec(Ye.userAgent),p2="webkitFontSmoothing"in sc.documentElement.style,lc=!pa&&/Apple Computer/.test(Ye.vendor),id=lc&&(/Mobile\/\w+/.test(Ye.userAgent)||Ye.maxTouchPoints>2);var K={mac:id||/Mac/.test(Ye.platform),windows:/Win/.test(Ye.platform),linux:/Linux|X11/.test(Ye.platform),ie:pa,ie_version:Lm?sc.documentMode||6:ac?+ac[1]:oc?+oc[1]:0,gecko:rd,gecko_version:rd?+(/Firefox\/(\d+)/.exec(Ye.userAgent)||[0,0])[1]:0,chrome:!!Ua,chrome_version:Ua?+Ua[1]:0,ios:id,android:/Android\b/.test(Ye.userAgent),webkit_version:p2?+(/\bAppleWebKit\/(\d+)/.exec(Ye.userAgent)||[0,0])[1]:0,safari:lc,safari_version:lc?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Ye.userAgent)||[0,0])[1]:0,tabSize:sc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function rh(n,e){for(let t in n)t=="class"&&e.class?e.class+=" "+n.class:t=="style"&&e.style?e.style+=";"+n.style:e[t]=n[t];return e}const zo=Object.create(null);function ih(n,e,t){if(n==e)return!0;n||(n=zo),e||(e=zo);let r=Object.keys(n),i=Object.keys(e);if(r.length-0!=i.length-0)return!1;for(let s of r)if(s!=t&&(i.indexOf(s)==-1||n[s]!==e[s]))return!1;return!0}function m2(n,e){for(let t=n.attributes.length-1;t>=0;t--){let r=n.attributes[t].name;e[r]==null&&n.removeAttribute(r)}for(let t in e){let r=e[t];t=="style"?n.style.cssText=r:n.getAttribute(t)!=r&&n.setAttribute(t,r)}}function sd(n,e,t){let r=!1;if(e)for(let i in e)t&&i in t||(r=!0,i=="style"?n.style.cssText="":n.removeAttribute(i));if(t)for(let i in t)e&&e[i]==t[i]||(r=!0,i=="style"?n.style.cssText=t[i]:n.setAttribute(i,t[i]));return r}function g2(n){let e=Object.create(null);for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];e[r.name]=r.value}return e}class Yt{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,r){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}}var ze=function(n){return n[n.Text=0]="Text",n[n.WidgetBefore=1]="WidgetBefore",n[n.WidgetAfter=2]="WidgetAfter",n[n.WidgetRange=3]="WidgetRange",n}(ze||(ze={}));class ee extends kn{constructor(e,t,r,i){super(),this.startSide=e,this.endSide=t,this.widget=r,this.spec=i}get heightRelevant(){return!1}static mark(e){return new ks(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),r=!!e.block;return t+=r&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new Gn(e,t,t,r,e.widget||null,!1)}static replace(e){let t=!!e.block,r,i;if(e.isBlockGap)r=-5e8,i=4e8;else{let{start:s,end:o}=Rm(e,t);r=(s?t?-3e8:-1:5e8)-1,i=(o?t?2e8:1:-6e8)+1}return new Gn(e,r,i,t,e.widget||null,!0)}static line(e){return new Ss(e)}static set(e,t=!1){return le.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}ee.none=le.empty;class ks extends ee{constructor(e){let{start:t,end:r}=Rm(e);super(t?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?rh(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||zo}eq(e){return this==e||e instanceof ks&&this.tagName==e.tagName&&ih(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}ks.prototype.point=!1;class Ss extends ee{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Ss&&this.spec.class==e.spec.class&&ih(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}Ss.prototype.mapMode=Qe.TrackBefore;Ss.prototype.point=!0;class Gn extends ee{constructor(e,t,r,i,s,o){super(t,r,s,e),this.block=i,this.isReplace=o,this.mapMode=i?t<=0?Qe.TrackBefore:Qe.TrackAfter:Qe.TrackDel}get type(){return this.startSide!=this.endSide?ze.WidgetRange:this.startSide<=0?ze.WidgetBefore:ze.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof Gn&&b2(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}Gn.prototype.point=!0;function Rm(n,e=!1){let{inclusiveStart:t,inclusiveEnd:r}=n;return t==null&&(t=n.inclusive),r==null&&(r=n.inclusive),{start:t??e,end:r??e}}function b2(n,e){return n==e||!!(n&&e&&n.compare(e))}function mr(n,e,t,r=0){let i=t.length-1;i>=0&&t[i]+r>=n?t[i]=Math.max(t[i],e):t.push(n,e)}class ki extends kn{constructor(e,t){super(),this.tagName=e,this.attributes=t}eq(e){return e==this||e instanceof ki&&this.tagName==e.tagName&&ih(this.attributes,e.attributes)}static create(e){return new ki(e.tagName,e.attributes||zo)}static set(e,t=!1){return le.of(e,t)}}ki.prototype.startSide=ki.prototype.endSide=-1;function Si(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}function cc(n,e){return e?n==e||n.contains(e.nodeType!=1?e.parentNode:e):!1}function Po(n,e){if(!e.anchorNode)return!1;try{return cc(n,e.anchorNode)}catch{return!1}}function ai(n){return n.nodeType==3?Oi(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function li(n,e,t,r){return t?od(n,e,t,r,-1)||od(n,e,t,r,1):!1}function On(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}function Vo(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(n.nodeName)}function od(n,e,t,r,i){for(;;){if(n==t&&e==r)return!0;if(e==(i<0?0:sn(n))){if(n.nodeName=="DIV")return!1;let s=n.parentNode;if(!s||s.nodeType!=1)return!1;e=On(n)+(i<0?0:1),n=s}else if(n.nodeType==1){if(n=n.childNodes[e+(i<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;e=i<0?sn(n):0}else return!1}}function sn(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}function Ci(n,e){let t=e?n.left:n.right;return{left:t,right:t,top:n.top,bottom:n.bottom}}function y2(n){let e=n.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function Im(n,e){let t=e.width/n.offsetWidth,r=e.height/n.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-n.offsetWidth)<1)&&(t=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(e.height-n.offsetHeight)<1)&&(r=1),{scaleX:t,scaleY:r}}function x2(n,e,t,r,i,s,o,a){let l=n.ownerDocument,c=l.defaultView||window;for(let h=n,u=!1;h&&!u;)if(h.nodeType==1){let f,p=h==l.body,m=1,g=1;if(p)f=y2(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(u=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let S=h.getBoundingClientRect();({scaleX:m,scaleY:g}=Im(h,S)),f={left:S.left,right:S.left+h.clientWidth*m,top:S.top,bottom:S.top+h.clientHeight*g}}let y=0,v=0;if(i=="nearest")e.top<f.top?(v=e.top-(f.top+o),t>0&&e.bottom>f.bottom+v&&(v=e.bottom-f.bottom+o)):e.bottom>f.bottom&&(v=e.bottom-f.bottom+o,t<0&&e.top-v<f.top&&(v=e.top-(f.top+o)));else{let S=e.bottom-e.top,C=f.bottom-f.top;v=(i=="center"&&S<=C?e.top+S/2-C/2:i=="start"||i=="center"&&t<0?e.top-o:e.bottom-C+o)-f.top}if(r=="nearest"?e.left<f.left?(y=e.left-(f.left+s),t>0&&e.right>f.right+y&&(y=e.right-f.right+s)):e.right>f.right&&(y=e.right-f.right+s,t<0&&e.left<f.left+y&&(y=e.left-(f.left+s))):y=(r=="center"?e.left+(e.right-e.left)/2-(f.right-f.left)/2:r=="start"==a?e.left-s:e.right-(f.right-f.left)+s)-f.left,y||v)if(p)c.scrollBy(y,v);else{let S=0,C=0;if(v){let A=h.scrollTop;h.scrollTop+=v/g,C=(h.scrollTop-A)*g}if(y){let A=h.scrollLeft;h.scrollLeft+=y/m,S=(h.scrollLeft-A)*m}e={left:e.left-S,top:e.top-C,right:e.right-S,bottom:e.bottom-C},S&&Math.abs(S-y)<1&&(r="nearest"),C&&Math.abs(C-v)<1&&(i="nearest")}if(p)break;(e.top<f.top||e.bottom>f.bottom||e.left<f.left||e.right>f.right)&&(e={left:Math.max(e.left,f.left),right:Math.min(e.right,f.right),top:Math.max(e.top,f.top),bottom:Math.min(e.bottom,f.bottom)}),h=h.assignedSlot||h.parentNode}else if(h.nodeType==11)h=h.host;else break}function v2(n){let e=n.ownerDocument,t,r;for(let i=n.parentNode;i&&!(i==e.body||t&&r);)if(i.nodeType==1)!r&&i.scrollHeight>i.clientHeight&&(r=i),!t&&i.scrollWidth>i.clientWidth&&(t=i),i=i.assignedSlot||i.parentNode;else if(i.nodeType==11)i=i.host;else break;return{x:t,y:r}}class w2{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:r}=e;this.set(t,Math.min(e.anchorOffset,t?sn(t):0),r,Math.min(e.focusOffset,r?sn(r):0))}set(e,t,r,i){this.anchorNode=e,this.anchorOffset=t,this.focusNode=r,this.focusOffset=i}}let $n=null;K.safari&&K.safari_version>=26&&($n=!1);function Bm(n){if(n.setActive)return n.setActive();if($n)return n.focus($n);let e=[];for(let t=n;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(n.focus($n==null?{get preventScroll(){return $n={preventScroll:!0},!0}}:void 0),!$n){$n=!1;for(let t=0;t<e.length;){let r=e[t++],i=e[t++],s=e[t++];r.scrollTop!=i&&(r.scrollTop=i),r.scrollLeft!=s&&(r.scrollLeft=s)}}}let ad;function Oi(n,e,t=e){let r=ad||(ad=document.createRange());return r.setEnd(n,t),r.setStart(n,e),r}function gr(n,e,t,r){let i={key:e,code:e,keyCode:t,which:t,cancelable:!0};r&&({altKey:i.altKey,ctrlKey:i.ctrlKey,shiftKey:i.shiftKey,metaKey:i.metaKey}=r);let s=new KeyboardEvent("keydown",i);s.synthetic=!0,n.dispatchEvent(s);let o=new KeyboardEvent("keyup",i);return o.synthetic=!0,n.dispatchEvent(o),s.defaultPrevented||o.defaultPrevented}function k2(n){for(;n;){if(n&&(n.nodeType==9||n.nodeType==11&&n.host))return n;n=n.assignedSlot||n.parentNode}return null}function S2(n,e){let t=e.focusNode,r=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=r)return!1;for(r=Math.min(r,sn(t));;)if(r){if(t.nodeType!=1)return!1;let i=t.childNodes[r-1];i.contentEditable=="false"?r--:(t=i,r=sn(t))}else{if(t==n)return!0;r=On(t),t=t.parentNode}}function $m(n){return n.scrollTop>Math.max(1,n.scrollHeight-n.clientHeight-4)}function Fm(n,e){for(let t=n,r=e;;){if(t.nodeType==3&&r>0)return{node:t,offset:r};if(t.nodeType==1&&r>0){if(t.contentEditable=="false")return null;t=t.childNodes[r-1],r=sn(t)}else if(t.parentNode&&!Vo(t))r=On(t),t=t.parentNode;else return null}}function zm(n,e){for(let t=n,r=e;;){if(t.nodeType==3&&r<t.nodeValue.length)return{node:t,offset:r};if(t.nodeType==1&&r<t.childNodes.length){if(t.contentEditable=="false")return null;t=t.childNodes[r],r=0}else if(t.parentNode&&!Vo(t))r=On(t)+1,t=t.parentNode;else return null}}class Ot{constructor(e,t,r=!0){this.node=e,this.offset=t,this.precise=r}static before(e,t){return new Ot(e.parentNode,On(e),t)}static after(e,t){return new Ot(e.parentNode,On(e)+1,t)}}var xe=function(n){return n[n.LTR=0]="LTR",n[n.RTL=1]="RTL",n}(xe||(xe={}));const qn=xe.LTR,sh=xe.RTL;function Vm(n){let e=[];for(let t=0;t<n.length;t++)e.push(1<<+n[t]);return e}const C2=Vm("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),O2=Vm("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),hc=Object.create(null),Lt=[];for(let n of["()","[]","{}"]){let e=n.charCodeAt(0),t=n.charCodeAt(1);hc[e]=t,hc[t]=-e}function Hm(n){return n<=247?C2[n]:1424<=n&&n<=1524?2:1536<=n&&n<=1785?O2[n-1536]:1774<=n&&n<=2220?4:8192<=n&&n<=8204?256:64336<=n&&n<=65023?4:1}const j2=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class nn{get dir(){return this.level%2?sh:qn}constructor(e,t,r){this.from=e,this.to=t,this.level=r}side(e,t){return this.dir==t==e?this.to:this.from}forward(e,t){return e==(this.dir==t)}static find(e,t,r,i){let s=-1;for(let o=0;o<e.length;o++){let a=e[o];if(a.from<=t&&a.to>=t){if(a.level==r)return o;(s<0||(i!=0?i<0?a.from<t:a.to>t:e[s].level>a.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}}function _m(n,e){if(n.length!=e.length)return!1;for(let t=0;t<n.length;t++){let r=n[t],i=e[t];if(r.from!=i.from||r.to!=i.to||r.direction!=i.direction||!_m(r.inner,i.inner))return!1}return!0}const ye=[];function P2(n,e,t,r,i){for(let s=0;s<=r.length;s++){let o=s?r[s-1].to:e,a=s<r.length?r[s].from:t,l=s?256:i;for(let c=o,h=l,u=l;c<a;c++){let f=Hm(n.charCodeAt(c));f==512?f=h:f==8&&u==4&&(f=16),ye[c]=f==4?2:f,f&7&&(u=f),h=f}for(let c=o,h=l,u=l;c<a;c++){let f=ye[c];if(f==128)c<a-1&&h==ye[c+1]&&h&24?f=ye[c]=h:ye[c]=256;else if(f==64){let p=c+1;for(;p<a&&ye[p]==64;)p++;let m=c&&h==8||p<t&&ye[p]==8?u==1?1:8:256;for(let g=c;g<p;g++)ye[g]=m;c=p-1}else f==8&&u==1&&(ye[c]=1);h=f,f&7&&(u=f)}}}function A2(n,e,t,r,i){let s=i==1?2:1;for(let o=0,a=0,l=0;o<=r.length;o++){let c=o?r[o-1].to:e,h=o<r.length?r[o].from:t;for(let u=c,f,p,m;u<h;u++)if(p=hc[f=n.charCodeAt(u)])if(p<0){for(let g=a-3;g>=0;g-=3)if(Lt[g+1]==-p){let y=Lt[g+2],v=y&2?i:y&4?y&1?s:i:0;v&&(ye[u]=ye[Lt[g]]=v),a=g;break}}else{if(Lt.length==189)break;Lt[a++]=u,Lt[a++]=f,Lt[a++]=l}else if((m=ye[u])==2||m==1){let g=m==i;l=g?0:1;for(let y=a-3;y>=0;y-=3){let v=Lt[y+2];if(v&2)break;if(g)Lt[y+2]|=2;else{if(v&4)break;Lt[y+2]|=4}}}}}function M2(n,e,t,r){for(let i=0,s=r;i<=t.length;i++){let o=i?t[i-1].to:n,a=i<t.length?t[i].from:e;for(let l=o;l<a;){let c=ye[l];if(c==256){let h=l+1;for(;;)if(h==a){if(i==t.length)break;h=t[i++].to,a=i<t.length?t[i].from:e}else if(ye[h]==256)h++;else break;let u=s==1,f=(h<e?ye[h]:r)==1,p=u==f?u?1:2:r;for(let m=h,g=i,y=g?t[g-1].to:n;m>l;)m==y&&(m=t[--g].from,y=g?t[g-1].to:n),ye[--m]=p;l=h}else s=c,l++}}}function uc(n,e,t,r,i,s,o){let a=r%2?2:1;if(r%2==i%2)for(let l=e,c=0;l<t;){let h=!0,u=!1;if(c==s.length||l<s[c].from){let g=ye[l];g!=a&&(h=!1,u=g==16)}let f=!h&&a==1?[]:null,p=h?r:r+1,m=l;e:for(;;)if(c<s.length&&m==s[c].from){if(u)break e;let g=s[c];if(!h)for(let y=g.to,v=c+1;;){if(y==t)break e;if(v<s.length&&s[v].from==y)y=s[v++].to;else{if(ye[y]==a)break e;break}}if(c++,f)f.push(g);else{g.from>l&&o.push(new nn(l,g.from,p));let y=g.direction==qn!=!(p%2);dc(n,y?r+1:r,i,g.inner,g.from,g.to,o),l=g.to}m=g.to}else{if(m==t||(h?ye[m]!=a:ye[m]==a))break;m++}f?uc(n,l,m,r+1,i,f,o):l<m&&o.push(new nn(l,m,p)),l=m}else for(let l=t,c=s.length;l>e;){let h=!0,u=!1;if(!c||l>s[c-1].to){let g=ye[l-1];g!=a&&(h=!1,u=g==16)}let f=!h&&a==1?[]:null,p=h?r:r+1,m=l;e:for(;;)if(c&&m==s[c-1].to){if(u)break e;let g=s[--c];if(!h)for(let y=g.from,v=c;;){if(y==e)break e;if(v&&s[v-1].to==y)y=s[--v].from;else{if(ye[y-1]==a)break e;break}}if(f)f.push(g);else{g.to<l&&o.push(new nn(g.to,l,p));let y=g.direction==qn!=!(p%2);dc(n,y?r+1:r,i,g.inner,g.from,g.to,o),l=g.from}m=g.from}else{if(m==e||(h?ye[m-1]!=a:ye[m-1]==a))break;m--}f?uc(n,m,l,r+1,i,f,o):m<l&&o.push(new nn(m,l,p)),l=m}}function dc(n,e,t,r,i,s,o){let a=e%2?2:1;P2(n,i,s,r,a),A2(n,i,s,r,a),M2(i,s,r,a),uc(n,i,s,e,t,r,o)}function D2(n,e,t){if(!n)return[new nn(0,0,e==sh?1:0)];if(e==qn&&!t.length&&!j2.test(n))return Wm(n.length);if(t.length)for(;n.length>ye.length;)ye[ye.length]=256;let r=[],i=e==qn?0:1;return dc(n,i,i,t,0,n.length,r),r}function Wm(n){return[new nn(0,n,0)]}let Um="";function E2(n,e,t,r,i){var s;let o=r.head-n.from,a=nn.find(e,o,(s=r.bidiLevel)!==null&&s!==void 0?s:-1,r.assoc),l=e[a],c=l.side(i,t);if(o==c){let f=a+=i?1:-1;if(f<0||f>=e.length)return null;l=e[a=f],o=l.side(!i,t),c=l.side(i,t)}let h=Ne(n.text,o,l.forward(i,t));(h<l.from||h>l.to)&&(h=c),Um=n.text.slice(Math.min(o,h),Math.max(o,h));let u=a==(i?e.length-1:0)?null:e[a+(i?1:-1)];return u&&h==c&&u.level+(i?0:1)<l.level?N.cursor(u.side(!i,t)+n.from,u.forward(i,t)?1:-1,u.level):N.cursor(h+n.from,l.forward(i,t)?-1:1,l.level)}function T2(n,e,t){for(let r=e;r<t;r++){let i=Hm(n.charCodeAt(r));if(i==1)return qn;if(i==2||i==4)return sh}return qn}const Km=G.define(),Gm=G.define(),qm=G.define(),Ym=G.define(),fc=G.define(),Qm=G.define(),Jm=G.define(),oh=G.define(),ah=G.define(),Xm=G.define({combine:n=>n.some(e=>e)}),Zm=G.define({combine:n=>n.some(e=>e)}),eg=G.define();class br{constructor(e,t="nearest",r="nearest",i=5,s=5,o=!1){this.range=e,this.y=t,this.x=r,this.yMargin=i,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new br(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new br(N.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const Zs=ie.define({map:(n,e)=>n.map(e)}),tg=ie.define();function nt(n,e,t){let r=n.facet(Ym);r.length?r[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}const tn=G.define({combine:n=>n.length?n[0]:!0});let N2=0;const lr=G.define({combine(n){return n.filter((e,t)=>{for(let r=0;r<t;r++)if(n[r].plugin==e.plugin)return!1;return!0})}});class Ae{constructor(e,t,r,i,s){this.id=e,this.create=t,this.domEventHandlers=r,this.domEventObservers=i,this.baseExtensions=s(this),this.extension=this.baseExtensions.concat(lr.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(lr.of({plugin:this,arg:e}))}static define(e,t){const{eventHandlers:r,eventObservers:i,provide:s,decorations:o}=t||{};return new Ae(N2++,e,r,i,a=>{let l=[];return o&&l.push(ji.of(c=>{let h=c.plugin(a);return h?o(h):ee.none})),s&&l.push(s(a)),l})}static fromClass(e,t){return Ae.define((r,i)=>new e(r,i),t)}}class Ka{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(r){if(nt(t.state,r,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){nt(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(r){nt(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const ng=G.define(),lh=G.define(),ji=G.define(),rg=G.define(),ig=G.define(),Cs=G.define(),sg=G.define();function ld(n,e){let t=n.state.facet(sg);if(!t.length)return t;let r=t.map(s=>s instanceof Function?s(n):s),i=[];return le.spans(r,e.from,e.to,{point(){},span(s,o,a,l){let c=s-e.from,h=o-e.from,u=i;for(let f=a.length-1;f>=0;f--,l--){let p=a[f].spec.bidiIsolate,m;if(p==null&&(p=T2(e.text,c,h)),l>0&&u.length&&(m=u[u.length-1]).to==c&&m.direction==p)m.to=h,u=m.inner;else{let g={from:c,to:h,direction:p,inner:[]};u.push(g),u=g.inner}}}}),i}const og=G.define();function ch(n){let e=0,t=0,r=0,i=0;for(let s of n.state.facet(og)){let o=s(n);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(i=Math.max(i,o.bottom)))}return{left:e,right:t,top:r,bottom:i}}const Zr=G.define();class gt{constructor(e,t,r,i){this.fromA=e,this.toA=t,this.fromB=r,this.toB=i}join(e){return new gt(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,r=this;for(;t>0;t--){let i=e[t-1];if(!(i.fromA>r.toA)){if(i.toA<r.fromA)break;r=r.join(i),e.splice(t-1,1)}}return e.splice(t,0,r),e}static extendWithRanges(e,t){if(t.length==0)return e;let r=[];for(let i=0,s=0,o=0;;){let a=i<e.length?e[i].fromB:1e9,l=s<t.length?t[s]:1e9,c=Math.min(a,l);if(c==1e9)break;let h=c+o,u=c,f=h;for(;;)if(s<t.length&&t[s]<=u){let p=t[s+1];s+=2,u=Math.max(u,p);for(let m=i;m<e.length&&e[m].fromB<=u;m++)o=e[m].toA-e[m].toB;f=Math.max(f,p+o)}else if(i<e.length&&e[i].fromB<=u){let p=e[i++];u=Math.max(u,p.toB),f=Math.max(f,p.toA),o=p.toA-p.toB}else break;r.push(new gt(h,f,c,u))}return r}}class Ho{constructor(e,t,r){this.view=e,this.state=t,this.transactions=r,this.flags=0,this.startState=e.state,this.changes=Te.empty(this.startState.doc.length);for(let s of r)this.changes=this.changes.compose(s.changes);let i=[];this.changes.iterChangedRanges((s,o,a,l)=>i.push(new gt(s,o,a,l))),this.changedRanges=i}static create(e,t,r){return new Ho(e,t,r)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const L2=[];class Ee{constructor(e,t,r=0){this.dom=e,this.length=t,this.flags=r,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return L2}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&m2(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let r=t;for(let i of this.children){if(i==e)return r;r+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t){return null}domPosFor(e,t){let r=On(this.dom),i=this.length?e>0:t>0;return new Ot(this.parent.dom,r+(i?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof ga)return e;return null}static get(e){return e.cmTile}}class ma extends Ee{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,r=null,i,s=e?.node==t?e:null,o=0;for(let a of this.children){if(a.sync(e),o+=a.length+a.breakAfter,i=r?r.nextSibling:t.firstChild,s&&i!=a.dom&&(s.written=!0),a.dom.parentNode==t)for(;i&&i!=a.dom;)i=cd(i);else t.insertBefore(a.dom,i);r=a.dom}for(i=r?r.nextSibling:t.firstChild,s&&i&&(s.written=!0);i;)i=cd(i);this.length=o}}function cd(n){let e=n.nextSibling;return n.parentNode.removeChild(n),e}class ga extends ma{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=Ee.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],r=this,i=0,s=0;;)if(i==r.children.length){if(!t.length)return;r=r.parent,r.breakAfter&&s++,i=t.pop()}else{let o=r.children[i++];if(o instanceof xn)t.push(i),r=o,i=0;else{let a=s+o.length,l=e(o,s);if(l!==void 0)return l;s=a+o.breakAfter}}}resolveBlock(e,t){let r,i=-1,s,o=-1;if(this.blockTiles((a,l)=>{let c=l+a.length;if(e>=l&&e<=c){if(a.isWidget()&&t>=-1&&t<=1){if(a.flags&32)return!0;a.flags&16&&(r=void 0)}(l<e||e==c&&(t<-1?a.length:a.covers(1)))&&(!r||!a.isWidget()&&r.isWidget())&&(r=a,i=e-l),(c>e||e==l&&(t>1?a.length:a.covers(-1)))&&(!s||!a.isWidget()&&s.isWidget())&&(s=a,o=e-l)}}),!r&&!s)throw new Error("No tile at position "+e);return r&&t<0||!s?{tile:r,offset:i}:{tile:s,offset:o}}}class xn extends ma{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let r=new xn(t||document.createElement(e.tagName),e);return t||(r.flags|=4),r}}class wr extends ma{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,r){let i=new wr(t||document.createElement("div"),e);return(!t||!r)&&(i.flags|=4),i}get domAttrs(){return this.attrs}resolveInline(e,t,r){let i=null,s=-1,o=null,a=-1;function l(h,u){for(let f=0,p=0;f<h.children.length&&p<=u;f++){let m=h.children[f],g=p+m.length;g>=u&&(m.isComposite()?l(m,u-p):(!o||o.isHidden&&(t>0||r&&I2(o,m)))&&(g>u||m.flags&32)?(o=m,a=u-p):(p<u||m.flags&16&&!m.isHidden)&&(i=m,s=u-p)),p=g}}l(this,e);let c=(t<0?i:o)||i||o;return c?{tile:c,offset:c==i?s:a}:null}coordsIn(e,t){let r=this.resolveInline(e,t,!0);return r?r.tile.coordsIn(Math.max(0,r.offset),t):R2(this)}domIn(e,t){let r=this.resolveInline(e,t);if(r){let{tile:i,offset:s}=r;if(this.dom.contains(i.dom))return i.isText()?new Ot(i.dom,Math.min(i.dom.nodeValue.length,s)):i.domPosFor(s,i.flags&16?1:i.flags&32?-1:t);let o=r.tile.parent,a=!1;for(let l of o.children){if(a)return new Ot(l.dom,0);l==r.tile&&(a=!0)}}return new Ot(this.dom,0)}}function R2(n){let e=n.dom.lastChild;if(!e)return n.dom.getBoundingClientRect();let t=ai(e);return t[t.length-1]||null}function I2(n,e){let t=n.coordsIn(0,1),r=e.coordsIn(0,1);return t&&r&&r.top<t.bottom}class tt extends ma{constructor(e,t){super(e),this.mark=t}get domAttrs(){return this.mark.attrs}static of(e,t){let r=new tt(t||document.createElement(e.tagName),e);return t||(r.flags|=4),r}}class _n extends Ee{constructor(e,t){super(e,t.length),this.text=t}sync(e){this.flags&2||(super.sync(e),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text))}isText(){return!0}toString(){return JSON.stringify(this.text)}coordsIn(e,t){let r=this.dom.nodeValue.length;e>r&&(e=r);let i=e,s=e,o=0;e==0&&t<0||e==r&&t>=0?K.chrome||K.gecko||(e?(i--,o=1):s<r&&(s++,o=-1)):t<0?i--:s<r&&s++;let a=Oi(this.dom,i,s).getClientRects();if(!a.length)return null;let l=a[(o?o<0:t>=0)?0:a.length-1];return K.safari&&!o&&l.width==0&&(l=Array.prototype.find.call(a,c=>c.width)||l),o?Ci(l,o<0):l||null}static of(e,t){let r=new _n(t||document.createTextNode(e),e);return t||(r.flags|=2),r}}class kr extends Ee{constructor(e,t,r,i){super(e,t,i),this.widget=r}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,r){let i=this.widget.coordsAt(this.dom,e,t);if(i)return i;if(r)return Ci(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let a=this.flags&16?!0:this.flags&32?!1:e>0;for(let l=a?s.length-1:0;o=s[l],!(e>0?l==0:l==s.length-1||o.top<o.bottom);l+=a?-1:1);return Ci(o,!a)}}get overrideDOMText(){if(!this.length)return pe.empty;let{root:e}=this;if(!e)return pe.empty;let t=this.posAtStart;return e.view.state.doc.slice(t,t+this.length)}destroy(){super.destroy(),this.widget.destroy(this.dom)}static of(e,t,r,i,s){return s||(s=e.toDOM(t),e.editable||(s.contentEditable="false")),new kr(s,r,e,i)}}class _o extends Ee{constructor(e){let t=document.createElement("img");t.className="cm-widgetBuffer",t.setAttribute("aria-hidden","true"),super(t,0,e)}get isHidden(){return!1}get overrideDOMText(){return pe.empty}coordsIn(e){return this.dom.getBoundingClientRect()}}class B2{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,r){let{tile:i,index:s,beforeBreak:o,parents:a}=this;for(;e||t>0;)if(i.isComposite())if(o){if(!e)break;r&&r.break(),e--,o=!1}else if(s==i.children.length){if(!e&&!a.length)break;r&&r.leave(i),o=!!i.breakAfter,{tile:i,index:s}=a.pop(),s++}else{let l=i.children[s],c=l.breakAfter;(t>0?l.length<=e:l.length<e)&&(!r||r.skip(l,0,l.length)!==!1||!l.isComposite)?(o=!!c,s++,e-=l.length):(a.push({tile:i,index:s}),i=l,s=0,r&&l.isComposite()&&r.enter(l))}else if(s==i.length)o=!!i.breakAfter,{tile:i,index:s}=a.pop(),s++;else if(e){let l=Math.min(e,i.length-s);r&&r.skip(i,s,s+l),e-=l,s+=l}else break;return this.tile=i,this.index=s,this.beforeBreak=o,this}get root(){return this.parents.length?this.parents[0].tile:this.tile}}class $2{constructor(e,t,r,i){this.from=e,this.to=t,this.wrapper=r,this.rank=i}}class F2{constructor(e,t,r){this.cache=e,this.root=t,this.blockWrappers=r,this.curLine=null,this.lastBlock=null,this.afterWidget=null,this.pos=0,this.wrappers=[],this.wrapperPos=0}addText(e,t,r,i){var s;this.flushBuffer();let o=this.ensureMarks(t,r),a=o.lastChild;if(a&&a.isText()&&!(a.flags&8)){this.cache.reused.set(a,2);let l=o.children[o.children.length-1]=new _n(a.dom,a.text+e);l.parent=o}else o.append(i||_n.of(e,(s=this.cache.find(_n))===null||s===void 0?void 0:s.dom));this.pos+=e.length,this.afterWidget=null}addComposition(e,t){let r=this.curLine;r.dom!=t.line.dom&&(r.setDOM(this.cache.reused.has(t.line)?Ga(t.line.dom):t.line.dom),this.cache.reused.set(t.line,2));let i=r;for(let a=t.marks.length-1;a>=0;a--){let l=t.marks[a],c=i.lastChild;if(c instanceof tt&&c.mark.eq(l.mark))c.dom!=l.dom&&c.setDOM(Ga(l.dom)),i=c;else{if(this.cache.reused.get(l)){let u=Ee.get(l.dom);u&&u.setDOM(Ga(l.dom))}let h=tt.of(l.mark,l.dom);i.append(h),i=h}this.cache.reused.set(l,2)}let s=Ee.get(e.text);s&&this.cache.reused.set(s,2);let o=new _n(e.text,e.text.nodeValue);o.flags|=8,i.append(o)}addInlineWidget(e,t,r){let i=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);i||this.flushBuffer();let s=this.ensureMarks(t,r);!i&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,r){this.flushBuffer(),this.ensureMarks(t,r).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var r;e||(e=ag);let i=wr.start(e,t||((r=this.cache.find(wr))===null||r===void 0?void 0:r.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=i)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var r;let i=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],a;if(t>0&&(a=i.lastChild)&&a instanceof tt&&a.mark.eq(o))i=a,t--;else{let l=tt.of(o,(r=this.cache.find(tt,c=>c.mark.eq(o)))===null||r===void 0?void 0:r.dom);i.append(l),i=l,t=0}}return i}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!hd(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(K.ios&&hd(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(qa,0,32)||new kr(qa.toDOM(),0,qa,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to<this.pos&&this.wrappers.splice(e,1);for(let e=this.blockWrappers;e.value&&e.from<=this.pos;e.next())if(e.to>=this.pos){let t=new $2(e.from,e.to,e.value,e.rank),r=this.wrappers.length;for(;r>0&&(this.wrappers[r-1].rank-t.rank||this.wrappers[r-1].to-t.to)<0;)r--;this.wrappers.splice(r,0,t)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let r of this.wrappers){let i=t.lastChild;if(r.from<this.pos&&i instanceof xn&&i.wrapper.eq(r.wrapper))t=i;else{let s=xn.of(r.wrapper,(e=this.cache.find(xn,o=>o.wrapper.eq(r.wrapper)))===null||e===void 0?void 0:e.dom);t.append(s),t=s}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),r=this.cache.find(_o,void 0,1);return r&&(r.flags=t),r||new _o(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class z2{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:i,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=i;let a=this.textOff=Math.min(e,i.length);return s?null:i.slice(0,a)}let t=Math.min(this.text.length,this.textOff+e),r=this.text.slice(this.textOff,t);return this.textOff=t,r}}const Wo=[kr,wr,_n,tt,_o,xn,ga];for(let n=0;n<Wo.length;n++)Wo[n].bucket=n;class V2{constructor(e){this.view=e,this.buckets=Wo.map(()=>[]),this.index=Wo.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,r=this.buckets[t];r.length<6?r.push(e):r[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,r=2){let i=e.bucket,s=this.buckets[i],o=this.index[i];for(let a=s.length-1;a>=0;a--){let l=(a+o)%s.length,c=s[l];if((!t||t(c))&&!this.reused.has(c))return s.splice(l,1),l<o&&this.index[i]--,this.reused.set(c,r),c}return null}findWidget(e,t,r){let i=this.buckets[0];if(i.length)for(let s=0,o=0;;s++){if(s==i.length){if(o)return null;o=1,s=0}let a=i[s];if(!this.reused.has(a)&&(o==0?a.widget.compare(e):a.widget.constructor==e.constructor&&e.updateDOM(a.dom,this.view)))return i.splice(s,1),s<this.index[0]&&this.index[0]--,this.reused.set(a,1),a.length=t,a.flags=a.flags&-498|r,a}}reuse(e){return this.reused.set(e,1),e}maybeReuse(e,t=2){if(!this.reused.has(e))return this.reused.set(e,t),e.dom}}class H2{constructor(e,t,r,i,s){this.view=e,this.decorations=i,this.disallowBlockEffectsFor=s,this.openWidget=!1,this.openMarks=0,this.cache=new V2(e),this.text=new z2(e.state.doc),this.builder=new F2(this.cache,new ga(e,e.contentDOM),le.iter(r)),this.cache.reused.set(t,2),this.old=new B2(t),this.reuseWalker={skip:(o,a,l)=>{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let r=t&&this.getCompositionContext(t.text);for(let i=0,s=0,o=0;;){let a=o<e.length?e[o++]:null,l=a?a.fromA:this.old.root.length;if(l>i){let c=l-i;this.preserve(c,!o,!a),i=l,s+=c}if(!a)break;this.forward(a.fromA,a.toA),t&&a.fromA<=t.range.fromA&&a.toA>=t.range.toA?(this.emit(s,t.range.fromB),this.builder.addComposition(t,r),this.text.skip(t.range.toB-t.range.fromB),this.emit(t.range.toB,a.toB)):this.emit(s,a.toB),s=a.toB,i=a.toA}return this.builder.curLine&&this.builder.endLine(),this.builder.root}preserve(e,t,r){let i=U2(this.old),s=this.openMarks;this.old.advance(e,r?1:-1,{skip:(o,a,l)=>{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(l-a);else{let c=l>0||a<o.length?kr.of(o.widget,this.view,l-a,o.flags&496,this.cache.maybeReuse(o)):this.cache.reuse(o);c.flags&256?(c.flags&=-2,this.builder.addBlockWidget(c)):(this.builder.ensureLine(null),this.builder.addInlineWidget(c,i,s),s=i.length)}else if(o.isText())this.builder.ensureLine(null),!a&&l==o.length?this.builder.addText(o.text,i,s,this.cache.reuse(o)):(this.cache.add(o),this.builder.addText(o.text.slice(a,l),i,s)),s=i.length;else if(o.isLine())o.flags&=-2,this.cache.reused.set(o,1),this.builder.addLine(o);else if(o instanceof _o)this.cache.add(o);else if(o instanceof tt)this.builder.ensureLine(null),this.builder.addMark(o,i,s),this.cache.reused.set(o,1),s=i.length;else return!1;this.openWidget=!1},enter:o=>{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof tt&&i.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?i.length&&(i.length=s=0):o instanceof tt&&(i.shift(),s=Math.min(s,i.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let r=null,i=this.builder,s=0,o=le.spans(this.decorations,e,t,{point:(a,l,c,h,u,f)=>{if(c instanceof Gn){if(this.disallowBlockEffectsFor[f]){if(c.block)throw new RangeError("Block decorations may not be specified via plugins");if(l>this.view.state.doc.lineAt(a).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=h.length,u>h.length)i.continueWidget(l-a);else{let p=c.widget||(c.block?Sr.block:Sr.inline),m=_2(c),g=this.cache.findWidget(p,l-a,m)||kr.of(p,this.view,l-a,m);c.block?(c.startSide>0&&i.addLineStartIfNotCovered(r),i.addBlockWidget(g)):(i.ensureLine(r),i.addInlineWidget(g,h,u))}r=null}else r=W2(r,c);l>a&&this.text.skip(l-a)},span:(a,l,c,h)=>{for(let u=a;u<l;){let f=this.text.next(Math.min(512,l-u));f==null?(i.addLineStartIfNotCovered(r),i.addBreak(),u++):(i.ensureLine(r),i.addText(f,c,h),u+=f.length),r=null}}});i.addLineStartIfNotCovered(r),this.openWidget=o>s,this.openMarks=o}forward(e,t){t-e<=10?this.old.advance(t-e,1,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,1,this.reuseWalker))}getCompositionContext(e){let t=[],r=null;for(let i=e.parentNode;;i=i.parentNode){let s=Ee.get(i);if(i==this.view.contentDOM)break;s instanceof tt?t.push(s):s?.isLine()?r=s:i.nodeName=="DIV"&&!r&&i!=this.view.contentDOM?r=new wr(i,ag):t.push(tt.of(new ks({tagName:i.nodeName.toLowerCase(),attributes:g2(i)}),i))}return{line:r,marks:t}}}function hd(n,e){let t=r=>{for(let i of r.children)if((e?i.isText():i.length)||t(i))return!0;return!1};return t(n)}function _2(n){let e=n.isReplace?(n.startSide<0?64:0)|(n.endSide>0?128:0):n.startSide>0?32:16;return n.block&&(e|=256),e}const ag={class:"cm-line"};function W2(n,e){let t=e.spec.attributes,r=e.spec.class;return!t&&!r||(n||(n={class:"cm-line"}),t&&rh(t,n),r&&(n.class+=" "+r)),n}function U2(n){let e=[];for(let t=n.parents.length;t>1;t--){let r=t==n.parents.length?n.tile:n.parents[t].tile;r instanceof tt&&e.push(r.mark)}return e}function Ga(n){let e=Ee.get(n);return e&&e.setDOM(n.cloneNode()),n}class Sr extends Yt{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}Sr.inline=new Sr("span");Sr.block=new Sr("div");const qa=new class extends Yt{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class ud{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=ee.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new ga(e,e.contentDOM),this.updateInner([new gt(0,0,0,e.state.doc.length)],null)}update(e){var t;let r=e.changedRanges;this.minWidth>0&&r.length&&(r.every(({fromA:h,toA:u})=>u<this.minWidthFrom||h>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let i=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?i=this.domChanged.newSel.head:!ew(e.changes,this.hasComposition)&&!e.selectionSet&&(i=e.state.selection.main.head));let s=i>-1?G2(this.view,e.changes,i):null;if(this.domChanged=null,this.hasComposition){let{from:h,to:u}=this.hasComposition;r=new gt(h,u,e.changes.mapPos(h,-1),e.changes.mapPos(u,1)).addToSet(r.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(K.ie||K.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.blockWrappers;this.updateDeco();let l=Q2(o,this.decorations,e.changes);l.length&&(r=gt.extendWithRanges(r,l));let c=X2(a,this.blockWrappers,e.changes);return c.length&&(r=gt.extendWithRanges(r,c)),s&&!r.some(h=>h.fromA<=s.range.fromA&&h.toA>=s.range.toA)&&(r=s.range.addToSet(r.slice())),this.tile.flags&2&&r.length==0?!1:(this.updateInner(r,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:r}=this.view;r.ignore(()=>{if(t||e.length){let o=this.tile,a=new H2(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);this.tile=a.run(e,t),pc(o,a.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=K.chrome||K.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||r.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let i=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let s of this.tile.children)s.isWidget()&&s.widget instanceof Ya&&i.push(s.dom);r.updateGaps(i)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let r of t.effects)r.is(tg)&&(this.editContextFormatting=r.value)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let{dom:r}=this.tile,i=this.view.root.activeElement,s=i==r,o=!s&&!(this.view.state.facet(tn)||r.tabIndex>-1)&&Po(r,this.view.observer.selectionRange)&&!(i&&r.contains(i));if(!(s||t||o))return;let a=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,c,h;if(l.empty?h=c=this.inlineDOMNearPos(l.anchor,l.assoc||1):(h=this.inlineDOMNearPos(l.head,l.head==l.from?1:-1),c=this.inlineDOMNearPos(l.anchor,l.anchor==l.from?1:-1)),K.gecko&&l.empty&&!this.hasComposition&&K2(c)){let f=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(f,c.node.childNodes[c.offset]||null)),c=h=new Ot(f,0),a=!0}let u=this.view.observer.selectionRange;(a||!u.focusNode||(!li(c.node,c.offset,u.anchorNode,u.anchorOffset)||!li(h.node,h.offset,u.focusNode,u.focusOffset))&&!this.suppressWidgetCursorChange(u,l))&&(this.view.observer.ignore(()=>{K.android&&K.chrome&&r.contains(u.focusNode)&&Z2(u.focusNode,r)&&(r.blur(),r.focus({preventScroll:!0}));let f=Si(this.view.root);if(f)if(l.empty){if(K.gecko){let p=q2(c.node,c.offset);if(p&&p!=3){let m=(p==1?Fm:zm)(c.node,c.offset);m&&(c=new Ot(m.node,m.offset))}}f.collapse(c.node,c.offset),l.bidiLevel!=null&&f.caretBidiLevel!==void 0&&(f.caretBidiLevel=l.bidiLevel)}else if(f.extend){f.collapse(c.node,c.offset);try{f.extend(h.node,h.offset)}catch{}}else{let p=document.createRange();l.anchor>l.head&&([c,h]=[h,c]),p.setEnd(h.node,h.offset),p.setStart(c.node,c.offset),f.removeAllRanges(),f.addRange(p)}o&&this.view.root.activeElement==r&&(r.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(c,h)),this.impreciseAnchor=c.precise?null:new Ot(u.anchorNode,u.anchorOffset),this.impreciseHead=h.precise?null:new Ot(u.focusNode,u.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&li(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,r=Si(e.root),{anchorNode:i,anchorOffset:s}=e.observer.selectionRange;if(!r||!t.empty||!t.assoc||!r.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let a=o.posAtStart;if(t.head==a||t.head==a+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let h=this.domAtPos(t.head+t.assoc,t.assoc);r.collapse(h.node,h.offset),r.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let u=e.observer.selectionRange;e.docView.posFromDOM(u.anchorNode,u.anchorOffset)!=t.from&&r.collapse(i,s)}posFromDOM(e,t){let r=this.tile.nearest(e);if(!r)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let i=r.posAtStart;if(r.isComposite()){let s;if(e==r.dom)s=r.dom.childNodes[t];else{let o=sn(e)==0?0:t==0?-1:1;for(;;){let a=e.parentNode;if(a==r.dom)break;o==0&&a.firstChild!=a.lastChild&&(e==a.firstChild?o=-1:o=1),e=a}o<0?s=e:s=e.nextSibling}if(s==r.dom.firstChild)return i;for(;s&&!Ee.get(s);)s=s.nextSibling;if(!s)return i+r.length;for(let o=0,a=i;;o++){let l=r.children[o];if(l.dom==s)return a;a+=l.length+l.breakAfter}}else return r.isText()?e==r.dom?i+t:i+(t?r.length:0):i}domAtPos(e,t){let{tile:r,offset:i}=this.tile.resolveBlock(e,t);return r.isWidget()?r.domPosFor(e,t):r.domIn(i,t)}inlineDOMNearPos(e,t){let r,i=-1,s=!1,o,a=-1,l=!1;return this.tile.blockTiles((c,h)=>{if(c.isWidget()){if(c.flags&32&&h>=e)return!0;c.flags&16&&(s=!0)}else{let u=h+c.length;if(h<=e&&(r=c,i=e-h,s=u<e),u>=e&&!o&&(o=c,a=e-h,l=h>e),h>e&&o)return!0}}),!r&&!o?this.domAtPos(e,t):(s&&o?r=null:l&&r&&(o=null),r&&t<0||!o?r.domIn(i,t):o.domIn(a,t))}coordsAt(e,t){let{tile:r,offset:i}=this.tile.resolveBlock(e,t);return r.isWidget()?r.widget instanceof Ya?null:r.coordsInWidget(i,t,!0):r.coordsIn(i,t)}lineAt(e,t){let{tile:r}=this.tile.resolveBlock(e,t);return r.isLine()?r:null}coordsForChar(e){let{tile:t,offset:r}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function i(s,o){if(s.isComposite())for(let a of s.children){if(a.length>=o){let l=i(a,o);if(l)return l}if(o-=a.length,o<0)break}else if(s.isText()&&o<s.length){let a=Ne(s.text,o);if(a==o)return null;let l=Oi(s.dom,o,a).getClientRects();for(let c=0;c<l.length;c++){let h=l[c];if(c==l.length-1||h.top<h.bottom&&h.left<h.right)return h}}return null}return i(t,r)}measureVisibleLineHeights(e){let t=[],{from:r,to:i}=e,s=this.view.contentDOM.clientWidth,o=s>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==xe.LTR,c=0,h=(u,f,p)=>{for(let m=0;m<u.children.length&&!(f>i);m++){let g=u.children[m],y=f+g.length,v=g.dom.getBoundingClientRect(),{height:S}=v;if(p&&!m&&(c+=v.top-p.top),g instanceof xn)y>r&&h(g,f,v);else if(f>=r&&(c>0&&t.push(-c),t.push(S+c),c=0,o)){let C=g.dom.lastChild,A=C?ai(C):[];if(A.length){let k=A[A.length-1],j=l?k.right-v.left:v.right-k.left;j>a&&(a=j,this.minWidth=s,this.minWidthFrom=f,this.minWidthTo=y)}}p&&m==u.children.length-1&&(c+=p.bottom-v.bottom),f=y+g.breakAfter}};return h(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?xe.RTL:xe.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let a=0,l;for(let c of o.children){if(!c.isText()||/[^ -~]/.test(c.text))return;let h=ai(c.dom);if(h.length!=1)return;a+=h[0].width,l=h[0].height}if(a)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:a/o.length,textHeight:l}}});if(e)return e;let t=document.createElement("div"),r,i,s;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=ai(t.firstChild)[0];r=t.getBoundingClientRect().height,i=o&&o.width?o.width/27:7,s=o&&o.height?o.height:r,t.remove()}),{lineHeight:r,charWidth:i,textHeight:s}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let r=0,i=0;;i++){let s=i==t.viewports.length?null:t.viewports[i],o=s?s.from-1:this.view.state.doc.length;if(o>r){let a=(t.lineBlockAt(o).bottom-t.lineBlockAt(r).top)/this.view.scaleY;e.push(ee.replace({widget:new Ya(a),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!s)break;r=s.to+1}return ee.set(e)}updateDeco(){let e=1,t=this.view.state.facet(ji).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),r=!1,i=this.view.state.facet(ig).map((s,o)=>{let a=typeof s=="function";return a&&(r=!0),a?s(this.view):s});for(i.length&&(this.dynamicDecorationMap[e++]=r,t.push(le.join(i))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;this.blockWrappers=this.view.state.facet(rg).map(s=>typeof s=="function"?s(this.view):s)}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(eg))try{if(c(this.view,e.range,e))return!0}catch(h){nt(this.view.state,h,"scroll handler")}let{range:t}=e,r=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),i;if(!r)return;!t.empty&&(i=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(r={left:Math.min(r.left,i.left),top:Math.min(r.top,i.top),right:Math.max(r.right,i.right),bottom:Math.max(r.bottom,i.bottom)});let s=ch(this.view),o={left:r.left-s.left,top:r.top-s.top,right:r.right+s.right,bottom:r.bottom+s.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;x2(this.view.scrollDOM,o,t.head<t.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,a),-a),Math.max(Math.min(e.yMargin,l),-l),this.view.textDirection==xe.LTR)}lineHasWidget(e){let t=r=>r.isWidget()||r.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){pc(this.tile)}}function pc(n,e){let t=e?.get(n);if(t!=1){t==null&&n.destroy();for(let r of n.children)pc(r,e)}}function K2(n){return n.node.nodeType==1&&n.node.firstChild&&(n.offset==0||n.node.childNodes[n.offset-1].contentEditable=="false")&&(n.offset==n.node.childNodes.length||n.node.childNodes[n.offset].contentEditable=="false")}function lg(n,e){let t=n.observer.selectionRange;if(!t.focusNode)return null;let r=Fm(t.focusNode,t.focusOffset),i=zm(t.focusNode,t.focusOffset),s=r||i;if(i&&r&&i.node!=r.node){let a=Ee.get(i.node);if(!a||a.isText()&&a.text!=i.node.nodeValue)s=i;else if(n.docView.lastCompositionAfterCursor){let l=Ee.get(r.node);!l||l.isText()&&l.text!=r.node.nodeValue||(s=i)}}if(n.docView.lastCompositionAfterCursor=s!=r,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function G2(n,e,t){let r=lg(n,t);if(!r)return null;let{node:i,from:s,to:o}=r,a=i.nodeValue;if(/[\n\r]/.test(a)||n.state.doc.sliceString(r.from,r.to)!=a)return null;let l=e.invertedDesc;return{range:new gt(l.mapPos(s),l.mapPos(o),s,o),text:i}}function q2(n,e){return n.nodeType!=1?0:(e&&n.childNodes[e-1].contentEditable=="false"?1:0)|(e<n.childNodes.length&&n.childNodes[e].contentEditable=="false"?2:0)}let Y2=class{constructor(){this.changes=[]}compareRange(e,t){mr(e,t,this.changes)}comparePoint(e,t){mr(e,t,this.changes)}boundChange(e){mr(e,e,this.changes)}};function Q2(n,e,t){let r=new Y2;return le.compare(n,e,t,r),r.changes}class J2{constructor(){this.changes=[]}compareRange(e,t){mr(e,t,this.changes)}comparePoint(){}boundChange(e){mr(e,e,this.changes)}}function X2(n,e,t){let r=new J2;return le.compare(n,e,t,r),r.changes}function Z2(n,e){for(let t=n;t&&t!=e;t=t.assignedSlot||t.parentNode)if(t.nodeType==1&&t.contentEditable=="false")return!0;return!1}function ew(n,e){let t=!1;return e&&n.iterChangedRanges((r,i)=>{r<e.to&&i>e.from&&(t=!0)}),t}class Ya extends Yt{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function tw(n,e,t=1){let r=n.charCategorizer(e),i=n.doc.lineAt(e),s=e-i.from;if(i.length==0)return N.cursor(e);s==0?t=1:s==i.length&&(t=-1);let o=s,a=s;t<0?o=Ne(i.text,s,!1):a=Ne(i.text,s);let l=r(i.text.slice(o,a));for(;o>0;){let c=Ne(i.text,o,!1);if(r(i.text.slice(c,o))!=l)break;o=c}for(;a<i.length;){let c=Ne(i.text,a);if(r(i.text.slice(a,c))!=l)break;a=c}return N.range(o+i.from,a+i.from)}function nw(n,e,t,r,i){let s=Math.round((r-e.left)*n.defaultCharacterWidth);if(n.lineWrapping&&t.height>n.defaultLineHeight*1.5){let a=n.viewState.heightOracle.textHeight,l=Math.floor((i-t.top-(n.defaultLineHeight-a)*.5)/a);s+=l*n.viewState.heightOracle.lineLength}let o=n.state.sliceDoc(t.from,t.to);return t.from+nc(o,s,n.state.tabSize)}function mc(n,e,t){let r=n.lineBlockAt(e);if(Array.isArray(r.type)){let i;for(let s of r.type){if(s.from>e)break;if(!(s.to<e)){if(s.from<e&&s.to>e)return s;(!i||s.type==ze.Text&&(i.type!=s.type||(t<0?s.from<e:s.to>e)))&&(i=s)}}return i||r}return r}function rw(n,e,t,r){let i=mc(n,e.head,e.assoc||-1),s=!r||i.type!=ze.Text||!(n.lineWrapping||i.widgetLineBreaks)?null:n.coordsAtPos(e.assoc<0&&e.head>i.from?e.head-1:e.head);if(s){let o=n.dom.getBoundingClientRect(),a=n.textDirectionAt(i.from),l=n.posAtCoords({x:t==(a==xe.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(l!=null)return N.cursor(l,t?-1:1)}return N.cursor(t?i.to:i.from,t?-1:1)}function dd(n,e,t,r){let i=n.state.doc.lineAt(e.head),s=n.bidiSpans(i),o=n.textDirectionAt(i.from);for(let a=e,l=null;;){let c=E2(i,s,o,a,t),h=Um;if(!c){if(i.number==(t?n.state.doc.lines:1))return a;h=`
59
+ `,i=n.state.doc.line(i.number+(t?1:-1)),s=n.bidiSpans(i),c=n.visualLineSide(i,!t)}if(l){if(!l(h))return a}else{if(!r)return c;l=r(h)}a=c}}function iw(n,e,t){let r=n.state.charCategorizer(e),i=r(t);return s=>{let o=r(s);return i==we.Space&&(i=o),i==o}}function sw(n,e,t,r){let i=e.head,s=t?1:-1;if(i==(t?n.state.doc.length:0))return N.cursor(i,e.assoc);let o=e.goalColumn,a,l=n.contentDOM.getBoundingClientRect(),c=n.coordsAtPos(i,e.assoc||-1),h=n.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let p=n.viewState.lineBlockAt(i);o==null&&(o=Math.min(l.right-l.left,n.defaultCharacterWidth*(i-p.from))),a=(s<0?p.top:p.bottom)+h}let u=l.left+o,f=r??n.viewState.heightOracle.textHeight>>1;for(let p=0;;p+=10){let m=a+(f+p)*s,g=gc(n,{x:u,y:m},!1,s);return N.cursor(g.pos,g.assoc,void 0,o)}}function ci(n,e,t){for(;;){let r=0;for(let i of n)i.between(e-1,e+1,(s,o,a)=>{if(e>s&&e<o){let l=r||t||(e-s<o-e?-1:1);e=l<0?s:o,r=l}});if(!r)return e}}function cg(n,e){let t=null;for(let r=0;r<e.ranges.length;r++){let i=e.ranges[r],s=null;if(i.empty){let o=ci(n,i.from,0);o!=i.from&&(s=N.cursor(o,-1))}else{let o=ci(n,i.from,-1),a=ci(n,i.to,1);(o!=i.from||a!=i.to)&&(s=N.range(i.from==i.anchor?o:a,i.from==i.head?o:a))}s&&(t||(t=e.ranges.slice()),t[r]=s)}return t?N.create(t,e.mainIndex):e}function Qa(n,e,t){let r=ci(n.state.facet(Cs).map(i=>i(n)),t.from,e.head>t.from?-1:1);return r==t.from?t:N.cursor(r,r<t.from?1:-1)}class Ft{constructor(e,t){this.pos=e,this.assoc=t}}function gc(n,e,t,r){let i=n.contentDOM.getBoundingClientRect(),s=i.top+n.viewState.paddingTop,{x:o,y:a}=e,l=a-s,c;for(;;){if(l<0)return new Ft(0,1);if(l>n.viewState.docHeight)return new Ft(n.state.doc.length,-1);if(c=n.elementAtHeight(l),r==null)break;if(c.type==ze.Text){let f=n.docView.coordsAt(r<0?c.from:c.to,r);if(f&&(r<0?f.top<=l+s:f.bottom>=l+s))break}let u=n.viewState.heightOracle.textHeight/2;l=r>0?c.bottom+u:c.top-u}if(n.viewport.from>=c.to||n.viewport.to<=c.from){if(t)return null;if(c.type==ze.Text){let u=nw(n,i,c,o,a);return new Ft(u,u==c.from?1:-1)}}if(c.type!=ze.Text)return l<(c.top+c.bottom)/2?new Ft(c.from,1):new Ft(c.to,-1);let h=n.docView.lineAt(c.from,2);return(!h||h.length!=c.length)&&(h=n.docView.lineAt(c.from,-2)),hg(n,h,c.from,o,a)}function hg(n,e,t,r,i){let s=-1,o=null,a=1e9,l=1e9,c=i,h=i,u=(f,p)=>{for(let m=0;m<f.length;m++){let g=f[m];if(g.top==g.bottom)continue;let y=g.left>r?g.left-r:g.right<r?r-g.right:0,v=g.top>i?g.top-i:g.bottom<i?i-g.bottom:0;g.top<=h&&g.bottom>=c&&(c=Math.min(g.top,c),h=Math.max(g.bottom,h),v=0),(s<0||(v-l||y-a)<0)&&(s>=0&&l&&a<y&&o.top<=h-2&&o.bottom>=c+2?l=0:(s=p,a=y,l=v,o=g))}};if(e.isText()){for(let p=0;p<e.length;){let m=Ne(e.text,p);if(u(Oi(e.dom,p,m).getClientRects(),p),!a&&!l)break;p=m}return r>(o.left+o.right)/2==(fd(n,s+t)==xe.LTR)?new Ft(t+Ne(e.text,s),-1):new Ft(t+s,1)}else{if(!e.length)return new Ft(t,1);for(let g=0;g<e.children.length;g++){let y=e.children[g];if(y.flags&48)continue;let v=(y.dom.nodeType==1?y.dom:Oi(y.dom,0,y.length)).getClientRects();if(u(v,g),!a&&!l)break}let f=e.children[s],p=e.posBefore(f,t);return f.isComposite()||f.isText()?hg(n,f,p,Math.max(o.left,Math.min(o.right,r)),i):r>(o.left+o.right)/2==(fd(n,s+t)==xe.LTR)?new Ft(p+f.length,-1):new Ft(p,1)}}function fd(n,e){let t=n.state.doc.lineAt(e);return n.bidiSpans(t)[nn.find(n.bidiSpans(t),e-t.from,-1,1)].dir}const ei="￿";class ow{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(ce.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=ei}readRange(e,t){if(!e)return this;let r=e.parentNode;for(let i=e;;){this.findPointBefore(r,i);let s=this.text.length;this.readNode(i);let o=Ee.get(i),a=i.nextSibling;if(a==t){o?.breakAfter&&!a&&r!=this.view.contentDOM&&this.lineBreak();break}let l=Ee.get(a);(o&&l?o.breakAfter:(o?o.breakAfter:Vo(i))||Vo(a)&&(i.nodeName!="BR"||o?.isWidget())&&this.text.length>s)&&!lw(a,t)&&this.lineBreak(),i=a}return this.findPointBefore(r,t),this}readTextNode(e){let t=e.nodeValue;for(let r of this.points)r.node==e&&(r.pos=this.text.length+Math.min(r.offset,t.length));for(let r=0,i=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,a;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,r),o=this.lineSeparator.length):(a=i.exec(t))&&(s=a.index,o=a[0].length),this.append(t.slice(r,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);r=s+o}}readNode(e){let t=Ee.get(e),r=t&&t.overrideDOMText;if(r!=null){this.findPointInside(e,r.length);for(let i=r.iter();!i.next().done;)i.lineBreak?this.lineBreak():this.append(i.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let r of this.points)r.node==e&&e.childNodes[r.offset]==t&&(r.pos=this.text.length)}findPointInside(e,t){for(let r of this.points)(e.nodeType==3?r.node==e:e.contains(r.node))&&(r.pos=this.text.length+(aw(e,r.node,r.offset)?t:0))}}function aw(n,e,t){for(;;){if(!e||t<sn(e))return!1;if(e==n)return!0;t=On(e)+1,e=e.parentNode}}function lw(n,e){let t;for(;!(n==e||!n);n=n.nextSibling){let r=Ee.get(n);if(!r?.isWidget())return!1;r&&(t||(t=[])).push(r)}if(t)for(let r of t){let i=r.overrideDOMText;if(i?.length)return!1}return!0}class pd{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}class cw{constructor(e,t,r,i){this.typeOver=i,this.bounds=null,this.text="",this.domChanged=t>-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=ug(e.docView.tile,t,r,0))){let a=s||o?[]:uw(e),l=new ow(a,e);l.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=l.text,this.newSel=dw(a,this.bounds.from)}else{let a=e.observer.selectionRange,l=s&&s.node==a.focusNode&&s.offset==a.focusOffset||!cc(e.contentDOM,a.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(a.focusNode,a.focusOffset),c=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!cc(e.contentDOM,a.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),h=e.viewport;if((K.ios||K.chrome)&&e.state.selection.main.empty&&l!=c&&(h.from>0||h.to<e.state.doc.length)){let u=Math.min(l,c),f=Math.max(l,c),p=h.from-u,m=h.to-f;(p==0||p==1||u==0)&&(m==0||m==-1||f==e.state.doc.length)&&(l=0,c=e.state.doc.length)}e.inputState.composing>-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(N.range(c,l)):this.newSel=N.single(c,l)}}}function ug(n,e,t,r){if(n.isComposite()){let i=-1,s=-1,o=-1,a=-1;for(let l=0,c=r,h=r;l<n.children.length;l++){let u=n.children[l],f=c+u.length;if(c<e&&f>t)return ug(u,e,t,c);if(f>=e&&i==-1&&(i=l,s=c),c>t&&u.dom.parentNode==n.dom){o=l,a=h;break}h=f,c=f+u.breakAfter}return{from:s,to:a<0?r+n.length:a,startDOM:(i?n.children[i-1].dom.nextSibling:null)||n.dom.firstChild,endDOM:o<n.children.length&&o>=0?n.children[o].dom:null}}else return n.isText()?{from:r,to:r+n.length,startDOM:n.dom,endDOM:n.dom.nextSibling}:null}function dg(n,e){let t,{newSel:r}=e,i=n.state.selection.main,s=n.inputState.lastKeyTime>Date.now()-100?n.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:a}=e.bounds,l=i.from,c=null;(s===8||K.android&&e.text.length<a-o)&&(l=i.to,c="end");let h=fg(n.state.doc.sliceString(o,a,ei),e.text,l-o,c);h&&(K.chrome&&s==13&&h.toB==h.from+2&&e.text.slice(h.from,h.toB)==ei+ei&&h.toB--,t={from:o+h.from,to:o+h.toA,insert:pe.of(e.text.slice(h.from,h.toB).split(ei))})}else r&&(!n.hasFocus&&n.state.facet(tn)||r.main.eq(i))&&(r=null);if(!t&&!r)return!1;if(!t&&e.typeOver&&!i.empty&&r&&r.main.empty?t={from:i.from,to:i.to,insert:n.state.doc.slice(i.from,i.to)}:(K.mac||K.android)&&t&&t.from==t.to&&t.from==i.head-1&&/^\. ?$/.test(t.insert.toString())&&n.contentDOM.getAttribute("autocorrect")=="off"?(r&&t.insert.length==2&&(r=N.single(r.main.anchor-1,r.main.head-1)),t={from:t.from,to:t.to,insert:pe.of([t.insert.toString().replace("."," ")])}):t&&t.from>=i.from&&t.to<=i.to&&(t.from!=i.from||t.to!=i.to)&&i.to-i.from-(t.to-t.from)<=4?t={from:i.from,to:i.to,insert:n.state.doc.slice(i.from,t.from).append(t.insert).append(n.state.doc.slice(t.to,i.to))}:n.state.doc.lineAt(i.from).to<i.to&&n.docView.lineHasWidget(i.to)&&n.inputState.insertingTextAt>Date.now()-50?t={from:i.from,to:i.to,insert:n.state.toText(n.inputState.insertingText)}:K.chrome&&t&&t.from==t.to&&t.from==i.head&&t.insert.toString()==`
60
+ `&&n.lineWrapping&&(r&&(r=N.single(r.main.anchor-1,r.main.head-1)),t={from:i.from,to:i.to,insert:pe.of([" "])}),t)return hh(n,t,r,s);if(r&&!r.main.eq(i)){let o=!1,a="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(o=!0),a=n.inputState.lastSelectionOrigin,a=="select.pointer"&&(r=cg(n.state.facet(Cs).map(l=>l(n)),r))),n.dispatch({selection:r,scrollIntoView:o,userEvent:a}),!0}else return!1}function hh(n,e,t,r=-1){if(K.ios&&n.inputState.flushIOSKey(e))return!0;let i=n.state.selection.main;if(K.android&&(e.to==i.to&&(e.from==i.from||e.from==i.from-1&&n.state.sliceDoc(e.from,i.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&gr(n.contentDOM,"Enter",13)||(e.from==i.from-1&&e.to==i.to&&e.insert.length==0||r==8&&e.insert.length<e.to-e.from&&e.to>i.head)&&gr(n.contentDOM,"Backspace",8)||e.from==i.from&&e.to==i.to+1&&e.insert.length==0&&gr(n.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();n.inputState.composing>=0&&n.inputState.composing++;let o,a=()=>o||(o=hw(n,e,t));return n.state.facet(Qm).some(l=>l(n,e.from,e.to,s,a))||n.dispatch(a()),!0}function hw(n,e,t){let r,i=n.state,s=i.selection.main,o=-1;if(e.from==e.to&&e.from<s.from||e.from>s.to){let l=e.from<s.from?-1:1,c=l<0?s.from:s.to,h=ci(i.facet(Cs).map(u=>u(n)),c,l);e.from==h&&(o=h)}if(o>-1)r={changes:e,selection:N.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&n.inputState.composing<0){let l=s.from<e.from?i.sliceDoc(s.from,e.from):"",c=s.to>e.to?i.sliceDoc(e.to,s.to):"";r=i.replaceSelection(n.state.toText(l+e.insert.sliceString(0,void 0,n.state.lineBreak)+c))}else{let l=i.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(i.selection.ranges.length>1&&(n.inputState.composing>=0||n.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let h=n.state.sliceDoc(e.from,e.to),u,f=t&&lg(n,t.main.head);if(f){let m=e.insert.length-(e.to-e.from);u={from:f.from,to:f.to-m}}else u=n.state.doc.lineAt(s.head);let p=s.to-e.to;r=i.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:l,range:c||m.map(l)};let g=m.to-p,y=g-h.length;if(n.state.sliceDoc(y,g)!=h||g>=u.from&&y<=u.to)return{range:m};let v=i.changes({from:y,to:g,insert:e.insert}),S=m.to-s.to;return{changes:v,range:c?N.range(Math.max(0,c.anchor+S),Math.max(0,c.head+S)):m.map(v)}})}else r={changes:l,selection:c&&i.selection.replaceRange(c)}}let a="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,a+=".compose",n.inputState.compositionFirstChange&&(a+=".start",n.inputState.compositionFirstChange=!1)),i.update(r,{userEvent:a,scrollIntoView:!0})}function fg(n,e,t,r){let i=Math.min(n.length,e.length),s=0;for(;s<i&&n.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==i&&n.length==e.length)return null;let o=n.length,a=e.length;for(;o>0&&a>0&&n.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(r=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o<s&&n.length<e.length){let l=t<=s&&t>=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a<s){let l=t<=s&&t>=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function uw(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:t,anchorOffset:r,focusNode:i,focusOffset:s}=n.observer.selectionRange;return t&&(e.push(new pd(t,r)),(i!=t||s!=r)&&e.push(new pd(i,s))),e}function dw(n,e){if(n.length==0)return null;let t=n[0].pos,r=n.length==2?n[1].pos:t;return t>-1&&r>-1?N.single(t+e,r+e):null}class fw{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,K.safari&&e.contentDOM.addEventListener("input",()=>null),K.gecko&&Aw(e.contentDOM.ownerDocument)}handleEvent(e){!ww(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let r=this.handlers[e];if(r){for(let i of r.observers)i(this.view,t);for(let i of r.handlers){if(t.defaultPrevented)break;if(i(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=pw(e),r=this.handlers,i=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,a=r[s];a&&o!=!a.handlers.length&&(i.removeEventListener(s,this.handleEvent),a=null),a||i.addEventListener(s,this.handleEvent,{passive:o})}for(let s in r)s!="scroll"&&!t[s]&&i.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&mg.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),K.android&&K.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return K.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=pg.find(r=>r.keyCode==e.keyCode))&&!e.ctrlKey||mw.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from<e.to&&/^\S+$/.test(e.insert.toString())?!1:(this.pendingIOSKey=void 0,gr(this.view.contentDOM,t.key,t.keyCode,t instanceof KeyboardEvent?t:void 0))}ignoreDuringComposition(e){return!/^key/.test(e.type)||e.synthetic?!1:this.composing>0?!0:K.safari&&!K.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function md(n,e){return(t,r)=>{try{return e.call(n,r,t)}catch(i){nt(t.state,i)}}}function pw(n){let e=Object.create(null);function t(r){return e[r]||(e[r]={observers:[],handlers:[]})}for(let r of n){let i=r.spec,s=i&&i.plugin.domEventHandlers,o=i&&i.plugin.domEventObservers;if(s)for(let a in s){let l=s[a];l&&t(a).handlers.push(md(r.value,l))}if(o)for(let a in o){let l=o[a];l&&t(a).observers.push(md(r.value,l))}}for(let r in Pt)t(r).handlers.push(Pt[r]);for(let r in wt)t(r).observers.push(wt[r]);return e}const pg=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],mw="dthko",mg=[16,17,18,20,91,92,224,225],eo=6;function to(n){return Math.max(0,n)*.7+8}function gw(n,e){return Math.max(Math.abs(n.clientX-e.clientX),Math.abs(n.clientY-e.clientY))}class bw{constructor(e,t,r,i){this.view=e,this.startEvent=t,this.style=r,this.mustSelect=i,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=v2(e.contentDOM),this.atoms=e.state.facet(Cs).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(ce.allowMultipleSelections)&&yw(e,t),this.dragging=vw(e,t)&&yg(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&gw(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,r=0,i=0,s=0,o=this.view.win.innerWidth,a=this.view.win.innerHeight;this.scrollParents.x&&({left:i,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=ch(this.view);e.clientX-l.left<=i+eo?t=-to(i-e.clientX):e.clientX+l.right>=o-eo&&(t=to(e.clientX-o)),e.clientY-l.top<=s+eo?r=-to(s-e.clientY):e.clientY+l.bottom>=a-eo&&(r=to(e.clientY-a)),this.setScrollSpeed(t,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,r=cg(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!r.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:r,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function yw(n,e){let t=n.state.facet(Km);return t.length?t[0](e):K.mac?e.metaKey:e.ctrlKey}function xw(n,e){let t=n.state.facet(Gm);return t.length?t[0](e):K.mac?!e.altKey:!e.ctrlKey}function vw(n,e){let{main:t}=n.state.selection;if(t.empty)return!1;let r=Si(n.root);if(!r||r.rangeCount==0)return!0;let i=r.getRangeAt(0).getClientRects();for(let s=0;s<i.length;s++){let o=i[s];if(o.left<=e.clientX&&o.right>=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function ww(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,r;t!=n.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(r=Ee.get(t))&&r.isWidget()&&!r.isHidden&&r.widget.ignoreEvent(e))return!1;return!0}const Pt=Object.create(null),wt=Object.create(null),gg=K.ie&&K.ie_version<15||K.ios&&K.webkit_version<604;function kw(n){let e=n.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{n.focus(),t.remove(),bg(n,t.value)},50)}function ba(n,e,t){for(let r of n.facet(e))t=r(t,n);return t}function bg(n,e){e=ba(n.state,oh,e);let{state:t}=n,r,i=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(bc!=null&&t.selection.ranges.every(l=>l.empty)&&bc==s.toString()){let l=-1;r=t.changeByRange(c=>{let h=t.doc.lineAt(c.from);if(h.from==l)return{range:c};l=h.from;let u=t.toText((o?s.line(i++).text:e)+t.lineBreak);return{changes:{from:h.from,insert:u},range:N.cursor(c.from+u.length)}})}else o?r=t.changeByRange(l=>{let c=s.line(i++);return{changes:{from:l.from,to:l.to,insert:c.text},range:N.cursor(l.from+c.length)}}):r=t.replaceSelection(s);n.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}wt.scroll=n=>{n.inputState.lastScrollTop=n.scrollDOM.scrollTop,n.inputState.lastScrollLeft=n.scrollDOM.scrollLeft};Pt.keydown=(n,e)=>(n.inputState.setSelectionOrigin("select"),e.keyCode==27&&n.inputState.tabFocusMode!=0&&(n.inputState.tabFocusMode=Date.now()+2e3),!1);wt.touchstart=(n,e)=>{n.inputState.lastTouchTime=Date.now(),n.inputState.setSelectionOrigin("select.pointer")};wt.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};Pt.mousedown=(n,e)=>{if(n.observer.flush(),n.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let r of n.state.facet(qm))if(t=r(n,e),t)break;if(!t&&e.button==0&&(t=Cw(n,e)),t){let r=!n.hasFocus;n.inputState.startMouseSelection(new bw(n,e,t,r)),r&&n.observer.ignore(()=>{Bm(n.contentDOM);let s=n.root.activeElement;s&&!s.contains(n.contentDOM)&&s.blur()});let i=n.inputState.mouseSelection;if(i)return i.start(e),i.dragging===!1}else n.inputState.setSelectionOrigin("select.pointer");return!1};function gd(n,e,t,r){if(r==1)return N.cursor(e,t);if(r==2)return tw(n.state,e,t);{let i=n.docView.lineAt(e,t),s=n.state.doc.lineAt(i?i.posAtEnd:e),o=i?i.posAtStart:s.from,a=i?i.posAtEnd:s.to;return a<n.state.doc.length&&a==s.to&&a++,N.range(o,a)}}const Sw=K.ie&&K.ie_version<=11;let bd=null,yd=0,xd=0;function yg(n){if(!Sw)return n.detail;let e=bd,t=xd;return bd=n,xd=Date.now(),yd=!e||t>Date.now()-400&&Math.abs(e.clientX-n.clientX)<2&&Math.abs(e.clientY-n.clientY)<2?(yd+1)%3:1}function Cw(n,e){let t=n.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),r=yg(e),i=n.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),i=i.map(s.changes))},get(s,o,a){let l=n.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),c,h=gd(n,l.pos,l.assoc,r);if(t.pos!=l.pos&&!o){let u=gd(n,t.pos,t.assoc,r),f=Math.min(u.from,h.from),p=Math.max(u.to,h.to);h=f<h.from?N.range(f,p):N.range(p,f)}return o?i.replaceRange(i.main.extend(h.from,h.to)):a&&r==1&&i.ranges.length>1&&(c=Ow(i,l.pos))?c:a?i.addRange(h):N.create([h])}}}function Ow(n,e){for(let t=0;t<n.ranges.length;t++){let{from:r,to:i}=n.ranges[t];if(r<=e&&i>=e)return N.create(n.ranges.slice(0,t).concat(n.ranges.slice(t+1)),n.mainIndex==t?0:n.mainIndex-(n.mainIndex>t?1:0))}return null}Pt.dragstart=(n,e)=>{let{selection:{main:t}}=n.state;if(e.target.draggable){let i=n.docView.tile.nearest(e.target);if(i&&i.isWidget()){let s=i.posAtStart,o=s+i.length;(s>=t.to||o<=t.from)&&(t=N.range(s,o))}}let{inputState:r}=n;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",ba(n.state,ah,n.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Pt.dragend=n=>(n.inputState.draggedContent=null,!1);function vd(n,e,t,r){if(t=ba(n.state,oh,t),!t)return;let i=n.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=n.inputState,o=r&&s&&xw(n,e)?{from:s.from,to:s.to}:null,a={from:i,insert:t},l=n.state.changes(o?[o,a]:a);n.focus(),n.dispatch({changes:l,selection:{anchor:l.mapPos(i,-1),head:l.mapPos(i,1)},userEvent:o?"move.drop":"input.drop"}),n.inputState.draggedContent=null}Pt.drop=(n,e)=>{if(!e.dataTransfer)return!1;if(n.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let r=Array(t.length),i=0,s=()=>{++i==t.length&&vd(n,e,r.filter(o=>o!=null).join(n.state.lineBreak),!1)};for(let o=0;o<t.length;o++){let a=new FileReader;a.onerror=s,a.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(r[o]=a.result),s()},a.readAsText(t[o])}return!0}else{let r=e.dataTransfer.getData("Text");if(r)return vd(n,e,r,!0),!0}return!1};Pt.paste=(n,e)=>{if(n.state.readOnly)return!0;n.observer.flush();let t=gg?null:e.clipboardData;return t?(bg(n,t.getData("text/plain")||t.getData("text/uri-list")),!0):(kw(n),!1)};function jw(n,e){let t=n.dom.parentNode;if(!t)return;let r=t.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout(()=>{r.remove(),n.focus()},50)}function Pw(n){let e=[],t=[],r=!1;for(let i of n.selection.ranges)i.empty||(e.push(n.sliceDoc(i.from,i.to)),t.push(i));if(!e.length){let i=-1;for(let{from:s}of n.selection.ranges){let o=n.doc.lineAt(s);o.number>i&&(e.push(o.text),t.push({from:o.from,to:Math.min(n.doc.length,o.to+1)})),i=o.number}r=!0}return{text:ba(n,ah,e.join(n.lineBreak)),ranges:t,linewise:r}}let bc=null;Pt.copy=Pt.cut=(n,e)=>{let{text:t,ranges:r,linewise:i}=Pw(n.state);if(!t&&!i)return!1;bc=i?t:null,e.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let s=gg?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(jw(n,t),!1)};const xg=Gt.define();function vg(n,e){let t=[];for(let r of n.facet(Jm)){let i=r(n,e);i&&t.push(i)}return t.length?n.update({effects:t,annotations:xg.of(!0)}):null}function wg(n){setTimeout(()=>{let e=n.hasFocus;if(e!=n.inputState.notifiedFocused){let t=vg(n.state,e);t?n.dispatch(t):n.update([])}},10)}wt.focus=n=>{n.inputState.lastFocusTime=Date.now(),!n.scrollDOM.scrollTop&&(n.inputState.lastScrollTop||n.inputState.lastScrollLeft)&&(n.scrollDOM.scrollTop=n.inputState.lastScrollTop,n.scrollDOM.scrollLeft=n.inputState.lastScrollLeft),wg(n)};wt.blur=n=>{n.observer.clearSelectionRange(),wg(n)};wt.compositionstart=wt.compositionupdate=n=>{n.observer.editContext||(n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0))};wt.compositionend=n=>{n.observer.editContext||(n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionPendingKey=!0,n.inputState.compositionPendingChange=n.observer.pendingRecords().length>0,n.inputState.compositionFirstChange=null,K.chrome&&K.android?n.observer.flushSoon():n.inputState.compositionPendingChange?Promise.resolve().then(()=>n.observer.flush()):setTimeout(()=>{n.inputState.composing<0&&n.docView.hasComposition&&n.update([])},50))};wt.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};Pt.beforeinput=(n,e)=>{var t,r;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(n.inputState.insertingText=e.data,n.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&n.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let a=o[0],l=n.posAtDOM(a.startContainer,a.startOffset),c=n.posAtDOM(a.endContainer,a.endOffset);return hh(n,{from:l,to:c,insert:n.state.toText(s)},null),!0}}let i;if(K.chrome&&K.android&&(i=pg.find(s=>s.inputType==e.inputType))&&(n.observer.delayAndroidKey(i.key,i.keyCode),i.key=="Backspace"||i.key=="Delete")){let s=((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}return K.ios&&e.inputType=="deleteContentForward"&&n.observer.flushSoon(),K.safari&&e.inputType=="insertText"&&n.inputState.composing>=0&&setTimeout(()=>wt.compositionend(n,e),20),!1};const wd=new Set;function Aw(n){wd.has(n)||(wd.add(n),n.addEventListener("copy",()=>{}),n.addEventListener("cut",()=>{}))}const kd=["pre-wrap","normal","pre-line","break-spaces"];let Cr=!1;function Sd(){Cr=!1}class Mw{constructor(e){this.lineWrapping=e,this.doc=pe.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let r=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(r+=Math.max(0,Math.ceil((t-e-r*this.lineLength*.5)/this.lineLength))),this.lineHeight*r}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return kd.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let r=0;r<e.length;r++){let i=e[r];i<0?r++:this.heightSamples[Math.floor(i*10)]||(t=!0,this.heightSamples[Math.floor(i*10)]=!0)}return t}refresh(e,t,r,i,s,o){let a=kd.indexOf(e)>-1,l=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=a;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=r,this.textHeight=i,this.lineLength=s,l){this.heightSamples={};for(let c=0;c<o.length;c++){let h=o[c];h<0?c++:this.heightSamples[Math.floor(h*10)]=!0}}return l}}class Dw{constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}}class Ct{constructor(e,t,r,i,s){this.from=e,this.length=t,this.top=r,this.height=i,this._content=s}get type(){return typeof this._content=="number"?ze.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof Gn?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let t=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new Ct(this.from,this.length+e.length,this.top,this.height+e.height,t)}}var ve=function(n){return n[n.ByPos=0]="ByPos",n[n.ByHeight=1]="ByHeight",n[n.ByPosNoHeight=2]="ByPosNoHeight",n}(ve||(ve={}));const Ao=.001;class Je{constructor(e,t,r=2){this.length=e,this.height=t,this.flags=r}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Ao&&(Cr=!0),this.height=e)}replace(e,t,r){return Je.of(r)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,r,i){let s=this,o=r.doc;for(let a=i.length-1;a>=0;a--){let{fromA:l,toA:c,fromB:h,toB:u}=i[a],f=s.lineAt(l,ve.ByPosNoHeight,r.setDoc(t),0,0),p=f.to>=c?f:s.lineAt(c,ve.ByPosNoHeight,r,0,0);for(u+=p.to-c,c=p.to;a>0&&f.from<=i[a-1].toA;)l=i[a-1].fromA,h=i[a-1].fromB,a--,l<f.from&&(f=s.lineAt(l,ve.ByPosNoHeight,r,0,0));h+=f.from-l,l=f.from;let m=uh.build(r.setDoc(o),e,h,u);s=Uo(s,s.replace(l,c,m))}return s.updateHeight(r,0)}static empty(){return new at(0,0,0)}static of(e){if(e.length==1)return e[0];let t=0,r=e.length,i=0,s=0;for(;;)if(t==r)if(i>s*2){let a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),r+=1+a.break,i-=a.size}else if(s>i*2){let a=e[r];a.break?e.splice(r,1,a.left,null,a.right):e.splice(r,1,a.left,a.right),r+=2+a.break,s-=a.size}else break;else if(i<s){let a=e[t++];a&&(i+=a.size)}else{let a=e[--r];a&&(s+=a.size)}let o=0;return e[t-1]==null?(o=1,t--):e[t]==null&&(o=1,r++),new Tw(Je.of(e.slice(0,t)),o,Je.of(e.slice(r)))}}function Uo(n,e){return n==e?n:(n.constructor!=e.constructor&&(Cr=!0),e)}Je.prototype.size=1;const Ew=ee.replace({});class kg extends Je{constructor(e,t,r){super(e,t),this.deco=r,this.spaceAbove=0}mainBlock(e,t){return new Ct(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(e,t,r,i){return this.spaceAbove&&e<r+this.spaceAbove?new Ct(i,0,r,this.spaceAbove,Ew):this.mainBlock(r,i)}lineAt(e,t,r,i,s){let o=this.mainBlock(i,s);return this.spaceAbove?this.blockAt(0,r,i,s).join(o):o}forEachLine(e,t,r,i,s,o){e<=s+this.length&&t>=s&&o(this.lineAt(0,ve.ByPos,r,i,s))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,r=!1,i){return i&&i.from<=t&&i.more&&this.setMeasuredHeight(i),this.outdated=!1,this}toString(){return`block(${this.length})`}}class at extends kg{constructor(e,t,r){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=r}mainBlock(e,t){return new Ct(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,r){let i=r[0];return r.length==1&&(i instanceof at||i instanceof $e&&i.flags&4)&&Math.abs(this.length-i.length)<10?(i instanceof $e?i=new at(i.length,this.height,this.spaceAbove):i.height=this.height,this.outdated||(i.outdated=!1),i):Je.of(r)}updateHeight(e,t=0,r=!1,i){return i&&i.from<=t&&i.more?this.setMeasuredHeight(i):(r||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class $e extends Je{constructor(e){super(e,0)}heightMetrics(e,t){let r=e.doc.lineAt(t).number,i=e.doc.lineAt(t+this.length).number,s=i-r+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*s);o=l/s,this.length>s+1&&(a=(this.height-l)/(this.length-s-1))}else o=this.height/s;return{firstLine:r,lastLine:i,perLine:o,perChar:a}}blockAt(e,t,r,i){let{firstLine:s,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(t,i);if(t.lineWrapping){let c=i+(e<t.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-r)/this.height))*this.length)),h=t.doc.lineAt(c),u=a+h.length*l,f=Math.max(r,e-u/2);return new Ct(h.from,h.length,f,u,0)}else{let c=Math.max(0,Math.min(o-s,Math.floor((e-r)/a))),{from:h,length:u}=t.doc.line(s+c);return new Ct(h,u,r+a*c,a,0)}}lineAt(e,t,r,i,s){if(t==ve.ByHeight)return this.blockAt(e,r,i,s);if(t==ve.ByPosNoHeight){let{from:p,to:m}=r.doc.lineAt(e);return new Ct(p,m-p,0,0,0)}let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(r,s),c=r.doc.lineAt(e),h=a+c.length*l,u=c.number-o,f=i+a*u+l*(c.from-s-u);return new Ct(c.from,c.length,Math.max(i,Math.min(f,i+this.height-h)),h,0)}forEachLine(e,t,r,i,s,o){e=Math.max(e,s),t=Math.min(t,s+this.length);let{firstLine:a,perLine:l,perChar:c}=this.heightMetrics(r,s);for(let h=e,u=i;h<=t;){let f=r.doc.lineAt(h);if(h==e){let m=f.number-a;u+=l*m+c*(e-s-m)}let p=l+c*f.length;o(new Ct(f.from,f.length,u,p,0)),u+=p,h=f.to+1}}replace(e,t,r){let i=this.length-t;if(i>0){let s=r[r.length-1];s instanceof $e?r[r.length-1]=new $e(s.length+i):r.push(null,new $e(i-1))}if(e>0){let s=r[0];s instanceof $e?r[0]=new $e(e+s.length):r.unshift(new $e(e-1),null)}return Je.of(r)}decomposeLeft(e,t){t.push(new $e(e-1),null)}decomposeRight(e,t){t.push(null,new $e(this.length-e-1))}updateHeight(e,t=0,r=!1,i){let s=t+this.length;if(i&&i.from<=t+this.length&&i.more){let o=[],a=Math.max(t,i.from),l=-1;for(i.from>t&&o.push(new $e(i.from-t-1).updateHeight(e,t));a<=s&&i.more;){let h=e.doc.lineAt(a).length;o.length&&o.push(null);let u=i.heights[i.index++],f=0;u<0&&(f=-u,u=i.heights[i.index++]),l==-1?l=u:Math.abs(u-l)>=Ao&&(l=-2);let p=new at(h,u,f);p.outdated=!1,o.push(p),a+=h+1}a<=s&&o.push(null,new $e(s-a).updateHeight(e,a));let c=Je.of(o);return(l<0||Math.abs(c.height-this.height)>=Ao||Math.abs(l-this.heightMetrics(e,t).perLine)>=Ao)&&(Cr=!0),Uo(this,c)}else(r||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class Tw extends Je{constructor(e,t,r){super(e.length+t+r.length,e.height+r.height,t|(e.outdated||r.outdated?2:0)),this.left=e,this.right=r,this.size=e.size+r.size}get break(){return this.flags&1}blockAt(e,t,r,i){let s=r+this.left.height;return e<s?this.left.blockAt(e,t,r,i):this.right.blockAt(e,t,s,i+this.left.length+this.break)}lineAt(e,t,r,i,s){let o=i+this.left.height,a=s+this.left.length+this.break,l=t==ve.ByHeight?e<o:e<a,c=l?this.left.lineAt(e,t,r,i,s):this.right.lineAt(e,t,r,o,a);if(this.break||(l?c.to<a:c.from>a))return c;let h=t==ve.ByPosNoHeight?ve.ByPosNoHeight:ve.ByPos;return l?c.join(this.right.lineAt(a,h,r,o,a)):this.left.lineAt(a,h,r,i,s).join(c)}forEachLine(e,t,r,i,s,o){let a=i+this.left.height,l=s+this.left.length+this.break;if(this.break)e<l&&this.left.forEachLine(e,t,r,i,s,o),t>=l&&this.right.forEachLine(e,t,r,a,l,o);else{let c=this.lineAt(l,ve.ByPos,r,i,s);e<c.from&&this.left.forEachLine(e,c.from-1,r,i,s,o),c.to>=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,r,a,l,o)}}replace(e,t,r){let i=this.left.length+this.break;if(t<i)return this.balanced(this.left.replace(e,t,r),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-i,t-i,r));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let a of r)s.push(a);if(e>0&&Cd(s,o-1),t<this.length){let a=s.length;this.decomposeRight(t,s),Cd(s,a)}return Je.of(s)}decomposeLeft(e,t){let r=this.left.length;if(e<=r)return this.left.decomposeLeft(e,t);t.push(this.left),this.break&&(r++,e>=r&&t.push(null)),e>r&&this.right.decomposeLeft(e-r,t)}decomposeRight(e,t){let r=this.left.length,i=r+this.break;if(e>=i)return this.right.decomposeRight(e-i,t);e<r&&this.left.decomposeRight(e,t),this.break&&e<i&&t.push(null),t.push(this.right)}balanced(e,t){return e.size>2*t.size||t.size>2*e.size?Je.of(this.break?[e,null,t]:[e,t]):(this.left=Uo(this.left,e),this.right=Uo(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,r=!1,i){let{left:s,right:o}=this,a=t+s.length+this.break,l=null;return i&&i.from<=t+s.length&&i.more?l=s=s.updateHeight(e,t,r,i):s.updateHeight(e,t,r),i&&i.from<=a+o.length&&i.more?l=o=o.updateHeight(e,a,r,i):o.updateHeight(e,a,r),l?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Cd(n,e){let t,r;n[e]==null&&(t=n[e-1])instanceof $e&&(r=n[e+1])instanceof $e&&n.splice(e-1,3,new $e(t.length+1+r.length))}const Nw=5;class uh{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let r=Math.min(t,this.lineEnd),i=this.nodes[this.nodes.length-1];i instanceof at?i.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new at(r-this.pos,-1,0)),this.writtenTo=r,t>r&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,r){if(e<t||r.heightRelevant){let i=r.widget?r.widget.estimatedHeight:0,s=r.widget?r.widget.lineBreaks:0;i<0&&(i=this.oracle.lineHeight);let o=t-e;r.block?this.addBlock(new kg(o,i,r)):(o||s||i>=Nw)&&this.addLineDeco(i,s,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new at(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let r=new $e(t-e);return this.oracle.doc.lineAt(e).to==t&&(r.flags|=4),r}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof at)return e;let t=new at(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,r){let i=this.ensureLine();i.length+=r,i.collapsed+=r,i.widgetHeight=Math.max(i.widgetHeight,e),i.breaks+=t,this.writtenTo=this.pos=this.pos+r}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof at)&&!this.isCovered?this.nodes.push(new at(0,-1,0)):(this.writtenTo<this.pos||t==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let r=e;for(let i of this.nodes)i instanceof at&&i.updateHeight(this.oracle,r),r+=i?i.length:1;return this.nodes}static build(e,t,r,i){let s=new uh(r,e);return le.spans(t,r,i,s,0),s.finish(r)}}function Lw(n,e,t){let r=new Rw;return le.compare(n,e,t,r,0),r.changes}class Rw{constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,r,i){(e<t||r&&r.heightRelevant||i&&i.heightRelevant)&&mr(e,t,this.changes,5)}}function Iw(n,e){let t=n.getBoundingClientRect(),r=n.ownerDocument,i=r.defaultView||window,s=Math.max(0,t.left),o=Math.min(i.innerWidth,t.right),a=Math.max(0,t.top),l=Math.min(i.innerHeight,t.bottom);for(let c=n.parentNode;c&&c!=r.body;)if(c.nodeType==1){let h=c,u=window.getComputedStyle(h);if((h.scrollHeight>h.clientHeight||h.scrollWidth>h.clientWidth)&&u.overflow!="visible"){let f=h.getBoundingClientRect();s=Math.max(s,f.left),o=Math.min(o,f.right),a=Math.max(a,f.top),l=Math.min(c==n.parentNode?i.innerHeight:l,f.bottom)}c=u.position=="absolute"||u.position=="fixed"?h.offsetParent:h.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:a-(t.top+e),bottom:Math.max(a,l)-(t.top+e)}}function Bw(n){let e=n.getBoundingClientRect(),t=n.ownerDocument.defaultView||window;return e.left<t.innerWidth&&e.right>0&&e.top<t.innerHeight&&e.bottom>0}function $w(n,e){let t=n.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class Ja{constructor(e,t,r,i){this.from=e,this.to=t,this.size=r,this.displaySize=i}static same(e,t){if(e.length!=t.length)return!1;for(let r=0;r<e.length;r++){let i=e[r],s=t[r];if(i.from!=s.from||i.to!=s.to||i.size!=s.size)return!1}return!0}draw(e,t){return ee.replace({widget:new Fw(this.displaySize*(t?e.scaleY:e.scaleX),t)}).range(this.from,this.to)}}class Fw extends Yt{constructor(e,t){super(),this.size=e,this.vertical=t}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}}class Od{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=jd,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=xe.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(lh).some(r=>typeof r!="function"&&r.class=="cm-lineWrapping");this.heightOracle=new Mw(t),this.stateDeco=e.facet(ji).filter(r=>typeof r!="function"),this.heightMap=Je.empty().applyChanges(this.stateDeco,pe.empty,this.heightOracle.setDoc(e.doc),[new gt(0,0,0,e.doc.length)]);for(let r=0;r<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());r++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=ee.set(this.lineGaps.map(r=>r.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let r=0;r<=1;r++){let i=r?t.head:t.anchor;if(!e.some(({from:s,to:o})=>i>=s&&i<=o)){let{from:s,to:o}=this.lineBlockAt(i);e.push(new no(s,o))}}return this.viewports=e.sort((r,i)=>r.from-i.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?jd:new dh(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(ti(e,this.scaler))})}update(e,t=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=this.state.facet(ji).filter(h=>typeof h!="function");let i=e.changedRanges,s=gt.extendWithRanges(i,Lw(r,this.stateDeco,e?e.changes:Te.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);Sd(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||Cr)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.head<l.from||t.range.head>l.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Zm)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,r=window.getComputedStyle(t),i=this.heightOracle,s=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?xe.RTL:xe.LTR;let o=this.heightOracle.mustRefreshForWrapping(s),a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let c=0,h=0;if(a.width&&a.height){let{scaleX:A,scaleY:k}=Im(t,a);(A>.005&&Math.abs(this.scaleX-A)>.005||k>.005&&Math.abs(this.scaleY-k)>.005)&&(this.scaleX=A,this.scaleY=k,c|=16,o=l=!0)}let u=(parseInt(r.paddingTop)||0)*this.scaleY,f=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=u||this.paddingBottom!=f)&&(this.paddingTop=u,this.paddingBottom=f,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(i.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let p=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=p&&(this.scrollAnchorHeight=-1,this.scrollTop=p),this.scrolledToBottom=$m(e.scrollDOM);let m=(this.printing?$w:Iw)(t,this.paddingTop),g=m.top-this.pixelViewport.top,y=m.bottom-this.pixelViewport.bottom;this.pixelViewport=m;let v=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(v!=this.inView&&(this.inView=v,v&&(l=!0)),!this.inView&&!this.scrollTarget&&!Bw(e.dom))return 0;let S=a.width;if((this.contentDOMWidth!=S||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),l){let A=e.docView.measureVisibleLineHeights(this.viewport);if(i.mustRefreshForHeights(A)&&(o=!0),o||i.lineWrapping&&Math.abs(S-this.contentDOMWidth)>i.charWidth){let{lineHeight:k,charWidth:j,textHeight:x}=e.docView.measureTextSize();o=k>0&&i.refresh(s,k,j,x,Math.max(5,S/j),A),o&&(e.docView.minWidth=0,c|=16)}g>0&&y>0?h=Math.max(g,y):g<0&&y<0&&(h=Math.min(g,y)),Sd();for(let k of this.viewports){let j=k.from==this.viewport.from?A:e.docView.measureVisibleLineHeights(k);this.heightMap=(o?Je.empty().applyChanges(this.stateDeco,pe.empty,this.heightOracle,[new gt(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(i,0,o,new Dw(k.from,j))}Cr&&(c|=2)}let C=!this.viewportIsAppropriate(this.viewport,h)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return C&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(h,this.scrollTarget),c|=this.updateForViewport()),(c&2||C)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let r=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),i=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new no(i.lineAt(o-r*1e3,ve.ByHeight,s,0,0).from,i.lineAt(a+(1-r)*1e3,ve.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(c<l.from||c>l.to){let h=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),u=i.lineAt(c,ve.ByPos,s,0,0),f;t.y=="center"?f=(u.top+u.bottom)/2-h/2:t.y=="start"||t.y=="nearest"&&c<l.from?f=u.top:f=u.bottom-h,l=new no(i.lineAt(f-1e3/2,ve.ByHeight,s,0,0).from,i.lineAt(f+h+1e3/2,ve.ByHeight,s,0,0).to)}}return l}mapViewport(e,t){let r=t.mapPos(e.from,-1),i=t.mapPos(e.to,1);return new no(this.heightMap.lineAt(r,ve.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(i,ve.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:t},r=0){if(!this.inView)return!0;let{top:i}=this.heightMap.lineAt(e,ve.ByPos,this.heightOracle,0,0),{bottom:s}=this.heightMap.lineAt(t,ve.ByPos,this.heightOracle,0,0),{visibleTop:o,visibleBottom:a}=this;return(e==0||i<=o-Math.max(10,Math.min(-r,250)))&&(t==this.state.doc.length||s>=a+Math.max(10,Math.min(r,250)))&&i>o-2*1e3&&s<a+2*1e3}mapLineGaps(e,t){if(!e.length||t.empty)return e;let r=[];for(let i of e)t.touchesRange(i.from,i.to)||r.push(new Ja(t.mapPos(i.from),t.mapPos(i.to),i.size,i.displaySize));return r}ensureLineGaps(e,t){let r=this.heightOracle.lineWrapping,i=r?1e4:2e3,s=i>>1,o=i<<1;if(this.defaultTextDirection!=xe.LTR&&!r)return[];let a=[],l=(h,u,f,p)=>{if(u-h<s)return;let m=this.state.selection.main,g=[m.from];m.empty||g.push(m.to);for(let v of g)if(v>h&&v<u){l(h,v-10,f,p),l(v+10,u,f,p);return}let y=Vw(e,v=>v.from>=f.from&&v.to<=f.to&&Math.abs(v.from-h)<s&&Math.abs(v.to-u)<s&&!g.some(S=>v.from<S&&v.to>S));if(!y){if(u<f.to&&t&&r&&t.visibleRanges.some(C=>C.from<=u&&C.to>=u)){let C=t.moveToLineBoundary(N.cursor(u),!1,!0).head;C>h&&(u=C)}let v=this.gapSize(f,h,u,p),S=r||v<2e6?v:2e6;y=new Ja(h,u,v,S)}a.push(y)},c=h=>{if(h.length<o||h.type!=ze.Text)return;let u=zw(h.from,h.to,this.stateDeco);if(u.total<o)return;let f=this.scrollTarget?this.scrollTarget.range.head:null,p,m;if(r){let g=i/this.heightOracle.lineLength*this.heightOracle.lineHeight,y,v;if(f!=null){let S=io(u,f),C=((this.visibleBottom-this.visibleTop)/2+g)/h.height;y=S-C,v=S+C}else y=(this.visibleTop-h.top-g)/h.height,v=(this.visibleBottom-h.top+g)/h.height;p=ro(u,y),m=ro(u,v)}else{let g=u.total*this.heightOracle.charWidth,y=i*this.heightOracle.charWidth,v=0;if(g>2e6)for(let j of e)j.from>=h.from&&j.from<h.to&&j.size!=j.displaySize&&j.from*this.heightOracle.charWidth+v<this.pixelViewport.left&&(v=j.size-j.displaySize);let S=this.pixelViewport.left+v,C=this.pixelViewport.right+v,A,k;if(f!=null){let j=io(u,f),x=((C-S)/2+y)/g;A=j-x,k=j+x}else A=(S-y)/g,k=(C+y)/g;p=ro(u,A),m=ro(u,k)}p>h.from&&l(h.from,p,h,u),m<h.to&&l(m,h.to,h,u)};for(let h of this.viewportLines)Array.isArray(h.type)?h.type.forEach(c):c(h);return a}gapSize(e,t,r,i){let s=io(i,r)-io(i,t);return this.heightOracle.lineWrapping?e.height*s:i.total*this.heightOracle.charWidth*s}updateLineGaps(e){Ja.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=ee.set(e.map(t=>t.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let r=[];le.spans(t,this.viewport.from,this.viewport.to,{span(s,o){r.push({from:s,to:o})},point(){}},20);let i=0;if(r.length!=this.visibleRanges.length)i=12;else for(let s=0;s<r.length&&!(i&8);s++){let o=this.visibleRanges[s],a=r[s];(o.from!=a.from||o.to!=a.to)&&(i|=4,e&&e.mapPos(o.from,-1)==a.from&&e.mapPos(o.to,1)==a.to||(i|=8))}return this.visibleRanges=r,i}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||ti(this.heightMap.lineAt(e,ve.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||ti(this.heightMap.lineAt(this.scaler.fromDOM(e),ve.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return ti(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class no{constructor(e,t){this.from=e,this.to=t}}function zw(n,e,t){let r=[],i=n,s=0;return le.spans(t,n,e,{span(){},point(o,a){o>i&&(r.push({from:i,to:o}),s+=o-i),i=a}},20),i<e&&(r.push({from:i,to:e}),s+=e-i),{total:s,ranges:r}}function ro({total:n,ranges:e},t){if(t<=0)return e[0].from;if(t>=1)return e[e.length-1].to;let r=Math.floor(n*t);for(let i=0;;i++){let{from:s,to:o}=e[i],a=o-s;if(r<=a)return s+r;r-=a}}function io(n,e){let t=0;for(let{from:r,to:i}of n.ranges){if(e<=i){t+=e-r;break}t+=i-r}return t/n.total}function Vw(n,e){for(let t of n)if(e(t))return t}const jd={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(n){return n==this}};class dh{constructor(e,t,r){let i=0,s=0,o=0;this.viewports=r.map(({from:a,to:l})=>{let c=t.lineAt(a,ve.ByPos,e,0,0).top,h=t.lineAt(l,ve.ByPos,e,0,0).bottom;return i+=h-c,{from:a,to:l,top:c,bottom:h,domTop:0,domBottom:0}}),this.scale=(7e6-i)/(t.height-i);for(let a of this.viewports)a.domTop=o+(a.top-s)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),s=a.bottom}toDOM(e){for(let t=0,r=0,i=0;;t++){let s=t<this.viewports.length?this.viewports[t]:null;if(!s||e<s.top)return i+(e-r)*this.scale;if(e<=s.bottom)return s.domTop+(e-s.top);r=s.bottom,i=s.domBottom}}fromDOM(e){for(let t=0,r=0,i=0;;t++){let s=t<this.viewports.length?this.viewports[t]:null;if(!s||e<s.domTop)return r+(e-i)/this.scale;if(e<=s.domBottom)return s.top+(e-s.domTop);r=s.bottom,i=s.domBottom}}eq(e){return e instanceof dh?this.scale==e.scale&&this.viewports.length==e.viewports.length&&this.viewports.every((t,r)=>t.from==e.viewports[r].from&&t.to==e.viewports[r].to):!1}}function ti(n,e){if(e.scale==1)return n;let t=e.toDOM(n.top),r=e.toDOM(n.bottom);return new Ct(n.from,n.length,t,r-t,Array.isArray(n._content)?n._content.map(i=>ti(i,e)):n._content)}const so=G.define({combine:n=>n.join(" ")}),yc=G.define({combine:n=>n.indexOf(!0)>-1}),xc=Sn.newName(),Sg=Sn.newName(),Cg=Sn.newName(),Og={"&light":"."+Sg,"&dark":"."+Cg};function vc(n,e,t){return new Sn(e,{finish(r){return/&/.test(r)?r.replace(/&\w*/,i=>{if(i=="&")return n;if(!t||!t[i])throw new RangeError(`Unsupported selector: ${i}`);return t[i]}):n+" "+r}})}const Hw=vc("."+xc,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Og),_w={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Xa=K.ie&&K.ie_version<=11;class Ww{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new w2,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let r of t)this.queue.push(r);(K.ie&&K.ie_version<=11||K.ios&&e.composing)&&t.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&K.android&&e.constructor.EDIT_CONTEXT!==!1&&!(K.chrome&&K.chrome_version<126)&&(this.editContext=new Kw(e),e.state.facet(tn)&&(e.contentDOM.editContext=this.editContext.editContext)),Xa&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,r)=>t!=e[r]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:r}=this,i=this.selectionRange;if(r.state.facet(tn)?r.root.activeElement!=this.dom:!Po(this.dom,i))return;let s=i.anchorNode&&r.docView.tile.nearest(i.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(K.ie&&K.ie_version<=11||K.android&&K.chrome)&&!r.state.selection.main.empty&&i.focusNode&&li(i.focusNode,i.focusOffset,i.anchorNode,i.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Si(e.root);if(!t)return!1;let r=K.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&Uw(this.view,t)||t;if(!r||this.selectionRange.eq(r))return!1;let i=Po(this.dom,r);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&S2(this.dom,r)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(r),i&&(this.selectionChanged=!0),!0)}setSelectionRange(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,t=null;for(let r=this.dom;r;)if(r.nodeType==1)!t&&e<this.scrollTargets.length&&this.scrollTargets[e]==r?e++:t||(t=this.scrollTargets.slice(0,e)),t&&t.push(r),r=r.assignedSlot||r.parentNode;else if(r.nodeType==11)r=r.host;else break;if(e<this.scrollTargets.length&&!t&&(t=this.scrollTargets.slice(0,e)),t){for(let r of this.scrollTargets)r.removeEventListener("scroll",this.onScroll);for(let r of this.scrollTargets=t)r.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,_w),Xa&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),Xa&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,t){var r;if(!this.delayedAndroidKey){let i=()=>{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&gr(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(i)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange<Date.now()-50||!!(!((r=this.delayedAndroidKey)===null||r===void 0)&&r.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,r=-1,i=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(i=!0),t==-1?{from:t,to:r}=o:(t=Math.min(o.from,t),r=Math.max(o.to,r)))}return{from:t,to:r,typeOver:i}}readChange(){let{from:e,to:t,typeOver:r}=this.processRecords(),i=this.selectionChanged&&Po(this.dom,this.selectionRange);if(e<0&&!i)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new cw(this.view,e,t,r);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let r=this.view.state,i=dg(this.view,t);return this.view.state==r&&(t.domChanged||t.newSel&&!t.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),i}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let r=Pd(t,e.previousSibling||e.target.previousSibling,-1),i=Pd(t,e.nextSibling||e.target.nextSibling,1);return{from:r?t.posAfter(r):t.posAtStart,to:i?t.posBefore(i):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(tn)!=e.state.facet(tn)&&(e.view.contentDOM.editContext=e.state.facet(tn)?this.editContext.editContext:null))}destroy(){var e,t,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(r=this.resizeScroll)===null||r===void 0||r.disconnect();for(let i of this.scrollTargets)i.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function Pd(n,e,t){for(;e;){let r=Ee.get(e);if(r&&r.parent==n)return r;let i=e.parentNode;e=i!=n.dom?i:t>0?e.nextSibling:e.previousSibling}return null}function Ad(n,e){let t=e.startContainer,r=e.startOffset,i=e.endContainer,s=e.endOffset,o=n.docView.domAtPos(n.state.selection.main.anchor,1);return li(o.node,o.offset,i,s)&&([t,r,i,s]=[i,s,t,r]),{anchorNode:t,anchorOffset:r,focusNode:i,focusOffset:s}}function Uw(n,e){if(e.getComposedRanges){let i=e.getComposedRanges(n.root)[0];if(i)return Ad(n,i)}let t=null;function r(i){i.preventDefault(),i.stopImmediatePropagation(),t=i.getTargetRanges()[0]}return n.contentDOM.addEventListener("beforeinput",r,!0),n.dom.ownerDocument.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",r,!0),t?Ad(n,t):null}class Kw{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=r=>{let i=e.state.selection.main,{anchor:s,head:o}=i,a=this.toEditorPos(r.updateRangeStart),l=this.toEditorPos(r.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:r.updateRangeStart,editorBase:a,drifted:!1});let c=l-a>r.text.length;a==this.from&&s<this.from?a=s:l==this.to&&s>this.to&&(l=s);let h=fg(e.state.sliceDoc(a,l),r.text,(c?i.from:i.to)-a,c?"end":null);if(!h){let f=N.single(this.toEditorPos(r.selectionStart),this.toEditorPos(r.selectionEnd));f.main.eq(i)||e.dispatch({selection:f,userEvent:"select"});return}let u={from:h.from+a,to:h.toA+a,insert:pe.of(r.text.slice(h.from,h.toB).split(`
61
+ `))};if((K.mac||K.android)&&u.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(u={from:a,to:l,insert:pe.of([r.text.replace("."," ")])}),this.pendingContextChange=u,!e.state.readOnly){let f=this.to-this.from+(u.to-u.from+u.insert.length);hh(e,u,N.single(this.toEditorPos(r.selectionStart,f),this.toEditorPos(r.selectionEnd,f)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),u.from<u.to&&!u.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,r.updateRangeStart-1),Math.min(t.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let i=[],s=null;for(let o=this.toEditorPos(r.rangeStart),a=this.toEditorPos(r.rangeEnd);o<a;o++){let l=e.coordsForChar(o);s=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||s||new DOMRect,i.push(s)}t.updateCharacterBounds(r.rangeStart,i)},this.handlers.textformatupdate=r=>{let i=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l<c){let h=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(a)?1:2}px`;i.push(ee.mark({attributes:{style:h}}).range(l,c))}}}e.dispatch({effects:tg.of(ee.set(i))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)t.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{this.editContext.updateControlBounds(r.contentDOM.getBoundingClientRect());let i=Si(r.root);i&&i.rangeCount&&this.editContext.updateSelectionBounds(i.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,r=!1,i=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(r)return;let h=c.length-(o-s);if(i&&o>=i.to)if(i.from==s&&i.to==o&&i.insert.eq(c)){i=this.pendingContextChange=null,t+=h,this.to+=h;return}else i=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=h,this.to+=h;else if(s<this.to){if(s<this.from||o>this.to||this.to-this.from+c.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=h}t+=h}),i&&!r&&this.revertPending(e.state),!r}update(e){let t=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.to)&&e.transactions.some(i=>!i.isUserEvent("input.type")&&i.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),i=this.toContextPos(t.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=i)&&this.editContext.updateSelection(r,i)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let r=this.composing;return r&&r.drifted?r.editorBase+(e-r.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class _{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:r}=e;this.dispatchTransactions=e.dispatchTransactions||r&&(i=>i.forEach(s=>r(s,this)))||(i=>this.update(i)),this.dispatch=this.dispatch.bind(this),this._root=e.root||k2(e.parent)||document,this.viewState=new Od(e.state||ce.create(e)),e.scrollTo&&e.scrollTo.is(Zs)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(lr).map(i=>new Ka(i));for(let i of this.plugins)i.update(this);this.observer=new Ww(this),this.inputState=new fw(this),this.inputState.ensureHandlers(this.plugins),this.docView=new ud(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...e){let t=e.length==1&&e[0]instanceof Le?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,r=!1,i,s=this.state;for(let f of e){if(f.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=f.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,a=0,l=null;e.some(f=>f.annotation(xg))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=vg(s,o),l||(a=1));let c=this.observer.delayedAndroidKey,h=null;if(c?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(h=null)):this.observer.clear(),s.facet(ce.phrases)!=this.state.facet(ce.phrases))return this.setState(s);i=Ho.create(this,s,e),i.flags|=a;let u=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(u&&(u=u.map(f.changes)),f.scrollIntoView){let{main:p}=f.state.selection;u=new br(p.empty?p:N.cursor(p.head,p.head>p.anchor?-1:1))}for(let p of f.effects)p.is(Zs)&&(u=p.value.clip(this.state))}this.viewState.update(i,u),this.bidiCache=Ko.update(this.bidiCache,i.changes),i.empty||(this.updatePlugins(i),this.inputState.update(i)),t=this.docView.update(i),this.state.facet(Zr)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(i.startState.facet(so)!=i.state.facet(so)&&(this.viewState.mustMeasureContent=!0),(t||r||u||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!i.empty)for(let f of this.state.facet(fc))try{f(i)}catch(p){nt(this.state,p,"update listener")}(l||h)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),h&&!dg(this,h)&&c.force&&gr(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let r of this.plugins)r.destroy(this);this.viewState=new Od(e),this.plugins=e.facet(lr).map(r=>new Ka(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView.destroy(),this.docView=new ud(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(lr),r=e.state.facet(lr);if(t!=r){let i=[];for(let s of r){let o=t.indexOf(s);if(o<0)i.push(new Ka(s));else{let a=this.plugins[o];a.mustUpdate=e,i.push(a)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=i,this.pluginMap.clear()}else for(let i of this.plugins)i.mustUpdate=e;for(let i=0;i<this.plugins.length;i++)this.plugins[i].update(this);t!=r&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let t=e.value;if(t&&t.docViewUpdate)try{t.docViewUpdate(this)}catch(r){nt(this.state,r,"doc view update listener")}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,r=this.scrollDOM,i=r.scrollTop*this.scaleY,{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(i-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0)if($m(r))s=-1,o=this.viewState.heightMap.height;else{let p=this.viewState.scrollAnchorAt(i);s=p.from,o=p.top}this.updateState=1;let l=this.viewState.measure(this);if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];l&4||([this.measureRequests,c]=[c,this.measureRequests]);let h=c.map(p=>{try{return p.read(this)}catch(m){return nt(this.state,m),Md}}),u=Ho.create(this,this.state,[]),f=!1;u.flags|=l,t?t.flags|=l:t=u,this.updateState=2,u.empty||(this.updatePlugins(u),this.inputState.update(u),this.updateAttrs(),f=this.docView.update(u),f&&this.docViewUpdate());for(let p=0;p<c.length;p++)if(h[p]!=Md)try{let m=c[p];m.write&&m.write(h[p],this)}catch(m){nt(this.state,m)}if(f&&this.docView.updateSelection(!0),!u.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,o=-1;continue}else{let m=(s<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(s).top)-o;if(m>1||m<-1){i=i+m,r.scrollTop=i/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let a of this.state.facet(fc))a(t)}get themeClasses(){return xc+" "+(this.state.facet(yc)?Cg:Sg)+" "+this.state.facet(so)}updateAttrs(){let e=Dd(this,ng,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(tn)?"true":"false",class:"cm-content",style:`${K.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Dd(this,lh,t);let r=this.observer.ignore(()=>{let i=sd(this.contentDOM,this.contentAttrs,t),s=sd(this.dom,this.editorAttrs,e);return i||s});return this.editorAttrs=e,this.contentAttrs=t,r}showAnnouncements(e){let t=!0;for(let r of e)for(let i of r.effects)if(i.is(_.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=i.value}}mountStyles(){this.styleModules=this.state.facet(Zr);let e=this.state.facet(_.cspNonce);Sn.mount(this.root,this.styleModules.concat(Hw).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===e.key){this.measureRequests[t]=e;return}}this.measureRequests.push(e)}}plugin(e){let t=this.pluginMap.get(e);return(t===void 0||t&&t.plugin!=e)&&this.pluginMap.set(e,t=this.plugins.find(r=>r.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,r){return Qa(this,e,dd(this,e,t,r))}moveByGroup(e,t){return Qa(this,e,dd(this,e,t,r=>iw(this,e.head,r)))}visualLineSide(e,t){let r=this.bidiSpans(e),i=this.textDirectionAt(e.from),s=r[t?r.length-1:0];return N.cursor(s.side(t,i)+e.from,s.forward(!t,i)?1:-1)}moveToLineBoundary(e,t,r=!0){return rw(this,e,t,r)}moveVertically(e,t,r){return Qa(this,e,sw(this,e,t,r))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let r=gc(this,e,t);return r&&r.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),gc(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let r=this.docView.coordsAt(e,t);if(!r||r.left==r.right)return r;let i=this.state.doc.lineAt(e),s=this.bidiSpans(i),o=s[nn.find(s,e-i.from,-1,t)];return Ci(r,o.dir==xe.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Xm)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>Gw)return Wm(e.length);let t=this.textDirectionAt(e.from),r;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||_m(s.isolates,r=ld(this,e))))return s.order;r||(r=ld(this,e));let i=D2(e.text,t,r);return this.bidiCache.push(new Ko(e.from,e.to,t,r,!0,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||K.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Bm(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return Zs.of(new br(typeof e=="number"?N.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,r=this.viewState.scrollAnchorAt(e);return Zs.of(new br(N.cursor(r.from),"start","start",r.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return Ae.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return Ae.define(()=>({}),{eventObservers:e})}static theme(e,t){let r=Sn.newName(),i=[so.of(r),Zr.of(vc(`.${r}`,e))];return t&&t.dark&&i.push(yc.of(!0)),i}static baseTheme(e){return Xn.lowest(Zr.of(vc("."+xc,e,Og)))}static findFromDOM(e){var t;let r=e.querySelector(".cm-content"),i=r&&Ee.get(r)||Ee.get(e);return((t=i?.root)===null||t===void 0?void 0:t.view)||null}}_.styleModule=Zr;_.inputHandler=Qm;_.clipboardInputFilter=oh;_.clipboardOutputFilter=ah;_.scrollHandler=eg;_.focusChangeEffect=Jm;_.perLineTextDirection=Xm;_.exceptionSink=Ym;_.updateListener=fc;_.editable=tn;_.mouseSelectionStyle=qm;_.dragMovesSelection=Gm;_.clickAddsSelectionRange=Km;_.decorations=ji;_.blockWrappers=rg;_.outerDecorations=ig;_.atomicRanges=Cs;_.bidiIsolatedRanges=sg;_.scrollMargins=og;_.darkTheme=yc;_.cspNonce=G.define({combine:n=>n.length?n[0]:""});_.contentAttributes=lh;_.editorAttributes=ng;_.lineWrapping=_.contentAttributes.of({class:"cm-lineWrapping"});_.announce=ie.define();const Gw=4096,Md={};class Ko{constructor(e,t,r,i,s,o){this.from=e,this.to=t,this.dir=r,this.isolates=i,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let r=[],i=e.length?e[e.length-1].dir:xe.LTR;for(let s=Math.max(0,e.length-10);s<e.length;s++){let o=e[s];o.dir==i&&!t.touchesRange(o.from,o.to)&&r.push(new Ko(t.mapPos(o.from,1),t.mapPos(o.to,-1),o.dir,o.isolates,!1,o.order))}return r}}function Dd(n,e,t){for(let r=n.state.facet(e),i=r.length-1;i>=0;i--){let s=r[i],o=typeof s=="function"?s(n):s;o&&rh(o,t)}return t}const qw=K.mac?"mac":K.windows?"win":K.linux?"linux":"key";function Yw(n,e){const t=n.split(/-(?!$)/);let r=t[t.length-1];r=="Space"&&(r=" ");let i,s,o,a;for(let l=0;l<t.length-1;++l){const c=t[l];if(/^(cmd|meta|m)$/i.test(c))a=!0;else if(/^a(lt)?$/i.test(c))i=!0;else if(/^(c|ctrl|control)$/i.test(c))s=!0;else if(/^s(hift)?$/i.test(c))o=!0;else if(/^mod$/i.test(c))e=="mac"?a=!0:s=!0;else throw new Error("Unrecognized modifier name: "+c)}return i&&(r="Alt-"+r),s&&(r="Ctrl-"+r),a&&(r="Meta-"+r),o&&(r="Shift-"+r),r}function oo(n,e,t){return e.altKey&&(n="Alt-"+n),e.ctrlKey&&(n="Ctrl-"+n),e.metaKey&&(n="Meta-"+n),t!==!1&&e.shiftKey&&(n="Shift-"+n),n}const Qw=Xn.default(_.domEventHandlers({keydown(n,e){return Pg(jg(e.state),n,e,"editor")}})),ya=G.define({enables:Qw}),Ed=new WeakMap;function jg(n){let e=n.facet(ya),t=Ed.get(e);return t||Ed.set(e,t=Zw(e.reduce((r,i)=>r.concat(i),[]))),t}function Jw(n,e,t){return Pg(jg(n.state),e,n,t)}let mn=null;const Xw=4e3;function Zw(n,e=qw){let t=Object.create(null),r=Object.create(null),i=(o,a)=>{let l=r[o];if(l==null)r[o]=a;else if(l!=a)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,a,l,c,h)=>{var u,f;let p=t[o]||(t[o]=Object.create(null)),m=a.split(/ (?!$)/).map(v=>Yw(v,e));for(let v=1;v<m.length;v++){let S=m.slice(0,v).join(" ");i(S,!0),p[S]||(p[S]={preventDefault:!0,stopPropagation:!1,run:[C=>{let A=mn={view:C,prefix:S,scope:o};return setTimeout(()=>{mn==A&&(mn=null)},Xw),!0}]})}let g=m.join(" ");i(g,!1);let y=p[g]||(p[g]={preventDefault:!1,stopPropagation:!1,run:((f=(u=p._any)===null||u===void 0?void 0:u.run)===null||f===void 0?void 0:f.slice())||[]});l&&y.run.push(l),c&&(y.preventDefault=!0),h&&(y.stopPropagation=!0)};for(let o of n){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of a){let h=t[c]||(t[c]=Object.create(null));h._any||(h._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:u}=o;for(let f in h)h[f].run.push(p=>u(p,wc))}let l=o[e]||o.key;if(l)for(let c of a)s(c,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(c,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return t}let wc=null;function Pg(n,e,t,r){wc=e;let i=f2(e),s=Ze(i,0),o=$t(s)==i.length&&i!=" ",a="",l=!1,c=!1,h=!1;mn&&mn.view==t&&mn.scope==r&&(a=mn.prefix+" ",mg.indexOf(e.keyCode)<0&&(c=!0,mn=null));let u=new Set,f=y=>{if(y){for(let v of y.run)if(!u.has(v)&&(u.add(v),v(t)))return y.stopPropagation&&(h=!0),!0;y.preventDefault&&(y.stopPropagation&&(h=!0),c=!0)}return!1},p=n[r],m,g;return p&&(f(p[a+oo(i,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(K.windows&&e.ctrlKey&&e.altKey)&&!(K.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(m=Cn[e.keyCode])&&m!=i?(f(p[a+oo(m,e,!0)])||e.shiftKey&&(g=wi[e.keyCode])!=i&&g!=m&&f(p[a+oo(g,e,!1)]))&&(l=!0):o&&e.shiftKey&&f(p[a+oo(i,e,!0)])&&(l=!0),!l&&f(p._any)&&(l=!0)),c&&(l=!0),l&&h&&e.stopPropagation(),wc=null,l}class Os{constructor(e,t,r,i,s){this.className=e,this.left=t,this.top=r,this.width=i,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,r){if(r.empty){let i=e.coordsAtPos(r.head,r.assoc||1);if(!i)return[];let s=Ag(e);return[new Os(t,i.left-s.left,i.top-s.top,null,i.bottom-i.top)]}else return ek(e,t,r)}}function Ag(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==xe.LTR?e.left:e.right-n.scrollDOM.clientWidth*n.scaleX)-n.scrollDOM.scrollLeft*n.scaleX,top:e.top-n.scrollDOM.scrollTop*n.scaleY}}function Td(n,e,t,r){let i=n.coordsAtPos(e,t*2);if(!i)return r;let s=n.dom.getBoundingClientRect(),o=(i.top+i.bottom)/2,a=n.posAtCoords({x:s.left+1,y:o}),l=n.posAtCoords({x:s.right-1,y:o});return a==null||l==null?r:{from:Math.max(r.from,Math.min(a,l)),to:Math.min(r.to,Math.max(a,l))}}function ek(n,e,t){if(t.to<=n.viewport.from||t.from>=n.viewport.to)return[];let r=Math.max(t.from,n.viewport.from),i=Math.min(t.to,n.viewport.to),s=n.textDirection==xe.LTR,o=n.contentDOM,a=o.getBoundingClientRect(),l=Ag(n),c=o.querySelector(".cm-line"),h=c&&window.getComputedStyle(c),u=a.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),f=a.right-(h?parseInt(h.paddingRight):0),p=mc(n,r,1),m=mc(n,i,-1),g=p.type==ze.Text?p:null,y=m.type==ze.Text?m:null;if(g&&(n.lineWrapping||p.widgetLineBreaks)&&(g=Td(n,r,1,g)),y&&(n.lineWrapping||m.widgetLineBreaks)&&(y=Td(n,i,-1,y)),g&&y&&g.from==y.from&&g.to==y.to)return S(C(t.from,t.to,g));{let k=g?C(t.from,null,g):A(p,!1),j=y?C(null,t.to,y):A(m,!0),x=[];return(g||p).to<(y||m).from-(g&&y?1:0)||p.widgetLineBreaks>1&&k.bottom+n.defaultLineHeight/2<j.top?x.push(v(u,k.bottom,f,j.top)):k.bottom<j.top&&n.elementAtHeight((k.bottom+j.top)/2).type==ze.Text&&(k.bottom=j.top=(k.bottom+j.top)/2),S(k).concat(x).concat(S(j))}function v(k,j,x,T){return new Os(e,k-l.left,j-l.top,x-k,T-j)}function S({top:k,bottom:j,horizontal:x}){let T=[];for(let P=0;P<x.length;P+=2)T.push(v(x[P],k,x[P+1],j));return T}function C(k,j,x){let T=1e9,P=-1e9,R=[];function L(U,D,$,V,F){let q=n.coordsAtPos(U,U==x.to?-2:2),re=n.coordsAtPos($,$==x.from?2:-2);!q||!re||(T=Math.min(q.top,re.top,T),P=Math.max(q.bottom,re.bottom,P),F==xe.LTR?R.push(s&&D?u:q.left,s&&V?f:re.right):R.push(!s&&V?u:re.left,!s&&D?f:q.right))}let I=k??x.from,W=j??x.to;for(let U of n.visibleRanges)if(U.to>I&&U.from<W)for(let D=Math.max(U.from,I),$=Math.min(U.to,W);;){let V=n.state.doc.lineAt(D);for(let F of n.bidiSpans(V)){let q=F.from+V.from,re=F.to+V.from;if(q>=$)break;re>D&&L(Math.max(q,D),k==null&&q<=I,Math.min(re,$),j==null&&re>=W,F.dir)}if(D=V.to+1,D>=$)break}return R.length==0&&L(I,k==null,W,j==null,n.textDirection),{top:T,bottom:P,horizontal:R}}function A(k,j){let x=a.top+(j?k.top:k.bottom);return{top:x,bottom:x,horizontal:[]}}}function tk(n,e){return n.constructor==e.constructor&&n.eq(e)}class nk{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Mo)!=e.state.facet(Mo)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,r=e.facet(Mo);for(;t<r.length&&r[t]!=this.layer;)t++;this.dom.style.zIndex=String((this.layer.above?150:-1)-t)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:t}=this.view;(e!=this.scaleX||t!=this.scaleY)&&(this.scaleX=e,this.scaleY=t,this.dom.style.transform=`scale(${1/e}, ${1/t})`)}draw(e){if(e.length!=this.drawn.length||e.some((t,r)=>!tk(t,this.drawn[r]))){let t=this.dom.firstChild,r=0;for(let i of e)i.update&&t&&i.constructor&&this.drawn[r].constructor&&i.update(t,this.drawn[r])?(t=t.nextSibling,r++):this.dom.insertBefore(i.draw(),t);for(;t;){let i=t.nextSibling;t.remove(),t=i}this.drawn=e,K.safari&&K.safari_version>=26&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const Mo=G.define();function Mg(n){return[Ae.define(e=>new nk(e,n)),Mo.of(n)]}const Pi=G.define({combine(n){return qt(n,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function rk(n={}){return[Pi.of(n),ik,sk,ok,Zm.of(!0)]}function Dg(n){return n.startState.facet(Pi)!=n.state.facet(Pi)}const ik=Mg({above:!0,markers(n){let{state:e}=n,t=e.facet(Pi),r=[];for(let i of e.selection.ranges){let s=i==e.selection.main;if(i.empty||t.drawRangeCursor){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",a=i.empty?i:N.cursor(i.head,i.head>i.anchor?-1:1);for(let l of Os.forRange(n,o,a))r.push(l)}}return r},update(n,e){n.transactions.some(r=>r.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=Dg(n);return t&&Nd(n.state,e),n.docChanged||n.selectionSet||t},mount(n,e){Nd(e.state,n)},class:"cm-cursorLayer"});function Nd(n,e){e.style.animationDuration=n.facet(Pi).cursorBlinkRate+"ms"}const sk=Mg({above:!1,markers(n){return n.state.selection.ranges.map(e=>e.empty?[]:Os.forRange(n,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(n,e){return n.docChanged||n.selectionSet||n.viewportChanged||Dg(n)},class:"cm-selectionLayer"}),ok=Xn.highest(_.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),Eg=ie.define({map(n,e){return n==null?null:e.mapPos(n)}}),ni=Ve.define({create(){return null},update(n,e){return n!=null&&(n=e.changes.mapPos(n)),e.effects.reduce((t,r)=>r.is(Eg)?r.value:t,n)}}),ak=Ae.fromClass(class{constructor(n){this.view=n,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(n){var e;let t=n.state.field(ni);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(n.startState.field(ni)!=t||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:n}=this,e=n.state.field(ni),t=e!=null&&n.coordsAtPos(e);if(!t)return null;let r=n.scrollDOM.getBoundingClientRect();return{left:t.left-r.left+n.scrollDOM.scrollLeft*n.scaleX,top:t.top-r.top+n.scrollDOM.scrollTop*n.scaleY,height:t.bottom-t.top}}drawCursor(n){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;n?(this.cursor.style.left=n.left/e+"px",this.cursor.style.top=n.top/t+"px",this.cursor.style.height=n.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(n){this.view.state.field(ni)!=n&&this.view.dispatch({effects:Eg.of(n)})}},{eventObservers:{dragover(n){this.setDropPos(this.view.posAtCoords({x:n.clientX,y:n.clientY}))},dragleave(n){(n.target==this.view.contentDOM||!this.view.contentDOM.contains(n.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function lk(){return[ni,ak]}function Ld(n,e,t,r,i){e.lastIndex=0;for(let s=n.iterRange(t,r),o=t,a;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;a=e.exec(s.value);)i(o+a.index,a)}function ck(n,e){let t=n.visibleRanges;if(t.length==1&&t[0].from==n.viewport.from&&t[0].to==n.viewport.to)return t;let r=[];for(let{from:i,to:s}of t)i=Math.max(n.state.doc.lineAt(i).from,i-e),s=Math.min(n.state.doc.lineAt(s).to,s+e),r.length&&r[r.length-1].to>=i?r[r.length-1].to=s:r.push({from:i,to:s});return r}class hk{constructor(e){const{regexp:t,decoration:r,decorate:i,boundary:s,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,i)this.addMatch=(a,l,c,h)=>i(h,c,c+a[0].length,a,l);else if(typeof r=="function")this.addMatch=(a,l,c,h)=>{let u=r(a,l,c);u&&h(c,c+a[0].length,u)};else if(r)this.addMatch=(a,l,c,h)=>h(c,c+a[0].length,r);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let t=new rn,r=t.add.bind(t);for(let{from:i,to:s}of ck(e,this.maxLength))Ld(e.state.doc,this.regexp,i,s,(o,a)=>this.addMatch(a,e,o,r));return t.finish()}updateDeco(e,t){let r=1e9,i=-1;return e.docChanged&&e.changes.iterChanges((s,o,a,l)=>{l>=e.view.viewport.from&&a<=e.view.viewport.to&&(r=Math.min(a,r),i=Math.max(l,i))}),e.viewportMoved||i-r>1e3?this.createDeco(e.view):i>-1?this.updateRange(e.view,t.map(e.changes),r,i):t}updateRange(e,t,r,i){for(let s of e.visibleRanges){let o=Math.max(s.from,r),a=Math.min(s.to,i);if(a>=o){let l=e.state.doc.lineAt(o),c=l.to<a?e.state.doc.lineAt(a):l,h=Math.max(s.from,l.from),u=Math.min(s.to,c.to);if(this.boundary){for(;o>l.from;o--)if(this.boundary.test(l.text[o-1-l.from])){h=o;break}for(;a<c.to;a++)if(this.boundary.test(c.text[a-c.from])){u=a;break}}let f=[],p,m=(g,y,v)=>f.push(v.range(g,y));if(l==c)for(this.regexp.lastIndex=h-l.from;(p=this.regexp.exec(l.text))&&p.index<u-l.from;)this.addMatch(p,e,p.index+l.from,m);else Ld(e.state.doc,this.regexp,h,u,(g,y)=>this.addMatch(y,e,g,m));t=t.update({filterFrom:h,filterTo:u,filter:(g,y)=>g<h||y>u,add:f})}}return t}}const kc=/x/.unicode!=null?"gu":"g",uk=new RegExp(`[\0-\b
62
+ --Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,kc),dk={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Za=null;function fk(){var n;if(Za==null&&typeof document<"u"&&document.body){let e=document.body.style;Za=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return Za||!1}const Do=G.define({combine(n){let e=qt(n,{render:null,specialChars:uk,addSpecialChars:null});return(e.replaceTabs=!fk())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,kc)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,kc)),e}});function pk(n={}){return[Do.of(n),mk()]}let Rd=null;function mk(){return Rd||(Rd=Ae.fromClass(class{constructor(n){this.view=n,this.decorations=ee.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(Do)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new hk({regexp:n.specialChars,decoration:(e,t,r)=>{let{doc:i}=t.state,s=Ze(e[0],0);if(s==9){let o=i.lineAt(r),a=t.state.tabSize,l=Mr(o.text,a,r-o.from);return ee.replace({widget:new xk((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=ee.replace({widget:new yk(n,s)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(Do);n.startState.facet(Do)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}const gk="•";function bk(n){return n>=32?gk:n==10?"␤":String.fromCharCode(9216+n)}class yk extends Yt{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=bk(this.code),r=e.state.phrase("Control character")+" "+(dk[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,r,t);if(i)return i;let s=document.createElement("span");return s.textContent=t,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}}class xk extends Yt{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function vk(){return kk}const wk=ee.line({class:"cm-activeLine"}),kk=Ae.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,t=[];for(let r of n.state.selection.ranges){let i=n.lineBlockAt(r.head);i.from>e&&(t.push(wk.range(i.from)),e=i.from)}return ee.set(t)}},{decorations:n=>n.decorations});class Sk extends Yt{constructor(e){super(),this.content=e}toDOM(e){let t=document.createElement("span");return t.className="cm-placeholder",t.style.pointerEvents="none",t.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(e):this.content.cloneNode(!0)),t.setAttribute("aria-hidden","true"),t}coordsAt(e){let t=e.firstChild?ai(e.firstChild):[];if(!t.length)return null;let r=window.getComputedStyle(e.parentNode),i=Ci(t[0],r.direction!="rtl"),s=parseInt(r.lineHeight);return i.bottom-i.top>s*1.5?{left:i.left,right:i.right,top:i.top,bottom:i.top+s}:i}ignoreEvent(){return!1}}function Ck(n){let e=Ae.fromClass(class{constructor(t){this.view=t,this.placeholder=n?ee.set([ee.widget({widget:new Sk(n),side:1}).range(0)]):ee.none}get decorations(){return this.view.state.doc.length?ee.none:this.placeholder}},{decorations:t=>t.decorations});return typeof n=="string"?[e,_.contentAttributes.of({"aria-placeholder":n})]:e}const Sc=2e3;function Ok(n,e,t){let r=Math.min(e.line,t.line),i=Math.max(e.line,t.line),s=[];if(e.off>Sc||t.off>Sc||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=r;l<=i;l++){let c=n.doc.line(l);c.length<=a&&s.push(N.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=r;l<=i;l++){let c=n.doc.line(l),h=nc(c.text,o,n.tabSize,!0);if(h<0)s.push(N.cursor(c.to));else{let u=nc(c.text,a,n.tabSize);s.push(N.range(c.from+h,c.from+u))}}}return s}function jk(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function Id(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),r=n.state.doc.lineAt(t),i=t-r.from,s=i>Sc?-1:i==r.length?jk(n,e.clientX):Mr(r.text,n.state.tabSize,t-r.from);return{line:r.number,col:s,off:i}}function Pk(n,e){let t=Id(n,e),r=n.state.selection;return t?{update(i){if(i.docChanged){let s=i.changes.mapPos(i.startState.doc.line(t.line).from),o=i.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},r=r.map(i.changes)}},get(i,s,o){let a=Id(n,i);if(!a)return r;let l=Ok(n.state,t,a);return l.length?o?N.create(l.concat(r.ranges)):N.create(l):r}}:null}function Ak(n){let e=t=>t.altKey&&t.button==0;return _.mouseSelectionStyle.of((t,r)=>e(r)?Pk(t,r):null)}const Mk={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},Dk={style:"cursor: crosshair"};function Ek(n={}){let[e,t]=Mk[n.key||"Alt"],r=Ae.fromClass(class{constructor(i){this.view=i,this.isDown=!1}set(i){this.isDown!=i&&(this.isDown=i,this.view.update([]))}},{eventObservers:{keydown(i){this.set(i.keyCode==e||t(i))},keyup(i){(i.keyCode==e||!t(i))&&this.set(!1)},mousemove(i){this.set(t(i))}}});return[r,_.contentAttributes.of(i=>{var s;return!((s=i.plugin(r))===null||s===void 0)&&s.isDown?Dk:null})]}const ao="-10000px";class Tg{constructor(e,t,r,i){this.facet=t,this.createTooltipView=r,this.removeTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=r(o,s))}update(e,t){var r;let i=e.state.facet(this.facet),s=i.filter(l=>l);if(i===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=t?[]:null;for(let l=0;l<s.length;l++){let c=s[l],h=-1;if(c){for(let u=0;u<this.tooltips.length;u++){let f=this.tooltips[u];f&&f.create==c.create&&(h=u)}if(h<0)o[l]=this.createTooltipView(c,l?o[l-1]:null),a&&(a[l]=!!c.above);else{let u=o[l]=this.tooltipViews[h];a&&(a[l]=t[h]),u.update&&u.update(e)}}}for(let l of this.tooltipViews)o.indexOf(l)<0&&(this.removeTooltipView(l),(r=l.destroy)===null||r===void 0||r.call(l));return t&&(a.forEach((l,c)=>t[c]=l),t.length=a.length),this.input=i,this.tooltips=s,this.tooltipViews=o,!0}}function Tk(n){let e=n.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const el=G.define({combine:n=>{var e,t,r;return{position:K.ios?"absolute":((e=n.find(i=>i.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=n.find(i=>i.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((r=n.find(i=>i.tooltipSpace))===null||r===void 0?void 0:r.tooltipSpace)||Tk}}}),Bd=new WeakMap,fh=Ae.fromClass(class{constructor(n){this.view=n,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=n.state.facet(el);this.position=e.position,this.parent=e.parent,this.classes=n.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Tg(n,ph,(t,r)=>this.createTooltip(t,r),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),n.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let n of this.manager.tooltipViews)this.intersectionObserver.observe(n.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(n){n.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(n,this.above);e&&this.observeIntersection();let t=e||n.geometryChanged,r=n.state.facet(el);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let i of this.manager.tooltipViews)i.dom.style.position=this.position;t=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let i of this.manager.tooltipViews)this.container.appendChild(i.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(n,e){let t=n.create(this.view),r=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),n.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let i=document.createElement("div");i.className="cm-tooltip-arrow",t.dom.appendChild(i)}return t.dom.style.position=this.position,t.dom.style.top=ao,t.dom.style.left="0px",this.container.insertBefore(t.dom,r),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var n,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let r of this.manager.tooltipViews)r.dom.remove(),(n=r.destroy)===null||n===void 0||n.call(r);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let n=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(K.safari){let o=s.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else t=!!s.offsetParent&&s.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(n=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:n,scaleY:e}=this.view.viewState);let r=this.view.scrollDOM.getBoundingClientRect(),i=ch(this.view);return{visible:{left:r.left+i.left,top:r.top+i.top,right:r.right-i.right,bottom:r.bottom-i.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(el).tooltipSpace(this.view),scaleX:n,scaleY:e,makeAbsolute:t}}writeMeasure(n){var e;if(n.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:t,space:r,scaleX:i,scaleY:s}=n,o=[];for(let a=0;a<this.manager.tooltips.length;a++){let l=this.manager.tooltips[a],c=this.manager.tooltipViews[a],{dom:h}=c,u=n.pos[a],f=n.size[a];if(!u||l.clip!==!1&&(u.bottom<=Math.max(t.top,r.top)||u.top>=Math.min(t.bottom,r.bottom)||u.right<Math.max(t.left,r.left)-.1||u.left>Math.min(t.right,r.right)+.1)){h.style.top=ao;continue}let p=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,m=p?7:0,g=f.right-f.left,y=(e=Bd.get(c))!==null&&e!==void 0?e:f.bottom-f.top,v=c.offset||Lk,S=this.view.textDirection==xe.LTR,C=f.width>r.right-r.left?S?r.left:r.right-f.width:S?Math.max(r.left,Math.min(u.left-(p?14:0)+v.x,r.right-g)):Math.min(Math.max(r.left,u.left-g+(p?14:0)-v.x),r.right-g),A=this.above[a];!l.strictSide&&(A?u.top-y-m-v.y<r.top:u.bottom+y+m+v.y>r.bottom)&&A==r.bottom-u.bottom>u.top-r.top&&(A=this.above[a]=!A);let k=(A?u.top-r.top:r.bottom-u.bottom)-m;if(k<y&&c.resize!==!1){if(k<this.view.defaultLineHeight){h.style.top=ao;continue}Bd.set(c,y),h.style.height=(y=k)/s+"px"}else h.style.height&&(h.style.height="");let j=A?u.top-y-m-v.y:u.bottom+m+v.y,x=C+g;if(c.overlap!==!0)for(let T of o)T.left<x&&T.right>C&&T.top<j+y&&T.bottom>j&&(j=A?T.top-y-2-m:T.bottom+m+2);if(this.position=="absolute"?(h.style.top=(j-n.parent.top)/s+"px",$d(h,(C-n.parent.left)/i)):(h.style.top=j/s+"px",$d(h,C/i)),p){let T=u.left+(S?v.x:-v.x)-(C+14-7);p.style.left=T/i+"px"}c.overlap!==!0&&o.push({left:C,top:j,right:x,bottom:j+y}),h.classList.toggle("cm-tooltip-above",A),h.classList.toggle("cm-tooltip-below",!A),c.positioned&&c.positioned(n.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let n of this.manager.tooltipViews)n.dom.style.top=ao}},{eventObservers:{scroll(){this.maybeMeasure()}}});function $d(n,e){let t=parseInt(n.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(n.style.left=e+"px")}const Nk=_.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),Lk={x:0,y:0},ph=G.define({enables:[fh,Nk]}),Go=G.define({combine:n=>n.reduce((e,t)=>e.concat(t),[])});class xa{static create(e){return new xa(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Tg(e,Go,(t,r)=>this.createHostedView(t,r),t=>t.dom.remove())}createHostedView(e,t){let r=e.create(this.view);return r.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(r.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&r.mount&&r.mount(this.view),r}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let r of this.manager.tooltipViews){let i=r[e];if(i!==void 0){if(t===void 0)t=i;else if(t!==i)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const Rk=ph.compute([Go],n=>{let e=n.facet(Go);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var r;return(r=t.end)!==null&&r!==void 0?r:t.pos})),create:xa.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class Ik{constructor(e,t,r,i,s){this.view=e,this.source=t,this.field=r,this.setHover=i,this.hoverTime=s,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:e,lastMove:t}=this,r=e.docView.tile.nearest(t.target);if(!r)return;let i,s=1;if(r.isWidget())i=r.posAtStart;else{if(i=e.posAtCoords(t),i==null)return;let a=e.coordsAtPos(i);if(!a||t.y<a.top||t.y>a.bottom||t.x<a.left-e.defaultCharacterWidth||t.x>a.right+e.defaultCharacterWidth)return;let l=e.bidiSpans(e.state.doc.lineAt(i)).find(h=>h.from<=i&&h.to>=i),c=l&&l.dir==xe.RTL?-1:1;s=t.x<a.left?-c:c}let o=this.source(e,i,s);if(o?.then){let a=this.pending={pos:i};o.then(l=>{this.pending==a&&(this.pending=null,l&&!(Array.isArray(l)&&!l.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(l)?l:[l])}))},l=>nt(e.state,l,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(fh),t=e?e.manager.tooltips.findIndex(r=>r.create==xa.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,r;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:i,tooltip:s}=this;if(i.length&&s&&!Bk(s.dom,e)||this.pending){let{pos:o}=i[0]||this.pending,a=(r=(t=i[0])===null||t===void 0?void 0:t.end)!==null&&r!==void 0?r:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!$k(this.view,o,a,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:r}=this;r&&r.dom.contains(e.relatedTarget)?this.watchTooltipLeave(r.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=r=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(r.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const lo=4;function Bk(n,e){let{left:t,right:r,top:i,bottom:s}=n.getBoundingClientRect(),o;if(o=n.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();i=Math.min(a.top,i),s=Math.max(a.bottom,s)}return e.clientX>=t-lo&&e.clientX<=r+lo&&e.clientY>=i-lo&&e.clientY<=s+lo}function $k(n,e,t,r,i,s){let o=n.scrollDOM.getBoundingClientRect(),a=n.documentTop+n.documentPadding.top+n.contentHeight;if(o.left>r||o.right<r||o.top>i||Math.min(o.bottom,a)<i)return!1;let l=n.posAtCoords({x:r,y:i},!1);return l>=e&&l<=t}function Fk(n,e={}){let t=ie.define(),r=Ve.define({create(){return[]},update(i,s){if(i.length&&(e.hideOnChange&&(s.docChanged||s.selection)?i=[]:e.hideOn&&(i=i.filter(o=>!e.hideOn(s,o))),s.docChanged)){let o=[];for(let a of i){let l=s.changes.mapPos(a.pos,-1,Qe.TrackDel);if(l!=null){let c=Object.assign(Object.create(null),a);c.pos=l,c.end!=null&&(c.end=s.changes.mapPos(c.end)),o.push(c)}}i=o}for(let o of s.effects)o.is(t)&&(i=o.value),o.is(zk)&&(i=[]);return i},provide:i=>Go.from(i)});return{active:r,extension:[r,Ae.define(i=>new Ik(i,n,r,t,e.hoverTime||300)),Rk]}}function Ng(n,e){let t=n.plugin(fh);if(!t)return null;let r=t.manager.tooltips.indexOf(e);return r<0?null:t.manager.tooltipViews[r]}const zk=ie.define(),Fd=G.define({combine(n){let e,t;for(let r of n)e=e||r.topContainer,t=t||r.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Ai(n,e){let t=n.plugin(Lg),r=t?t.specs.indexOf(e):-1;return r>-1?t.panels[r]:null}const Lg=Ae.fromClass(class{constructor(n){this.input=n.state.facet(Mi),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(n));let e=n.state.facet(Fd);this.top=new co(n,!0,e.topContainer),this.bottom=new co(n,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(n){let e=n.state.facet(Fd);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new co(n.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new co(n.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=n.state.facet(Mi);if(t!=this.input){let r=t.filter(l=>l),i=[],s=[],o=[],a=[];for(let l of r){let c=this.specs.indexOf(l),h;c<0?(h=l(n.view),a.push(h)):(h=this.panels[c],h.update&&h.update(n)),i.push(h),(h.top?s:o).push(h)}this.specs=r,this.panels=i,this.top.sync(s),this.bottom.sync(o);for(let l of a)l.dom.classList.add("cm-panel"),l.mount&&l.mount()}else for(let r of this.panels)r.update&&r.update(n)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:n=>_.scrollMargins.of(e=>{let t=e.plugin(n);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class co{constructor(e,t,r){this.view=e,this.top=t,this.container=r,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=zd(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=zd(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function zd(n){let e=n.nextSibling;return n.remove(),e}const Mi=G.define({enables:Lg});class on extends kn{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}on.prototype.elementClass="";on.prototype.toDOM=void 0;on.prototype.mapMode=Qe.TrackBefore;on.prototype.startSide=on.prototype.endSide=-1;on.prototype.point=!0;const Eo=G.define(),Vk=G.define(),Hk={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>le.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},hi=G.define();function _k(n){return[Rg(),hi.of({...Hk,...n})]}const Vd=G.define({combine:n=>n.some(e=>e)});function Rg(n){return[Wk]}const Wk=Ae.fromClass(class{constructor(n){this.view=n,this.domAfter=null,this.prevViewport=n.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=n.state.facet(hi).map(e=>new _d(n,e)),this.fixed=!n.state.facet(Vd);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),n.scrollDOM.insertBefore(this.dom,n.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(n){if(this.updateGutters(n)){let e=this.prevViewport,t=n.view.viewport,r=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(r<(t.to-t.from)*.8)}if(n.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(Vd)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=n.view.viewport}syncGutters(n){let e=this.dom.nextSibling;n&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=le.iter(this.view.state.facet(Eo),this.view.viewport.from),r=[],i=this.gutters.map(s=>new Uk(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(s.type)){let o=!0;for(let a of s.type)if(a.type==ze.Text&&o){Cc(t,r,a.from);for(let l of i)l.line(this.view,a,r);o=!1}else if(a.widget)for(let l of i)l.widget(this.view,a)}else if(s.type==ze.Text){Cc(t,r,s.from);for(let o of i)o.line(this.view,s,r)}else if(s.widget)for(let o of i)o.widget(this.view,s);for(let s of i)s.finish();n&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(n){let e=n.startState.facet(hi),t=n.state.facet(hi),r=n.docChanged||n.heightChanged||n.viewportChanged||!le.eq(n.startState.facet(Eo),n.state.facet(Eo),n.view.viewport.from,n.view.viewport.to);if(e==t)for(let i of this.gutters)i.update(n)&&(r=!0);else{r=!0;let i=[];for(let s of t){let o=e.indexOf(s);o<0?i.push(new _d(this.view,s)):(this.gutters[o].update(n),i.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),i.indexOf(s)<0&&s.destroy();for(let s of i)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=i}return r}destroy(){for(let n of this.gutters)n.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:n=>_.scrollMargins.of(e=>{let t=e.plugin(n);if(!t||t.gutters.length==0||!t.fixed)return null;let r=t.dom.offsetWidth*e.scaleX,i=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==xe.LTR?{left:r,right:i}:{right:r,left:i}})});function Hd(n){return Array.isArray(n)?n:[n]}function Cc(n,e,t){for(;n.value&&n.from<=t;)n.from==t&&e.push(n.value),n.next()}class Uk{constructor(e,t,r){this.gutter=e,this.height=r,this.i=0,this.cursor=le.iter(e.markers,t.from)}addElement(e,t,r){let{gutter:i}=this,s=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==i.elements.length){let a=new Ig(e,o,s,r);i.elements.push(a),i.dom.appendChild(a.dom)}else i.elements[this.i].update(e,o,s,r);this.height=t.bottom,this.i++}line(e,t,r){let i=[];Cc(this.cursor,i,t.from),r.length&&(i=i.concat(r));let s=this.gutter.config.lineMarker(e,t,i);s&&i.unshift(s);let o=this.gutter;i.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,i)}widget(e,t){let r=this.gutter.config.widgetMarker(e,t.widget,t),i=r?[r]:null;for(let s of e.state.facet(Vk)){let o=s(e,t.widget,t);o&&(i||(i=[])).push(o)}i&&this.addElement(e,t,i)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class _d{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let r in t.domEventHandlers)this.dom.addEventListener(r,i=>{let s=i.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let l=s.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=i.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[r](e,a,i)&&i.preventDefault()});this.markers=Hd(t.markers(e)),t.initialSpacer&&(this.spacer=new Ig(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Hd(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let i=this.config.updateSpacer(this.spacer.markers[0],e);i!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[i])}let r=e.view.viewport;return!le.eq(this.markers,t,r.from,r.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class Ig{constructor(e,t,r,i){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,r,i)}update(e,t,r,i){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=r&&(this.dom.style.marginTop=(this.above=r)?r+"px":""),Kk(this.markers,i)||this.setMarkers(e,i)}setMarkers(e,t){let r="cm-gutterElement",i=this.dom.firstChild;for(let s=0,o=0;;){let a=o,l=s<t.length?t[s++]:null,c=!1;if(l){let h=l.elementClass;h&&(r+=" "+h);for(let u=o;u<this.markers.length;u++)if(this.markers[u].compare(l)){a=u,c=!0;break}}else a=this.markers.length;for(;o<a;){let h=this.markers[o++];if(h.toDOM){h.destroy(i);let u=i.nextSibling;i.remove(),i=u}}if(!l)break;l.toDOM&&(c?i=i.nextSibling:this.dom.insertBefore(l.toDOM(e),i)),c&&o++}this.dom.className=r,this.markers=t}destroy(){this.setMarkers(null,[])}}function Kk(n,e){if(n.length!=e.length)return!1;for(let t=0;t<n.length;t++)if(!n[t].compare(e[t]))return!1;return!0}const Gk=G.define(),qk=G.define(),cr=G.define({combine(n){return qt(n,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let r=Object.assign({},e);for(let i in t){let s=r[i],o=t[i];r[i]=s?(a,l,c)=>s(a,l,c)||o(a,l,c):o}return r}})}});class tl extends on{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function nl(n,e){return n.state.facet(cr).formatNumber(e,n.state)}const Yk=hi.compute([cr],n=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(Gk)},lineMarker(e,t,r){return r.some(i=>i.toDOM)?null:new tl(nl(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,r)=>{for(let i of e.state.facet(qk)){let s=i(e,t,r);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(cr)!=e.state.facet(cr),initialSpacer(e){return new tl(nl(e,Wd(e.state.doc.lines)))},updateSpacer(e,t){let r=nl(t.view,Wd(t.view.state.doc.lines));return r==e.number?e:new tl(r)},domEventHandlers:n.facet(cr).domEventHandlers,side:"before"}));function Qk(n={}){return[cr.of(n),Rg(),Yk]}function Wd(n){let e=9;for(;e<n;)e=e*10+9;return e}const Jk=new class extends on{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},Xk=Eo.compute(["selection"],n=>{let e=[],t=-1;for(let r of n.selection.ranges){let i=n.doc.lineAt(r.head).from;i>t&&(t=i,e.push(Jk.range(i)))}return le.of(e)});function Zk(){return Xk}var rl;const hr=new ae;function e3(n){return G.define({combine:n?e=>e.concat(n):void 0})}const t3=new ae;class jt{constructor(e,t,r=[],i=""){this.data=e,this.name=i,ce.prototype.hasOwnProperty("tree")||Object.defineProperty(ce.prototype,"tree",{get(){return Ke(this)}}),this.parser=t,this.extension=[jn.of(this),ce.languageData.of((s,o,a)=>{let l=Ud(s,o,a),c=l.type.prop(hr);if(!c)return[];let h=s.facet(c),u=l.type.prop(t3);if(u){let f=l.resolve(o-l.from,a);for(let p of u)if(p.test(f,s)){let m=s.facet(p.facet);return p.type=="replace"?m:m.concat(h)}}return h})].concat(r)}isActiveAt(e,t,r=-1){return Ud(e,t,r).type.prop(hr)==this.data}findRegions(e){let t=e.facet(jn);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let r=[],i=(s,o)=>{if(s.prop(hr)==this.data){r.push({from:o,to:o+s.length});return}let a=s.prop(ae.mounted);if(a){if(a.tree.prop(hr)==this.data){if(a.overlay)for(let l of a.overlay)r.push({from:l.from+o,to:l.to+o});else r.push({from:o,to:o+s.length});return}else if(a.overlay){let l=r.length;if(i(a.tree,a.overlay[0].from+o),r.length>l)return}}for(let l=0;l<s.children.length;l++){let c=s.children[l];c instanceof Pe&&i(c,s.positions[l]+o)}};return i(Ke(e),0),r}get allowsNesting(){return!0}}jt.setState=ie.define();function Ud(n,e,t){let r=n.facet(jn),i=Ke(n).topNode;if(!r||r.allowsNesting)for(let s=i;s;s=s.enter(e,t,Ce.ExcludeBuffers|Ce.EnterBracketed))s.type.isTop&&(i=s);return i}class qo extends jt{constructor(e,t,r){super(e,t,[],r),this.parser=t}static define(e){let t=e3(e.languageData);return new qo(t,e.parser.configure({props:[hr.add(r=>r.isTop?t:void 0)]}),e.name)}configure(e,t){return new qo(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function Ke(n){let e=n.field(jt.state,!1);return e?e.tree:Pe.empty}class n3{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let r=this.cursorPos-this.string.length;return e<r||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-r,t-r)}}let Yr=null;class Yo{constructor(e,t,r=[],i,s,o,a,l){this.parser=e,this.state=t,this.fragments=r,this.tree=i,this.treeLen=s,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,r){return new Yo(e,t,[],Pe.empty,0,r,[],null)}startParse(){return this.parser.startParse(new n3(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=Pe.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var r;if(typeof e=="number"){let i=Date.now()+e;e=()=>Date.now()>i}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let i=this.parse.advance();if(i)if(this.fragments=this.withoutTempSkipped(Un.addTree(i,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(r=this.parse.stoppedAt)!==null&&r!==void 0?r:this.state.doc.length,this.tree=i,this.parse=null,this.treeLen<(t??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(Un.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Yr;Yr=this;try{return e()}finally{Yr=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Kd(e,t.from,t.to);return e}changes(e,t){let{fragments:r,tree:i,treeLen:s,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,h,u,f)=>l.push({fromA:c,toA:h,fromB:u,toB:f})),r=Un.applyChanges(r,l),i=Pe.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let h=e.mapPos(c.from,1),u=e.mapPos(c.to,-1);h<u&&a.push({from:h,to:u})}}}return new Yo(this.parser,t,r,i,s,o,a,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let r=0;r<this.skipped.length;r++){let{from:i,to:s}=this.skipped[r];i<e.to&&s>e.from&&(this.fragments=Kd(this.fragments,i,s),this.skipped.splice(r--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends um{createParse(t,r,i){let s=i[0].from,o=i[i.length-1].to;return{parsedPos:s,advance(){let l=Yr;if(l){for(let c of i)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new Pe(it.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Yr}}function Kd(n,e,t){return Un.applyChanges(n,[{fromA:e,toA:t,fromB:e,toB:t}])}class Or{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),r=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,r)||t.takeTree(),new Or(t)}static init(e){let t=Math.min(3e3,e.doc.length),r=Yo.create(e.facet(jn).parser,e,{from:0,to:t});return r.work(20,t)||r.takeTree(),new Or(r)}}jt.state=Ve.define({create:Or.init,update(n,e){for(let t of e.effects)if(t.is(jt.setState))return t.value;return e.startState.facet(jn)!=e.state.facet(jn)?Or.init(e.state):n.apply(e)}});let Bg=n=>{let e=setTimeout(()=>n(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Bg=n=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(n,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const il=typeof navigator<"u"&&(!((rl=navigator.scheduling)===null||rl===void 0)&&rl.isInputPending)?()=>navigator.scheduling.isInputPending():null,r3=Ae.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(jt.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(jt.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Bg(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:r,viewport:{to:i}}=this.view,s=r.field(jt.state);if(s.tree==s.context.tree&&s.context.isDone(i+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!il?Math.max(25,e.timeRemaining()-5):1e9),a=s.context.treeLen<i&&r.doc.length>i+1e3,l=s.context.work(()=>il&&il()||Date.now()>o,i+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:jt.setState.of(new Or(s.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>nt(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),jn=G.define({combine(n){return n.length?n[0]:null},enables:n=>[jt.state,r3,_.contentAttributes.compute([n],e=>{let t=e.facet(n);return t&&t.name?{"data-language":t.name}:{}})]});class i3{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}const s3=G.define(),va=G.define({combine:n=>{if(!n.length)return" ";let e=n[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(n[0]));return e}});function Qo(n){let e=n.facet(va);return e.charCodeAt(0)==9?n.tabSize*e.length:e.length}function Di(n,e){let t="",r=n.tabSize,i=n.facet(va)[0];if(i==" "){for(;e>=r;)t+=" ",e-=r;i=" "}for(let s=0;s<e;s++)t+=i;return t}function mh(n,e){n instanceof ce&&(n=new wa(n));for(let r of n.state.facet(s3)){let i=r(n,e);if(i!==void 0)return i}let t=Ke(n.state);return t.length>=e?o3(n,t,e):null}class wa{constructor(e,t={}){this.state=e,this.options=t,this.unit=Qo(e)}lineAt(e,t=1){let r=this.state.doc.lineAt(e),{simulateBreak:i,simulateDoubleBreak:s}=this.options;return i!=null&&i>=r.from&&i<=r.to?s&&i==e?{text:"",from:e}:(t<0?i<e:i<=e)?{text:r.text.slice(i-r.from),from:i}:{text:r.text.slice(0,i-r.from),from:r.from}:r}textAfterPos(e,t=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:r,from:i}=this.lineAt(e,t);return r.slice(e-i,Math.min(r.length,e+100-i))}column(e,t=1){let{text:r,from:i}=this.lineAt(e,t),s=this.countColumn(r,e-i),o=this.options.overrideIndentation?this.options.overrideIndentation(i):-1;return o>-1&&(s+=o-this.countColumn(r,r.search(/\S|$/))),s}countColumn(e,t=e.length){return Mr(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:r,from:i}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(i);if(o>-1)return o}return this.countColumn(r,r.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const $g=new ae;function o3(n,e,t){let r=e.resolveStack(t),i=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(i!=r.node){let s=[];for(let o=i;o&&!(o.from<r.node.from||o.to>r.node.to||o.from==r.node.from&&o.type==r.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)r={node:s[o],next:r}}return Fg(r,n,t)}function Fg(n,e,t){for(let r=n;r;r=r.next){let i=l3(r.node);if(i)return i(gh.create(e,t,r))}return 0}function a3(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}function l3(n){let e=n.type.prop($g);if(e)return e;let t=n.firstChild,r;if(t&&(r=t.type.prop(ae.closedBy))){let i=n.lastChild,s=i&&r.indexOf(i.name)>-1;return o=>d3(o,!0,1,void 0,s&&!a3(o)?i.from:void 0)}return n.parent==null?c3:null}function c3(){return 0}class gh extends wa{constructor(e,t,r){super(e.state,e.options),this.base=e,this.pos=t,this.context=r}get node(){return this.context.node}static create(e,t,r){return new gh(e,t,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let r=e.resolve(t.from);for(;r.parent&&r.parent.from==r.from;)r=r.parent;if(h3(r,e))break;t=this.state.doc.lineAt(r.from)}return this.lineIndent(t.from)}continue(){return Fg(this.context.next,this.base,this.pos)}}function h3(n,e){for(let t=e;t;t=t.parent)if(n==t)return!0;return!1}function u3(n){let e=n.node,t=e.childAfter(e.from),r=e.lastChild;if(!t)return null;let i=n.options.simulateBreak,s=n.state.doc.lineAt(t.from),o=i==null||i<=s.from?s.to:Math.min(s.to,i);for(let a=t.to;;){let l=e.childAfter(a);if(!l||l==r)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let c=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+c}}a=l.to}}function d3(n,e,t,r,i){let s=n.textAfter,o=s.match(/^\s*/)[0].length,a=r&&s.slice(o,o+r.length)==r||i==n.pos+o,l=u3(n);return l?a?n.column(l.from):n.column(l.to):n.baseIndent+(a?0:n.unit*t)}function Gd({except:n,units:e=1}={}){return t=>{let r=n&&n.test(t.textAfter);return t.baseIndent+(r?0:e*t.unit)}}const f3=200;function p3(){return ce.transactionFilter.of(n=>{if(!n.docChanged||!n.isUserEvent("input.type")&&!n.isUserEvent("input.complete"))return n;let e=n.startState.languageDataAt("indentOnInput",n.startState.selection.main.head);if(!e.length)return n;let t=n.newDoc,{head:r}=n.newSelection.main,i=t.lineAt(r);if(r>i.from+f3)return n;let s=t.sliceString(i.from,r);if(!e.some(c=>c.test(s)))return n;let{state:o}=n,a=-1,l=[];for(let{head:c}of o.selection.ranges){let h=o.doc.lineAt(c);if(h.from==a)continue;a=h.from;let u=mh(o,h.from);if(u==null)continue;let f=/^\s*/.exec(h.text)[0],p=Di(o,u);f!=p&&l.push({from:h.from,to:h.from+f.length,insert:p})}return l.length?[n,{changes:l,sequential:!0}]:n})}const m3=G.define(),zg=new ae;function g3(n){let e=n.firstChild,t=n.lastChild;return e&&e.to<t.from?{from:e.to,to:t.type.isError?n.to:t.from}:null}function b3(n,e,t){let r=Ke(n);if(r.length<t)return null;let i=r.resolveStack(t,1),s=null;for(let o=i;o;o=o.next){let a=o.node;if(a.to<=t||a.from>t)continue;if(s&&a.from<e)break;let l=a.type.prop(zg);if(l&&(a.to<r.length-50||r.length==n.doc.length||!y3(a))){let c=l(a,n);c&&c.from<=t&&c.from>=e&&c.to>t&&(s=c)}}return s}function y3(n){let e=n.lastChild;return e&&e.to==n.to&&e.type.isError}function Jo(n,e,t){for(let r of n.facet(m3)){let i=r(n,e,t);if(i)return i}return b3(n,e,t)}function Vg(n,e){let t=e.mapPos(n.from,1),r=e.mapPos(n.to,-1);return t>=r?void 0:{from:t,to:r}}const ka=ie.define({map:Vg}),js=ie.define({map:Vg});function Hg(n){let e=[];for(let{head:t}of n.state.selection.ranges)e.some(r=>r.from<=t&&r.to>=t)||e.push(n.lineBlockAt(t));return e}const Yn=Ve.define({create(){return ee.none},update(n,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((t,r)=>n=qd(n,t,r)),n=n.map(e.changes);for(let t of e.effects)if(t.is(ka)&&!x3(n,t.value.from,t.value.to)){let{preparePlaceholder:r}=e.state.facet(Ug),i=r?ee.replace({widget:new j3(r(e.state,t.value))}):Yd;n=n.update({add:[i.range(t.value.from,t.value.to)]})}else t.is(js)&&(n=n.update({filter:(r,i)=>t.value.from!=r||t.value.to!=i,filterFrom:t.value.from,filterTo:t.value.to}));return e.selection&&(n=qd(n,e.selection.main.head)),n},provide:n=>_.decorations.from(n),toJSON(n,e){let t=[];return n.between(0,e.doc.length,(r,i)=>{t.push(r,i)}),t},fromJSON(n){if(!Array.isArray(n)||n.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t<n.length;){let r=n[t++],i=n[t++];if(typeof r!="number"||typeof i!="number")throw new RangeError("Invalid JSON for fold state");e.push(Yd.range(r,i))}return ee.set(e,!0)}});function qd(n,e,t=e){let r=!1;return n.between(e,t,(i,s)=>{i<t&&s>e&&(r=!0)}),r?n.update({filterFrom:e,filterTo:t,filter:(i,s)=>i>=t||s<=e}):n}function Xo(n,e,t){var r;let i=null;return(r=n.field(Yn,!1))===null||r===void 0||r.between(e,t,(s,o)=>{(!i||i.from>s)&&(i={from:s,to:o})}),i}function x3(n,e,t){let r=!1;return n.between(e,e,(i,s)=>{i==e&&s==t&&(r=!0)}),r}function _g(n,e){return n.field(Yn,!1)?e:e.concat(ie.appendConfig.of(Kg()))}const v3=n=>{for(let e of Hg(n)){let t=Jo(n.state,e.from,e.to);if(t)return n.dispatch({effects:_g(n.state,[ka.of(t),Wg(n,t)])}),!0}return!1},w3=n=>{if(!n.state.field(Yn,!1))return!1;let e=[];for(let t of Hg(n)){let r=Xo(n.state,t.from,t.to);r&&e.push(js.of(r),Wg(n,r,!1))}return e.length&&n.dispatch({effects:e}),e.length>0};function Wg(n,e,t=!0){let r=n.state.doc.lineAt(e.from).number,i=n.state.doc.lineAt(e.to).number;return _.announce.of(`${n.state.phrase(t?"Folded lines":"Unfolded lines")} ${r} ${n.state.phrase("to")} ${i}.`)}const k3=n=>{let{state:e}=n,t=[];for(let r=0;r<e.doc.length;){let i=n.lineBlockAt(r),s=Jo(e,i.from,i.to);s&&t.push(ka.of(s)),r=(s?n.lineBlockAt(s.to):i).to+1}return t.length&&n.dispatch({effects:_g(n.state,t)}),!!t.length},S3=n=>{let e=n.state.field(Yn,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,n.state.doc.length,(r,i)=>{t.push(js.of({from:r,to:i}))}),n.dispatch({effects:t}),!0},C3=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:v3},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:w3},{key:"Ctrl-Alt-[",run:k3},{key:"Ctrl-Alt-]",run:S3}],O3={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Ug=G.define({combine(n){return qt(n,O3)}});function Kg(n){return[Yn,M3]}function Gg(n,e){let{state:t}=n,r=t.facet(Ug),i=o=>{let a=n.lineBlockAt(n.posAtDOM(o.target)),l=Xo(n.state,a.from,a.to);l&&n.dispatch({effects:js.of(l)}),o.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(n,i,e);let s=document.createElement("span");return s.textContent=r.placeholderText,s.setAttribute("aria-label",t.phrase("folded code")),s.title=t.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=i,s}const Yd=ee.replace({widget:new class extends Yt{toDOM(n){return Gg(n,null)}}});class j3 extends Yt{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Gg(e,this.value)}}const P3={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class sl extends on{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function A3(n={}){let e={...P3,...n},t=new sl(e,!0),r=new sl(e,!1),i=Ae.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(jn)!=o.state.facet(jn)||o.startState.field(Yn,!1)!=o.state.field(Yn,!1)||Ke(o.startState)!=Ke(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let a=new rn;for(let l of o.viewportLineBlocks){let c=Xo(o.state,l.from,l.to)?r:Jo(o.state,l.from,l.to)?t:null;c&&a.add(l.from,l.from,c)}return a.finish()}}),{domEventHandlers:s}=e;return[i,_k({class:"cm-foldGutter",markers(o){var a;return((a=o.plugin(i))===null||a===void 0?void 0:a.markers)||le.empty},initialSpacer(){return new sl(e,!1)},domEventHandlers:{...s,click:(o,a,l)=>{if(s.click&&s.click(o,a,l))return!0;let c=Xo(o.state,a.from,a.to);if(c)return o.dispatch({effects:js.of(c)}),!0;let h=Jo(o.state,a.from,a.to);return h?(o.dispatch({effects:ka.of(h)}),!0):!1}}}),Kg()]}const M3=_.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Dr{constructor(e,t){this.specs=e;let r;function i(a){let l=Sn.newName();return(r||(r=Object.create(null)))["."+l]=a,l}const s=typeof t.all=="string"?t.all:t.all?i(t.all):void 0,o=t.scope;this.scope=o instanceof jt?a=>a.prop(hr)==o.data:o?a=>a==o:void 0,this.style=pm(e.map(a=>({tag:a.tag,class:a.class||i(Object.assign({},a,{tag:null}))})),{all:s}).style,this.module=r?new Sn(r):null,this.themeType=t.themeType}static define(e,t){return new Dr(e,t||{})}}const Oc=G.define(),qg=G.define({combine(n){return n.length?[n[0]]:null}});function ol(n){let e=n.facet(Oc);return e.length?e:n.facet(qg)}function bh(n,e){let t=[E3],r;return n instanceof Dr&&(n.module&&t.push(_.styleModule.of(n.module)),r=n.themeType),e?.fallback?t.push(qg.of(n)):r?t.push(Oc.computeN([_.darkTheme],i=>i.facet(_.darkTheme)==(r=="dark")?[n]:[])):t.push(Oc.of(n)),t}class D3{constructor(e){this.markCache=Object.create(null),this.tree=Ke(e.state),this.decorations=this.buildDeco(e,ol(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=Ke(e.state),r=ol(e.state),i=r!=ol(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length<s.to&&!i&&t.type==this.tree.type&&o>=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||i)&&(this.tree=t,this.decorations=this.buildDeco(e.view,r),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return ee.none;let r=new rn;for(let{from:i,to:s}of e.visibleRanges)zv(this.tree,t,(o,a,l)=>{r.add(o,a,this.markCache[l]||(this.markCache[l]=ee.mark({class:l})))},i,s);return r.finish()}}const E3=Xn.high(Ae.fromClass(D3,{decorations:n=>n.decorations})),T3=Dr.define([{tag:E.meta,color:"#404740"},{tag:E.link,textDecoration:"underline"},{tag:E.heading,textDecoration:"underline",fontWeight:"bold"},{tag:E.emphasis,fontStyle:"italic"},{tag:E.strong,fontWeight:"bold"},{tag:E.strikethrough,textDecoration:"line-through"},{tag:E.keyword,color:"#708"},{tag:[E.atom,E.bool,E.url,E.contentSeparator,E.labelName],color:"#219"},{tag:[E.literal,E.inserted],color:"#164"},{tag:[E.string,E.deleted],color:"#a11"},{tag:[E.regexp,E.escape,E.special(E.string)],color:"#e40"},{tag:E.definition(E.variableName),color:"#00f"},{tag:E.local(E.variableName),color:"#30a"},{tag:[E.typeName,E.namespace],color:"#085"},{tag:E.className,color:"#167"},{tag:[E.special(E.variableName),E.macroName],color:"#256"},{tag:E.definition(E.propertyName),color:"#00c"},{tag:E.comment,color:"#940"},{tag:E.invalid,color:"#f00"}]),N3=_.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Yg=1e4,Qg="()[]{}",Jg=G.define({combine(n){return qt(n,{afterCursor:!0,brackets:Qg,maxScanDistance:Yg,renderMatch:I3})}}),L3=ee.mark({class:"cm-matchingBracket"}),R3=ee.mark({class:"cm-nonmatchingBracket"});function I3(n){let e=[],t=n.matched?L3:R3;return e.push(t.range(n.start.from,n.start.to)),n.end&&e.push(t.range(n.end.from,n.end.to)),e}const B3=Ve.define({create(){return ee.none},update(n,e){if(!e.docChanged&&!e.selection)return n;let t=[],r=e.state.facet(Jg);for(let i of e.state.selection.ranges){if(!i.empty)continue;let s=Vt(e.state,i.head,-1,r)||i.head>0&&Vt(e.state,i.head-1,1,r)||r.afterCursor&&(Vt(e.state,i.head,1,r)||i.head<e.state.doc.length&&Vt(e.state,i.head+1,-1,r));s&&(t=t.concat(r.renderMatch(s,e.state)))}return ee.set(t,!0)},provide:n=>_.decorations.from(n)}),$3=[B3,N3];function F3(n={}){return[Jg.of(n),$3]}const z3=new ae;function jc(n,e,t){let r=n.prop(e<0?ae.openedBy:ae.closedBy);if(r)return r;if(n.name.length==1){let i=t.indexOf(n.name);if(i>-1&&i%2==(e<0?1:0))return[t[i+e]]}return null}function Pc(n){let e=n.type.prop(z3);return e?e(n.node):n}function Vt(n,e,t,r={}){let i=r.maxScanDistance||Yg,s=r.brackets||Qg,o=Ke(n),a=o.resolveInner(e,t);for(let l=a;l;l=l.parent){let c=jc(l.type,t,s);if(c&&l.from<l.to){let h=Pc(l);if(h&&(t>0?e>=h.from&&e<h.to:e>h.from&&e<=h.to))return V3(n,e,t,l,h,c,s)}}return H3(n,e,t,o,a.type,i,s)}function V3(n,e,t,r,i,s,o){let a=r.parent,l={from:i.from,to:i.to},c=0,h=a?.cursor();if(h&&(t<0?h.childBefore(r.from):h.childAfter(r.to)))do if(t<0?h.to<=r.from:h.from>=r.to){if(c==0&&s.indexOf(h.type.name)>-1&&h.from<h.to){let u=Pc(h);return{start:l,end:u?{from:u.from,to:u.to}:void 0,matched:!0}}else if(jc(h.type,t,o))c++;else if(jc(h.type,-t,o)){if(c==0){let u=Pc(h);return{start:l,end:u&&u.from<u.to?{from:u.from,to:u.to}:void 0,matched:!1}}c--}}while(t<0?h.prevSibling():h.nextSibling());return{start:l,matched:!1}}function H3(n,e,t,r,i,s,o){let a=t<0?n.sliceDoc(e-1,e):n.sliceDoc(e,e+1),l=o.indexOf(a);if(l<0||l%2==0!=t>0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},h=n.doc.iterRange(e,t>0?n.doc.length:0),u=0;for(let f=0;!h.next().done&&f<=s;){let p=h.value;t<0&&(f+=p.length);let m=e+f*t;for(let g=t>0?0:p.length-1,y=t>0?p.length:-1;g!=y;g+=t){let v=o.indexOf(p[g]);if(!(v<0||r.resolveInner(m+g,1).type!=i))if(v%2==0==t>0)u++;else{if(u==1)return{start:c,end:{from:m+g,to:m+g+1},matched:v>>1==l>>1};u--}}t>0&&(f+=p.length)}return h.done?{start:c,matched:!1}:null}const _3=Object.create(null),Qd=[it.none],Jd=[],Xd=Object.create(null),W3=Object.create(null);for(let[n,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])W3[n]=U3(_3,e);function al(n,e){Jd.indexOf(n)>-1||(Jd.push(n),console.warn(e))}function U3(n,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let h=n[c]||E[c];h?typeof h=="function"?l.length?l=l.map(h):al(c,`Modifier ${c} used at start of tag`):l.length?al(c,`Tag ${c} used as modifier`):l=Array.isArray(h)?h:[h]:al(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let r=e.replace(/ /g,"_"),i=r+" "+t.map(a=>a.id),s=Xd[i];if(s)return s.id;let o=Xd[i]=it.define({id:Qd.length,name:r,props:[dm({[r]:t})]});return Qd.push(o),o.id}xe.RTL,xe.LTR;const K3=qo.define({name:"json",parser:Wv.configure({props:[$g.add({Object:Gd({except:/^\s*\}/}),Array:Gd({except:/^\s*\]/})}),zg.add({"Object Array":g3})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function G3(){return new i3(K3)}function Ac(){return Ac=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},Ac.apply(null,arguments)}function q3(n,e){if(n==null)return{};var t={};for(var r in n)if({}.hasOwnProperty.call(n,r)){if(e.indexOf(r)!==-1)continue;t[r]=n[r]}return t}const Y3=n=>{let{state:e}=n,t=e.doc.lineAt(e.selection.main.from),r=xh(n.state,t.from);return r.line?Q3(n):r.block?X3(n):!1};function yh(n,e){return({state:t,dispatch:r})=>{if(t.readOnly)return!1;let i=n(e,t);return i?(r(t.update(i)),!0):!1}}const Q3=yh(tS,0),J3=yh(Xg,0),X3=yh((n,e)=>Xg(n,e,eS(e)),0);function xh(n,e){let t=n.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}const Qr=50;function Z3(n,{open:e,close:t},r,i){let s=n.sliceDoc(r-Qr,r),o=n.sliceDoc(i,i+Qr),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:r-a,margin:a&&1},close:{pos:i+l,margin:l&&1}};let h,u;i-r<=2*Qr?h=u=n.sliceDoc(r,i):(h=n.sliceDoc(r,r+Qr),u=n.sliceDoc(i-Qr,i));let f=/^\s*/.exec(h)[0].length,p=/\s*$/.exec(u)[0].length,m=u.length-p-t.length;return h.slice(f,f+e.length)==e&&u.slice(m,m+t.length)==t?{open:{pos:r+f+e.length,margin:/\s/.test(h.charAt(f+e.length))?1:0},close:{pos:i-p-t.length,margin:/\s/.test(u.charAt(m-1))?1:0}}:null}function eS(n){let e=[];for(let t of n.selection.ranges){let r=n.doc.lineAt(t.from),i=t.to<=r.to?r:n.doc.lineAt(t.to);i.from>r.from&&i.from==t.to&&(i=t.to==r.to+1?r:n.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=i.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return e}function Xg(n,e,t=e.selection.ranges){let r=t.map(s=>xh(e,s.from).block);if(!r.every(s=>s))return null;let i=t.map((s,o)=>Z3(e,r[o],s.from,s.to));if(n!=2&&!i.every(s=>s))return{changes:e.changes(t.map((s,o)=>i[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(n!=1&&i.some(s=>s)){let s=[];for(let o=0,a;o<i.length;o++)if(a=i[o]){let l=r[o],{open:c,close:h}=a;s.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:h.pos-h.margin,to:h.pos+l.close.length})}return{changes:s}}return null}function tS(n,e,t=e.selection.ranges){let r=[],i=-1;for(let{from:s,to:o}of t){let a=r.length,l=1e9,c=xh(e,s).line;if(c){for(let h=s;h<=o;){let u=e.doc.lineAt(h);if(u.from>i&&(s==o||o>u.from)){i=u.from;let f=/^\s*/.exec(u.text)[0].length,p=f==u.length,m=u.text.slice(f,f+c.length)==c?f:-1;f<u.text.length&&f<l&&(l=f),r.push({line:u,comment:m,token:c,indent:f,empty:p,single:!1})}h=u.to+1}if(l<1e9)for(let h=a;h<r.length;h++)r[h].indent<r[h].line.text.length&&(r[h].indent=l);r.length==a+1&&(r[a].single=!0)}}if(n!=2&&r.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:h,single:u}of r)(u||!h)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(n!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of r)if(a>=0){let c=o.from+a,h=c+l.length;o.text[h-o.from]==" "&&h++,s.push({from:c,to:h})}return{changes:s}}return null}const Mc=Gt.define(),nS=Gt.define(),rS=G.define(),Zg=G.define({combine(n){return qt(n,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(r,i)=>e(r,i)||t(r,i)})}}),e0=Ve.define({create(){return Ht.empty},update(n,e){let t=e.state.facet(Zg),r=e.annotation(Mc);if(r){let l=rt.fromTransaction(e,r.selection),c=r.side,h=c==0?n.undone:n.done;return l?h=Zo(h,h.length,t.minDepth,l):h=r0(h,e.startState.selection),new Ht(c==0?r.rest:h,c==0?h:r.rest)}let i=e.annotation(nS);if((i=="full"||i=="before")&&(n=n.isolate()),e.annotation(Le.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let s=rt.fromTransaction(e),o=e.annotation(Le.time),a=e.annotation(Le.userEvent);return s?n=n.addChanges(s,o,a,t,e):e.selection&&(n=n.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(i=="full"||i=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new Ht(n.done.map(rt.fromJSON),n.undone.map(rt.fromJSON))}});function iS(n={}){return[e0,Zg.of(n),_.domEventHandlers({beforeinput(e,t){let r=e.inputType=="historyUndo"?t0:e.inputType=="historyRedo"?Dc:null;return r?(e.preventDefault(),r(t)):!1}})]}function Sa(n,e){return function({state:t,dispatch:r}){if(!e&&t.readOnly)return!1;let i=t.field(e0,!1);if(!i)return!1;let s=i.pop(n,t,e);return s?(r(s),!0):!1}}const t0=Sa(0,!1),Dc=Sa(1,!1),sS=Sa(0,!0),oS=Sa(1,!0);class rt{constructor(e,t,r,i,s){this.changes=e,this.effects=t,this.mapped=r,this.startSelection=i,this.selectionsAfter=s}setSelAfter(e){return new rt(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(i=>i.toJSON())}}static fromJSON(e){return new rt(e.changes&&Te.fromJSON(e.changes),[],e.mapped&&Wt.fromJSON(e.mapped),e.startSelection&&N.fromJSON(e.startSelection),e.selectionsAfter.map(N.fromJSON))}static fromTransaction(e,t){let r=bt;for(let i of e.startState.facet(rS)){let s=i(e);s.length&&(r=r.concat(s))}return!r.length&&e.changes.empty?null:new rt(e.changes.invert(e.startState.doc),r,void 0,t||e.startState.selection,bt)}static selection(e){return new rt(void 0,bt,void 0,void 0,e)}}function Zo(n,e,t,r){let i=e+1>t+20?e-t-1:0,s=n.slice(i,e);return s.push(r),s}function aS(n,e){let t=[],r=!1;return n.iterChangedRanges((i,s)=>t.push(i,s)),e.iterChangedRanges((i,s,o,a)=>{for(let l=0;l<t.length;){let c=t[l++],h=t[l++];a>=c&&o<=h&&(r=!0)}}),r}function lS(n,e){return n.ranges.length==e.ranges.length&&n.ranges.filter((t,r)=>t.empty!=e.ranges[r].empty).length===0}function n0(n,e){return n.length?e.length?n.concat(e):n:e}const bt=[],cS=200;function r0(n,e){if(n.length){let t=n[n.length-1],r=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-cS));return r.length&&r[r.length-1].eq(e)?n:(r.push(e),Zo(n,n.length-1,1e9,t.setSelAfter(r)))}else return[rt.selection([e])]}function hS(n){let e=n[n.length-1],t=n.slice();return t[n.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function ll(n,e){if(!n.length)return n;let t=n.length,r=bt;for(;t;){let i=uS(n[t-1],e,r);if(i.changes&&!i.changes.empty||i.effects.length){let s=n.slice(0,t);return s[t-1]=i,s}else e=i.mapped,t--,r=i.selectionsAfter}return r.length?[rt.selection(r)]:bt}function uS(n,e,t){let r=n0(n.selectionsAfter.length?n.selectionsAfter.map(a=>a.map(e)):bt,t);if(!n.changes)return rt.selection(r);let i=n.changes.map(e),s=e.mapDesc(n.changes,!0),o=n.mapped?n.mapped.composeDesc(s):s;return new rt(i,ie.mapEffects(n.effects,e),o,n.startSelection.map(s),r)}const dS=/^(input\.type|delete)($|\.)/;class Ht{constructor(e,t,r=0,i=void 0){this.done=e,this.undone=t,this.prevTime=r,this.prevUserEvent=i}isolate(){return this.prevTime?new Ht(this.done,this.undone):this}addChanges(e,t,r,i,s){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!r||dS.test(r))&&(!a.selectionsAfter.length&&t-this.prevTime<i.newGroupDelay&&i.joinToEvent(s,aS(a.changes,e.changes))||r=="input.type.compose")?o=Zo(o,o.length-1,i.minDepth,new rt(e.changes.compose(a.changes),n0(ie.mapEffects(e.effects,a.changes),a.effects),a.mapped,a.startSelection,bt)):o=Zo(o,o.length,i.minDepth,e),new Ht(o,bt,t,r)}addSelection(e,t,r,i){let s=this.done.length?this.done[this.done.length-1].selectionsAfter:bt;return s.length>0&&t-this.prevTime<i&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&lS(s[s.length-1],e)?this:new Ht(r0(this.done,e),this.undone,t,r)}addMapping(e){return new Ht(ll(this.done,e),ll(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,r){let i=e==0?this.done:this.undone;if(i.length==0)return null;let s=i[i.length-1],o=s.selectionsAfter[0]||t.selection;if(r&&s.selectionsAfter.length)return t.update({selection:s.selectionsAfter[s.selectionsAfter.length-1],annotations:Mc.of({side:e,rest:hS(i),selection:o}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(s.changes){let a=i.length==1?bt:i.slice(0,i.length-1);return s.mapped&&(a=ll(a,s.mapped)),t.update({changes:s.changes,selection:s.startSelection,effects:s.effects,annotations:Mc.of({side:e,rest:a,selection:o}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}Ht.empty=new Ht(bt,bt);const fS=[{key:"Mod-z",run:t0,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Dc,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Dc,preventDefault:!0},{key:"Mod-u",run:sS,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:oS,preventDefault:!0}];function Er(n,e){return N.create(n.ranges.map(e),n.mainIndex)}function Mt(n,e){return n.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Dt({state:n,dispatch:e},t){let r=Er(n.selection,t);return r.eq(n.selection,!0)?!1:(e(Mt(n,r)),!0)}function Ca(n,e){return N.cursor(e?n.to:n.from)}function i0(n,e){return Dt(n,t=>t.empty?n.moveByChar(t,e):Ca(t,e))}function Ge(n){return n.textDirectionAt(n.state.selection.main.head)==xe.LTR}const s0=n=>i0(n,!Ge(n)),o0=n=>i0(n,Ge(n));function a0(n,e){return Dt(n,t=>t.empty?n.moveByGroup(t,e):Ca(t,e))}const pS=n=>a0(n,!Ge(n)),mS=n=>a0(n,Ge(n));function gS(n,e,t){if(e.type.prop(t))return!0;let r=e.to-e.from;return r&&(r>2||/[^\s,.;:]/.test(n.sliceDoc(e.from,e.to)))||e.firstChild}function Oa(n,e,t){let r=Ke(n).resolveInner(e.head),i=t?ae.closedBy:ae.openedBy;for(let l=e.head;;){let c=t?r.childAfter(l):r.childBefore(l);if(!c)break;gS(n,c,i)?r=c:l=t?c.to:c.from}let s=r.type.prop(i),o,a;return s&&(o=t?Vt(n,r.from,1):Vt(n,r.to,-1))&&o.matched?a=t?o.end.to:o.end.from:a=t?r.to:r.from,N.cursor(a,t?-1:1)}const bS=n=>Dt(n,e=>Oa(n.state,e,!Ge(n))),yS=n=>Dt(n,e=>Oa(n.state,e,Ge(n)));function l0(n,e){return Dt(n,t=>{if(!t.empty)return Ca(t,e);let r=n.moveVertically(t,e);return r.head!=t.head?r:n.moveToLineBoundary(t,e)})}const c0=n=>l0(n,!1),h0=n=>l0(n,!0);function u0(n){let e=n.scrollDOM.clientHeight<n.scrollDOM.scrollHeight-2,t=0,r=0,i;if(e){for(let s of n.state.facet(_.scrollMargins)){let o=s(n);o?.top&&(t=Math.max(o?.top,t)),o?.bottom&&(r=Math.max(o?.bottom,r))}i=n.scrollDOM.clientHeight-t-r}else i=(n.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:t,marginBottom:r,selfScroll:e,height:Math.max(n.defaultLineHeight,i-5)}}function d0(n,e){let t=u0(n),{state:r}=n,i=Er(r.selection,o=>o.empty?n.moveVertically(o,e,t.height):Ca(o,e));if(i.eq(r.selection))return!1;let s;if(t.selfScroll){let o=n.coordsAtPos(r.selection.main.head),a=n.scrollDOM.getBoundingClientRect(),l=a.top+t.marginTop,c=a.bottom-t.marginBottom;o&&o.top>l&&o.bottom<c&&(s=_.scrollIntoView(i.main.head,{y:"start",yMargin:o.top-l}))}return n.dispatch(Mt(r,i),{effects:s}),!0}const Zd=n=>d0(n,!1),Ec=n=>d0(n,!0);function An(n,e,t){let r=n.lineBlockAt(e.head),i=n.moveToLineBoundary(e,t);if(i.head==e.head&&i.head!=(t?r.to:r.from)&&(i=n.moveToLineBoundary(e,t,!1)),!t&&i.head==r.from&&r.length){let s=/^\s*/.exec(n.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;s&&e.head!=r.from+s&&(i=N.cursor(r.from+s))}return i}const xS=n=>Dt(n,e=>An(n,e,!0)),vS=n=>Dt(n,e=>An(n,e,!1)),wS=n=>Dt(n,e=>An(n,e,!Ge(n))),kS=n=>Dt(n,e=>An(n,e,Ge(n))),SS=n=>Dt(n,e=>N.cursor(n.lineBlockAt(e.head).from,1)),CS=n=>Dt(n,e=>N.cursor(n.lineBlockAt(e.head).to,-1));function OS(n,e,t){let r=!1,i=Er(n.selection,s=>{let o=Vt(n,s.head,-1)||Vt(n,s.head,1)||s.head>0&&Vt(n,s.head-1,1)||s.head<n.doc.length&&Vt(n,s.head+1,-1);if(!o||!o.end)return s;r=!0;let a=o.start.from==s.head?o.end.to:o.end.from;return N.cursor(a)});return r?(e(Mt(n,i)),!0):!1}const jS=({state:n,dispatch:e})=>OS(n,e);function St(n,e){let t=Er(n.state.selection,r=>{let i=e(r);return N.range(r.anchor,i.head,i.goalColumn,i.bidiLevel||void 0)});return t.eq(n.state.selection)?!1:(n.dispatch(Mt(n.state,t)),!0)}function f0(n,e){return St(n,t=>n.moveByChar(t,e))}const p0=n=>f0(n,!Ge(n)),m0=n=>f0(n,Ge(n));function g0(n,e){return St(n,t=>n.moveByGroup(t,e))}const PS=n=>g0(n,!Ge(n)),AS=n=>g0(n,Ge(n)),MS=n=>St(n,e=>Oa(n.state,e,!Ge(n))),DS=n=>St(n,e=>Oa(n.state,e,Ge(n)));function b0(n,e){return St(n,t=>n.moveVertically(t,e))}const y0=n=>b0(n,!1),x0=n=>b0(n,!0);function v0(n,e){return St(n,t=>n.moveVertically(t,e,u0(n).height))}const ef=n=>v0(n,!1),tf=n=>v0(n,!0),ES=n=>St(n,e=>An(n,e,!0)),TS=n=>St(n,e=>An(n,e,!1)),NS=n=>St(n,e=>An(n,e,!Ge(n))),LS=n=>St(n,e=>An(n,e,Ge(n))),RS=n=>St(n,e=>N.cursor(n.lineBlockAt(e.head).from)),IS=n=>St(n,e=>N.cursor(n.lineBlockAt(e.head).to)),nf=({state:n,dispatch:e})=>(e(Mt(n,{anchor:0})),!0),rf=({state:n,dispatch:e})=>(e(Mt(n,{anchor:n.doc.length})),!0),sf=({state:n,dispatch:e})=>(e(Mt(n,{anchor:n.selection.main.anchor,head:0})),!0),of=({state:n,dispatch:e})=>(e(Mt(n,{anchor:n.selection.main.anchor,head:n.doc.length})),!0),BS=({state:n,dispatch:e})=>(e(n.update({selection:{anchor:0,head:n.doc.length},userEvent:"select"})),!0),$S=({state:n,dispatch:e})=>{let t=ja(n).map(({from:r,to:i})=>N.range(r,Math.min(i+1,n.doc.length)));return e(n.update({selection:N.create(t),userEvent:"select"})),!0},FS=({state:n,dispatch:e})=>{let t=Er(n.selection,r=>{let i=Ke(n),s=i.resolveStack(r.from,1);if(r.empty){let o=i.resolveStack(r.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:a}=o;if((a.from<r.from&&a.to>=r.to||a.to>r.to&&a.from<=r.from)&&o.next)return N.range(a.to,a.from)}return r});return t.eq(n.selection)?!1:(e(Mt(n,t)),!0)};function w0(n,e){let{state:t}=n,r=t.selection,i=t.selection.ranges.slice();for(let s of t.selection.ranges){let o=t.doc.lineAt(s.head);if(e?o.to<n.state.doc.length:o.from>0)for(let a=s;;){let l=n.moveVertically(a,e);if(l.head<o.from||l.head>o.to){i.some(c=>c.head==l.head)||i.push(l);break}else{if(l.head==a.head)break;a=l}}}return i.length==r.ranges.length?!1:(n.dispatch(Mt(t,N.create(i,i.length-1))),!0)}const zS=n=>w0(n,!1),VS=n=>w0(n,!0),HS=({state:n,dispatch:e})=>{let t=n.selection,r=null;return t.ranges.length>1?r=N.create([t.main]):t.main.empty||(r=N.create([N.cursor(t.main.head)])),r?(e(Mt(n,r)),!0):!1};function Ps(n,e){if(n.state.readOnly)return!1;let t="delete.selection",{state:r}=n,i=r.changeByRange(s=>{let{from:o,to:a}=s;if(o==a){let l=e(s);l<o?(t="delete.backward",l=ho(n,l,!1)):l>o&&(t="delete.forward",l=ho(n,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=ho(n,o,!1),a=ho(n,a,!0);return o==a?{range:s}:{changes:{from:o,to:a},range:N.cursor(o,o<s.head?-1:1)}});return i.changes.empty?!1:(n.dispatch(r.update(i,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?_.announce.of(r.phrase("Selection deleted")):void 0})),!0)}function ho(n,e,t){if(n instanceof _)for(let r of n.state.facet(_.atomicRanges).map(i=>i(n)))r.between(e,e,(i,s)=>{i<e&&s>e&&(e=t?s:i)});return e}const k0=(n,e,t)=>Ps(n,r=>{let i=r.from,{state:s}=n,o=s.doc.lineAt(i),a,l;if(t&&!e&&i>o.from&&i<o.from+200&&!/[^ \t]/.test(a=o.text.slice(0,i-o.from))){if(a[a.length-1]==" ")return i-1;let c=Mr(a,s.tabSize),h=c%Qo(s)||Qo(s);for(let u=0;u<h&&a[a.length-1-u]==" ";u++)i--;l=i}else l=Ne(o.text,i-o.from,e,e)+o.from,l==i&&o.number!=(e?s.doc.lines:1)?l+=e?1:-1:!e&&/[\ufe00-\ufe0f]/.test(o.text.slice(l-o.from,i-o.from))&&(l=Ne(o.text,l-o.from,!1,!1)+o.from);return l}),Tc=n=>k0(n,!1,!0),S0=n=>k0(n,!0,!1),C0=(n,e)=>Ps(n,t=>{let r=t.head,{state:i}=n,s=i.doc.lineAt(r),o=i.charCategorizer(r);for(let a=null;;){if(r==(e?s.to:s.from)){r==t.head&&s.number!=(e?i.doc.lines:1)&&(r+=e?1:-1);break}let l=Ne(s.text,r-s.from,e)+s.from,c=s.text.slice(Math.min(r,l)-s.from,Math.max(r,l)-s.from),h=o(c);if(a!=null&&h!=a)break;(c!=" "||r!=t.head)&&(a=h),r=l}return r}),O0=n=>C0(n,!1),_S=n=>C0(n,!0),WS=n=>Ps(n,e=>{let t=n.lineBlockAt(e.head).to;return e.head<t?t:Math.min(n.state.doc.length,e.head+1)}),US=n=>Ps(n,e=>{let t=n.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),KS=n=>Ps(n,e=>{let t=n.moveToLineBoundary(e,!0).head;return e.head<t?t:Math.min(n.state.doc.length,e.head+1)}),GS=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:pe.of(["",""])},range:N.cursor(r.from)}));return e(n.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},qS=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(r=>{if(!r.empty||r.from==0||r.from==n.doc.length)return{range:r};let i=r.from,s=n.doc.lineAt(i),o=i==s.from?i-1:Ne(s.text,i-s.from,!1)+s.from,a=i==s.to?i+1:Ne(s.text,i-s.from,!0)+s.from;return{changes:{from:o,to:a,insert:n.doc.slice(i,a).append(n.doc.slice(o,i))},range:N.cursor(a)}});return t.changes.empty?!1:(e(n.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function ja(n){let e=[],t=-1;for(let r of n.selection.ranges){let i=n.doc.lineAt(r.from),s=n.doc.lineAt(r.to);if(!r.empty&&r.to==s.from&&(s=n.doc.lineAt(r.to-1)),t>=i.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(r)}else e.push({from:i.from,to:s.to,ranges:[r]});t=s.number+1}return e}function j0(n,e,t){if(n.readOnly)return!1;let r=[],i=[];for(let s of ja(n)){if(t?s.to==n.doc.length:s.from==0)continue;let o=n.doc.lineAt(t?s.to+1:s.from-1),a=o.length+1;if(t){r.push({from:s.to,to:o.to},{from:s.from,insert:o.text+n.lineBreak});for(let l of s.ranges)i.push(N.range(Math.min(n.doc.length,l.anchor+a),Math.min(n.doc.length,l.head+a)))}else{r.push({from:o.from,to:s.from},{from:s.to,insert:n.lineBreak+o.text});for(let l of s.ranges)i.push(N.range(l.anchor-a,l.head-a))}}return r.length?(e(n.update({changes:r,scrollIntoView:!0,selection:N.create(i,n.selection.mainIndex),userEvent:"move.line"})),!0):!1}const YS=({state:n,dispatch:e})=>j0(n,e,!1),QS=({state:n,dispatch:e})=>j0(n,e,!0);function P0(n,e,t){if(n.readOnly)return!1;let r=[];for(let s of ja(n))t?r.push({from:s.from,insert:n.doc.slice(s.from,s.to)+n.lineBreak}):r.push({from:s.to,insert:n.lineBreak+n.doc.slice(s.from,s.to)});let i=n.changes(r);return e(n.update({changes:i,selection:n.selection.map(i,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const JS=({state:n,dispatch:e})=>P0(n,e,!1),XS=({state:n,dispatch:e})=>P0(n,e,!0),ZS=n=>{if(n.state.readOnly)return!1;let{state:e}=n,t=e.changes(ja(e).map(({from:i,to:s})=>(i>0?i--:s<e.doc.length&&s++,{from:i,to:s}))),r=Er(e.selection,i=>{let s;if(n.lineWrapping){let o=n.lineBlockAt(i.head),a=n.coordsAtPos(i.head,i.assoc||1);a&&(s=o.bottom+n.documentTop-a.bottom+n.defaultLineHeight/2)}return n.moveVertically(i,!0,s)}).map(t);return n.dispatch({changes:t,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0};function e4(n,e){if(/\(\)|\[\]|\{\}/.test(n.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=Ke(n).resolveInner(e),r=t.childBefore(e),i=t.childAfter(e),s;return r&&i&&r.to<=e&&i.from>=e&&(s=r.type.prop(ae.closedBy))&&s.indexOf(i.name)>-1&&n.doc.lineAt(r.to).from==n.doc.lineAt(i.from).from&&!/\S/.test(n.sliceDoc(r.to,i.from))?{from:r.to,to:i.from}:null}const af=A0(!1),t4=A0(!0);function A0(n){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let r=e.changeByRange(i=>{let{from:s,to:o}=i,a=e.doc.lineAt(s),l=!n&&s==o&&e4(e,s);n&&(s=o=(o<=a.to?a:e.doc.lineAt(o)).to);let c=new wa(e,{simulateBreak:s,simulateDoubleBreak:!!l}),h=mh(c,s);for(h==null&&(h=Mr(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));o<a.to&&/\s/.test(a.text[o-a.from]);)o++;l?{from:s,to:o}=l:s>a.from&&s<a.from+100&&!/\S/.test(a.text.slice(0,s))&&(s=a.from);let u=["",Di(e,h)];return l&&u.push(Di(e,c.lineIndent(a.from,-1))),{changes:{from:s,to:o,insert:pe.of(u)},range:N.cursor(s+1+u[1].length)}});return t(e.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function vh(n,e){let t=-1;return n.changeByRange(r=>{let i=[];for(let o=r.from;o<=r.to;){let a=n.doc.lineAt(o);a.number>t&&(r.empty||r.to>a.from)&&(e(a,i,r),t=a.number),o=a.to+1}let s=n.changes(i);return{changes:i,range:N.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}})}const n4=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=Object.create(null),r=new wa(n,{overrideIndentation:s=>{let o=t[s];return o??-1}}),i=vh(n,(s,o,a)=>{let l=mh(r,s.from);if(l==null)return;/\S/.test(s.text)||(l=0);let c=/^\s*/.exec(s.text)[0],h=Di(n,l);(c!=h||a.from<s.from+c.length)&&(t[s.from]=l,o.push({from:s.from,to:s.from+c.length,insert:h}))});return i.changes.empty||e(n.update(i,{userEvent:"indent"})),!0},M0=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(vh(n,(t,r)=>{r.push({from:t.from,insert:n.facet(va)})}),{userEvent:"input.indent"})),!0),D0=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(vh(n,(t,r)=>{let i=/^\s*/.exec(t.text)[0];if(!i)return;let s=Mr(i,n.tabSize),o=0,a=Di(n,Math.max(0,s-Qo(n)));for(;o<i.length&&o<a.length&&i.charCodeAt(o)==a.charCodeAt(o);)o++;r.push({from:t.from+o,to:t.from+i.length,insert:a.slice(o)})}),{userEvent:"delete.dedent"})),!0),r4=n=>(n.setTabFocusMode(),!0),i4=[{key:"Ctrl-b",run:s0,shift:p0,preventDefault:!0},{key:"Ctrl-f",run:o0,shift:m0},{key:"Ctrl-p",run:c0,shift:y0},{key:"Ctrl-n",run:h0,shift:x0},{key:"Ctrl-a",run:SS,shift:RS},{key:"Ctrl-e",run:CS,shift:IS},{key:"Ctrl-d",run:S0},{key:"Ctrl-h",run:Tc},{key:"Ctrl-k",run:WS},{key:"Ctrl-Alt-h",run:O0},{key:"Ctrl-o",run:GS},{key:"Ctrl-t",run:qS},{key:"Ctrl-v",run:Ec}],s4=[{key:"ArrowLeft",run:s0,shift:p0,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:pS,shift:PS,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:wS,shift:NS,preventDefault:!0},{key:"ArrowRight",run:o0,shift:m0,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:mS,shift:AS,preventDefault:!0},{mac:"Cmd-ArrowRight",run:kS,shift:LS,preventDefault:!0},{key:"ArrowUp",run:c0,shift:y0,preventDefault:!0},{mac:"Cmd-ArrowUp",run:nf,shift:sf},{mac:"Ctrl-ArrowUp",run:Zd,shift:ef},{key:"ArrowDown",run:h0,shift:x0,preventDefault:!0},{mac:"Cmd-ArrowDown",run:rf,shift:of},{mac:"Ctrl-ArrowDown",run:Ec,shift:tf},{key:"PageUp",run:Zd,shift:ef},{key:"PageDown",run:Ec,shift:tf},{key:"Home",run:vS,shift:TS,preventDefault:!0},{key:"Mod-Home",run:nf,shift:sf},{key:"End",run:xS,shift:ES,preventDefault:!0},{key:"Mod-End",run:rf,shift:of},{key:"Enter",run:af,shift:af},{key:"Mod-a",run:BS},{key:"Backspace",run:Tc,shift:Tc,preventDefault:!0},{key:"Delete",run:S0,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:O0,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:_S,preventDefault:!0},{mac:"Mod-Backspace",run:US,preventDefault:!0},{mac:"Mod-Delete",run:KS,preventDefault:!0}].concat(i4.map(n=>({mac:n.key,run:n.run,shift:n.shift}))),o4=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:bS,shift:MS},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:yS,shift:DS},{key:"Alt-ArrowUp",run:YS},{key:"Shift-Alt-ArrowUp",run:JS},{key:"Alt-ArrowDown",run:QS},{key:"Shift-Alt-ArrowDown",run:XS},{key:"Mod-Alt-ArrowUp",run:zS},{key:"Mod-Alt-ArrowDown",run:VS},{key:"Escape",run:HS},{key:"Mod-Enter",run:t4},{key:"Alt-l",mac:"Ctrl-l",run:$S},{key:"Mod-i",run:FS,preventDefault:!0},{key:"Mod-[",run:D0},{key:"Mod-]",run:M0},{key:"Mod-Alt-\\",run:n4},{key:"Shift-Mod-k",run:ZS},{key:"Shift-Mod-\\",run:jS},{key:"Mod-/",run:Y3},{key:"Alt-A",run:J3},{key:"Ctrl-m",mac:"Shift-Alt-m",run:r4}].concat(s4),a4={key:"Tab",run:M0,shift:D0},lf=typeof String.prototype.normalize=="function"?n=>n.normalize("NFKD"):n=>n;class jr{constructor(e,t,r=0,i=e.length,s,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(r,i),this.bufferStart=r,this.normalize=s?a=>s(lf(a)):lf,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Ze(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=Xc(e),r=this.bufferStart+this.bufferPos;this.bufferPos+=$t(e);let i=this.normalize(t);if(i.length)for(let s=0,o=r;;s++){let a=i.charCodeAt(s),l=this.match(a,o,this.bufferPos+this.bufferStart);if(s==i.length-1){if(l)return this.value=l,this;break}o==r&&s<t.length&&t.charCodeAt(s)==a&&o++}}}match(e,t,r){let i=null;for(let s=0;s<this.matches.length;s+=2){let o=this.matches[s],a=!1;this.query.charCodeAt(o)==e&&(o==this.query.length-1?i={from:this.matches[s+1],to:r}:(this.matches[s]++,a=!0)),a||(this.matches.splice(s,2),s-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?i={from:t,to:r}:this.matches.push(1,t)),i&&this.test&&!this.test(i.from,i.to,this.buffer,this.bufferStart)&&(i=null),i}}typeof Symbol<"u"&&(jr.prototype[Symbol.iterator]=function(){return this});const E0={from:-1,to:-1,match:/.*/.exec("")},wh="gm"+(/x/.unicode==null?"":"u");class T0{constructor(e,t,r,i=0,s=e.length){if(this.text=e,this.to=s,this.curLine="",this.done=!1,this.value=E0,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new N0(e,t,r,i,s);this.re=new RegExp(t,wh+(r?.ignoreCase?"i":"")),this.test=r?.test,this.iter=e.iter();let o=e.lineAt(i);this.curLineStart=o.from,this.matchPos=ea(e,i),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let r=this.curLineStart+t.index,i=r+t[0].length;if(this.matchPos=ea(this.text,i+(r==i?1:0)),r==this.curLineStart+this.curLine.length&&this.nextLine(),(r<i||r>this.value.to)&&(!this.test||this.test(r,i,t)))return this.value={from:r,to:i,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const cl=new WeakMap;class yr{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,r){let i=cl.get(e);if(!i||i.from>=r||i.to<=t){let a=new yr(t,e.sliceString(t,r));return cl.set(e,a),a}if(i.from==t&&i.to==r)return i;let{text:s,from:o}=i;return o>t&&(s=e.sliceString(t,o)+s,o=t),i.to<r&&(s+=e.sliceString(i.to,r)),cl.set(e,new yr(o,s)),new yr(t,s.slice(t-o,r-o))}}class N0{constructor(e,t,r,i,s){this.text=e,this.to=s,this.done=!1,this.value=E0,this.matchPos=ea(e,i),this.re=new RegExp(t,wh+(r?.ignoreCase?"i":"")),this.test=r?.test,this.flat=yr.get(e,i,this.chunkEnd(i+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let r=this.flat.from+t.index,i=r+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(r,i,t)))return this.value={from:r,to:i,match:t},this.matchPos=ea(this.text,i+(r==i?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=yr.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(T0.prototype[Symbol.iterator]=N0.prototype[Symbol.iterator]=function(){return this});function l4(n){try{return new RegExp(n,wh),!0}catch{return!1}}function ea(n,e){if(e>=n.length)return e;let t=n.lineAt(e),r;for(;e<t.to&&(r=t.text.charCodeAt(e-t.from))>=56320&&r<57344;)e++;return e}function Nc(n){let e=String(n.state.doc.lineAt(n.state.selection.main.head).number),t=be("input",{class:"cm-textfield",name:"line",value:e}),r=be("form",{class:"cm-gotoLine",onkeydown:s=>{s.keyCode==27?(s.preventDefault(),n.dispatch({effects:ui.of(!1)}),n.focus()):s.keyCode==13&&(s.preventDefault(),i())},onsubmit:s=>{s.preventDefault(),i()}},be("label",n.state.phrase("Go to line"),": ",t)," ",be("button",{class:"cm-button",type:"submit"},n.state.phrase("go")),be("button",{name:"close",onclick:()=>{n.dispatch({effects:ui.of(!1)}),n.focus()},"aria-label":n.state.phrase("close"),type:"button"},["×"]));function i(){let s=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(!s)return;let{state:o}=n,a=o.doc.lineAt(o.selection.main.head),[,l,c,h,u]=s,f=h?+h.slice(1):0,p=c?+c:a.number;if(c&&u){let y=p/100;l&&(y=y*(l=="-"?-1:1)+a.number/o.doc.lines),p=Math.round(o.doc.lines*y)}else c&&l&&(p=p*(l=="-"?-1:1)+a.number);let m=o.doc.line(Math.max(1,Math.min(o.doc.lines,p))),g=N.cursor(m.from+Math.max(0,Math.min(f,m.length)));n.dispatch({effects:[ui.of(!1),_.scrollIntoView(g.from,{y:"center"})],selection:g}),n.focus()}return{dom:r}}const ui=ie.define(),cf=Ve.define({create(){return!0},update(n,e){for(let t of e.effects)t.is(ui)&&(n=t.value);return n},provide:n=>Mi.from(n,e=>e?Nc:null)}),c4=n=>{let e=Ai(n,Nc);if(!e){let t=[ui.of(!0)];n.state.field(cf,!1)==null&&t.push(ie.appendConfig.of([cf,h4])),n.dispatch({effects:t}),e=Ai(n,Nc)}return e&&e.dom.querySelector("input").select(),!0},h4=_.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),u4={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},d4=G.define({combine(n){return qt(n,u4,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function f4(n){return[y4,b4]}const p4=ee.mark({class:"cm-selectionMatch"}),m4=ee.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function hf(n,e,t,r){return(t==0||n(e.sliceDoc(t-1,t))!=we.Word)&&(r==e.doc.length||n(e.sliceDoc(r,r+1))!=we.Word)}function g4(n,e,t,r){return n(e.sliceDoc(t,t+1))==we.Word&&n(e.sliceDoc(r-1,r))==we.Word}const b4=Ae.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.selectionSet||n.docChanged||n.viewportChanged)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=n.state.facet(d4),{state:t}=n,r=t.selection;if(r.ranges.length>1)return ee.none;let i=r.main,s,o=null;if(i.empty){if(!e.highlightWordAroundCursor)return ee.none;let l=t.wordAt(i.head);if(!l)return ee.none;o=t.charCategorizer(i.head),s=t.sliceDoc(l.from,l.to)}else{let l=i.to-i.from;if(l<e.minSelectionLength||l>200)return ee.none;if(e.wholeWords){if(s=t.sliceDoc(i.from,i.to),o=t.charCategorizer(i.head),!(hf(o,t,i.from,i.to)&&g4(o,t,i.from,i.to)))return ee.none}else if(s=t.sliceDoc(i.from,i.to),!s)return ee.none}let a=[];for(let l of n.visibleRanges){let c=new jr(t.doc,s,l.from,l.to);for(;!c.next().done;){let{from:h,to:u}=c.value;if((!o||hf(o,t,h,u))&&(i.empty&&h<=i.from&&u>=i.to?a.push(m4.range(h,u)):(h>=i.to||u<=i.from)&&a.push(p4.range(h,u)),a.length>e.maxMatches))return ee.none}}return ee.set(a)}},{decorations:n=>n.decorations}),y4=_.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),x4=({state:n,dispatch:e})=>{let{selection:t}=n,r=N.create(t.ranges.map(i=>n.wordAt(i.head)||N.cursor(i.head)),t.mainIndex);return r.eq(t)?!1:(e(n.update({selection:r})),!0)};function v4(n,e){let{main:t,ranges:r}=n.selection,i=n.wordAt(t.head),s=i&&i.from==t.from&&i.to==t.to;for(let o=!1,a=new jr(n.doc,e,r[r.length-1].to);;)if(a.next(),a.done){if(o)return null;a=new jr(n.doc,e,0,Math.max(0,r[r.length-1].from-1)),o=!0}else{if(o&&r.some(l=>l.from==a.value.from))continue;if(s){let l=n.wordAt(a.value.from);if(!l||l.from!=a.value.from||l.to!=a.value.to)continue}return a.value}}const w4=({state:n,dispatch:e})=>{let{ranges:t}=n.selection;if(t.some(s=>s.from===s.to))return x4({state:n,dispatch:e});let r=n.sliceDoc(t[0].from,t[0].to);if(n.selection.ranges.some(s=>n.sliceDoc(s.from,s.to)!=r))return!1;let i=v4(n,r);return i?(e(n.update({selection:n.selection.addRange(N.range(i.from,i.to),!1),effects:_.scrollIntoView(i.to)})),!0):!1},Tr=G.define({combine(n){return qt(n,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new N4(e),scrollToMatch:e=>_.scrollIntoView(e)})}});class L0{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||l4(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,r)=>r=="n"?`
63
+ `:r=="r"?"\r":r=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new O4(this):new S4(this)}getCursor(e,t=0,r){let i=e.doc?e:ce.create({doc:e});return r==null&&(r=i.doc.length),this.regexp?or(this,i,t,r):sr(this,i,t,r)}}class R0{constructor(e){this.spec=e}}function sr(n,e,t,r){return new jr(e.doc,n.unquoted,t,r,n.caseSensitive?void 0:i=>i.toLowerCase(),n.wholeWord?k4(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function k4(n,e){return(t,r,i,s)=>((s>t||s+i.length<r)&&(s=Math.max(0,t-2),i=n.sliceString(s,Math.min(n.length,r+2))),(e(ta(i,t-s))!=we.Word||e(na(i,t-s))!=we.Word)&&(e(na(i,r-s))!=we.Word||e(ta(i,r-s))!=we.Word))}class S4 extends R0{constructor(e){super(e)}nextMatch(e,t,r){let i=sr(this.spec,e,r,e.doc.length).nextOverlapping();if(i.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);i=sr(this.spec,e,0,s).nextOverlapping()}return i.done||i.value.from==t&&i.value.to==r?null:i.value}prevMatchInRange(e,t,r){for(let i=r;;){let s=Math.max(t,i-1e4-this.spec.unquoted.length),o=sr(this.spec,e,s,i),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(s==t)return null;i-=1e4}}prevMatch(e,t,r){let i=this.prevMatchInRange(e,0,t);return i||(i=this.prevMatchInRange(e,Math.max(0,r-this.spec.unquoted.length),e.doc.length)),i&&(i.from!=t||i.to!=r)?i:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let r=sr(this.spec,e,0,e.doc.length),i=[];for(;!r.next().done;){if(i.length>=t)return null;i.push(r.value)}return i}highlight(e,t,r,i){let s=sr(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}}function or(n,e,t,r){return new T0(e.doc,n.search,{ignoreCase:!n.caseSensitive,test:n.wholeWord?C4(e.charCategorizer(e.selection.main.head)):void 0},t,r)}function ta(n,e){return n.slice(Ne(n,e,!1),e)}function na(n,e){return n.slice(e,Ne(n,e))}function C4(n){return(e,t,r)=>!r[0].length||(n(ta(r.input,r.index))!=we.Word||n(na(r.input,r.index))!=we.Word)&&(n(na(r.input,r.index+r[0].length))!=we.Word||n(ta(r.input,r.index+r[0].length))!=we.Word)}class O4 extends R0{nextMatch(e,t,r){let i=or(this.spec,e,r,e.doc.length).next();return i.done&&(i=or(this.spec,e,0,t).next()),i.done?null:i.value}prevMatchInRange(e,t,r){for(let i=1;;i++){let s=Math.max(t,r-i*1e4),o=or(this.spec,e,s,r),a=null;for(;!o.next().done;)a=o.value;if(a&&(s==t||a.from>s+10))return a;if(s==t)return null}}prevMatch(e,t,r){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,r,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,r)=>{if(r=="&")return e.match[0];if(r=="$")return"$";for(let i=r.length;i>0;i--){let s=+r.slice(0,i);if(s>0&&s<e.match.length)return e.match[s]+r.slice(i)}return t})}matchAll(e,t){let r=or(this.spec,e,0,e.doc.length),i=[];for(;!r.next().done;){if(i.length>=t)return null;i.push(r.value)}return i}highlight(e,t,r,i){let s=or(this.spec,e,Math.max(0,t-250),Math.min(r+250,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}}const Ei=ie.define(),kh=ie.define(),vn=Ve.define({create(n){return new hl(Lc(n).create(),null)},update(n,e){for(let t of e.effects)t.is(Ei)?n=new hl(t.value.create(),n.panel):t.is(kh)&&(n=new hl(n.query,t.value?Sh:null));return n},provide:n=>Mi.from(n,e=>e.panel)});class hl{constructor(e,t){this.query=e,this.panel=t}}const j4=ee.mark({class:"cm-searchMatch"}),P4=ee.mark({class:"cm-searchMatch cm-searchMatch-selected"}),A4=Ae.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(vn))}update(n){let e=n.state.field(vn);(e!=n.startState.field(vn)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return ee.none;let{view:t}=this,r=new rn;for(let i=0,s=t.visibleRanges,o=s.length;i<o;i++){let{from:a,to:l}=s[i];for(;i<o-1&&l>s[i+1].from-2*250;)l=s[++i].to;n.highlight(t.state,a,l,(c,h)=>{let u=t.state.selection.ranges.some(f=>f.from==c&&f.to==h);r.add(c,h,u?P4:j4)})}return r.finish()}},{decorations:n=>n.decorations});function As(n){return e=>{let t=e.state.field(vn,!1);return t&&t.query.spec.valid?n(e,t):$0(e)}}const ra=As((n,{query:e})=>{let{to:t}=n.state.selection.main,r=e.nextMatch(n.state,t,t);if(!r)return!1;let i=N.single(r.from,r.to),s=n.state.facet(Tr);return n.dispatch({selection:i,effects:[Ch(n,r),s.scrollToMatch(i.main,n)],userEvent:"select.search"}),B0(n),!0}),ia=As((n,{query:e})=>{let{state:t}=n,{from:r}=t.selection.main,i=e.prevMatch(t,r,r);if(!i)return!1;let s=N.single(i.from,i.to),o=n.state.facet(Tr);return n.dispatch({selection:s,effects:[Ch(n,i),o.scrollToMatch(s.main,n)],userEvent:"select.search"}),B0(n),!0}),M4=As((n,{query:e})=>{let t=e.matchAll(n.state,1e3);return!t||!t.length?!1:(n.dispatch({selection:N.create(t.map(r=>N.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),D4=({state:n,dispatch:e})=>{let t=n.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:r,to:i}=t.main,s=[],o=0;for(let a=new jr(n.doc,n.sliceDoc(r,i));!a.next().done;){if(s.length>1e3)return!1;a.value.from==r&&(o=s.length),s.push(N.range(a.value.from,a.value.to))}return e(n.update({selection:N.create(s,o),userEvent:"select.search.matches"})),!0},uf=As((n,{query:e})=>{let{state:t}=n,{from:r,to:i}=t.selection.main;if(t.readOnly)return!1;let s=e.nextMatch(t,r,r);if(!s)return!1;let o=s,a=[],l,c,h=[];o.from==r&&o.to==i&&(c=t.toText(e.getReplacement(o)),a.push({from:o.from,to:o.to,insert:c}),o=e.nextMatch(t,o.from,o.to),h.push(_.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(r).number)+".")));let u=n.state.changes(a);return o&&(l=N.single(o.from,o.to).map(u),h.push(Ch(n,o)),h.push(t.facet(Tr).scrollToMatch(l.main,n))),n.dispatch({changes:u,selection:l,effects:h,userEvent:"input.replace"}),!0}),E4=As((n,{query:e})=>{if(n.state.readOnly)return!1;let t=e.matchAll(n.state,1e9).map(i=>{let{from:s,to:o}=i;return{from:s,to:o,insert:e.getReplacement(i)}});if(!t.length)return!1;let r=n.state.phrase("replaced $ matches",t.length)+".";return n.dispatch({changes:t,effects:_.announce.of(r),userEvent:"input.replace.all"}),!0});function Sh(n){return n.state.facet(Tr).createPanel(n)}function Lc(n,e){var t,r,i,s,o;let a=n.selection.main,l=a.empty||a.to>a.from+100?"":n.sliceDoc(a.from,a.to);if(e&&!l)return e;let c=n.facet(Tr);return new L0({search:((t=e?.literal)!==null&&t!==void 0?t:c.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:(r=e?.caseSensitive)!==null&&r!==void 0?r:c.caseSensitive,literal:(i=e?.literal)!==null&&i!==void 0?i:c.literal,regexp:(s=e?.regexp)!==null&&s!==void 0?s:c.regexp,wholeWord:(o=e?.wholeWord)!==null&&o!==void 0?o:c.wholeWord})}function I0(n){let e=Ai(n,Sh);return e&&e.dom.querySelector("[main-field]")}function B0(n){let e=I0(n);e&&e==n.root.activeElement&&e.select()}const $0=n=>{let e=n.state.field(vn,!1);if(e&&e.panel){let t=I0(n);if(t&&t!=n.root.activeElement){let r=Lc(n.state,e.query.spec);r.valid&&n.dispatch({effects:Ei.of(r)}),t.focus(),t.select()}}else n.dispatch({effects:[kh.of(!0),e?Ei.of(Lc(n.state,e.query.spec)):ie.appendConfig.of(R4)]});return!0},F0=n=>{let e=n.state.field(vn,!1);if(!e||!e.panel)return!1;let t=Ai(n,Sh);return t&&t.dom.contains(n.root.activeElement)&&n.focus(),n.dispatch({effects:kh.of(!1)}),!0},T4=[{key:"Mod-f",run:$0,scope:"editor search-panel"},{key:"F3",run:ra,shift:ia,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:ra,shift:ia,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:F0,scope:"editor search-panel"},{key:"Mod-Shift-l",run:D4},{key:"Mod-Alt-g",run:c4},{key:"Mod-d",run:w4,preventDefault:!0}];class N4{constructor(e){this.view=e;let t=this.query=e.state.field(vn).query.spec;this.commit=this.commit.bind(this),this.searchField=be("input",{value:t.search,placeholder:ot(e,"Find"),"aria-label":ot(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=be("input",{value:t.replace,placeholder:ot(e,"Replace"),"aria-label":ot(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=be("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=be("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=be("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function r(i,s,o){return be("button",{class:"cm-button",name:i,onclick:s,type:"button"},o)}this.dom=be("div",{onkeydown:i=>this.keydown(i),class:"cm-search"},[this.searchField,r("next",()=>ra(e),[ot(e,"next")]),r("prev",()=>ia(e),[ot(e,"previous")]),r("select",()=>M4(e),[ot(e,"all")]),be("label",null,[this.caseField,ot(e,"match case")]),be("label",null,[this.reField,ot(e,"regexp")]),be("label",null,[this.wordField,ot(e,"by word")]),...e.state.readOnly?[]:[be("br"),this.replaceField,r("replace",()=>uf(e),[ot(e,"replace")]),r("replaceAll",()=>E4(e),[ot(e,"replace all")])],be("button",{name:"close",onclick:()=>F0(e),"aria-label":ot(e,"close"),type:"button"},["×"])])}commit(){let e=new L0({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Ei.of(e)}))}keydown(e){Jw(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?ia:ra)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),uf(this.view))}update(e){for(let t of e.transactions)for(let r of t.effects)r.is(Ei)&&!r.value.eq(this.query)&&this.setQuery(r.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Tr).top}}function ot(n,e){return n.state.phrase(e)}const uo=30,fo=/[\s\.,:;?!]/;function Ch(n,{from:e,to:t}){let r=n.state.doc.lineAt(e),i=n.state.doc.lineAt(t).to,s=Math.max(r.from,e-uo),o=Math.min(i,t+uo),a=n.state.sliceDoc(s,o);if(s!=r.from){for(let l=0;l<uo;l++)if(!fo.test(a[l+1])&&fo.test(a[l])){a=a.slice(l);break}}if(o!=i){for(let l=a.length-1;l>a.length-uo;l--)if(!fo.test(a[l-1])&&fo.test(a[l])){a=a.slice(0,l);break}}return _.announce.of(`${n.state.phrase("current match")}. ${a} ${n.state.phrase("on line")} ${r.number}.`)}const L4=_.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),R4=[vn,Xn.low(A4),L4];class z0{constructor(e,t,r,i){this.state=e,this.pos=t,this.explicit=r,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=Ke(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),r=Math.max(t.from,this.pos-250),i=t.text.slice(r-t.from,this.pos-t.from),s=i.search(V0(e,!1));return s<0?null:{from:r+s,to:this.pos,text:i.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),r&&r.onDocChange&&(this.abortOnDocChange=!0))}}function df(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function I4(n){let e=Object.create(null),t=Object.create(null);for(let{label:i}of n){e[i[0]]=!0;for(let s=1;s<i.length;s++)t[i[s]]=!0}let r=df(e)+df(t)+"*$";return[new RegExp("^"+r),new RegExp(r)]}function B4(n){let e=n.map(i=>typeof i=="string"?{label:i}:i),[t,r]=e.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:I4(e);return i=>{let s=i.matchBefore(r);return s||i.explicit?{from:s?s.from:i.pos,options:e,validFor:t}:null}}class ff{constructor(e,t,r,i){this.completion=e,this.source=t,this.match=r,this.score=i}}function Kn(n){return n.selection.main.from}function V0(n,e){var t;let{source:r}=n,i=e&&r[0]!="^",s=r[r.length-1]!="$";return!i&&!s?n:new RegExp(`${i?"^":""}(?:${r})${s?"$":""}`,(t=n.flags)!==null&&t!==void 0?t:n.ignoreCase?"i":"")}const H0=Gt.define();function $4(n,e,t,r){let{main:i}=n.selection,s=t-i.from,o=r-i.from;return{...n.changeByRange(a=>{if(a!=i&&t!=r&&n.sliceDoc(a.from+s,a.from+o)!=n.sliceDoc(t,r))return{range:a};let l=n.toText(e);return{changes:{from:a.from+s,to:r==i.from?a.to:a.from+o,insert:l},range:N.cursor(a.from+s+l.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const pf=new WeakMap;function F4(n){if(!Array.isArray(n))return n;let e=pf.get(n);return e||pf.set(n,e=B4(n)),e}const sa=ie.define(),Ti=ie.define();class z4{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t<e.length;){let r=Ze(e,t),i=$t(r);this.chars.push(r);let s=e.slice(t,t+i),o=s.toUpperCase();this.folded.push(Ze(o==s?s.toLowerCase():o,0)),t+=i}this.astral=e.length!=this.chars.length}ret(e,t){return this.score=e,this.matched=t,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:t,folded:r,any:i,precise:s,byWord:o}=this;if(t.length==1){let S=Ze(e,0),C=$t(S),A=C==e.length?0:-100;if(S!=t[0])if(S==r[0])A+=-200;else return null;return this.ret(A,[0,C])}let a=e.indexOf(this.pattern);if(a==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let l=t.length,c=0;if(a<0){for(let S=0,C=Math.min(e.length,200);S<C&&c<l;){let A=Ze(e,S);(A==t[c]||A==r[c])&&(i[c++]=S),S+=$t(A)}if(c<l)return null}let h=0,u=0,f=!1,p=0,m=-1,g=-1,y=/[a-z]/.test(e),v=!0;for(let S=0,C=Math.min(e.length,200),A=0;S<C&&u<l;){let k=Ze(e,S);a<0&&(h<l&&k==t[h]&&(s[h++]=S),p<l&&(k==t[p]||k==r[p]?(p==0&&(m=S),g=S+1,p++):p=0));let j,x=k<255?k>=48&&k<=57||k>=97&&k<=122?2:k>=65&&k<=90?1:0:(j=Xc(k))!=j.toLowerCase()?1:j!=j.toUpperCase()?2:0;(!S||x==1&&y||A==0&&x!=0)&&(t[u]==k||r[u]==k&&(f=!0)?o[u++]=S:o.length&&(v=!1)),A=x,S+=$t(k)}return u==l&&o[0]==0&&v?this.result(-100+(f?-200:0),o,e):p==l&&m==0?this.ret(-200-e.length+(g==e.length?0:-100),[0,g]):a>-1?this.ret(-700-e.length,[a,a+this.pattern.length]):p==l?this.ret(-900-e.length,[m,g]):u==l?this.result(-100+(f?-200:0)+-700+(v?0:-1100),o,e):t.length==2?null:this.result((i[0]?-700:0)+-200+-1100,i,e)}result(e,t,r){let i=[],s=0;for(let o of t){let a=o+(this.astral?$t(Ze(r,o)):1);s&&i[s-1]==o?i[s-1]=a:(i[s++]=o,i[s++]=a)}return this.ret(e-r.length,i)}}class V4{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let t=e.slice(0,this.pattern.length),r=t==this.pattern?0:t.toLowerCase()==this.folded?-200:null;return r==null?null:(this.matched=[0,t.length],this.score=r+(e.length==this.pattern.length?0:-100),this)}}const Ie=G.define({combine(n){return qt(n,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:H4,filterStrict:!1,compareCompletions:(e,t)=>(e.sortText||e.label).localeCompare(t.sortText||t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>r=>mf(e(r),t(r)),optionClass:(e,t)=>r=>mf(e(r),t(r)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function mf(n,e){return n?e?n+" "+e:n:e}function H4(n,e,t,r,i,s){let o=n.textDirection==xe.RTL,a=o,l=!1,c="top",h,u,f=e.left-i.left,p=i.right-e.right,m=r.right-r.left,g=r.bottom-r.top;if(a&&f<Math.min(m,p)?a=!1:!a&&p<Math.min(m,f)&&(a=!0),m<=(a?f:p))h=Math.max(i.top,Math.min(t.top,i.bottom-g))-e.top,u=Math.min(400,a?f:p);else{l=!0,u=Math.min(400,(o?e.right:i.right-e.left)-30);let S=i.bottom-e.bottom;S>=g||S>e.top?h=t.bottom-e.top:(c="bottom",h=e.bottom-t.top)}let y=(e.bottom-e.top)/s.offsetHeight,v=(e.right-e.left)/s.offsetWidth;return{style:`${c}: ${h/y}px; max-width: ${u/v}px`,class:"cm-completionInfo-"+(l?o?"left-narrow":"right-narrow":a?"left":"right")}}function _4(n){let e=n.addToOptions.slice();return n.icons&&e.push({render(t){let r=document.createElement("div");return r.classList.add("cm-completionIcon"),t.type&&r.classList.add(...t.type.split(/\s+/g).map(i=>"cm-completionIcon-"+i)),r.setAttribute("aria-hidden","true"),r},position:20}),e.push({render(t,r,i,s){let o=document.createElement("span");o.className="cm-completionLabel";let a=t.displayLabel||t.label,l=0;for(let c=0;c<s.length;){let h=s[c++],u=s[c++];h>l&&o.appendChild(document.createTextNode(a.slice(l,h)));let f=o.appendChild(document.createElement("span"));f.appendChild(document.createTextNode(a.slice(h,u))),f.className="cm-completionMatchedText",l=u}return l<a.length&&o.appendChild(document.createTextNode(a.slice(l))),o},position:50},{render(t){if(!t.detail)return null;let r=document.createElement("span");return r.className="cm-completionDetail",r.textContent=t.detail,r},position:80}),e.sort((t,r)=>t.position-r.position).map(t=>t.render)}function ul(n,e,t){if(n<=t)return{from:0,to:n};if(e<0&&(e=0),e<=n>>1){let i=Math.floor(e/t);return{from:i*t,to:(i+1)*t}}let r=Math.floor((n-e)/t);return{from:n-(r+1)*t,to:n-r*t}}class W4{constructor(e,t,r){this.view=e,this.stateField=t,this.applyCompletion=r,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:l=>this.placeInfo(l),key:this},this.space=null,this.currentClass="";let i=e.state.field(t),{options:s,selected:o}=i.open,a=e.state.facet(Ie);this.optionContent=_4(a),this.optionClass=a.optionClass,this.tooltipClass=a.tooltipClass,this.range=ul(s.length,o,a.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",l=>{let{options:c}=e.state.field(t).open;for(let h=l.target,u;h&&h!=this.dom;h=h.parentNode)if(h.nodeName=="LI"&&(u=/-(\d+)$/.exec(h.id))&&+u[1]<c.length){this.applyCompletion(e,c[+u[1]]),l.preventDefault();return}}),this.dom.addEventListener("focusout",l=>{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(Ie).closeOnBlur&&l.relatedTarget!=e.contentDOM&&e.dispatch({effects:Ti.of(null)})}),this.showOptions(s,i.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let r=e.state.field(this.stateField),i=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),r!=i){let{options:s,selected:o,disabled:a}=r.open;(!i.open||i.open.options!=s)&&(this.range=ul(s.length,o,e.state.facet(Ie).maxRenderedOptions),this.showOptions(s,r.id)),this.updateSel(),a!=((t=i.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!a)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let r of this.currentClass.split(" "))r&&this.dom.classList.remove(r);for(let r of t.split(" "))r&&this.dom.classList.add(r);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;(t.selected>-1&&t.selected<this.range.from||t.selected>=this.range.to)&&(this.range=ul(t.options.length,t.selected,this.view.state.facet(Ie).maxRenderedOptions),this.showOptions(t.options,e.id));let r=this.updateSelectedOption(t.selected);if(r){this.destroyInfo();let{completion:i}=t.options[t.selected],{info:s}=i;if(!s)return;let o=typeof s=="string"?document.createTextNode(s):s(i);if(!o)return;"then"in o?o.then(a=>{a&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(a,i)}).catch(a=>nt(this.view.state,a,"completion info")):(this.addInfoPane(o,i),r.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,t){this.destroyInfo();let r=this.info=document.createElement("div");if(r.className="cm-tooltip cm-completionInfo",r.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)r.appendChild(e),this.infoDestroy=null;else{let{dom:i,destroy:s}=e;r.appendChild(i),this.infoDestroy=s||null}this.dom.appendChild(r),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let r=this.list.firstChild,i=this.range.from;r;r=r.nextSibling,i++)r.nodeName!="LI"||!r.id?i--:i==e?r.hasAttribute("aria-selected")||(r.setAttribute("aria-selected","true"),t=r):r.hasAttribute("aria-selected")&&(r.removeAttribute("aria-selected"),r.removeAttribute("aria-describedby"));return t&&K4(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),r=this.info.getBoundingClientRect(),i=e.getBoundingClientRect(),s=this.space;if(!s){let o=this.dom.ownerDocument.documentElement;s={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return i.top>Math.min(s.bottom,t.bottom)-10||i.bottom<Math.max(s.top,t.top)+10?null:this.view.state.facet(Ie).positionInfo(this.view,t,i,r,s,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(e,t,r){const i=document.createElement("ul");i.id=t,i.setAttribute("role","listbox"),i.setAttribute("aria-expanded","true"),i.setAttribute("aria-label",this.view.state.phrase("Completions")),i.addEventListener("mousedown",o=>{o.target==i&&o.preventDefault()});let s=null;for(let o=r.from;o<r.to;o++){let{completion:a,match:l}=e[o],{section:c}=a;if(c){let f=typeof c=="string"?c:c.name;if(f!=s&&(o>r.from||r.from==0))if(s=f,typeof c!="string"&&c.header)i.appendChild(c.header(c));else{let p=i.appendChild(document.createElement("completion-section"));p.textContent=f}}const h=i.appendChild(document.createElement("li"));h.id=t+"-"+o,h.setAttribute("role","option");let u=this.optionClass(a);u&&(h.className=u);for(let f of this.optionContent){let p=f(a,this.view.state,this.view,l);p&&h.appendChild(p)}}return r.from&&i.classList.add("cm-completionListIncompleteTop"),r.to<e.length&&i.classList.add("cm-completionListIncompleteBottom"),i}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function U4(n,e){return t=>new W4(t,n,e)}function K4(n,e){let t=n.getBoundingClientRect(),r=e.getBoundingClientRect(),i=t.height/n.offsetHeight;r.top<t.top?n.scrollTop-=(t.top-r.top)/i:r.bottom>t.bottom&&(n.scrollTop+=(r.bottom-t.bottom)/i)}function gf(n){return(n.boost||0)*100+(n.apply?10:0)+(n.info?5:0)+(n.type?1:0)}function G4(n,e){let t=[],r=null,i=null,s=h=>{t.push(h);let{section:u}=h.completion;if(u){r||(r=[]);let f=typeof u=="string"?u:u.name;r.some(p=>p.name==f)||r.push(typeof u=="string"?{name:f}:u)}},o=e.facet(Ie);for(let h of n)if(h.hasResult()){let u=h.result.getMatch;if(h.result.filter===!1)for(let f of h.result.options)s(new ff(f,h.source,u?u(f):[],1e9-t.length));else{let f=e.sliceDoc(h.from,h.to),p,m=o.filterStrict?new V4(f):new z4(f);for(let g of h.result.options)if(p=m.match(g.label)){let y=g.displayLabel?u?u(g,p.matched):[]:p.matched,v=p.score+(g.boost||0);if(s(new ff(g,h.source,y,v)),typeof g.section=="object"&&g.section.rank==="dynamic"){let{name:S}=g.section;i||(i=Object.create(null)),i[S]=Math.max(v,i[S]||-1e9)}}}}if(r){let h=Object.create(null),u=0,f=(p,m)=>(p.rank==="dynamic"&&m.rank==="dynamic"?i[m.name]-i[p.name]:0)||(typeof p.rank=="number"?p.rank:1e9)-(typeof m.rank=="number"?m.rank:1e9)||(p.name<m.name?-1:1);for(let p of r.sort(f))u-=1e5,h[p.name]=u;for(let p of t){let{section:m}=p.completion;m&&(p.score+=h[typeof m=="string"?m:m.name])}}let a=[],l=null,c=o.compareCompletions;for(let h of t.sort((u,f)=>f.score-u.score||c(u.completion,f.completion))){let u=h.completion;!l||l.label!=u.label||l.detail!=u.detail||l.type!=null&&u.type!=null&&l.type!=u.type||l.apply!=u.apply||l.boost!=u.boost?a.push(h):gf(h.completion)>gf(l)&&(a[a.length-1]=h),l=h.completion}return a}class ur{constructor(e,t,r,i,s,o){this.options=e,this.attrs=t,this.tooltip=r,this.timestamp=i,this.selected=s,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new ur(this.options,bf(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,r,i,s,o){if(i&&!o&&e.some(c=>c.isPending))return i.setDisabled();let a=G4(e,t);if(!a.length)return i&&e.some(c=>c.isPending)?i.setDisabled():null;let l=t.facet(Ie).selectOnOpen?0:-1;if(i&&i.selected!=l&&i.selected!=-1){let c=i.options[i.selected].completion;for(let h=0;h<a.length;h++)if(a[h].completion==c){l=h;break}}return new ur(a,bf(r,l),{pos:e.reduce((c,h)=>h.hasResult()?Math.min(c,h.from):c,1e8),create:Z4,above:s.aboveCursor},i?i.timestamp:Date.now(),l,!1)}map(e){return new ur(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new ur(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class oa{constructor(e,t,r){this.active=e,this.id=t,this.open=r}static start(){return new oa(J4,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,r=t.facet(Ie),s=(r.override||t.languageDataAt("autocomplete",Kn(t)).map(F4)).map(l=>(this.active.find(h=>h.source==l)||new yt(l,this.active.some(h=>h.state!=0)?1:0)).update(e,r));s.length==this.active.length&&s.every((l,c)=>l==this.active[c])&&(s=this.active);let o=this.open,a=e.effects.some(l=>l.is(Oh));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||s.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!q4(s,this.active)||a?o=ur.build(s,t,this.id,o,r,a):o&&o.disabled&&!s.some(l=>l.isPending)&&(o=null),!o&&s.every(l=>!l.isPending)&&s.some(l=>l.hasResult())&&(s=s.map(l=>l.hasResult()?new yt(l.source,0):l));for(let l of e.effects)l.is(W0)&&(o=o&&o.setSelected(l.value,this.id));return s==this.active&&o==this.open?this:new oa(s,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?Y4:Q4}}function q4(n,e){if(n==e)return!0;for(let t=0,r=0;;){for(;t<n.length&&!n[t].hasResult();)t++;for(;r<e.length&&!e[r].hasResult();)r++;let i=t==n.length,s=r==e.length;if(i||s)return i==s;if(n[t++].result!=e[r++].result)return!1}}const Y4={"aria-autocomplete":"list"},Q4={};function bf(n,e){let t={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":n};return e>-1&&(t["aria-activedescendant"]=n+"-"+e),t}const J4=[];function _0(n,e){if(n.isUserEvent("input.complete")){let r=n.annotation(H0);if(r&&e.activateOnCompletion(r))return 12}let t=n.isUserEvent("input.type");return t&&e.activateOnTyping?5:t?1:n.isUserEvent("delete.backward")?2:n.selection?8:n.docChanged?16:0}class yt{constructor(e,t,r=!1){this.source=e,this.state=t,this.explicit=r}hasResult(){return!1}get isPending(){return this.state==1}update(e,t){let r=_0(e,t),i=this;(r&8||r&16&&this.touches(e))&&(i=new yt(i.source,0)),r&4&&i.state==0&&(i=new yt(this.source,1)),i=i.updateFor(e,r);for(let s of e.effects)if(s.is(sa))i=new yt(i.source,1,s.value);else if(s.is(Ti))i=new yt(i.source,0);else if(s.is(Oh))for(let o of s.value)o.source==i.source&&(i=o);return i}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(Kn(e.state))}}class xr extends yt{constructor(e,t,r,i,s,o){super(e,3,t),this.limit=r,this.result=i,this.from=s,this.to=o}hasResult(){return!0}updateFor(e,t){var r;if(!(t&3))return this.map(e.changes);let i=this.result;i.map&&!e.changes.empty&&(i=i.map(i,e.changes));let s=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),a=Kn(e.state);if(a>o||!i||t&2&&(Kn(e.startState)==this.from||a<this.limit))return new yt(this.source,t&4?1:0);let l=e.changes.mapPos(this.limit);return X4(i.validFor,e.state,s,o)?new xr(this.source,this.explicit,l,i,s,o):i.update&&(i=i.update(i,s,o,new z0(e.state,a,!1)))?new xr(this.source,this.explicit,l,i,i.from,(r=i.to)!==null&&r!==void 0?r:Kn(e.state)):new yt(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new xr(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new yt(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}function X4(n,e,t,r){if(!n)return!1;let i=e.sliceDoc(t,r);return typeof n=="function"?n(i,t,r,e):V0(n,!0).test(i)}const Oh=ie.define({map(n,e){return n.map(t=>t.map(e))}}),W0=ie.define(),et=Ve.define({create(){return oa.start()},update(n,e){return n.update(e)},provide:n=>[ph.from(n,e=>e.tooltip),_.contentAttributes.from(n,e=>e.attrs)]});function jh(n,e){const t=e.completion.apply||e.completion.label;let r=n.state.field(et).active.find(i=>i.source==e.source);return r instanceof xr?(typeof t=="string"?n.dispatch({...$4(n.state,t,r.from,r.to),annotations:H0.of(e.completion)}):t(n,e.completion,r.from,r.to),!0):!1}const Z4=U4(et,jh);function po(n,e="option"){return t=>{let r=t.state.field(et,!1);if(!r||!r.open||r.open.disabled||Date.now()-r.open.timestamp<t.state.facet(Ie).interactionDelay)return!1;let i=1,s;e=="page"&&(s=Ng(t,r.open.tooltip))&&(i=Math.max(2,Math.floor(s.dom.offsetHeight/s.dom.querySelector("li").offsetHeight)-1));let{length:o}=r.open.options,a=r.open.selected>-1?r.open.selected+i*(n?1:-1):n?0:o-1;return a<0?a=e=="page"?0:o-1:a>=o&&(a=e=="page"?o-1:0),t.dispatch({effects:W0.of(a)}),!0}}const e5=n=>{let e=n.state.field(et,!1);return n.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<n.state.facet(Ie).interactionDelay?!1:jh(n,e.open.options[e.open.selected])},dl=n=>n.state.field(et,!1)?(n.dispatch({effects:sa.of(!0)}),!0):!1,t5=n=>{let e=n.state.field(et,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(n.dispatch({effects:Ti.of(null)}),!0)};class n5{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const r5=50,i5=1e3,s5=Ae.fromClass(class{constructor(n){this.view=n,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of n.state.field(et).active)e.isPending&&this.startQuery(e)}update(n){let e=n.state.field(et),t=n.state.facet(Ie);if(!n.selectionSet&&!n.docChanged&&n.startState.field(et)==e)return;let r=n.transactions.some(s=>{let o=_0(s,t);return o&8||(s.selection||s.docChanged)&&!(o&3)});for(let s=0;s<this.running.length;s++){let o=this.running[s];if(r||o.context.abortOnDocChange&&n.docChanged||o.updates.length+n.transactions.length>r5&&Date.now()-o.time>i5){for(let a of o.context.abortListeners)try{a()}catch(l){nt(this.view.state,l)}o.context.abortListeners=null,this.running.splice(s--,1)}else o.updates.push(...n.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),n.transactions.some(s=>s.effects.some(o=>o.is(sa)))&&(this.pendingStart=!0);let i=this.pendingStart?50:t.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(s=>s.isPending&&!this.running.some(o=>o.active.source==s.source))?setTimeout(()=>this.startUpdate(),i):-1,this.composing!=0)for(let s of n.transactions)s.isUserEvent("input.type")?this.composing=2:this.composing==2&&s.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:n}=this.view,e=n.field(et);for(let t of e.active)t.isPending&&!this.running.some(r=>r.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ie).updateSyncTime))}startQuery(n){let{state:e}=this.view,t=Kn(e),r=new z0(e,t,n.explicit,this.view),i=new n5(n,r);this.running.push(i),Promise.resolve(n.source(r)).then(s=>{i.context.aborted||(i.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:Ti.of(null)}),nt(this.view.state,s)})}scheduleAccept(){this.running.every(n=>n.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ie).updateSyncTime))}accept(){var n;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Ie),r=this.view.state.field(et);for(let i=0;i<this.running.length;i++){let s=this.running[i];if(s.done===void 0)continue;if(this.running.splice(i--,1),s.done){let a=Kn(s.updates.length?s.updates[0].startState:this.view.state),l=Math.min(a,s.done.from+(s.active.explicit?0:1)),c=new xr(s.active.source,s.active.explicit,l,s.done,s.done.from,(n=s.done.to)!==null&&n!==void 0?n:a);for(let h of s.updates)c=c.update(h,t);if(c.hasResult()){e.push(c);continue}}let o=r.active.find(a=>a.source==s.active.source);if(o&&o.isPending)if(s.done==null){let a=new yt(s.active.source,0);for(let l of s.updates)a=a.update(l,t);a.isPending||e.push(a)}else this.startQuery(o)}(e.length||r.open&&r.open.disabled)&&this.view.dispatch({effects:Oh.of(e)})}},{eventHandlers:{blur(n){let e=this.view.state.field(et,!1);if(e&&e.tooltip&&this.view.state.facet(Ie).closeOnBlur){let t=e.open&&Ng(this.view,e.open.tooltip);(!t||!t.dom.contains(n.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:Ti.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:sa.of(!1)}),20),this.composing=0}}}),o5=typeof navigator=="object"&&/Win/.test(navigator.platform),a5=Xn.highest(_.domEventHandlers({keydown(n,e){let t=e.state.field(et,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||n.key.length>1||n.ctrlKey&&!(o5&&n.altKey)||n.metaKey)return!1;let r=t.open.options[t.open.selected],i=t.active.find(o=>o.source==r.source),s=r.completion.commitCharacters||i.result.commitCharacters;return s&&s.indexOf(n.key)>-1&&jh(e,r),!1}})),l5=_.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),Ni={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Wn=ie.define({map(n,e){let t=e.mapPos(n,-1,Qe.TrackAfter);return t??void 0}}),Ph=new class extends kn{};Ph.startSide=1;Ph.endSide=-1;const U0=Ve.define({create(){return le.empty},update(n,e){if(n=n.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);n=n.update({filter:r=>r>=t.from&&r<=t.to})}for(let t of e.effects)t.is(Wn)&&(n=n.update({add:[Ph.range(t.value,t.value+1)]}));return n}});function c5(){return[u5,U0]}const fl="()[]{}<>«»»«[]{}";function K0(n){for(let e=0;e<fl.length;e+=2)if(fl.charCodeAt(e)==n)return fl.charAt(e+1);return Xc(n<128?n:n+1)}function G0(n,e){return n.languageDataAt("closeBrackets",e)[0]||Ni}const h5=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),u5=_.inputHandler.of((n,e,t,r)=>{if((h5?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let i=n.state.selection.main;if(r.length>2||r.length==2&&$t(Ze(r,0))==1||e!=i.from||t!=i.to)return!1;let s=p5(n.state,r);return s?(n.dispatch(s),!0):!1}),d5=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let r=G0(n,n.selection.main.head).brackets||Ni.brackets,i=null,s=n.changeByRange(o=>{if(o.empty){let a=m5(n.doc,o.head);for(let l of r)if(l==a&&Pa(n.doc,o.head)==K0(Ze(l,0)))return{changes:{from:o.head-l.length,to:o.head+l.length},range:N.cursor(o.head-l.length)}}return{range:i=o}});return i||e(n.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!i},f5=[{key:"Backspace",run:d5}];function p5(n,e){let t=G0(n,n.selection.main.head),r=t.brackets||Ni.brackets;for(let i of r){let s=K0(Ze(i,0));if(e==i)return s==i?y5(n,i,r.indexOf(i+i+i)>-1,t):g5(n,i,s,t.before||Ni.before);if(e==s&&q0(n,n.selection.main.from))return b5(n,i,s)}return null}function q0(n,e){let t=!1;return n.field(U0).between(0,n.doc.length,r=>{r==e&&(t=!0)}),t}function Pa(n,e){let t=n.sliceString(e,e+2);return t.slice(0,$t(Ze(t,0)))}function m5(n,e){let t=n.sliceString(e-2,e);return $t(Ze(t,0))==t.length?t:t.slice(1)}function g5(n,e,t,r){let i=null,s=n.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:Wn.of(o.to+e.length),range:N.range(o.anchor+e.length,o.head+e.length)};let a=Pa(n.doc,o.head);return!a||/\s/.test(a)||r.indexOf(a)>-1?{changes:{insert:e+t,from:o.head},effects:Wn.of(o.head+e.length),range:N.cursor(o.head+e.length)}:{range:i=o}});return i?null:n.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function b5(n,e,t){let r=null,i=n.changeByRange(s=>s.empty&&Pa(n.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:N.cursor(s.head+t.length)}:r={range:s});return r?null:n.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function y5(n,e,t,r){let i=r.stringPrefixes||Ni.stringPrefixes,s=null,o=n.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:Wn.of(a.to+e.length),range:N.range(a.anchor+e.length,a.head+e.length)};let l=a.head,c=Pa(n.doc,l),h;if(c==e){if(yf(n,l))return{changes:{insert:e+e,from:l},effects:Wn.of(l+e.length),range:N.cursor(l+e.length)};if(q0(n,l)){let f=t&&n.sliceDoc(l,l+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+f.length,insert:f},range:N.cursor(l+f.length)}}}else{if(t&&n.sliceDoc(l-2*e.length,l)==e+e&&(h=xf(n,l-2*e.length,i))>-1&&yf(n,h))return{changes:{insert:e+e+e+e,from:l},effects:Wn.of(l+e.length),range:N.cursor(l+e.length)};if(n.charCategorizer(l)(c)!=we.Word&&xf(n,l,i)>-1&&!x5(n,l,e,i))return{changes:{insert:e+e,from:l},effects:Wn.of(l+e.length),range:N.cursor(l+e.length)}}return{range:s=a}});return s?null:n.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function yf(n,e){let t=Ke(n).resolveInner(e+1);return t.parent&&t.from==e}function x5(n,e,t,r){let i=Ke(n).resolveInner(e,-1),s=r.reduce((o,a)=>Math.max(o,a.length),0);for(let o=0;o<5;o++){let a=n.sliceDoc(i.from,Math.min(i.to,i.from+t.length+s)),l=a.indexOf(t);if(!l||l>-1&&r.indexOf(a.slice(0,l))>-1){let h=i.firstChild;for(;h&&h.from==i.from&&h.to-h.from>t.length+l;){if(n.sliceDoc(h.to-t.length,h.to)==t)return!1;h=h.firstChild}return!0}let c=i.to==e&&i.parent;if(!c)break;i=c}return!1}function xf(n,e,t){let r=n.charCategorizer(e);if(r(n.sliceDoc(e-1,e))!=we.Word)return e;for(let i of t){let s=e-i.length;if(n.sliceDoc(s,e)==i&&r(n.sliceDoc(s-1,s))!=we.Word)return s}return-1}function v5(n={}){return[a5,et,Ie.of(n),s5,w5,l5]}const Y0=[{key:"Ctrl-Space",run:dl},{mac:"Alt-`",run:dl},{mac:"Alt-i",run:dl},{key:"Escape",run:t5},{key:"ArrowDown",run:po(!0)},{key:"ArrowUp",run:po(!1)},{key:"PageDown",run:po(!0,"page")},{key:"PageUp",run:po(!1,"page")},{key:"Enter",run:e5}],w5=Xn.highest(ya.computeN([Ie],n=>n.facet(Ie).defaultKeymap?[Y0]:[]));class vf{constructor(e,t,r){this.from=e,this.to=t,this.diagnostic=r}}class zn{constructor(e,t,r){this.diagnostics=e,this.panel=t,this.selected=r}static init(e,t,r){let i=r.facet(Li).markerFilter;i&&(e=i(e,r));let s=e.slice().sort((p,m)=>p.from-m.from||p.to-m.to),o=new rn,a=[],l=0,c=r.doc.iter(),h=0,u=r.doc.length;for(let p=0;;){let m=p==s.length?null:s[p];if(!m&&!a.length)break;let g,y;if(a.length)g=l,y=a.reduce((C,A)=>Math.min(C,A.to),m&&m.from>g?m.from:1e8);else{if(g=m.from,g>u)break;y=m.to,a.push(m),p++}for(;p<s.length;){let C=s[p];if(C.from==g&&(C.to>C.from||C.to==g))a.push(C),p++,y=Math.min(C.to,y);else{y=Math.min(C.from,y);break}}y=Math.min(y,u);let v=!1;if(a.some(C=>C.from==g&&(C.to==y||y==u))&&(v=g==y,!v&&y-g<10)){let C=g-(h+c.value.length);C>0&&(c.next(C),h=g);for(let A=g;;){if(A>=y){v=!0;break}if(!c.lineBreak&&h+c.value.length>A)break;A=h+c.value.length,h+=c.value.length,c.next()}}let S=L5(a);if(v)o.add(g,g,ee.widget({widget:new D5(S),diagnostics:a.slice()}));else{let C=a.reduce((A,k)=>k.markClass?A+" "+k.markClass:A,"");o.add(g,y,ee.mark({class:"cm-lintRange cm-lintRange-"+S+C,diagnostics:a.slice(),inclusiveEnd:a.some(A=>A.to>y)}))}if(l=y,l==u)break;for(let C=0;C<a.length;C++)a[C].to<=l&&a.splice(C--,1)}let f=o.finish();return new zn(f,t,Pr(f))}}function Pr(n,e=null,t=0){let r=null;return n.between(t,1e9,(i,s,{spec:o})=>{if(!(e&&o.diagnostics.indexOf(e)<0))if(!r)r=new vf(i,s,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new vf(r.from,s,r.diagnostic)}}),r}function k5(n,e){let t=e.pos,r=e.end||t,i=n.state.facet(Li).hideOn(n,t,r);if(i!=null)return i;let s=n.startState.doc.lineAt(e.pos);return!!(n.effects.some(o=>o.is(Q0))||n.changes.touchesRange(s.from,Math.max(s.to,r)))}function S5(n,e){return n.field(ct,!1)?e:e.concat(ie.appendConfig.of(R5))}const Q0=ie.define(),Ah=ie.define(),J0=ie.define(),ct=Ve.define({create(){return new zn(ee.none,null,null)},update(n,e){if(e.docChanged&&n.diagnostics.size){let t=n.diagnostics.map(e.changes),r=null,i=n.panel;if(n.selected){let s=e.changes.mapPos(n.selected.from,1);r=Pr(t,n.selected.diagnostic,s)||Pr(t,null,s)}!t.size&&i&&e.state.facet(Li).autoPanel&&(i=null),n=new zn(t,i,r)}for(let t of e.effects)if(t.is(Q0)){let r=e.state.facet(Li).autoPanel?t.value.length?Ri.open:null:n.panel;n=zn.init(t.value,r,e.state)}else t.is(Ah)?n=new zn(n.diagnostics,t.value?Ri.open:null,n.selected):t.is(J0)&&(n=new zn(n.diagnostics,n.panel,t.value));return n},provide:n=>[Mi.from(n,e=>e.panel),_.decorations.from(n,e=>e.diagnostics)]}),C5=ee.mark({class:"cm-lintRange cm-lintRange-active"});function O5(n,e,t){let{diagnostics:r}=n.state.field(ct),i,s=-1,o=-1;r.between(e-(t<0?1:0),e+(t>0?1:0),(l,c,{spec:h})=>{if(e>=l&&e<=c&&(l==c||(e>l||t>0)&&(e<c||t<0)))return i=h.diagnostics,s=l,o=c,!1});let a=n.state.facet(Li).tooltipFilter;return i&&a&&(i=a(i,n.state)),i?{pos:s,end:o,above:n.state.doc.lineAt(s).to<o,create(){return{dom:j5(n,i)}}}:null}function j5(n,e){return be("ul",{class:"cm-tooltip-lint"},e.map(t=>Z0(n,t,!1)))}const P5=n=>{let e=n.state.field(ct,!1);(!e||!e.panel)&&n.dispatch({effects:S5(n.state,[Ah.of(!0)])});let t=Ai(n,Ri.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},wf=n=>{let e=n.state.field(ct,!1);return!e||!e.panel?!1:(n.dispatch({effects:Ah.of(!1)}),!0)},A5=n=>{let e=n.state.field(ct,!1);if(!e)return!1;let t=n.state.selection.main,r=e.diagnostics.iter(t.to+1);return!r.value&&(r=e.diagnostics.iter(0),!r.value||r.from==t.from&&r.to==t.to)?!1:(n.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},M5=[{key:"Mod-Shift-m",run:P5,preventDefault:!0},{key:"F8",run:A5}],Li=G.define({combine(n){return{sources:n.map(e=>e.source).filter(e=>e!=null),...qt(n.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:kf,tooltipFilter:kf,needsRefresh:(e,t)=>e?t?r=>e(r)||t(r):e:t,hideOn:(e,t)=>e?t?(r,i,s)=>e(r,i,s)||t(r,i,s):e:t,autoPanel:(e,t)=>e||t})}}});function kf(n,e){return n?e?(t,r)=>e(n(t,r),r):n:e}function X0(n){let e=[];if(n)e:for(let{name:t}of n){for(let r=0;r<t.length;r++){let i=t[r];if(/[a-zA-Z]/.test(i)&&!e.some(s=>s.toLowerCase()==i.toLowerCase())){e.push(i);continue e}}e.push("")}return e}function Z0(n,e,t){var r;let i=t?X0(e.actions):[];return be("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},be("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(n):e.message),(r=e.actions)===null||r===void 0?void 0:r.map((s,o)=>{let a=!1,l=p=>{if(p.preventDefault(),a)return;a=!0;let m=Pr(n.state.field(ct).diagnostics,e);m&&s.apply(n,m.from,m.to)},{name:c}=s,h=i[o]?c.indexOf(i[o]):-1,u=h<0?c:[c.slice(0,h),be("u",c.slice(h,h+1)),c.slice(h+1)],f=s.markClass?" "+s.markClass:"";return be("button",{type:"button",class:"cm-diagnosticAction"+f,onclick:l,onmousedown:l,"aria-label":` Action: ${c}${h<0?"":` (access key "${i[o]})"`}.`},u)}),e.source&&be("div",{class:"cm-diagnosticSource"},e.source))}class D5 extends Yt{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return be("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class Sf{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Z0(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class Ri{constructor(e){this.view=e,this.items=[];let t=i=>{if(i.keyCode==27)wf(this.view),this.view.focus();else if(i.keyCode==38||i.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(i.keyCode==40||i.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(i.keyCode==36)this.moveSelection(0);else if(i.keyCode==35)this.moveSelection(this.items.length-1);else if(i.keyCode==13)this.view.focus();else if(i.keyCode>=65&&i.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:s}=this.items[this.selectedIndex],o=X0(s.actions);for(let a=0;a<o.length;a++)if(o[a].toUpperCase().charCodeAt(0)==i.keyCode){let l=Pr(this.view.state.field(ct).diagnostics,s);l&&s.actions[a].apply(e,l.from,l.to)}}else return;i.preventDefault()},r=i=>{for(let s=0;s<this.items.length;s++)this.items[s].dom.contains(i.target)&&this.moveSelection(s)};this.list=be("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t,onclick:r}),this.dom=be("div",{class:"cm-panel-lint"},this.list,be("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>wf(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(ct).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(ct),r=0,i=!1,s=null,o=new Set;for(e.between(0,this.view.state.doc.length,(a,l,{spec:c})=>{for(let h of c.diagnostics){if(o.has(h))continue;o.add(h);let u=-1,f;for(let p=r;p<this.items.length;p++)if(this.items[p].diagnostic==h){u=p;break}u<0?(f=new Sf(this.view,h),this.items.splice(r,0,f),i=!0):(f=this.items[u],u>r&&(this.items.splice(r,u-r),i=!0)),t&&f.diagnostic==t.diagnostic?f.dom.hasAttribute("aria-selected")||(f.dom.setAttribute("aria-selected","true"),s=f):f.dom.hasAttribute("aria-selected")&&f.dom.removeAttribute("aria-selected"),r++}});r<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)i=!0,this.items.pop();this.items.length==0&&(this.items.push(new Sf(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),i=!0),s?(this.list.setAttribute("aria-activedescendant",s.id),this.view.requestMeasure({key:this,read:()=>({sel:s.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:a,panel:l})=>{let c=l.height/this.list.offsetHeight;a.top<l.top?this.list.scrollTop-=(l.top-a.top)/c:a.bottom>l.bottom&&(this.list.scrollTop+=(a.bottom-l.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),i&&this.sync()}sync(){let e=this.list.firstChild;function t(){let r=e;e=r.nextSibling,r.remove()}for(let r of this.items)if(r.dom.parentNode==this.list){for(;e!=r.dom;)t();e=r.dom.nextSibling}else this.list.insertBefore(r.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(ct),r=Pr(t.diagnostics,this.items[e].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:J0.of(r)})}static open(e){return new Ri(e)}}function E5(n,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(n)}</svg>')`}function mo(n){return E5(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${n}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const T5=_.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:mo("#d11")},".cm-lintRange-warning":{backgroundImage:mo("orange")},".cm-lintRange-info":{backgroundImage:mo("#999")},".cm-lintRange-hint":{backgroundImage:mo("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function N5(n){return n=="error"?4:n=="warning"?3:n=="info"?2:1}function L5(n){let e="hint",t=1;for(let r of n){let i=N5(r.severity);i>t&&(t=i,e=r.severity)}return e}const R5=[ct,_.decorations.compute([ct],n=>{let{selected:e,panel:t}=n.field(ct);return!e||!t||e.from==e.to?ee.none:ee.set([C5.range(e.from,e.to)])}),Fk(O5,{hideOn:k5}),T5];var Cf=function(e){e===void 0&&(e={});var{crosshairCursor:t=!1}=e,r=[];e.closeBracketsKeymap!==!1&&(r=r.concat(f5)),e.defaultKeymap!==!1&&(r=r.concat(o4)),e.searchKeymap!==!1&&(r=r.concat(T4)),e.historyKeymap!==!1&&(r=r.concat(fS)),e.foldKeymap!==!1&&(r=r.concat(C3)),e.completionKeymap!==!1&&(r=r.concat(Y0)),e.lintKeymap!==!1&&(r=r.concat(M5));var i=[];return e.lineNumbers!==!1&&i.push(Qk()),e.highlightActiveLineGutter!==!1&&i.push(Zk()),e.highlightSpecialChars!==!1&&i.push(pk()),e.history!==!1&&i.push(iS()),e.foldGutter!==!1&&i.push(A3()),e.drawSelection!==!1&&i.push(rk()),e.dropCursor!==!1&&i.push(lk()),e.allowMultipleSelections!==!1&&i.push(ce.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&i.push(p3()),e.syntaxHighlighting!==!1&&i.push(bh(T3,{fallback:!0})),e.bracketMatching!==!1&&i.push(F3()),e.closeBrackets!==!1&&i.push(c5()),e.autocompletion!==!1&&i.push(v5()),e.rectangularSelection!==!1&&i.push(Ak()),t!==!1&&i.push(Ek()),e.highlightActiveLine!==!1&&i.push(vk()),e.highlightSelectionMatches!==!1&&i.push(f4()),e.tabSize&&typeof e.tabSize=="number"&&i.push(va.of(" ".repeat(e.tabSize))),i.concat([ya.of(r.flat())]).filter(Boolean)};const I5="#e5c07b",Of="#e06c75",B5="#56b6c2",$5="#ffffff",To="#abb2bf",Rc="#7d8799",F5="#61afef",z5="#98c379",jf="#d19a66",V5="#c678dd",H5="#21252b",Pf="#2c313a",Af="#282c34",pl="#353a42",_5="#3E4451",Mf="#528bff",W5=_.theme({"&":{color:To,backgroundColor:Af},".cm-content":{caretColor:Mf},".cm-cursor, .cm-dropCursor":{borderLeftColor:Mf},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:_5},".cm-panels":{backgroundColor:H5,color:To},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:Af,color:Rc,border:"none"},".cm-activeLineGutter":{backgroundColor:Pf},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:pl},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:pl,borderBottomColor:pl},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Pf,color:To}}},{dark:!0}),U5=Dr.define([{tag:E.keyword,color:V5},{tag:[E.name,E.deleted,E.character,E.propertyName,E.macroName],color:Of},{tag:[E.function(E.variableName),E.labelName],color:F5},{tag:[E.color,E.constant(E.name),E.standard(E.name)],color:jf},{tag:[E.definition(E.name),E.separator],color:To},{tag:[E.typeName,E.className,E.number,E.changed,E.annotation,E.modifier,E.self,E.namespace],color:I5},{tag:[E.operator,E.operatorKeyword,E.url,E.escape,E.regexp,E.link,E.special(E.string)],color:B5},{tag:[E.meta,E.comment],color:Rc},{tag:E.strong,fontWeight:"bold"},{tag:E.emphasis,fontStyle:"italic"},{tag:E.strikethrough,textDecoration:"line-through"},{tag:E.link,color:Rc,textDecoration:"underline"},{tag:E.heading,fontWeight:"bold",color:Of},{tag:[E.atom,E.bool,E.special(E.variableName)],color:jf},{tag:[E.processingInstruction,E.string,E.inserted],color:z5},{tag:E.invalid,color:$5}]),K5=[W5,bh(U5)];var G5=_.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),q5=function(e){e===void 0&&(e={});var{indentWithTab:t=!0,editable:r=!0,readOnly:i=!1,theme:s="light",placeholder:o="",basicSetup:a=!0}=e,l=[];switch(t&&l.unshift(ya.of([a4])),a&&(typeof a=="boolean"?l.unshift(Cf()):l.unshift(Cf(a))),o&&l.unshift(Ck(o)),s){case"light":l.push(G5);break;case"dark":l.push(K5);break;case"none":break;default:l.push(s);break}return r===!1&&l.push(_.editable.of(!1)),i&&l.push(ce.readOnly.of(!0)),[...l]},Y5=n=>({line:n.state.doc.lineAt(n.state.selection.main.from),lineCount:n.state.doc.lines,lineBreak:n.state.lineBreak,length:n.state.doc.length,readOnly:n.state.readOnly,tabSize:n.state.tabSize,selection:n.state.selection,selectionAsSingle:n.state.selection.asSingle().main,ranges:n.state.selection.ranges,selectionCode:n.state.sliceDoc(n.state.selection.main.from,n.state.selection.main.to),selections:n.state.selection.ranges.map(e=>n.state.sliceDoc(e.from,e.to)),selectedText:n.state.selection.ranges.some(e=>!e.empty)});class Q5{constructor(e,t){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=t,this.timeoutMS=t,this.callbacks.push(e)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var e=this.callbacks.slice();this.callbacks.length=0,e.forEach(t=>{try{t()}catch(r){console.error("TimeoutLatch callback error:",r)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class Df{constructor(){this.interval=null,this.latches=new Set}add(e){this.latches.add(e),this.start()}remove(e){this.latches.delete(e),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(e=>{e.tick(),e.isDone&&this.remove(e)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var ml=null,J5=()=>typeof window>"u"?new Df:(ml||(ml=new Df),ml),Ef=Gt.define(),X5=200,Z5=[];function eC(n){var{value:e,selection:t,onChange:r,onStatistics:i,onCreateEditor:s,onUpdate:o,extensions:a=Z5,autoFocus:l,theme:c="light",height:h=null,minHeight:u=null,maxHeight:f=null,width:p=null,minWidth:m=null,maxWidth:g=null,placeholder:y="",editable:v=!0,readOnly:S=!1,indentWithTab:C=!0,basicSetup:A=!0,root:k,initialState:j}=n,[x,T]=b.useState(),[P,R]=b.useState(),[L,I]=b.useState(),W=b.useState(()=>({current:null}))[0],U=b.useState(()=>({current:null}))[0],D=_.theme({"&":{height:h,minHeight:u,maxHeight:f,width:p,minWidth:m,maxWidth:g},"& .cm-scroller":{height:"100% !important"}}),$=_.updateListener.of(q=>{if(q.docChanged&&typeof r=="function"&&!q.transactions.some(me=>me.annotation(Ef))){W.current?W.current.reset():(W.current=new Q5(()=>{if(U.current){var me=U.current;U.current=null,me()}W.current=null},X5),J5().add(W.current));var re=q.state.doc,se=re.toString();r(se,q)}i&&i(Y5(q))}),V=q5({theme:c,editable:v,readOnly:S,placeholder:y,indentWithTab:C,basicSetup:A}),F=[$,D,...V];return o&&typeof o=="function"&&F.push(_.updateListener.of(o)),F=F.concat(a),b.useLayoutEffect(()=>{if(x&&!L){var q={doc:e,selection:t,extensions:F},re=j?ce.fromJSON(j.json,q,j.fields):ce.create(q);if(I(re),!P){var se=new _({state:re,parent:x,root:k});R(se),s&&s(se,re)}}return()=>{P&&(I(void 0),R(void 0))}},[x,L]),b.useEffect(()=>{n.container&&T(n.container)},[n.container]),b.useEffect(()=>()=>{P&&(P.destroy(),R(void 0)),W.current&&(W.current.cancel(),W.current=null)},[P]),b.useEffect(()=>{l&&P&&P.focus()},[l,P]),b.useEffect(()=>{P&&P.dispatch({effects:ie.reconfigure.of(F)})},[c,a,h,u,f,p,m,g,y,v,S,C,A,r,o]),b.useEffect(()=>{if(e!==void 0){var q=P?P.state.doc.toString():"";if(P&&e!==q){var re=W.current&&!W.current.isDone,se=()=>{P&&e!==P.state.doc.toString()&&P.dispatch({changes:{from:0,to:P.state.doc.toString().length,insert:e||""},annotations:[Ef.of(!0)]})};re?U.current=se:se()}}},[e,P]),{state:L,setState:I,view:P,setView:R,container:x,setContainer:T}}var tC=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],e1=b.forwardRef((n,e)=>{var{className:t,value:r="",selection:i,extensions:s=[],onChange:o,onStatistics:a,onCreateEditor:l,onUpdate:c,autoFocus:h,theme:u="light",height:f,minHeight:p,maxHeight:m,width:g,minWidth:y,maxWidth:v,basicSetup:S,placeholder:C,indentWithTab:A,editable:k,readOnly:j,root:x,initialState:T}=n,P=q3(n,tC),R=b.useRef(null),{state:L,view:I,container:W,setContainer:U}=eC({root:x,value:r,autoFocus:h,theme:u,height:f,minHeight:p,maxHeight:m,width:g,minWidth:y,maxWidth:v,basicSetup:S,placeholder:C,indentWithTab:A,editable:k,readOnly:j,selection:i,onChange:o,onStatistics:a,onCreateEditor:l,onUpdate:c,extensions:s,initialState:T});b.useImperativeHandle(e,()=>({editor:R.current,state:L,view:I}),[R,W,L,I]);var D=b.useCallback(V=>{R.current=V,U(V)},[U]);if(typeof r!="string")throw new Error("value must be typeof string but got "+typeof r);var $=typeof u=="string"?"cm-theme-"+u:"cm-theme";return d.jsx("div",Ac({ref:D,className:""+$+(t?" "+t:"")},P))});e1.displayName="CodeMirror";const nC=()=>{const n=_.theme({"&":{backgroundColor:"var(--dash-surface)",color:"var(--dash-text)",height:"100%"},".cm-content":{caretColor:"var(--dash-accent)",fontFamily:"'JetBrains Mono', Menlo, monospace",padding:"1rem"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--dash-accent)"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:"var(--dash-accent-subtle)"},".cm-gutters":{backgroundColor:"var(--dash-surface)",color:"var(--dash-text-muted)",border:"none",borderRight:"1px solid var(--dash-border)",paddingRight:"0.5rem"},".cm-lineNumbers .cm-gutterElement":{padding:"0 0.5rem 0 1rem",minWidth:"3rem"},".cm-activeLineGutter":{backgroundColor:"var(--dash-accent-subtle)",color:"var(--dash-accent)",fontWeight:"600"},".cm-activeLine":{backgroundColor:"color-mix(in srgb, var(--dash-accent) 8%, transparent)"},".cm-matchingBracket":{backgroundColor:"var(--dash-accent-subtle)",outline:"1px solid var(--dash-accent)"},".cm-scroller":{overflow:"auto",minHeight:"100%"}}),e=Dr.define([{tag:E.propertyName,color:"var(--dash-accent)"},{tag:E.string,color:"color-mix(in srgb, var(--dash-accent) 70%, var(--dash-text))"},{tag:E.number,color:"var(--dash-accent-hover)"},{tag:E.bool,color:"var(--dash-accent-hover)"},{tag:E.null,color:"var(--dash-text-muted)"},{tag:E.punctuation,color:"var(--dash-text-secondary)"},{tag:E.brace,color:"var(--dash-text-secondary)"},{tag:E.bracket,color:"var(--dash-text-secondary)"}]);return[n,bh(e)]},rC=({value:n,onChange:e,onCursorLineChange:t,height:r="100%",readOnly:i=!1})=>{const s=b.useMemo(()=>[G3(),_.lineWrapping,...nC()],[]),o=b.useMemo(()=>{if(t)return a=>{const l=a.state.selection.main.head,c=a.view.state.doc.lineAt(l).number-1;t(c)}},[t]);return d.jsx("div",{className:"h-full [&_.cm-editor]:h-full [&_.cm-editor]:outline-none [&_.cm-focused]:outline-none",children:d.jsx(e1,{value:n,height:r,extensions:s,onChange:e,onUpdate:o,theme:"none",readOnly:i,basicSetup:{lineNumbers:!0,highlightActiveLineGutter:!0,highlightActiveLine:!0,foldGutter:!1,dropCursor:!0,allowMultipleSelections:!1,indentOnInput:!0,bracketMatching:!0,closeBrackets:!0,autocompletion:!1,rectangularSelection:!1,crosshairCursor:!1,highlightSelectionMatches:!0}})})},t1=({width:n,isLoading:e,jsonText:t,cursorLine:r,syntaxError:i,onChange:s,onCursorLineChange:o})=>{const{t:a}=he();return d.jsxs("div",{style:{width:`${n}%`},className:"bg-dash-surface border border-dash-border rounded-xl overflow-hidden flex flex-col shadow-sm min-w-0",children:[d.jsx("div",{className:"p-3 border-b border-dash-border bg-dash-surface-hover/50 shrink-0",children:d.jsx("h3",{className:"text-xs font-bold text-dash-text-secondary uppercase tracking-widest",children:a("jsonTab")})}),d.jsx("div",{className:"flex-1 min-h-0 overflow-auto",children:e?d.jsx("div",{className:"h-full flex items-center justify-center",children:d.jsx("div",{className:"animate-pulse text-dash-text-muted text-sm",children:a("loading")})}):d.jsx(rC,{value:t,onChange:s,onCursorLineChange:o})}),d.jsxs("div",{className:"px-4 py-2 bg-dash-surface-hover/30 border-t border-dash-border text-[10px] text-dash-text-muted flex justify-between uppercase tracking-widest font-bold",children:[d.jsxs("div",{className:"flex gap-4",children:[d.jsx("span",{children:"UTF-8"}),d.jsx("span",{children:"JSON"}),d.jsxs("span",{children:["L:",r+1]})]}),d.jsx("div",{className:"flex items-center gap-2",children:i?d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-red-500"}),d.jsx("span",{className:"text-red-500 normal-case",children:i})]}):d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-dash-accent"}),a("syntaxValid")]})})]})]})},Tf=({label:n,value:e})=>d.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 bg-dash-bg border border-dash-border rounded-md",children:[d.jsxs("span",{className:"text-[9px] font-bold text-dash-text-muted uppercase",children:[n,":"]}),d.jsx("span",{className:"text-[10px] mono font-bold text-dash-text-secondary",children:e})]}),n1=({width:n,fieldDoc:e,activeFieldPath:t,extraContent:r,overrideBadge:i})=>{const{t:s,lang:o}=he();return d.jsxs("div",{style:{width:`${n}%`},className:"bg-dash-surface border border-dash-border rounded-xl flex flex-col shadow-sm overflow-hidden min-w-0",children:[d.jsx("div",{className:"p-3 border-b border-dash-border bg-dash-surface-hover/50 shrink-0",children:d.jsx("h3",{className:"text-xs font-bold text-dash-text-secondary uppercase tracking-widest",children:s("configurationHelp")})}),d.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:e?d.jsxs("div",{className:"space-y-5 animate-in fade-in duration-500",children:[d.jsxs("header",{children:[d.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[d.jsx("span",{className:"text-[10px] bg-dash-accent-subtle text-dash-accent px-1.5 py-0.5 rounded font-mono uppercase font-bold",children:s("field")}),d.jsx("h2",{className:"text-base font-bold text-dash-text mono break-all",children:e.path}),i]}),d.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[d.jsx(Tf,{label:s("type"),value:e.type}),d.jsx(Tf,{label:s("default"),value:e.default})]})]}),d.jsxs("section",{children:[d.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:s("description")}),d.jsx("p",{className:"text-sm text-dash-text-secondary leading-relaxed italic",children:o==="vi"?e.descriptionVi:e.description})]}),e.validValues&&d.jsxs("section",{children:[d.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:s("validValues")}),d.jsx("div",{className:"flex flex-wrap gap-1.5",children:e.validValues.map(a=>d.jsx("span",{className:"px-2 py-0.5 bg-dash-bg border border-dash-border rounded text-[11px] mono text-dash-text",children:a},a))})]}),e.effect&&d.jsxs("section",{className:"bg-dash-accent-subtle/30 p-3 rounded-lg border border-dash-accent/10",children:[d.jsx("h4",{className:"text-[10px] font-bold text-dash-accent uppercase tracking-widest mb-1",children:s("systemEffect")}),d.jsx("p",{className:"text-[12px] text-dash-text-secondary leading-normal",children:o==="vi"&&e.effectVi?e.effectVi:e.effect})]}),e.example&&d.jsxs("section",{children:[d.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:s("exampleUsage")}),d.jsx("div",{className:"bg-dash-bg p-3 rounded-lg border border-dash-border overflow-hidden",children:d.jsx("pre",{className:"text-[11px] mono text-dash-text-secondary whitespace-pre overflow-x-auto",children:e.example})})]}),r]}):d.jsxs("div",{className:"h-full flex flex-col items-center justify-center text-center opacity-40 space-y-4",children:[d.jsx("div",{className:"w-10 h-10 rounded-full bg-dash-bg border border-dash-border flex items-center justify-center text-lg",children:"?"}),d.jsxs("div",{className:"max-w-[180px]",children:[d.jsx("p",{className:"text-sm font-bold text-dash-text mb-1 italic",children:s("knowledgeBase")}),d.jsx("p",{className:"text-xs text-dash-text-secondary",children:s("clickToSeeHelp")})]})]})}),e&&d.jsx("div",{className:"p-3 bg-dash-surface-hover/20 border-t border-dash-border shrink-0",children:d.jsxs("p",{className:"text-[10px] text-dash-text-muted font-medium flex items-center gap-1.5 italic",children:[d.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),s("extractedFrom")]})})]})},iC=({variant:n="development"})=>{const{t:e}=he(),t={development:e("developmentFeature"),beta:e("betaFeature"),experimental:e("experimentalFeature")};return d.jsx("span",{className:"text-[9px] bg-orange-500/10 text-orange-500 px-2 py-0.5 rounded-full font-bold border border-orange-500/30 uppercase tracking-wider",children:t[n]})},sC=({components:n,isChecking:e,isUpdating:t,onCheckAll:r,onUpdateAll:i})=>{const{t:s}=he(),o=n.filter(l=>l.status==="update-available").length,a=n.length>0&&n.every(l=>l.status==="up-to-date"||l.status==="idle");return d.jsx("div",{className:"bg-dash-bg border border-dash-border rounded-lg p-4 mb-4",children:d.jsxs("div",{className:"flex items-center justify-between gap-4",children:[d.jsxs("div",{className:"flex items-center gap-3",children:[o>0&&d.jsx("span",{className:"text-sm font-medium text-amber-500",children:s("updatesAvailable").replace("{count}",o.toString())}),a&&!e&&d.jsx("span",{className:"text-sm font-medium text-emerald-500",children:s("allUpToDate")}),e&&d.jsxs("span",{className:"text-sm text-dash-text-muted flex items-center gap-2",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),s("checkingAll")]})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{type:"button",onClick:r,disabled:e||t,className:"px-3 py-1.5 text-xs font-medium text-dash-accent hover:text-dash-accent-hover disabled:text-dash-text-muted disabled:cursor-not-allowed transition-colors",children:s("checkAll")}),o>0&&d.jsx("button",{type:"button",onClick:i,disabled:t,className:"px-3 py-1.5 text-xs font-medium bg-amber-500 text-white rounded hover:bg-amber-600 disabled:bg-dash-bg disabled:text-dash-text-muted disabled:cursor-not-allowed transition-colors",children:s("updateAll")})]})]})})},oC=({value:n,onChange:e,disabled:t=!1})=>{const{t:r}=he();return d.jsxs("fieldset",{className:"inline-flex rounded-lg border border-dash-border bg-dash-surface p-1 gap-1",role:"radiogroup","aria-label":"Update channel",children:[d.jsxs("label",{className:`px-3 py-1.5 text-xs font-medium rounded-md transition-all cursor-pointer ${n==="stable"?"bg-dash-accent text-white":"text-dash-text-secondary hover:text-dash-text"} ${t?"opacity-50 cursor-not-allowed":""}`,children:[d.jsx("input",{type:"radio",name:"channel",value:"stable",checked:n==="stable",onChange:()=>e("stable"),disabled:t,className:"sr-only"}),r("channelStable")]}),d.jsxs("label",{className:`px-3 py-1.5 text-xs font-medium rounded-md transition-all cursor-pointer ${n==="beta"?"bg-amber-500 text-white":"text-dash-text-secondary hover:text-dash-text"} ${t?"opacity-50 cursor-not-allowed":""}`,children:[d.jsx("input",{type:"radio",name:"channel",value:"beta",checked:n==="beta",onChange:()=>e("beta"),disabled:t,className:"sr-only"}),r("channelBeta")]})]})},aC={idle:{color:"bg-dash-text-muted",pulse:!1},checking:{color:"bg-dash-text-muted",pulse:!0},"up-to-date":{color:"bg-emerald-500",pulse:!1},"update-available":{color:"bg-amber-500",pulse:!1}},r1=({status:n,ariaLabel:e,size:t="sm"})=>{const r=aC[n],i=t==="sm"?"w-2 h-2":"w-2.5 h-2.5";return d.jsx("span",{className:`
64
+ inline-block rounded-full ${i} ${r.color}
65
+ ${r.pulse?"animate-pulse motion-reduce:animate-none":""}
66
+ `,role:"status","aria-label":e})},Mh=({isOpen:n,onClose:e,target:t,kitName:r,targetVersion:i,onComplete:s,mode:o="single",components:a=[]})=>{const{t:l}=he(),[c,h]=b.useState("running"),[u,f]=b.useState([]),[p,m]=b.useState([]),[g,y]=b.useState(!1),[v,S]=b.useState(0),C=b.useRef(null),A=b.useRef(null);b.useEffect(()=>{g&&A.current&&A.current.scrollIntoView({behavior:"smooth"})},[g]);const k=b.useCallback(async()=>{if(a.length===0){h("success");return}for(let x=0;x<a.length;x++){S(x);const T=a[x];try{const P=T.id==="cli",R=new URLSearchParams({target:P?"cli":"kit"});P||R.set("kit",T.id);const L=new EventSource(`/api/system/update?${R}`);C.current=L,await new Promise((I,W)=>{L.onmessage=U=>{try{const D=JSON.parse(U.data);D.type==="phase"&&D.name&&f($=>[...$,`[${T.name}] ${D.name}`]),D.type==="output"&&D.text&&m($=>[...$,D.text]),D.type==="error"&&(h("error"),m($=>[...$,`[ERROR ${T.name}] ${D.message||"Unknown error"}`]),L.close(),W()),D.type==="complete"&&(D.code===0?(L.close(),I()):(h("error"),L.close(),W()))}catch(D){console.error("Failed to parse SSE message:",D),L.close(),W(D)}},L.onerror=()=>{h("error"),m(U=>[...U,`[ERROR ${T.name}] Connection lost`]),L.close(),W()}})}catch(P){console.error(`Failed to update ${T.name}:`,P)}}h("success"),s()},[a,s]);b.useEffect(()=>{if(n)if(o==="batch")k();else{const x=new URLSearchParams({target:t});r&&x.set("kit",r),i&&x.set("version",i);const T=new EventSource(`/api/system/update?${x}`);return C.current=T,T.onmessage=P=>{try{const R=JSON.parse(P.data);R.type==="phase"&&R.name&&f(L=>[...L,R.name]),R.type==="output"&&R.text&&m(L=>[...L,R.text]),R.type==="error"&&(h("error"),m(L=>[...L,`[ERROR] ${R.message||"Unknown error"}`])),R.type==="complete"&&(h(R.code===0?"success":"error"),T.close(),R.code===0&&s())}catch(R){console.error("Failed to parse SSE message:",R)}},T.onerror=()=>{h("error"),m(P=>[...P,"[ERROR] Connection lost"]),T.close()},()=>{T.close()}}},[n,t,r,i,s,o,k]);const j=()=>{c!=="running"&&(h("running"),f([]),m([]),y(!1),S(0),e())};return n?d.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50",children:d.jsxs("div",{className:"bg-dash-surface border border-dash-border rounded-lg shadow-lg w-full max-w-2xl max-h-[80vh] flex flex-col",children:[d.jsx("div",{className:"px-6 py-4 border-b border-dash-border",children:d.jsx("h2",{className:"text-lg font-bold text-dash-text",children:l(c==="running"?"updating":c==="success"?"updateSuccess":"updateFailed")})}),d.jsxs("div",{className:"flex-1 overflow-y-auto p-6 space-y-4",children:[o==="batch"&&a.length>0&&d.jsxs("div",{className:"text-sm text-dash-text-secondary",children:[c==="running"&&d.jsxs("span",{children:["Updating ",v+1," of ",a.length,":"," ",a[v]?.name]}),c==="success"&&d.jsxs("span",{className:"text-emerald-500",children:["All ",a.length," components updated"]})]}),u.length>0&&d.jsx("div",{className:"space-y-2",children:u.map((x,T)=>d.jsxs("div",{className:"flex items-center gap-2 text-sm text-dash-text-secondary",children:[d.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-dash-accent"}),d.jsx("span",{children:x})]},`${x}-${T}`))}),c==="running"&&d.jsxs("div",{className:"flex items-center gap-2 text-sm text-dash-text-muted",children:[d.jsx("span",{className:"w-4 h-4 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),d.jsx("span",{children:l("updating")})]}),p.length>0&&d.jsxs("div",{children:[d.jsx("button",{type:"button",onClick:()=>y(!g),className:"text-xs text-dash-accent hover:text-dash-accent-hover transition-colors",children:l(g?"hideDetails":"showDetails")}),g&&d.jsxs("div",{className:"mt-2 bg-dash-bg border border-dash-border rounded p-3 max-h-64 overflow-y-auto",children:[d.jsx("pre",{className:"text-xs mono text-dash-text whitespace-pre-wrap",children:p.join(`
67
+ `)}),d.jsx("div",{ref:A})]})]})]}),d.jsx("div",{className:"px-6 py-4 border-t border-dash-border flex justify-end",children:d.jsx("button",{type:"button",onClick:j,disabled:c==="running",className:`px-4 py-2 rounded text-sm font-medium transition-colors ${c==="running"?"bg-dash-bg text-dash-text-muted cursor-not-allowed":"bg-dash-accent text-white hover:bg-dash-accent-hover"}`,children:l("closeModal")})})]})}):null},i1=({target:n,kitName:e,currentVersion:t,latestVersion:r,onVersionSelect:i})=>{const{t:s}=he(),[o,a]=b.useState([]),[l,c]=b.useState(!1),[h,u]=b.useState(r);b.useEffect(()=>{(async()=>{c(!0);try{const m=new URLSearchParams({target:n});e&&m.set("kit",e);const y=await(await fetch(`/api/system/versions?${m}`)).json();y.versions&&a(y.versions)}catch(m){console.error("Failed to fetch versions:",m)}finally{c(!1)}})()},[n,e]);const f=p=>{u(p),i(p)};return l?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),s("loadingVersions")]}):d.jsx("select",{value:h,onChange:p=>f(p.target.value),className:`text-xs text-amber-500 hover:text-amber-600 font-medium transition-colors
68
+ bg-transparent border border-amber-500/30 rounded px-2 py-1
69
+ focus:outline-none focus:ring-2 focus:ring-amber-500/50
70
+ cursor-pointer appearance-none`,title:s("selectVersion"),children:o.map(p=>{const m=p.version===r,g=p.version===t,y=`v${p.version.replace(/^v/,"")}${m?` (${s("latestVersion")})`:""}${p.isPrerelease?` [${s("prereleaseLabel")}]`:""}${g?` - ${s("currentVersionLabel")}`:""}`;return d.jsx("option",{value:p.version,disabled:g,children:y},p.version)})})},lC=({version:n,installedAt:e,channel:t="stable",externalStatus:r,externalLatestVersion:i,onStatusChange:s,disabled:o})=>{const{t:a}=he(),[l,c]=b.useState("idle"),[h,u]=b.useState(null),[f,p]=b.useState(!1),[m,g]=b.useState(null),y=r??l,v=i??h,S=async()=>{const A=j=>{s||c(j)},k=j=>{s||u(j)};A("checking"),s&&s("checking",null);try{const x=await(await fetch(`/api/system/check-updates?target=cli&channel=${t}`)).json();x.updateAvailable?(A("update-available"),k(x.latest),s&&s("update-available",x.latest)):(A("up-to-date"),s&&s("up-to-date",null))}catch{A("idle"),s&&s("idle",null)}},C=async()=>{window.location.reload()};return d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"bg-dash-bg border border-dash-border rounded-lg p-5",children:d.jsxs("div",{className:"flex items-start justify-between gap-4",children:[d.jsxs("div",{children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx(r1,{status:y,ariaLabel:a(y==="up-to-date"?"upToDate":y==="update-available"?"updateAvailable":"checking")}),d.jsx("h3",{className:"text-base font-bold text-dash-text",children:a("cliCard")}),t==="beta"&&d.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-amber-500 text-white rounded",children:a("betaBadge")})]}),d.jsxs("div",{className:"flex items-center gap-4 mt-1 text-sm text-dash-text-secondary",children:[d.jsxs("span",{children:["v",n.replace(/^v/,"")]}),e&&d.jsx("span",{className:"text-dash-text-muted",children:new Date(e).toLocaleDateString()})]}),y==="update-available"&&v&&d.jsxs("div",{className:"mt-1 text-xs text-amber-500",children:["v",n.replace(/^v/,"")," → v",v.replace(/^v/,"")]})]}),d.jsx(cC,{status:y,currentVersion:n,latestVersion:v,onCheck:S,onUpdate:()=>p(!0),onVersionSelect:g,disabled:o})]})}),d.jsx(Mh,{isOpen:f,onClose:()=>p(!1),target:"cli",targetVersion:m??v??void 0,onComplete:C})]})},cC=({status:n,currentVersion:e,latestVersion:t,onCheck:r,onUpdate:i,onVersionSelect:s,disabled:o})=>{const{t:a}=he();return n==="checking"?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),a("checking")]}):n==="up-to-date"?d.jsx("span",{className:"text-xs text-emerald-500 font-medium",children:a("upToDate")}):n==="update-available"&&t?d.jsx("div",{className:"flex items-center gap-2",children:d.jsx(i1,{target:"cli",currentVersion:e,latestVersion:t,onVersionSelect:l=>{s(l),i()}})}):d.jsx("button",{type:"button",onClick:r,disabled:o,className:"text-xs text-dash-accent hover:text-dash-accent-hover transition-colors disabled:text-dash-text-muted disabled:cursor-not-allowed",children:a("checkForUpdates")})},hC=({configPath:n,nodeVersion:e,bunVersion:t,os:r})=>{const{t:i}=he();return d.jsxs("div",{className:"bg-dash-bg border border-dash-border rounded-lg p-5",children:[d.jsx("h3",{className:"text-base font-bold text-dash-text mb-3",children:i("environment")}),d.jsxs("div",{className:"grid grid-cols-2 gap-x-6 gap-y-2 text-sm",children:[d.jsx(go,{label:i("claudeConfigPath"),value:n,mono:!0}),d.jsx(go,{label:i("osVersion"),value:r}),d.jsx(go,{label:i("nodeVersion"),value:e,mono:!0}),t&&d.jsx(go,{label:i("bunVersion"),value:t,mono:!0})]})]})},go=({label:n,value:e,mono:t})=>d.jsxs("div",{children:[d.jsxs("span",{className:"text-dash-text-muted text-xs",children:[n,": "]}),d.jsx("span",{className:`text-dash-text-secondary ${t?"mono":""}`,children:e})]});function uC(n){let e=0,t=0,r=0;for(const i of n)i.ownership==="ck"?e++:i.ownership==="user"?t++:i.ownership==="ck-modified"&&r++;return{ck:e,user:t,modified:r}}function dC(n){const e={skills:0,commands:0,rules:0,hooks:0,settings:0,other:0};for(const t of n){const r=t.path;r.startsWith("skills/")?e.skills++:r.startsWith("commands/")?e.commands++:r.startsWith("rules/")?e.rules++:r.startsWith("hooks/")||r==="hooks.json"?e.hooks++:r.startsWith("settings/")||r==="settings.json"?e.settings++:e.other++}return e}const Nf=({kitName:n,kit:e,channel:t="stable",externalStatus:r,externalLatestVersion:i,onStatusChange:s,disabled:o})=>{const{t:a}=he(),[l,c]=b.useState("idle"),[h,u]=b.useState(null),[f,p]=b.useState(!1),[m,g]=b.useState(null),y=r??l,v=i??h,S=e.files??[],C=uC(S),A=dC(S),k=async()=>{const x=P=>{s||c(P)},T=P=>{s||u(P)};x("checking"),s&&s("checking",null);try{const R=await(await fetch(`/api/system/check-updates?target=kit&kit=${n}&channel=${t}`)).json();R.updateAvailable?(x("update-available"),T(R.latest),s&&s("update-available",R.latest)):(x("up-to-date"),s&&s("up-to-date",null))}catch{x("idle"),s&&s("idle",null)}},j=async()=>{window.location.reload()};return d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"bg-dash-bg border border-dash-border rounded-lg p-5 space-y-4",children:[d.jsxs("div",{className:"flex items-start justify-between gap-4",children:[d.jsxs("div",{children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx(r1,{status:y,ariaLabel:a(y==="up-to-date"?"upToDate":y==="update-available"?"updateAvailable":"checking")}),d.jsxs("h3",{className:"text-base font-bold text-dash-text capitalize",children:[n," Kit"]}),t==="beta"&&d.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-amber-500 text-white rounded",children:a("betaBadge")})]}),d.jsxs("div",{className:"flex items-center gap-4 mt-1 text-sm text-dash-text-secondary",children:[d.jsxs("span",{children:["v",(e.version??"?").replace(/^v/,"")]}),e.installedAt&&d.jsx("span",{className:"text-dash-text-muted",children:new Date(e.installedAt).toLocaleDateString()})]}),y==="update-available"&&v&&d.jsxs("div",{className:"mt-1 text-xs text-amber-500",children:["v",(e.version??"?").replace(/^v/,"")," → v",v.replace(/^v/,"")]})]}),d.jsx(fC,{status:y,currentVersion:e.version??"0.0.0",latestVersion:v,kitName:n,onCheck:k,onUpdate:()=>p(!0),onVersionSelect:g,disabled:o})]}),S.length>0&&d.jsx("div",{className:"grid grid-cols-3 gap-1.5",children:Object.entries(A).filter(([,x])=>x>0).map(([x,T])=>d.jsxs("div",{className:"flex items-center justify-between px-2 py-1 bg-dash-surface border border-dash-border rounded text-xs",children:[d.jsx("span",{className:"text-dash-text-secondary capitalize",children:x}),d.jsx("span",{className:"font-bold mono text-dash-text",children:T})]},x))}),S.length>0&&d.jsxs("div",{className:"flex items-center gap-4 text-xs text-dash-text-muted",children:[d.jsxs("span",{className:"flex items-center gap-1.5",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-emerald-500"}),C.ck," ",a("ownershipCk")]}),C.user>0&&d.jsxs("span",{className:"flex items-center gap-1.5",children:[d.jsx("span",{className:"w-2 h-2 rounded-full bg-blue-500"}),C.user," ",a("ownershipUser")]})]})]}),d.jsx(Mh,{isOpen:f,onClose:()=>p(!1),target:"kit",kitName:n,targetVersion:m??v??void 0,onComplete:j})]})},fC=({status:n,currentVersion:e,latestVersion:t,kitName:r,onCheck:i,onUpdate:s,onVersionSelect:o,disabled:a})=>{const{t:l}=he();return n==="checking"?d.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5",children:[d.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),l("checking")]}):n==="up-to-date"?d.jsx("span",{className:"text-xs text-emerald-500 font-medium",children:l("upToDate")}):n==="update-available"&&t?d.jsx("div",{className:"flex items-center gap-2",children:d.jsx(i1,{target:"kit",kitName:r,currentVersion:e,latestVersion:t,onVersionSelect:c=>{o(c),s()}})}):d.jsx("button",{type:"button",onClick:i,disabled:a,className:"text-xs text-dash-accent hover:text-dash-accent-hover transition-colors disabled:text-dash-text-muted disabled:cursor-not-allowed",children:l("checkForUpdates")})},Lf="claudekit-update-channel",pC=n=>/-(alpha|beta|rc|dev|next)/.test(n),mC=({metadata:n})=>{const{t:e}=he(),[t,r]=b.useState(null),[i,s]=b.useState([]),[o,a]=b.useState(!1),[l,c]=b.useState(!1),[h,u]=b.useState(!1),[f,p]=b.useState("stable"),m=n.kits&&typeof n.kits=="object",g=m?Object.entries(n.kits):[],y=n.name,v=n.version,S=n.installedAt,C=g.length>0||y;b.useEffect(()=>{if(!t)return;const P=[];if(P.push({id:"cli",type:"cli",status:"idle",currentVersion:t.cliVersion,latestVersion:null}),m&&g.length>0)for(const[R,L]of g){const I=L;P.push({id:R,type:"kit",status:"idle",currentVersion:I.version??"?",latestVersion:null})}else y&&P.push({id:y,type:"kit",status:"idle",currentVersion:v??"?",latestVersion:null});s(P)},[t,m,g,y,v]),b.useEffect(()=>{fetch("/api/system/info").then(P=>P.json()).then(r).catch(()=>r(null))},[]),b.useEffect(()=>{const P=localStorage.getItem(Lf);P==="stable"||P==="beta"?p(P):t?.cliVersion&&p(pC(t.cliVersion)?"beta":"stable")},[t?.cliVersion]);const A=P=>{p(P),localStorage.setItem(Lf,P)},k=(P,R,L)=>{s(I=>I.map(W=>W.id===P?{...W,status:R,latestVersion:L}:W))},j=async()=>{a(!0);const P=i.map(async L=>{try{const I=L.type==="cli"?`target=cli&channel=${f}`:`target=kit&kit=${L.id}&channel=${f}`,U=await(await fetch(`/api/system/check-updates?${I}`)).json();return{id:L.id,status:U.updateAvailable?"update-available":"up-to-date",latestVersion:U.latest}}catch{return{id:L.id,status:"idle",latestVersion:null}}}),R=await Promise.all(P);s(L=>L.map(I=>{const W=R.find(U=>U.id===I.id);return W?{...I,status:W.status,latestVersion:W.latestVersion}:I})),a(!1)},x=()=>{u(!0)},T=()=>{window.location.reload()};return d.jsxs("div",{className:"space-y-4",children:[d.jsxs("div",{className:"flex items-center justify-between gap-4",children:[d.jsx(oC,{value:f,onChange:A}),i.length>0&&d.jsx(sC,{components:i,isChecking:o,isUpdating:l,onCheckAll:j,onUpdateAll:x})]}),d.jsx(lC,{version:t?.cliVersion??"...",installedAt:void 0,externalStatus:i.find(P=>P.id==="cli")?.status,externalLatestVersion:i.find(P=>P.id==="cli")?.latestVersion??null,onStatusChange:(P,R)=>k("cli",P,R),disabled:o||l,channel:f}),C?d.jsx(d.Fragment,{children:m&&g.length>0?g.map(([P,R])=>{const L=i.find(I=>I.id===P);return d.jsx(Nf,{kitName:P,kit:R,externalStatus:L?.status,externalLatestVersion:L?.latestVersion??null,onStatusChange:(I,W)=>k(P,I,W),disabled:o||l,channel:f},P)}):d.jsx(Nf,{kitName:y??"ClaudeKit",kit:{version:v,installedAt:S},externalStatus:i.find(P=>P.id===y)?.status,externalLatestVersion:i.find(P=>P.id===y)?.latestVersion??null,onStatusChange:(P,R)=>k(y??"ClaudeKit",P,R),disabled:o||l,channel:f})}):d.jsx("div",{className:"bg-dash-bg border border-dash-border rounded-lg p-6 text-center opacity-60",children:d.jsx("p",{className:"text-sm text-dash-text-secondary",children:e("noKitInstalled")})}),t&&d.jsx(hC,{configPath:t.configPath,nodeVersion:t.nodeVersion,bunVersion:t.bunVersion,os:t.os}),d.jsx(Mh,{isOpen:h,onClose:()=>u(!1),target:"cli",mode:"batch",components:i.filter(P=>P.status==="update-available").map(P=>({id:P.id,name:P.id==="cli"?"CLI":`${P.id} Kit`})),onComplete:T})]})},gC={plan:{path:"plan",type:"object",default:"{}",description:"Configuration for plan management including naming conventions, resolution strategies, and validation workflows.",descriptionVi:"Cấu hình quản lý kế hoạch bao gồm quy ước đặt tên, chiến lược giải quyết và quy trình xác thực.",effect:"Controls how plans are created (namingFormat), located (resolution), and reviewed (validation) during development.",effectVi:"Điều khiển cách tạo kế hoạch (namingFormat), định vị (resolution) và xem xét (validation) trong quá trình phát triển."},"plan.resolution":{path:"plan.resolution",type:"object",default:"{}",description:"Settings for resolving which plan is currently active. Uses cascading resolution: session state (explicit) → branch name matching (suggested).",descriptionVi:"Cài đặt để xác định kế hoạch đang hoạt động. Sử dụng giải quyết theo tầng: trạng thái phiên (rõ ràng) → khớp tên nhánh (gợi ý).",effect:"'session' = ACTIVE (explicitly set via set-active-plan). 'branch' = SUGGESTED (hint from git branch name). 'mostRecent' was removed to avoid stale plan pollution.",effectVi:"'session' = ĐANG HOẠT ĐỘNG (đặt rõ ràng qua set-active-plan). 'branch' = GỢI Ý (từ tên nhánh git). 'mostRecent' đã bị xóa để tránh ô nhiễm kế hoạch cũ."},"plan.validation":{path:"plan.validation",type:"object",default:"{}",description:"Settings for the plan validation interview that reviews assumptions, risks, and architecture decisions.",descriptionVi:"Cài đặt cho phỏng vấn xác thực kế hoạch để xem xét giả định, rủi ro và quyết định kiến trúc.",effect:"Runs validation interview based on mode: 'auto' (always), 'prompt' (ask first), 'off' (skip). Questions focus on configured areas.",effectVi:"Chạy phỏng vấn xác thực dựa trên chế độ: 'auto' (luôn), 'prompt' (hỏi trước), 'off' (bỏ qua). Câu hỏi tập trung vào các lĩnh vực đã cấu hình."},paths:{path:"paths",type:"object",default:"{}",description:"Custom paths for project directories. Supports relative paths (from project root) or absolute paths for consolidated setups.",descriptionVi:"Đường dẫn tùy chỉnh cho các thư mục dự án. Hỗ trợ đường dẫn tương đối (từ thư mục gốc) hoặc tuyệt đối cho thiết lập tập trung.",effect:"Relative paths are resolved from project root. Absolute paths allow consolidated plans across repos.",effectVi:"Đường dẫn tương đối được giải quyết từ thư mục gốc dự án. Đường dẫn tuyệt đối cho phép kế hoạch tập trung giữa các repo."},locale:{path:"locale",type:"object",default:"{}",description:"Language settings separating internal AI reasoning from user-facing output for optimal precision.",descriptionVi:"Cài đặt ngôn ngữ tách suy luận AI nội bộ khỏi đầu ra cho người dùng để có độ chính xác tối ưu.",effect:"thinkingLanguage: for reasoning/logic (recommended: 'en'). responseLanguage: for user output (e.g., 'vi' for Vietnamese responses).",effectVi:"thinkingLanguage: cho suy luận/logic (khuyến nghị: 'en'). responseLanguage: cho đầu ra người dùng (vd: 'vi' cho phản hồi tiếng Việt)."},trust:{path:"trust",type:"object",default:"{}",description:"Trusted execution mode for bypassing certain security confirmations in controlled environments.",descriptionVi:"Chế độ thực thi tin cậy để bỏ qua một số xác nhận bảo mật trong môi trường được kiểm soát.",effect:"When trust.enabled=true, security prompts may be skipped. passphrase is used for context injection testing.",effectVi:"Khi trust.enabled=true, các lời nhắc bảo mật có thể bị bỏ qua. passphrase dùng để kiểm tra tiêm ngữ cảnh."},project:{path:"project",type:"object",default:"{}",description:"Override automatic project detection. Set to 'auto' for automatic detection or specify exact values.",descriptionVi:"Ghi đè phát hiện dự án tự động. Đặt 'auto' để tự động phát hiện hoặc chỉ định giá trị cụ thể.",effect:"type: single-repo/monorepo/library. packageManager: npm/yarn/pnpm/bun. framework: next/nuxt/astro/etc.",effectVi:"type: single-repo/monorepo/library. packageManager: npm/yarn/pnpm/bun. framework: next/nuxt/astro/v.v."},codingLevel:{path:"codingLevel",type:"number",default:"-1",validValues:["-1","0","1","2","3","4","5"],description:"Controls the communication style and depth of explanations based on user's coding experience level.",descriptionVi:"Điều khiển phong cách giao tiếp và độ sâu giải thích dựa trên trình độ lập trình của người dùng.",effect:"Loads corresponding output style and injects it into the session context. Changes how Claude explains code and structures responses.",effectVi:"Tải phong cách đầu ra tương ứng và đưa vào ngữ cảnh phiên. Thay đổi cách Claude giải thích code và cấu trúc phản hồi.",example:`{
71
+ "codingLevel": 1
72
+ }`},privacyBlock:{path:"privacyBlock",type:"boolean",default:"true",description:"Enables or disables the privacy protection hook that blocks access to sensitive files and domains.",descriptionVi:"Bật hoặc tắt hook bảo vệ quyền riêng tư, chặn truy cập vào các tệp và domain nhạy cảm.",effect:"When true, blocks reading files like .env, passwords, credentials, SSH keys, and API tokens.",effectVi:"Khi bật, chặn đọc các tệp như .env, mật khẩu, thông tin xác thực, SSH keys và API tokens.",example:`{
73
+ "privacyBlock": false
74
+ }`},"plan.namingFormat":{path:"plan.namingFormat",type:"string",default:'"{date}-{issue}-{slug}"',description:"Template for naming plan directories. Uses placeholder tokens that get replaced at runtime.",descriptionVi:"Mẫu đặt tên thư mục kế hoạch. Sử dụng các token placeholder được thay thế khi chạy.",effect:"{date} is replaced with formatted date, {issue} is extracted from branch, {slug} is for agent substitution.",effectVi:"{date} được thay bằng ngày đã định dạng, {issue} trích xuất từ branch, {slug} cho agent thay thế.",example:`{
75
+ "plan": {
76
+ "namingFormat": "{date}-{slug}"
77
+ }
78
+ }`},"plan.dateFormat":{path:"plan.dateFormat",type:"string",default:'"YYMMDD-HHmm"',description:"Date format string for {date} token in naming pattern.",descriptionVi:"Chuỗi định dạng ngày cho token {date} trong mẫu đặt tên.",example:`{
79
+ "plan": {
80
+ "dateFormat": "YYMMDD"
81
+ }
82
+ }`},"plan.issuePrefix":{path:"plan.issuePrefix",type:"string | null",default:"null",description:"Prefix to prepend to extracted issue numbers in plan naming (e.g., 'GH-', 'JIRA-').",descriptionVi:"Tiền tố thêm vào số issue trích xuất trong đặt tên kế hoạch (vd: 'GH-', 'JIRA-').",example:`{
83
+ "plan": {
84
+ "issuePrefix": "GH-"
85
+ }
86
+ }`},"plan.reportsDir":{path:"plan.reportsDir",type:"string",default:'"reports"',description:"Subdirectory name within plan directory for storing reports.",descriptionVi:"Tên thư mục con trong thư mục kế hoạch để lưu trữ báo cáo.",example:`{
87
+ "plan": {
88
+ "reportsDir": "reports"
89
+ }
90
+ }`},"plan.resolution.order":{path:"plan.resolution.order",type:"string[]",default:'["session", "branch"]',validValues:["session","branch"],description:"Order of resolution methods to try when finding the active plan.",descriptionVi:"Thứ tự các phương thức giải quyết để tìm kế hoạch đang hoạt động.",example:`{
91
+ "plan": {
92
+ "resolution": {
93
+ "order": ["session", "branch"]
94
+ }
95
+ }
96
+ }`},"plan.resolution.branchPattern":{path:"plan.resolution.branchPattern",type:"string (regex)",default:'"(?:feat|fix|chore|refactor|docs)/(?:[^/]+/)?(.+)"',description:"Regex pattern for extracting plan slug from git branch name. Capture group 1 is used as the slug.",descriptionVi:"Mẫu regex để trích xuất slug kế hoạch từ tên nhánh git. Nhóm bắt 1 được dùng làm slug.",example:`{
97
+ "plan": {
98
+ "resolution": {
99
+ "branchPattern": "(?:feat|fix)/(.+)"
100
+ }
101
+ }
102
+ }`},"plan.validation.mode":{path:"plan.validation.mode",type:"string",default:'"prompt"',validValues:["auto","prompt","off"],description:"Controls when plan validation interview runs.",descriptionVi:"Điều khiển thời điểm chạy phỏng vấn xác thực kế hoạch.",example:`{
103
+ "plan": {
104
+ "validation": {
105
+ "mode": "auto"
106
+ }
107
+ }
108
+ }`},"plan.validation.minQuestions":{path:"plan.validation.minQuestions",type:"number",default:"3",description:"Minimum number of validation questions to ask during plan review.",descriptionVi:"Số câu hỏi xác thực tối thiểu trong quá trình xem xét kế hoạch.",example:`{
109
+ "plan": {
110
+ "validation": {
111
+ "minQuestions": 5
112
+ }
113
+ }
114
+ }`},"plan.validation.maxQuestions":{path:"plan.validation.maxQuestions",type:"number",default:"8",description:"Maximum number of validation questions to ask during plan review.",descriptionVi:"Số câu hỏi xác thực tối đa trong quá trình xem xét kế hoạch.",example:`{
115
+ "plan": {
116
+ "validation": {
117
+ "maxQuestions": 10
118
+ }
119
+ }
120
+ }`},"plan.validation.focusAreas":{path:"plan.validation.focusAreas",type:"string[]",default:'["assumptions", "risks", "tradeoffs", "architecture"]',description:"Categories of questions to focus on during validation interview.",descriptionVi:"Các danh mục câu hỏi tập trung trong phỏng vấn xác thực.",example:`{
121
+ "plan": {
122
+ "validation": {
123
+ "focusAreas": ["security", "performance"]
124
+ }
125
+ }
126
+ }`},"paths.docs":{path:"paths.docs",type:"string",default:'"docs"',description:"Path to documentation directory (relative to project root or absolute).",descriptionVi:"Đường dẫn thư mục tài liệu (tương đối với thư mục gốc hoặc tuyệt đối).",example:`{
127
+ "paths": {
128
+ "docs": "docs"
129
+ }
130
+ }`},"paths.plans":{path:"paths.plans",type:"string",default:'"plans"',description:"Path to plans directory (relative to project root or absolute).",descriptionVi:"Đường dẫn thư mục kế hoạch (tương đối với thư mục gốc hoặc tuyệt đối).",example:`{
131
+ "paths": {
132
+ "plans": "plans"
133
+ }
134
+ }`},"locale.thinkingLanguage":{path:"locale.thinkingLanguage",type:"string | null",default:"null",description:"Language for internal reasoning and logic. Recommended: 'en' for precision.",descriptionVi:"Ngôn ngữ suy luận nội bộ và logic. Khuyến nghị: 'en' để chính xác.",example:`{
135
+ "locale": {
136
+ "thinkingLanguage": "en"
137
+ }
138
+ }`},"locale.responseLanguage":{path:"locale.responseLanguage",type:"string | null",default:"null",description:"Language for user-facing output (responses, explanations, comments).",descriptionVi:"Ngôn ngữ cho đầu ra người dùng (phản hồi, giải thích, nhận xét).",example:`{
139
+ "locale": {
140
+ "responseLanguage": "fr"
141
+ }
142
+ }`},"trust.enabled":{path:"trust.enabled",type:"boolean",default:"false",description:"Enables trusted execution mode. When enabled, bypasses certain security prompts.",descriptionVi:"Bật chế độ thực thi tin cậy. Khi bật, bỏ qua một số lời nhắc bảo mật.",example:`{
143
+ "trust": {
144
+ "enabled": true
145
+ }
146
+ }`},"trust.passphrase":{path:"trust.passphrase",type:"string | null",default:"null",description:"Secret passphrase for testing context injection and trust verification.",descriptionVi:"Cụm mật khẩu bí mật để kiểm tra tiêm ngữ cảnh và xác minh tin cậy.",example:`{
147
+ "trust": {
148
+ "passphrase": "super-secret-key"
149
+ }
150
+ }`},"project.type":{path:"project.type",type:"string",default:'"auto"',validValues:["auto","library","application","monorepo","cli","api","web","mobile"],description:"Override automatic project type detection.",descriptionVi:"Ghi đè phát hiện loại dự án tự động.",example:`{
151
+ "project": {
152
+ "type": "monorepo"
153
+ }
154
+ }`},"project.packageManager":{path:"project.packageManager",type:"string",default:'"auto"',validValues:["auto","npm","yarn","pnpm","bun"],description:"Override automatic package manager detection.",descriptionVi:"Ghi đè phát hiện trình quản lý gói tự động.",example:`{
155
+ "project": {
156
+ "packageManager": "pnpm"
157
+ }
158
+ }`},"project.framework":{path:"project.framework",type:"string",default:'"auto"',validValues:["auto","react","vue","angular","svelte","nextjs","nuxt","express","nestjs","fastify","none"],description:"Override automatic framework detection.",descriptionVi:"Ghi đè phát hiện framework tự động.",example:`{
159
+ "project": {
160
+ "framework": "nextjs"
161
+ }
162
+ }`},docs:{path:"docs",type:"object",default:"{}",description:"Configuration for documentation management including file size limits and splitting behavior.",descriptionVi:"Cấu hình quản lý tài liệu bao gồm giới hạn kích thước tệp và hành vi chia nhỏ.",effect:"Controls how documentation files are processed and split when they exceed size limits.",effectVi:"Điều khiển cách các tệp tài liệu được xử lý và chia nhỏ khi vượt quá giới hạn kích thước."},"docs.maxLoc":{path:"docs.maxLoc",type:"number",default:"800",description:"Maximum lines of code per documentation file before automatic splitting is triggered.",descriptionVi:"Số dòng code tối đa mỗi tệp tài liệu trước khi tự động chia nhỏ được kích hoạt.",effect:"When a documentation file exceeds this line count, the system will suggest or automatically split it into smaller files for better readability and maintenance.",effectVi:"Khi tệp tài liệu vượt quá số dòng này, hệ thống sẽ đề xuất hoặc tự động chia nhỏ thành các tệp nhỏ hơn để dễ đọc và bảo trì hơn.",example:`{
163
+ "docs": {
164
+ "maxLoc": 1000
165
+ }
166
+ }`},gemini:{path:"gemini",type:"object",default:"{}",description:"Configuration for Google Gemini API integration used for CLI commands and research tasks.",descriptionVi:"Cấu hình tích hợp Google Gemini API dùng cho lệnh CLI và tác vụ nghiên cứu.",effect:"Controls which Gemini model is used for research, web search, and other AI-powered CLI operations.",effectVi:"Điều khiển model Gemini nào được dùng cho nghiên cứu, tìm kiếm web và các thao tác CLI hỗ trợ AI khác."},"gemini.model":{path:"gemini.model",type:"string",default:'"gemini-3-flash-preview"',validValues:["gemini-2.5-flash","gemini-2.5-pro","gemini-3-pro-preview","gemini-3-flash-preview"],description:"Gemini model used for CLI commands and research operations.",descriptionVi:"Model Gemini dùng cho lệnh CLI và thao tác nghiên cứu.",effect:"Determines which Gemini model handles research, web search, and other auxiliary tasks. Flash models are faster but less capable than Pro models.",effectVi:"Xác định model Gemini nào xử lý nghiên cứu, tìm kiếm web và các tác vụ phụ trợ khác. Model Flash nhanh hơn nhưng kém khả năng hơn model Pro.",example:`{
167
+ "gemini": {
168
+ "model": "gemini-2.5-pro"
169
+ }
170
+ }`},skills:{path:"skills",type:"object",default:"{}",description:"Configuration for skills system including research behavior and custom skill settings.",descriptionVi:"Cấu hình hệ thống kỹ năng bao gồm hành vi nghiên cứu và cài đặt kỹ năng tùy chỉnh.",effect:"Controls how skills are executed, particularly research operations and their AI provider choices.",effectVi:"Điều khiển cách các kỹ năng được thực thi, đặc biệt là thao tác nghiên cứu và lựa chọn nhà cung cấp AI."},"skills.research":{path:"skills.research",type:"object",default:"{}",description:"Configuration specific to the research skill behavior and AI provider selection.",descriptionVi:"Cấu hình riêng cho hành vi kỹ năng nghiên cứu và lựa chọn nhà cung cấp AI.",effect:"Determines whether research operations use Gemini CLI or Claude's built-in WebSearch tool.",effectVi:"Xác định liệu thao tác nghiên cứu có dùng Gemini CLI hay công cụ WebSearch tích hợp của Claude."},"skills.research.useGemini":{path:"skills.research.useGemini",type:"boolean",default:"true",description:"When enabled, uses Gemini CLI for research operations instead of Claude's WebSearch tool.",descriptionVi:"Khi bật, dùng Gemini CLI cho thao tác nghiên cứu thay vì công cụ WebSearch của Claude.",effect:"Gemini CLI offers faster search results and lower token costs for research, but requires Gemini API setup. WebSearch is built-in but more expensive.",effectVi:"Gemini CLI cung cấp kết quả tìm kiếm nhanh hơn và chi phí token thấp hơn cho nghiên cứu, nhưng cần thiết lập Gemini API. WebSearch tích hợp sẵn nhưng đắt hơn.",example:`{
171
+ "skills": {
172
+ "research": {
173
+ "useGemini": false
174
+ }
175
+ }
176
+ }`},hooks:{path:"hooks",type:"object",default:"{}",description:"Configuration for lifecycle hooks that inject context, enforce rules, and enhance safety throughout the development workflow.",descriptionVi:"Cấu hình các hook vòng đời tiêm ngữ cảnh, thực thi quy tắc và tăng cường an toàn trong suốt quy trình phát triển.",effect:"Controls which hooks are active. Each hook fires at specific points in the workflow to inject context or enforce guardrails.",effectVi:"Điều khiển hook nào đang hoạt động. Mỗi hook kích hoạt tại các điểm cụ thể trong quy trình để tiêm ngữ cảnh hoặc thực thi bảo vệ."},"hooks.session-init":{path:"hooks.session-init",type:"boolean",default:"true",description:"Runs project detection and environment setup at the start of every Claude Code session.",descriptionVi:"Chạy phát hiện dự án và thiết lập môi trường khi bắt đầu mỗi phiên Claude Code.",effect:"When enabled, automatically detects project type, framework, package manager, and injects relevant context into the session.",effectVi:"Khi bật, tự động phát hiện loại dự án, framework, trình quản lý gói và tiêm ngữ cảnh liên quan vào phiên.",example:`{
177
+ "hooks": {
178
+ "session-init": false
179
+ }
180
+ }`},"hooks.subagent-init":{path:"hooks.subagent-init",type:"boolean",default:"true",description:"Injects context (paths, plans, reports) into spawned subagents to ensure consistency.",descriptionVi:"Tiêm ngữ cảnh (đường dẫn, kế hoạch, báo cáo) vào các subagent được tạo để đảm bảo nhất quán.",effect:"Ensures subagents inherit work context, know where to save reports, and follow the same plan structure as the parent agent.",effectVi:"Đảm bảo subagent kế thừa ngữ cảnh làm việc, biết nơi lưu báo cáo và tuân theo cùng cấu trúc kế hoạch với agent cha.",example:`{
181
+ "hooks": {
182
+ "subagent-init": false
183
+ }
184
+ }`},"hooks.dev-rules-reminder":{path:"hooks.dev-rules-reminder",type:"boolean",default:"true",description:"Injects development rules context before tool execution to maintain coding standards.",descriptionVi:"Tiêm ngữ cảnh quy tắc phát triển trước khi thực thi công cụ để duy trì chuẩn code.",effect:"Reminds the agent of coding standards, file naming conventions, and project-specific rules before file operations.",effectVi:"Nhắc nhở agent về chuẩn code, quy ước đặt tên tệp và quy tắc riêng của dự án trước thao tác tệp.",example:`{
185
+ "hooks": {
186
+ "dev-rules-reminder": false
187
+ }
188
+ }`},"hooks.usage-context-awareness":{path:"hooks.usage-context-awareness",type:"boolean",default:"true",description:"Monitors token usage and rate limits, injects awareness context to prevent overruns.",descriptionVi:"Giám sát sử dụng token và giới hạn tốc độ, tiêm ngữ cảnh nhận biết để ngăn vượt quá.",effect:"When approaching token limits or rate limits, warns the agent to be more concise or split operations.",effectVi:"Khi tiến gần giới hạn token hoặc giới hạn tốc độ, cảnh báo agent để ngắn gọn hơn hoặc chia nhỏ thao tác.",example:`{
189
+ "hooks": {
190
+ "usage-context-awareness": false
191
+ }
192
+ }`},"hooks.scout-block":{path:"hooks.scout-block",type:"boolean",default:"true",description:"Blocks heavy directories (node_modules, .git, dist) from exploration to save tokens.",descriptionVi:"Chặn các thư mục nặng (node_modules, .git, dist) khỏi khám phá để tiết kiệm token.",effect:"Prevents the agent from reading irrelevant or large directories that waste tokens and context window space.",effectVi:"Ngăn agent đọc các thư mục không liên quan hoặc lớn lãng phí token và không gian cửa sổ ngữ cảnh.",example:`{
193
+ "hooks": {
194
+ "scout-block": false
195
+ }
196
+ }`},"hooks.privacy-block":{path:"hooks.privacy-block",type:"boolean",default:"true",description:"Blocks reading sensitive files (.env, credentials, secrets) to protect user privacy.",descriptionVi:"Chặn đọc các tệp nhạy cảm (.env, thông tin xác thực, bí mật) để bảo vệ quyền riêng tư người dùng.",effect:"When enabled, prompts user for permission before accessing files that may contain API keys, passwords, or other secrets.",effectVi:"Khi bật, nhắc người dùng cho phép trước khi truy cập tệp có thể chứa API keys, mật khẩu hoặc bí mật khác.",example:`{
197
+ "hooks": {
198
+ "privacy-block": false
199
+ }
200
+ }`},"hooks.post-edit-simplify-reminder":{path:"hooks.post-edit-simplify-reminder",type:"boolean",default:"true",description:"Reminds the agent to simplify code after file edits to maintain readability and prevent bloat.",descriptionVi:"Nhắc nhở agent đơn giản hóa code sau khi chỉnh sửa tệp để duy trì khả năng đọc và ngăn phình to.",effect:"After editing files, suggests reviewing for unnecessary complexity, redundant code, or opportunities to refactor.",effectVi:"Sau khi chỉnh sửa tệp, đề xuất xem xét độ phức tạp không cần thiết, code dư thừa hoặc cơ hội refactor.",example:`{
201
+ "hooks": {
202
+ "post-edit-simplify-reminder": false
203
+ }
204
+ }`},statusline:{path:"statusline",type:"string",default:'"full"',validValues:["full","compact","minimal","none"],description:"Controls how much information is displayed in the Claude Code status line during operations.",descriptionVi:"Điều khiển lượng thông tin hiển thị trong dòng trạng thái Claude Code trong khi thao tác.",effect:"'full' shows all details (tokens, model, cost). 'compact' shows summary. 'minimal' shows only critical info. 'none' hides status line.",effectVi:"'full' hiển thị tất cả chi tiết (token, model, chi phí). 'compact' hiển thị tóm tắt. 'minimal' chỉ hiển thị thông tin quan trọng. 'none' ẩn dòng trạng thái.",example:`{
205
+ "statusline": "compact"
206
+ }`},assertions:{path:"assertions",type:"string[]",default:"[]",description:"List of user-defined assertions that are injected at the start of every session.",descriptionVi:"Danh sách các khẳng định do người dùng định nghĩa, được tiêm vào đầu mỗi phiên.",example:`{
207
+ "assertions": ["Use strict mode", "No console.logs"]
208
+ }`}},bC=(n,e)=>{const[t,r]=b.useState(null);return b.useEffect(()=>{const i=n.split(`
209
+ `),s=[];let o=null;for(let a=0;a<=Math.min(e,i.length-1);a++){const l=i[a].trim(),c=l.match(/"([^"]+)"\s*:\s*{/);if(c){s.push(c[1]),a===e&&(o=s.join("."));continue}if(l==="}"||l==="},"){s.pop();continue}const h=l.match(/"([^"]+)"\s*:/);if(h){const u=h[1];if(a===e){o=s.length>0?`${s.join(".")}.${u}`:u;break}}}r(o)},[n,e]),t};function s1(n){const{scope:e,fetchConfig:t,fetchSchema:r,saveConfig:i,onReset:s}=n,[o,a]=b.useState("{}"),[l,c]=b.useState(0),[h,u]=b.useState(null),[f,p]=b.useState(null),[m,g]=b.useState({}),[y,v]=b.useState({}),[S,C]=b.useState({}),[A,k]=b.useState(!0),[j,x]=b.useState("idle"),[T,P]=b.useState(!1),[R,L]=b.useState(null),I=bC(o,l),W=I?gC[I]:null;b.useEffect(()=>{(async()=>{try{const[q,re]=await Promise.all([t(),r()]),se=q.local??q.config;g(se),v(q.global??{}),C(q.sources),p(re),a(JSON.stringify(se,null,2))}catch(q){console.error("Failed to load config data:",q)}finally{k(!1)}})()},[t,r]),b.useEffect(()=>{try{JSON.parse(o),u(null)}catch(F){u(F instanceof Error?F.message:"Invalid JSON")}},[o]),b.useEffect(()=>{if(R==="json")try{const F=JSON.parse(o);g(F)}catch{}},[o,R]);const U=b.useCallback(F=>{L("json"),a(F)},[]),D=b.useCallback((F,q)=>{L("form"),g(re=>{const se=sv(re,F,q);return a(JSON.stringify(se,null,2)),se}),C(re=>({...re,[F]:e}))},[e]),$=b.useCallback(async()=>{if(!h){x("saving");try{const F=JSON.parse(o);await i(F),g(F),x("saved"),setTimeout(()=>x("idle"),2e3)}catch{x("error"),setTimeout(()=>x("idle"),3e3)}}},[o,h,i]),V=b.useCallback(async()=>{if(P(!1),s){k(!0);try{const F=await s(),q=F.local??F.config;g(q),C(F.sources),a(JSON.stringify(q,null,2))}catch(F){console.error("Failed to reset:",F)}finally{k(!1)}}else{const F={};g(F),a(JSON.stringify(F,null,2))}},[s]);return{jsonText:o,config:m,globalConfig:y,sources:S,schema:f,isLoading:A,saveStatus:j,syntaxError:h,cursorLine:l,showResetConfirm:T,activeFieldPath:I,fieldDoc:W,handleJsonChange:U,handleFormChange:D,handleSave:$,handleReset:V,setCursorLine:c,setShowResetConfirm:P}}function o1({storageKey:n,defaultSizes:e,minSizes:t}){const[r,i]=b.useState(()=>{if(typeof window>"u")return e;const c=localStorage.getItem(n);if(c)try{const h=JSON.parse(c);if(Array.isArray(h)&&h.length===e.length){const u=h.reduce((f,p)=>f+p,0);if(Math.abs(u-100)<1)return h}}catch{}return e}),[s,o]=b.useState(!1);b.useEffect(()=>{localStorage.setItem(n,JSON.stringify(r))},[r,n]);const a=b.useCallback((c,h)=>{h.preventDefault(),o(!0);const u=h.target.parentElement;if(!u)return;const p=u.getBoundingClientRect().width,m=h.clientX,g=[...r],y=S=>{const A=(S.clientX-m)/p*100,k=[...g],j=c,x=c+1;let T=g[j]+A,P=g[x]-A;T<t[j]&&(T=t[j],P=g[j]+g[x]-T),P<t[x]&&(P=t[x],T=g[j]+g[x]-P),k[j]=T,k[x]=P,i(k)},v=()=>{o(!1),document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",v),document.body.style.cursor="",document.body.style.userSelect=""};document.addEventListener("mousemove",y),document.addEventListener("mouseup",v),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},[r,t]),l=b.useCallback(()=>{i(e)},[e]);return{sizes:r,isDragging:s,startDrag:a,reset:l}}const Dh="/api";async function Rf(n){const e=`${Dh}/ck-config`,t=await fetch(e);if(!t.ok)throw new Error(`Failed to fetch ck-config: ${t.status}`);return t.json()}async function yC(n){const e=await fetch(`${Dh}/ck-config`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!e.ok){const t=await e.json().catch(()=>({error:"Unknown error"}));throw new Error(t.error||`Failed to save ck-config: ${e.status}`)}return e.json()}async function a1(){const n=await fetch(`${Dh}/ck-config/schema`);if(!n.ok)throw new Error(`Failed to fetch schema: ${n.status}`);return n.json()}const xC=()=>{const{t:n}=he(),e=an(),[t,r]=b.useState("config"),[i,s]=b.useState({}),{sizes:o,isDragging:a,startDrag:l}=o1({storageKey:"claudekit-global-config-panels",defaultSizes:[35,40,25],minSizes:[20,25,15]}),c=b.useCallback(async()=>{const[m,g]=await Promise.all([Rf(),qx()]);return s(g),m},[]),h=b.useCallback(async m=>{await yC({scope:"global",config:m})},[]),u=b.useCallback(async()=>await Rf(),[]),f=s1({scope:"global",fetchConfig:c,fetchSchema:a1,saveConfig:h,onReset:u}),p=b.useMemo(()=>[{id:"general",title:n("sectionGeneral"),fields:[{path:"codingLevel",label:n("fieldCodingLevel"),description:n("fieldCodingLevelDesc")},{path:"statusline",label:n("fieldStatusline"),description:n("fieldStatuslineDesc")},{path:"locale.thinkingLanguage",label:n("fieldThinkingLanguage"),description:n("fieldThinkingLanguageDesc")},{path:"locale.responseLanguage",label:n("fieldResponseLanguage"),description:n("fieldResponseLanguageDesc")}]},{id:"paths",title:n("sectionPaths"),fields:[{path:"paths.docs",label:n("fieldDocsPath"),description:n("fieldDocsPathDesc")},{path:"paths.plans",label:n("fieldPlansPath"),description:n("fieldPlansPathDesc")}]},{id:"privacy",title:n("sectionPrivacy"),defaultCollapsed:!0,fields:[{path:"privacyBlock",label:n("fieldPrivacyBlock"),description:n("fieldPrivacyBlockDesc")},{path:"trust.enabled",label:n("fieldTrustEnabled"),description:n("fieldTrustEnabledDesc")},{path:"trust.passphrase",label:n("fieldTrustPassphrase"),description:n("fieldTrustPassphraseDesc")}]},{id:"project",title:n("sectionProject"),defaultCollapsed:!0,fields:[{path:"project.type",label:n("fieldProjectType"),description:n("fieldProjectTypeDesc")},{path:"project.packageManager",label:n("fieldPackageManager"),description:n("fieldPackageManagerDesc")},{path:"project.framework",label:n("fieldFramework"),description:n("fieldFrameworkDesc")}]},{id:"integrations",title:n("sectionIntegrations"),defaultCollapsed:!0,fields:[{path:"gemini.model",label:n("fieldGeminiModel"),description:n("fieldGeminiModelDesc")},{path:"skills.research.useGemini",label:n("fieldResearchUseGemini"),description:n("fieldResearchUseGeminiDesc")}]},{id:"hooks",title:n("sectionHooks"),defaultCollapsed:!0,fields:[{path:"hooks.session-init",label:n("fieldHookSessionInit"),description:n("fieldHookSessionInitDesc")},{path:"hooks.subagent-init",label:n("fieldHookSubagentInit"),description:n("fieldHookSubagentInitDesc")},{path:"hooks.descriptive-name",label:n("fieldHookDescriptiveName"),description:n("fieldHookDescriptiveNameDesc")},{path:"hooks.dev-rules-reminder",label:n("fieldHookDevRulesReminder"),description:n("fieldHookDevRulesReminderDesc")},{path:"hooks.usage-context-awareness",label:n("fieldHookUsageContextAwareness"),description:n("fieldHookUsageContextAwarenessDesc")},{path:"hooks.context-tracking",label:n("fieldHookContextTracking"),description:n("fieldHookContextTrackingDesc")},{path:"hooks.scout-block",label:n("fieldHookScoutBlock"),description:n("fieldHookScoutBlockDesc")},{path:"hooks.privacy-block",label:n("fieldHookPrivacyBlock"),description:n("fieldHookPrivacyBlockDesc")},{path:"hooks.post-edit-simplify-reminder",label:n("fieldHookPostEditSimplify"),description:n("fieldHookPostEditSimplifyDesc")}]},{id:"advanced",title:n("sectionAdvanced"),defaultCollapsed:!0,fields:[{path:"docs.maxLoc",label:n("fieldDocsMaxLoc"),description:n("fieldDocsMaxLocDesc")},{path:"plan.namingFormat",label:n("fieldPlanNamingFormat"),description:n("fieldPlanNamingFormatDesc")},{path:"plan.dateFormat",label:n("fieldPlanDateFormat"),description:n("fieldPlanDateFormatDesc")},{path:"plan.validation.mode",label:n("fieldPlanValidationMode"),description:n("fieldPlanValidationModeDesc")},{path:"plan.validation.minQuestions",label:n("fieldPlanMinQuestions"),description:n("fieldPlanMinQuestionsDesc")},{path:"plan.validation.maxQuestions",label:n("fieldPlanMaxQuestions"),description:n("fieldPlanMaxQuestionsDesc")},{path:"assertions",label:n("fieldAssertions"),description:n("fieldAssertionsDesc")}]}],[n]);return d.jsxs("div",{className:"animate-in fade-in duration-300 w-full h-full flex flex-col transition-colors",children:[d.jsx(sm,{title:n("globalConfig"),filePath:"~/.claude/.ck.json",onBack:()=>e(-1),onSave:f.handleSave,onReset:f.handleReset,saveStatus:f.saveStatus,syntaxError:f.syntaxError,showResetConfirm:f.showResetConfirm,setShowResetConfirm:f.setShowResetConfirm}),d.jsxs("div",{className:"flex gap-2 mb-2 border-b border-dash-border shrink-0",children:[d.jsx("button",{onClick:()=>r("config"),className:`px-4 py-2 text-sm font-bold transition-colors relative ${t==="config"?"text-dash-accent border-b-2 border-dash-accent":"text-dash-text-muted hover:text-dash-text"}`,children:n("configTab")}),d.jsx("button",{onClick:()=>r("metadata"),className:`px-4 py-2 text-sm font-bold transition-colors relative ${t==="metadata"?"text-dash-accent border-b-2 border-dash-accent":"text-dash-text-muted hover:text-dash-text"}`,children:n("systemTab")})]}),d.jsxs("div",{className:"flex-1 flex min-h-0",children:[t==="config"&&d.jsxs(d.Fragment,{children:[d.jsx(om,{width:o[0],isLoading:f.isLoading,schema:f.schema,config:f.config,sources:f.sources,sections:p,onChange:f.handleFormChange}),d.jsx(mi,{direction:"horizontal",isDragging:a,onMouseDown:m=>l(0,m)}),d.jsx(t1,{width:o[1],isLoading:f.isLoading,jsonText:f.jsonText,cursorLine:f.cursorLine,syntaxError:f.syntaxError,onChange:f.handleJsonChange,onCursorLineChange:f.setCursorLine}),d.jsx(mi,{direction:"horizontal",isDragging:a,onMouseDown:m=>l(1,m)}),d.jsx(n1,{width:o[2],fieldDoc:f.fieldDoc,activeFieldPath:f.activeFieldPath})]}),t==="metadata"&&d.jsx("div",{className:"flex-1 bg-dash-surface border border-dash-border rounded-xl overflow-hidden flex flex-col shadow-sm",children:d.jsx("div",{className:"flex-1 overflow-auto p-6",children:f.isLoading?d.jsx("div",{className:"h-full flex items-center justify-center",children:d.jsx("div",{className:"animate-pulse text-dash-text-muted text-sm",children:n("loading")})}):d.jsx(mC,{metadata:i})})})]})]})},vC=({featureId:n,name:e,description:t,included:r})=>{const{t:i}=he();return d.jsxs("div",{"data-testid":`feature-card-${n}`,className:`p-4 rounded-lg border transition-all ${r?"border-[var(--dash-accent)] bg-[var(--dash-surface)] shadow-sm":"border-[var(--dash-border)] bg-[var(--dash-bg)] opacity-50"}`,children:[d.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[r?d.jsx("svg",{className:"w-5 h-5 text-[var(--dash-accent)]",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}):d.jsx("svg",{className:"w-5 h-5 text-[var(--dash-text-muted)]",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})}),d.jsx("h4",{className:"font-medium text-[var(--dash-text)]",children:i(e)})]}),d.jsx("p",{className:"text-sm text-[var(--dash-text-muted)] leading-relaxed",children:i(t)})]})},wC=({selectedKit:n,onKitSelect:e,onInstall:t,installing:r})=>{const{t:i}=he(),[s,o]=b.useState(1);return d.jsxs("div",{className:"space-y-6","data-testid":"install-wizard",children:[d.jsxs("div",{className:"flex items-center gap-4",children:[d.jsx(gl,{number:1,active:s===1,label:i("stepChooseKit")}),d.jsx("div",{className:"flex-1 h-px bg-[var(--dash-border)]"}),d.jsx(gl,{number:2,active:s===2,label:i("stepConfigure")}),d.jsx("div",{className:"flex-1 h-px bg-[var(--dash-border)]"}),d.jsx(gl,{number:3,active:s===3,label:i("stepInstall")})]}),d.jsxs("div",{className:"min-h-[200px]",children:[s===1&&d.jsx(kC,{onSelect:e,selected:n}),s===2&&n&&d.jsx(SC,{kit:n}),s===3&&d.jsx(CC,{installing:r})]}),d.jsxs("div",{className:"flex justify-between pt-4 border-t border-[var(--dash-border)]",children:[s>1?d.jsx("button",{onClick:()=>o(a=>a-1),className:"px-4 py-2 text-sm font-medium text-[var(--dash-text)] bg-[var(--dash-surface)] border border-[var(--dash-border)] rounded-lg hover:bg-[var(--dash-surface-hover)] transition-colors","data-testid":"wizard-back",children:i("back")}):d.jsx("div",{}),s<3&&n&&d.jsx("button",{onClick:()=>o(a=>a+1),className:"px-4 py-2 text-sm font-medium text-white bg-[var(--dash-accent)] rounded-lg hover:opacity-90 transition-opacity","data-testid":"wizard-next",children:i("next")}),s===3&&d.jsx("button",{onClick:t,disabled:r,className:"px-4 py-2 text-sm font-medium text-white bg-[var(--dash-accent)] rounded-lg hover:opacity-90 transition-opacity disabled:opacity-50 disabled:cursor-not-allowed","data-testid":"wizard-install",children:i("install")})]})]})},gl=({number:n,active:e,label:t})=>d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("div",{className:`w-8 h-8 rounded-full flex items-center justify-center text-sm font-bold transition-colors ${e?"bg-[var(--dash-accent)] text-white":"bg-[var(--dash-surface)] text-[var(--dash-text-muted)] border border-[var(--dash-border)]"}`,children:n}),d.jsx("span",{className:`text-sm font-medium ${e?"text-[var(--dash-text)]":"text-[var(--dash-text-muted)]"}`,children:t})]}),kC=({onSelect:n,selected:e})=>{const{t}=he();return d.jsxs("div",{className:"space-y-4",children:[d.jsx("p",{className:"text-[var(--dash-text-muted)]",children:e?`Selected: ${e===It.ENGINEER?t("kitEngineerName"):t("kitMarketingName")}`:"Please select a kit above"}),e&&d.jsxs("button",{type:"button",onClick:()=>n(e===It.ENGINEER?It.MARKETING:It.ENGINEER),className:"text-sm text-[var(--dash-accent)] hover:underline",children:["Switch to ",e===It.ENGINEER?t("kitMarketingName"):t("kitEngineerName")]})]})},SC=()=>d.jsx("div",{className:"text-[var(--dash-text-muted)]",children:"Configuration preview placeholder"}),CC=({installing:n})=>d.jsx("div",{className:"text-[var(--dash-text-muted)]",children:n?"Installing...":"Ready to install"}),OC=({kit:n,onGetStarted:e})=>{const{t}=he(),r=an(),i=n===It.ENGINEER?"kitEngineerName":n===It.MARKETING?"kitMarketingName":"kitEngineerName";return d.jsxs("div",{className:"text-center py-12 space-y-6","data-testid":"success-screen",children:[d.jsx("div",{className:"w-16 h-16 mx-auto bg-green-100 rounded-full flex items-center justify-center",children:d.jsx("svg",{className:"w-10 h-10 text-green-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})})}),d.jsx("h2",{className:"text-2xl font-bold text-[var(--dash-text)]",children:t("installSuccess")}),d.jsx("p",{className:"text-[var(--dash-text-muted)] max-w-md mx-auto",children:t("installSuccessDesc").replace("{kit}",t(i))}),d.jsxs("div",{className:"flex gap-4 justify-center pt-4",children:[d.jsx("button",{onClick:e,className:"px-6 py-2.5 text-sm font-medium text-white bg-[var(--dash-accent)] rounded-lg hover:opacity-90 transition-opacity","data-testid":"get-started-btn",children:t("getStarted")}),d.jsx("button",{onClick:()=>r("/"),className:"px-6 py-2.5 text-sm font-medium text-[var(--dash-text)] bg-[var(--dash-surface)] border border-[var(--dash-border)] rounded-lg hover:bg-[var(--dash-surface-hover)] transition-colors","data-testid":"dashboard-btn",children:t("goToDashboard")})]})]})},jC=[{id:"agents",name:"featureAgents",description:"featureAgentsDesc",engineer:!0,marketing:!0},{id:"hooks",name:"featureHooks",description:"featureHooksDesc",engineer:!0,marketing:!0},{id:"skills",name:"featureSkills",description:"featureSkillsDesc",engineer:!0,marketing:!0},{id:"multiagent",name:"featureMultiAgent",description:"featureMultiAgentDesc",engineer:!0,marketing:!1},{id:"content",name:"featureContent",description:"featureContentDesc",engineer:!1,marketing:!0},{id:"social",name:"featureSocial",description:"featureSocialDesc",engineer:!1,marketing:!0}],l1={engineer:{id:"engineer",name:"kitEngineerName",tagline:"kitEngineerTagline",primaryColor:"text-blue-500",features:["agents","hooks","skills","multiagent"]},marketing:{id:"marketing",name:"kitMarketingName",tagline:"kitMarketingTagline",primaryColor:"text-purple-500",features:["agents","hooks","skills","content","social"]}};function PC(n){const e=l1[n];return e?jC.filter(t=>e.features.includes(t.id)):(console.warn(`Unknown kit type: ${n}`),[])}const AC=({kit:n,selected:e,onSelect:t,features:r})=>{const{t:i}=he();return d.jsxs("button",{type:"button",onClick:t,className:`p-6 rounded-lg border-2 text-left transition-all w-full ${e?"border-[var(--dash-accent)] bg-[var(--dash-surface)] shadow-md":"border-[var(--dash-border)] hover:border-[var(--dash-accent)]/50"}`,children:[d.jsx("h3",{className:`text-xl font-bold ${n.primaryColor}`,children:i(n.name)}),d.jsx("p",{className:"text-[var(--dash-text-muted)] mt-1",children:i(n.tagline)}),d.jsx("div",{className:"mt-4 space-y-2",children:r.slice(0,3).map(s=>d.jsx(vC,{featureId:s.id,name:s.name,description:s.description,included:!0},s.id))})]})},MC=()=>{const{t:n}=he(),e=an(),[t,r]=b.useState(null),[i,s]=b.useState(!1),[o,a]=b.useState(!1),[l,c]=b.useState(null),h=async()=>{if(t){s(!0),c(null);try{const f=await fetch("/api/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({kit:t})});if(!f.ok)throw new Error(`Installation failed: ${f.statusText}`);a(!0)}catch(f){const p=f instanceof Error?f.message:"Unknown error occurred";c(p),console.error("Install failed:",f)}finally{s(!1)}}};if(o&&t)return d.jsx(OC,{kit:t,onGetStarted:()=>e("/")});const u=f=>f==="engineer"?It.ENGINEER:It.MARKETING;return d.jsxs("div",{className:"max-w-4xl mx-auto py-8 px-4",children:[d.jsxs("header",{className:"text-center mb-8",children:[d.jsx("h1",{className:"text-3xl font-bold text-[var(--dash-text)]",children:n("onboardingTitle")}),d.jsx("p",{className:"mt-2 text-[var(--dash-text-muted)]",children:n("onboardingSubtitle")})]}),d.jsx("section",{className:"grid md:grid-cols-2 gap-6 mb-8",children:Object.values(l1).map(f=>{const p=u(f.id);return d.jsx(AC,{kit:f,selected:t===p,onSelect:()=>r(p),features:PC(f.id)},f.id)})}),l&&d.jsxs("div",{className:"mb-6 p-4 rounded-lg bg-red-100 border border-red-300 text-red-800",children:[d.jsx("p",{className:"font-medium",children:"Installation Error"}),d.jsx("p",{className:"text-sm mt-1",children:l}),d.jsx("button",{type:"button",onClick:()=>c(null),className:"mt-2 text-sm underline hover:no-underline",children:"Dismiss"})]}),t&&d.jsx(wC,{selectedKit:t,onKitSelect:r,onInstall:h,installing:i})]})},DC=()=>{const{t:n}=he(),e=an(),{projectId:t}=qp(),[r,i]=b.useState(null),{sizes:s,isDragging:o,startDrag:a}=o1({storageKey:"claudekit-project-config-panels",defaultSizes:[35,40,25],minSizes:[20,25,15]}),l=b.useCallback(async()=>{if(!t)throw new Error("No project ID");const[g,y]=await Promise.all([Yx(t),rm()]),v=y.find(S=>S.id===t);return v&&i(v.path),{config:g.local||{},local:g.local||{},global:g.global||{},sources:Object.keys(g.local||{}).reduce((S,C)=>(S[C]="project",S),{})}},[t]),c=b.useCallback(async g=>{t&&await Qx(t,g)},[t]),h=s1({scope:"project",fetchConfig:l,fetchSchema:a1,saveConfig:c}),u=b.useCallback(g=>{const y=Vl(h.config,g),v=Vl(h.globalConfig,g);return y!==void 0&&v!==void 0&&y!==v},[h.config,h.globalConfig]),f=b.useMemo(()=>[{id:"paths",title:n("sectionPaths"),fields:[{path:"paths.docs",label:n("fieldDocsPath"),description:n("fieldDocsPathDesc")},{path:"paths.plans",label:n("fieldPlansPath"),description:n("fieldPlansPathDesc")}]},{id:"project",title:n("sectionProject"),fields:[{path:"project.type",label:n("fieldProjectType"),description:n("fieldProjectTypeDesc")},{path:"project.packageManager",label:n("fieldPackageManager"),description:n("fieldPackageManagerDesc")},{path:"project.framework",label:n("fieldFramework"),description:n("fieldFrameworkDesc")}]},{id:"privacy",title:n("sectionPrivacy"),defaultCollapsed:!0,fields:[{path:"privacyBlock",label:n("fieldPrivacyBlock"),description:n("fieldPrivacyBlockDesc")}]},{id:"advanced",title:n("sectionAdvanced"),defaultCollapsed:!0,fields:[{path:"docs.maxLoc",label:n("fieldDocsMaxLoc"),description:n("fieldDocsMaxLocDesc")},{path:"plan.namingFormat",label:n("fieldPlanNamingFormat"),description:n("fieldPlanNamingFormatDesc")}]}],[n]),p=h.activeFieldPath&&u(h.activeFieldPath)?d.jsx("span",{className:"text-[9px] bg-orange-500/10 text-orange-500 px-1.5 py-0.5 rounded font-bold border border-orange-500/30",children:n("localOverride")}):null,m=h.fieldDoc?d.jsxs("section",{className:"bg-blue-500/5 p-3 rounded-lg border border-blue-500/20",children:[d.jsx("h4",{className:"text-[10px] font-bold text-blue-500 uppercase tracking-widest mb-1",children:n("inheritedFromGlobal")}),d.jsxs("p",{className:"text-[12px] text-dash-text-secondary leading-normal",children:[n("viewGlobalConfig")," ",d.jsx("button",{onClick:()=>e("/config/global"),className:"text-dash-accent hover:underline font-medium",children:n("globalConfig")})]})]}):null;return d.jsxs("div",{className:"animate-in fade-in duration-300 w-full h-full flex flex-col transition-colors",children:[d.jsx(sm,{title:n("projectConfig"),filePath:r?`${r}/.claude/.ck.json`:".claude/.ck.json",onBack:()=>e(`/project/${t}`),onSave:h.handleSave,onReset:h.handleReset,saveStatus:h.saveStatus,syntaxError:h.syntaxError,showResetConfirm:h.showResetConfirm,setShowResetConfirm:h.setShowResetConfirm}),d.jsxs("div",{className:"flex-1 flex min-h-0",children:[d.jsx(om,{width:s[0],isLoading:h.isLoading,schema:h.schema,config:h.config,sources:h.sources,sections:f,onChange:h.handleFormChange}),d.jsx(mi,{direction:"horizontal",isDragging:o,onMouseDown:g=>a(0,g)}),d.jsx(t1,{width:s[1],isLoading:h.isLoading,jsonText:h.jsonText,cursorLine:h.cursorLine,syntaxError:h.syntaxError,onChange:h.handleJsonChange,onCursorLineChange:h.setCursorLine}),d.jsx(mi,{direction:"horizontal",isDragging:o,onMouseDown:g=>a(1,g)}),d.jsx(n1,{width:s[2],fieldDoc:h.fieldDoc,activeFieldPath:h.activeFieldPath,overrideBadge:p,extraContent:m})]})]})},EC=({project:n})=>{const{t:e}=he(),t=an(),{skills:r,loading:i}=ev(),{sessions:s,loading:o}=tv(n.id),a=async c=>{try{await Wx(c,n.path)}catch(h){alert(`${e("actionFailed")}: ${h instanceof Error?h.message:c}`)}},l=r.filter(c=>n.skills.includes(c.id));return d.jsxs("div",{className:"animate-in fade-in slide-in-from-bottom-2 duration-500 transition-colors flex flex-col h-full",children:[d.jsx("section",{className:"mb-6 shrink-0",children:d.jsxs("div",{className:"flex flex-col md:flex-row md:items-end justify-between gap-4",children:[d.jsxs("div",{children:[d.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[d.jsx("h1",{className:"text-3xl font-bold tracking-tight text-dash-text",children:n.name}),d.jsx(TC,{status:n.health}),d.jsx(iC,{variant:"beta"})]}),d.jsxs("p",{className:"text-dash-text-secondary mono text-sm flex items-center gap-2 italic",children:[d.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:d.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})}),n.path]})]}),d.jsx("div",{className:"flex items-center gap-3",children:d.jsx("span",{className:"text-[10px] text-dash-text-muted font-bold uppercase tracking-widest bg-dash-surface border border-dash-border px-2 py-1 rounded",children:s.length>0?`${s.length} ${e("sessions")}`:e("noSessions")})})]})}),d.jsxs("section",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 mb-6 shrink-0",children:[d.jsx(bo,{icon:"📟",label:e("terminal"),sub:e("terminalSub"),onClick:()=>a("terminal")}),d.jsx(bo,{icon:"💻",label:e("editor"),sub:e("editorSub"),onClick:()=>a("editor")}),d.jsx(bo,{icon:"🤖",label:e("launch"),sub:e("launchSub"),highlight:!0,onClick:()=>a("launch")}),d.jsx(bo,{icon:"⚙️",label:e("config"),sub:e("configSub"),onClick:()=>t(`/config/project/${n.id}`)})]}),d.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6 flex-1 min-h-0",children:[d.jsx("div",{className:"lg:col-span-2 flex flex-col gap-6 min-h-0",children:d.jsxs("div",{className:"bg-dash-surface border border-dash-border rounded-xl overflow-hidden shadow-sm flex-1 flex flex-col min-h-0",children:[d.jsx("div",{className:"px-4 py-3 border-b border-dash-border flex items-center justify-between bg-dash-surface-hover/50 shrink-0",children:d.jsx("h3",{className:"text-sm font-bold text-dash-text-secondary uppercase tracking-widest",children:e("recentSessions")})}),d.jsx("div",{className:"divide-y divide-dash-border overflow-y-auto flex-1",children:o?d.jsx("div",{className:"p-4 text-center text-dash-text-muted animate-pulse",children:e("loadingSessions")}):s.length===0?d.jsx("div",{className:"p-4 text-center text-dash-text-muted",children:e("noSessionsFound")}):s.map(c=>d.jsxs("div",{className:"p-4 hover:bg-dash-surface-hover transition-colors group cursor-pointer",children:[d.jsxs("div",{className:"flex items-center justify-between mb-1",children:[d.jsx("span",{className:"text-xs font-bold text-dash-accent",children:c.timestamp}),d.jsx("span",{className:"text-[10px] text-dash-text-muted font-medium group-hover:text-dash-text-secondary transition-colors",children:c.duration})]}),d.jsx("p",{className:"text-sm text-dash-text-secondary leading-relaxed truncate",children:c.summary})]},c.id))})]})}),d.jsxs("div",{className:"flex flex-col gap-6 min-h-0",children:[d.jsxs("div",{className:"bg-dash-surface border border-dash-border rounded-xl p-6 shadow-sm shrink-0",children:[d.jsxs("h3",{className:"text-sm font-bold text-dash-text-secondary uppercase tracking-widest mb-4 flex items-center gap-2",children:[e("configuration"),d.jsx("span",{className:"text-[10px] font-normal text-dash-text-muted normal-case",children:e("globalSettings")})]}),d.jsxs("div",{className:"space-y-4",children:[d.jsx(yo,{label:e("activeKit"),value:n.kitType}),d.jsx(yo,{label:e("aiModel"),value:n.model}),d.jsx(yo,{label:e("hooks"),value:`${n.activeHooks} ${e("active")}`}),d.jsx(yo,{label:e("mcpServers"),value:`${n.mcpServers} ${e("connected")}`})]}),d.jsx("button",{onClick:()=>t(`/config/project/${n.id}`),className:"w-full mt-6 py-2 rounded-lg bg-dash-bg text-xs font-bold text-dash-text-secondary hover:bg-dash-surface-hover transition-colors border border-dash-border",children:e("editProjectConfig")})]}),d.jsxs("div",{className:"bg-dash-surface border border-dash-border rounded-xl shadow-sm flex flex-col flex-1 min-h-0",children:[d.jsx("div",{className:"p-4 pb-2 border-b border-dash-border shrink-0",children:d.jsxs("h3",{className:"text-sm font-bold text-dash-text-secondary uppercase tracking-widest flex items-center justify-between",children:[e("globalSkills"),d.jsx("span",{className:"text-[10px] bg-dash-accent-subtle text-dash-accent px-1.5 py-0.5 rounded-full",children:i?"...":r.length})]})}),d.jsx("div",{className:"overflow-y-auto flex-1 px-4 py-2 space-y-2",children:i?d.jsx("div",{className:"text-center text-dash-text-muted animate-pulse py-4",children:e("loadingSkills")}):(l.length>0?l:r).map(c=>d.jsxs("div",{className:"flex flex-col gap-0.5 border-l-2 border-dash-accent/20 pl-3 py-1",children:[d.jsx("span",{className:"text-sm font-semibold text-dash-text",children:c.name}),d.jsx("p",{className:"text-[10px] text-dash-text-muted leading-tight line-clamp-1",children:c.description||e("noDescription")})]},c.id))}),d.jsx("div",{className:"p-4 pt-2 border-t border-dash-border shrink-0",children:d.jsxs("a",{href:"https://kits.vibery.app/",target:"_blank",rel:"noopener noreferrer",className:"text-xs font-bold text-dash-text-muted hover:text-dash-accent transition-colors text-center block",children:[e("browseSkillsMarketplace")," →"]})})]})]})]})]})},TC=({status:n})=>{const e={[pn.HEALTHY]:"bg-dash-accent-subtle text-dash-accent border-dash-accent/20",[pn.WARNING]:"bg-orange-500/10 text-orange-600 border-orange-500/20",[pn.ERROR]:"bg-red-500/10 text-red-600 border-red-500/20",[pn.LOADING]:"bg-dash-border/20 text-dash-text-muted border-dash-border",[pn.UNKNOWN]:"bg-dash-border/20 text-dash-text-muted border-dash-border"};return d.jsx("span",{className:`px-2 py-0.5 rounded-full text-[10px] font-bold border uppercase tracking-widest ${e[n]}`,children:n})},bo=({icon:n,label:e,sub:t,highlight:r,onClick:i})=>d.jsxs("button",{onClick:i,className:`p-4 rounded-xl border flex flex-col gap-1 transition-all group ${r?"bg-dash-accent-subtle border-dash-accent/30 hover:bg-dash-accent-glow hover:border-dash-accent/50 shadow-sm shadow-dash-accent/5":"bg-dash-surface border-dash-border hover:bg-dash-surface-hover hover:border-dash-text-muted shadow-sm"}`,children:[d.jsx("span",{className:"text-2xl mb-1 group-hover:scale-110 transition-transform",children:n}),d.jsx("span",{className:"text-sm font-bold text-dash-text",children:e}),d.jsx("span",{className:"text-[10px] text-dash-text-muted font-medium truncate italic",children:t})]}),yo=({label:n,value:e})=>d.jsxs("div",{className:"flex items-center justify-between text-xs py-1.5 border-b border-dash-border/50 last:border-0",children:[d.jsx("span",{className:"text-dash-text-muted font-medium",children:n}),d.jsx("span",{className:"text-dash-text font-bold mono uppercase text-[10px] tracking-tight",children:e})]}),NC=()=>{const{t:n}=he(),{project:e}=Ay();return e?d.jsx(EC,{project:e}):d.jsxs("div",{className:"flex flex-col items-center justify-center h-full space-y-4 opacity-50",children:[d.jsx("div",{className:"w-16 h-16 rounded-full bg-dash-surface border border-dash-border flex items-center justify-center",children:d.jsx("span",{className:"text-2xl text-dash-text-muted",children:"📂"})}),d.jsx("p",{className:"text-lg text-dash-text-secondary font-bold",children:n("selectProject")})]})},LC={engineer:"#F7A072",marketing:"#4A9BD9"},Eh=({kit:n})=>{const e=LC[n]||"#6B6560",t=n.charAt(0).toUpperCase()+n.slice(1);return d.jsx("span",{className:"text-[10px] font-semibold px-1.5 py-0.5 rounded-lg shrink-0",style:{background:`${e}26`,color:e},children:t})},Th=({label:n})=>d.jsx("span",{className:"text-[10px] font-semibold px-1.5 py-0.5 rounded-lg shrink-0",style:{background:"#9B59B626",color:"#9B59B6"},children:n}),RC=({skill:n,installations:e,agents:t,onClick:r})=>{const{t:i}=he(),s=e.filter(u=>u.skillName===n.id),o=s.length>0,a=t.filter(u=>u.detected),l=new Map(s.map(u=>[u.agent,u])),c=a.slice(0,3),h=zt[n.category]||zt.General;return d.jsxs("div",{onClick:r,className:"bg-dash-surface border border-transparent rounded-lg p-4 cursor-pointer transition-all hover:border-dash-border hover:shadow-lg hover:-translate-y-0.5 flex flex-col gap-2.5",children:[d.jsxs("div",{className:"flex items-start justify-between gap-2",children:[d.jsxs("div",{className:"min-w-0 flex-1",children:[d.jsx("div",{className:"text-sm font-semibold text-dash-text truncate",children:n.name}),(n.kit||n.isCustomized)&&d.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[n.kit&&d.jsx(Eh,{kit:n.kit}),n.isCustomized&&d.jsx(Th,{label:i("customizedBadge")})]})]}),d.jsx("span",{className:"text-[10px] font-semibold px-2 py-0.5 rounded-xl shrink-0",style:{background:`${h}26`,color:h},children:n.category})]}),d.jsx("p",{className:"text-xs text-dash-text-muted leading-relaxed line-clamp-2 min-h-[2.5rem]",children:n.description||i("noDescription")}),d.jsxs("div",{className:"flex items-center justify-between mt-auto pt-2",children:[d.jsx("div",{className:"flex gap-0.5",children:c.map(u=>{const f=l.get(u.name),p=u.displayName.charAt(0).toUpperCase();return d.jsx("div",{title:`${u.displayName}${f?" (installed)":""}`,className:`w-[18px] h-[18px] rounded-full flex items-center justify-center text-[8px] font-bold border ${f?"bg-dash-accent/10 text-dash-accent border-dash-accent/30":"bg-dash-surface-hover text-dash-text-muted border-dash-border"}`,children:p},u.name)})}),d.jsx("button",{type:"button",onClick:u=>{u.stopPropagation(),r()},className:`px-3 py-1 text-[11px] font-semibold rounded-md transition-colors ${o?"bg-transparent text-dash-text-secondary border border-dash-border hover:bg-dash-surface-hover":"bg-dash-accent text-white hover:bg-dash-accent/90"}`,children:i(o?"manage":"install")})]})]})};var IC=function(e){return typeof window<"u"?matchMedia&&matchMedia("(prefers-color-scheme: ".concat(e,")")):{matches:!1}},bl,BC=b.createContext({appearance:"light",setAppearance:function(){},isDarkMode:!1,themeMode:"light",setThemeMode:function(){},browserPrefers:(bl=IC("dark"))!==null&&bl!==void 0&&bl.matches?"dark":"light"}),$C=function(){return b.useContext(BC)};const c1=(n,e)=>{if(e)return"row";switch(n){case"horizontal":return"row";case"horizontal-reverse":return"row-reverse";case"vertical":default:return"column";case"vertical-reverse":return"column-reverse"}},FC=n=>{if(n)return["space-between","space-around","space-evenly"].includes(n)},zC=(n,e)=>c1(n,e)==="row",rr=n=>typeof n=="number"?`${n}px`:n,VC=({visible:n,flex:e,gap:t,direction:r,horizontal:i,align:s,justify:o,distribution:a,height:l,width:c,padding:h,paddingInline:u,paddingBlock:f,prefixCls:p,as:m="div",className:g,style:y,children:v,wrap:S,ref:C,...A})=>{const k=o||a,x=zC(r,i)&&!c&&FC(k)?"100%":rr(c),T={...e!==void 0?{"--lobe-flex":String(e)}:{},...r||i?{"--lobe-flex-direction":c1(r,i)}:{},...S!==void 0?{"--lobe-flex-wrap":S}:{},...k!==void 0?{"--lobe-flex-justify":k}:{},...s!==void 0?{"--lobe-flex-align":s}:{},...x!==void 0?{"--lobe-flex-width":x}:{},...l!==void 0?{"--lobe-flex-height":rr(l)}:{},...h!==void 0?{"--lobe-flex-padding":rr(h)}:{},...u!==void 0?{"--lobe-flex-padding-inline":rr(u)}:{},...f!==void 0?{"--lobe-flex-padding-block":rr(f)}:{},...t!==void 0?{"--lobe-flex-gap":rr(t)}:{},...y},P="lobe-flex",R=[P,n===!1?`${P}--hidden`:void 0,p?`${p}-flex`:void 0,g].filter(Boolean).join(" ");return d.jsx(m,{ref:C,...A,className:R,style:T,children:v})};var h1=b.memo(VC);const HC=({children:n,ref:e,...t})=>d.jsx(h1,{...t,align:"center",justify:"center",ref:e,children:n});var _C=HC;const WC=/\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;function UC(n){return Array.from(n.match(WC)??[])}function KC(n){return UC(n).map(t=>t.toLowerCase()).join("-")}b.createContext(null);var GC=function(e,t){if(t){if(e&&t==="#000")return"0 0 0 1px rgba(255,255,255,0.1) inset";if(!e&&t==="#fff")return"0 0 0 1px rgba(0,0,0,0.05) inset"}};function Ii(n){"@babel/helpers - typeof";return Ii=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ii(n)}var qC=["shape","color","background","size","style","iconMultiple","Icon","iconStyle","iconClassName"];function If(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function xo(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?If(Object(t),!0).forEach(function(r){YC(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):If(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function YC(n,e,t){return e=QC(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function QC(n){var e=JC(n,"string");return Ii(e)=="symbol"?e:String(e)}function JC(n,e){if(Ii(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Ii(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function XC(n,e){if(n==null)return{};var t=ZC(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function ZC(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var Mn=b.memo(function(n){var e=n.shape,t=e===void 0?"circle":e,r=n.color,i=r===void 0?"#fff":r,s=n.background,o=n.size,a=n.style,l=n.iconMultiple,c=l===void 0?.75:l,h=n.Icon,u=n.iconStyle,f=n.iconClassName,p=XC(n,qC),m=$C(),g=m.isDarkMode;return d.jsx(_C,xo(xo({flex:"none",style:xo({background:s,borderRadius:t==="circle"?"50%":Math.floor(o*.1),boxShadow:GC(g,s),color:i,height:o,width:o},a)},p),{},{children:h&&d.jsx(h,{className:f,color:i,size:o,style:xo({transform:"scale(".concat(c,")")},u)})}))});function Bi(n){"@babel/helpers - typeof";return Bi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Bi(n)}var e6=["Icon","style","Text","color","size","spaceMultiple","textMultiple","extra","extraStyle","showText","showLogo","extraClassName","iconProps","inverse"];function Bf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function cn(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Bf(Object(t),!0).forEach(function(r){t6(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Bf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function t6(n,e,t){return e=n6(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function n6(n){var e=r6(n,"string");return Bi(e)=="symbol"?e:String(e)}function r6(n,e){if(Bi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Bi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function i6(n,e){if(n==null)return{};var t=s6(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function s6(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var Dn=b.memo(function(n){var e=n.Icon,t=n.style,r=n.Text,i=n.color,s=n.size,o=s===void 0?24:s,a=n.spaceMultiple,l=a===void 0?1:a,c=n.textMultiple,h=c===void 0?1:c,u=n.extra,f=n.extraStyle,p=n.showText,m=p===void 0?!0:p,g=n.showLogo,y=g===void 0?!0:g,v=n.extraClassName,S=n.iconProps,C=n.inverse,A=i6(n,e6),k=e&&y&&d.jsx(e,cn(cn({size:o},S),{},{style:cn(C?{marginLeft:o*l}:{marginRight:o*l},S?.style)})),j=m&&r&&d.jsx(r,{size:o*h});return d.jsxs(h1,cn(cn({align:"center",flex:"none",horizontal:!0,justify:"flex-start",style:cn({color:i},t)},A),{},{children:[C?d.jsxs(d.Fragment,{children:[j,k]}):d.jsxs(d.Fragment,{children:[k,j]}),u&&d.jsx("span",{className:v,style:cn({fontSize:o*h*.95,lineHeight:1},f),children:u})]}))}),o6=function(e,t){return b.useMemo(function(){var r=Array.from({length:t},function(i,s){var o="lobe-icons-".concat(KC(e),"-fill-").concat(s);return{fill:"url(#".concat(o,")"),id:o}});return r},[e,t])},Nr="Claude",a6=.8,l6=.1,u1="#D97757",c6=u1,h6="#fff",u6=.75;function $i(n){"@babel/helpers - typeof";return $i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$i(n)}var d6=["size","style"];function $f(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function yl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?$f(Object(t),!0).forEach(function(r){f6(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):$f(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function f6(n,e,t){return e=p6(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function p6(n){var e=m6(n,"string");return $i(e)=="symbol"?e:String(e)}function m6(n,e){if($i(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if($i(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function g6(n,e){if(n==null)return{};var t=b6(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function b6(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var Nh=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=g6(n,d6);return d.jsxs("svg",yl(yl({fill:"currentColor",fillRule:"evenodd",height:t,style:yl({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Nr}),d.jsx("path",{d:"M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z"})]}))});function Fi(n){"@babel/helpers - typeof";return Fi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fi(n)}function Ff(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function y6(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Ff(Object(t),!0).forEach(function(r){x6(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Ff(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function x6(n,e,t){return e=v6(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function v6(n){var e=w6(n,"string");return Fi(e)=="symbol"?e:String(e)}function w6(n,e){if(Fi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Fi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function k6(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var S6=b.memo(function(n){var e=Object.assign({},(k6(n),n));return d.jsx(Mn,y6({Icon:Nh,"aria-label":Nr,background:c6,color:h6,iconMultiple:u6},e))});function zi(n){"@babel/helpers - typeof";return zi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},zi(n)}var C6=["size","style"];function zf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function xl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?zf(Object(t),!0).forEach(function(r){O6(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):zf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function O6(n,e,t){return e=j6(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function j6(n){var e=P6(n,"string");return zi(e)=="symbol"?e:String(e)}function P6(n,e){if(zi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(zi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function A6(n,e){if(n==null)return{};var t=M6(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function M6(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var d1=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=A6(n,C6);return d.jsxs("svg",xl(xl({height:t,style:xl({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Nr}),d.jsx("path",{d:"M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z",fill:"#D97757",fillRule:"nonzero"})]}))});function Vi(n){"@babel/helpers - typeof";return Vi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Vi(n)}var D6=["size","style"];function Vf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function vl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Vf(Object(t),!0).forEach(function(r){E6(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Vf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function E6(n,e,t){return e=T6(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function T6(n){var e=N6(n,"string");return Vi(e)=="symbol"?e:String(e)}function N6(n,e){if(Vi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Vi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function L6(n,e){if(n==null)return{};var t=R6(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function R6(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var f1=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=L6(n,D6);return d.jsxs("svg",vl(vl({fill:"currentColor",fillRule:"nonzero",height:t,style:vl({flex:"none",lineHeight:1},r),viewBox:"0 0 97 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Nr}),d.jsx("path",{d:"M13.623 20.222c-3.417 0-5.753-1.901-6.855-4.827a12.992 12.992 0 01-.838-4.772c0-4.907 2.206-8.315 7.08-8.315 3.275 0 5.297 1.425 6.448 4.826h1.402l-.19-4.69C18.709 1.18 16.258.543 13.276.543c-4.2 0-7.775 1.874-9.763 5.254a11.357 11.357 0 00-1.511 5.872c0 3.753 1.777 7.08 5.113 8.926a11.95 11.95 0 005.943 1.398c3.254 0 5.835-.617 8.122-1.697l.593-5.172h-1.43c-.858 2.362-1.88 3.78-3.574 4.534-.831.373-1.88.564-3.146.564zm14.74-17.914L28.499 0h-.967L23.23 1.29v.699l1.907.882v16.142c0 1.1-.565 1.344-2.043 1.528v1.18h7.319v-1.18c-1.484-.184-2.042-.428-2.042-1.528V2.315l-.007-.007zm29.104 19.685h.565l4.95-.937v-1.208l-.695-.054c-1.157-.109-1.457-.346-1.457-1.29V9.897l.137-2.763h-.783l-4.678.672v1.181l.457.082c1.266.183 1.64.536 1.64 1.419v7.67c-1.212.937-2.369 1.527-3.744 1.527-1.525 0-2.471-.774-2.471-2.58V9.905l.136-2.763h-.804l-4.684.672v1.181l.484.082c1.266.183 1.64.536 1.64 1.418v7.08c0 3 1.703 4.426 4.412 4.426 2.07 0 3.765-1.1 5.038-2.627L57.474 22l-.007-.007zm-13.602-9.55c0-3.836-2.043-5.309-5.733-5.309-3.254 0-5.616 1.344-5.616 3.57 0 .666.238 1.175.721 1.528l2.478-.326c-.109-.746-.163-1.201-.163-1.391 0-1.263.674-1.901 2.042-1.901 2.022 0 3.044 1.419 3.044 3.7v.746l-5.106 1.527c-1.702.462-2.67.863-3.316 1.8a3.386 3.386 0 00-.476 1.9c0 2.172 1.497 3.706 4.057 3.706 1.852 0 3.493-.835 4.922-2.416.51 1.581 1.294 2.416 2.69 2.416 1.13 0 2.15-.455 3.063-1.344l-.272-.937a4.363 4.363 0 01-1.178.163c-.783 0-1.157-.617-1.157-1.826v-5.607zm-6.536 7.378c-1.396 0-2.26-.808-2.26-2.226 0-.964.456-1.528 1.43-1.854l4.139-1.31v3.965c-1.321.997-2.097 1.425-3.31 1.425zm43.095 1.235v-1.208l-.701-.054c-1.158-.109-1.45-.346-1.45-1.29V2.308L78.409 0h-.974l-4.302 1.29v.699l1.906.882V8.18a6.024 6.024 0 00-3.656-1.046c-4.276 0-7.612 3.245-7.612 8.098 0 3.998 2.397 6.761 6.346 6.761 2.042 0 3.819-.99 4.922-2.525l-.136 2.525h.571l4.95-.937zm-8.96-12.313c2.043 0 3.575 1.181 3.575 3.353v6.11a4.91 4.91 0 01-3.547 1.425c-2.928 0-4.412-2.308-4.412-5.39 0-3.462 1.695-5.498 4.385-5.498zm19.424 3.055c-.381-1.792-1.484-2.81-3.016-2.81-2.288 0-3.874 1.717-3.874 4.18 0 3.646 1.934 6.008 5.059 6.008a5.858 5.858 0 005.03-2.953l.913.245c-.408 3.163-3.281 5.525-6.808 5.525-4.14 0-6.992-3.054-6.992-7.399 0-4.378 3.098-7.46 7.237-7.46 3.09 0 5.27 1.853 5.97 5.07l-10.783 3.3V14.05l7.264-2.247v-.006z"})]}))});function Hi(n){"@babel/helpers - typeof";return Hi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Hi(n)}var I6=["type"];function Hf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function B6(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Hf(Object(t),!0).forEach(function(r){$6(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Hf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function $6(n,e,t){return e=F6(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function F6(n){var e=z6(n,"string");return Hi(e)=="symbol"?e:String(e)}function z6(n,e){if(Hi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Hi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function V6(n,e){if(n==null)return{};var t=H6(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function H6(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var _6=b.memo(function(n){var e=n.type,t=e===void 0?"mono":e,r=V6(n,I6),i=t==="color"?d1:Nh;return d.jsx(Dn,B6({Icon:i,Text:f1,"aria-label":Nr,spaceMultiple:l6,textMultiple:a6},r))}),Zn=Nh;Zn.Color=d1;Zn.Text=f1;Zn.Combine=_6;Zn.Avatar=S6;Zn.colorPrimary=u1;Zn.title=Nr;var Ms="OpenAI",W6=.75,U6=.1,p1="#000",m1="#19C37D",g1="#AB68FF",b1="#F86AA4",Lh="#F9C322",y1="#0099FF",x1="#0000FE",K6=p1,G6="#fff",q6=.75;function _i(n){"@babel/helpers - typeof";return _i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_i(n)}var Y6=["size","style"];function _f(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function wl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?_f(Object(t),!0).forEach(function(r){Q6(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):_f(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function Q6(n,e,t){return e=J6(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function J6(n){var e=X6(n,"string");return _i(e)=="symbol"?e:String(e)}function X6(n,e){if(_i(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(_i(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Z6(n,e){if(n==null)return{};var t=eO(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function eO(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var Rh=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=Z6(n,Y6);return d.jsxs("svg",wl(wl({fill:"currentColor",fillRule:"evenodd",height:t,style:wl({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Ms}),d.jsx("path",{d:"M21.55 10.004a5.416 5.416 0 00-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59 5.59 0 0010.831 1C8.39.995 6.224 2.546 5.473 4.838A5.553 5.553 0 001.76 7.496a5.487 5.487 0 00.691 6.5 5.416 5.416 0 00.477 4.502c1.217 2.09 3.662 3.165 6.05 2.66A5.586 5.586 0 0013.168 23c2.443.006 4.61-1.546 5.361-3.84a5.553 5.553 0 003.715-2.66 5.488 5.488 0 00-.693-6.497v.001zm-8.381 11.558a4.199 4.199 0 01-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71 0 00.364-.623v-6.176l1.877 1.069c.02.01.033.029.036.05v5.115c-.003 2.274-1.87 4.118-4.174 4.123zM4.192 17.78a4.059 4.059 0 01-.498-2.763c.032.02.09.055.131.078l4.44 2.53c.225.13.504.13.73 0l5.42-3.088v2.138a.068.068 0 01-.027.057L9.9 19.288c-1.999 1.136-4.552.46-5.707-1.51h-.001zM3.023 8.216A4.15 4.15 0 015.198 6.41l-.002.151v5.06a.711.711 0 00.364.624l5.42 3.087-1.876 1.07a.067.067 0 01-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417 3.54l-5.42-3.088L14.896 7.6a.067.067 0 01.063-.006l4.489 2.557c1.998 1.14 2.683 3.662 1.529 5.633a4.163 4.163 0 01-2.174 1.807V12.38a.71.71 0 00-.363-.623zm1.867-2.773a6.04 6.04 0 00-.132-.078l-4.44-2.53a.731.731 0 00-.729 0l-5.42 3.088V7.325a.068.068 0 01.027-.057L14.1 4.713c2-1.137 4.555-.46 5.707 1.513.487.833.664 1.809.499 2.757h.001zm-11.741 3.81l-1.877-1.068a.065.065 0 01-.036-.051V6.559c.001-2.277 1.873-4.122 4.181-4.12.976 0 1.92.338 2.671.954-.034.018-.092.05-.131.073l-4.44 2.53a.71.71 0 00-.365.623l-.003 6.173v.002zm1.02-2.168L12 9.25l2.414 1.375v2.75L12 14.75l-2.415-1.375v-2.75z"})]}))}),Qn="Gemini",tO=.8,nO=.2,v1="#fff",rO=v1,iO="#fff",sO=.8;function Wi(n){"@babel/helpers - typeof";return Wi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Wi(n)}var oO=["size","style"];function Wf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function kl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Wf(Object(t),!0).forEach(function(r){aO(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Wf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function aO(n,e,t){return e=lO(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function lO(n){var e=cO(n,"string");return Wi(e)=="symbol"?e:String(e)}function cO(n,e){if(Wi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Wi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function hO(n,e){return pO(n)||fO(n,e)||dO(n,e)||uO()}function uO(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
210
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function dO(n,e){if(n){if(typeof n=="string")return Uf(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);if(t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set")return Array.from(n);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Uf(n,e)}}function Uf(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function fO(n,e){var t=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(t!=null){var r,i,s,o,a=[],l=!0,c=!1;try{if(s=(t=t.call(n)).next,e!==0)for(;!(l=(r=s.call(t)).done)&&(a.push(r.value),a.length!==e);l=!0);}catch(h){c=!0,i=h}finally{try{if(!l&&t.return!=null&&(o=t.return(),Object(o)!==o))return}finally{if(c)throw i}}return a}}function pO(n){if(Array.isArray(n))return n}function mO(n,e){if(n==null)return{};var t=gO(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function gO(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var Ih=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=mO(n,oO),s=o6(Qn,3),o=hO(s,3),a=o[0],l=o[1],c=o[2];return d.jsxs("svg",kl(kl({height:t,style:kl({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Qn}),d.jsx("path",{d:"M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z",fill:"#3186FF"}),d.jsx("path",{d:"M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z",fill:a.fill}),d.jsx("path",{d:"M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z",fill:l.fill}),d.jsx("path",{d:"M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z",fill:c.fill}),d.jsxs("defs",{children:[d.jsxs("linearGradient",{gradientUnits:"userSpaceOnUse",id:a.id,x1:"7",x2:"11",y1:"15.5",y2:"12",children:[d.jsx("stop",{stopColor:"#08B962"}),d.jsx("stop",{offset:"1",stopColor:"#08B962",stopOpacity:"0"})]}),d.jsxs("linearGradient",{gradientUnits:"userSpaceOnUse",id:l.id,x1:"8",x2:"11.5",y1:"5.5",y2:"11",children:[d.jsx("stop",{stopColor:"#F94543"}),d.jsx("stop",{offset:"1",stopColor:"#F94543",stopOpacity:"0"})]}),d.jsxs("linearGradient",{gradientUnits:"userSpaceOnUse",id:c.id,x1:"3.5",x2:"17.5",y1:"13.5",y2:"12",children:[d.jsx("stop",{stopColor:"#FABC12"}),d.jsx("stop",{offset:".46",stopColor:"#FABC12",stopOpacity:"0"})]})]})]}))});function Ui(n){"@babel/helpers - typeof";return Ui=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ui(n)}function Kf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function bO(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Kf(Object(t),!0).forEach(function(r){yO(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Kf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function yO(n,e,t){return e=xO(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function xO(n){var e=vO(n,"string");return Ui(e)=="symbol"?e:String(e)}function vO(n,e){if(Ui(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Ui(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function wO(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var kO=b.memo(function(n){var e=Object.assign({},(wO(n),n));return d.jsx(Mn,bO({Icon:Ih,"aria-label":Qn,background:rO,color:iO,iconMultiple:sO},e))});function Ki(n){"@babel/helpers - typeof";return Ki=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ki(n)}var SO=["size","style"];function Gf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Sl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Gf(Object(t),!0).forEach(function(r){CO(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Gf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function CO(n,e,t){return e=OO(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function OO(n){var e=jO(n,"string");return Ki(e)=="symbol"?e:String(e)}function jO(n,e){if(Ki(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Ki(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function PO(n,e){if(n==null)return{};var t=AO(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function AO(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var w1=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=PO(n,SO);return d.jsxs("svg",Sl(Sl({fill:"currentColor",fillRule:"evenodd",height:t,style:Sl({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Qn}),d.jsx("path",{d:"M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z"})]}))});function Gi(n){"@babel/helpers - typeof";return Gi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Gi(n)}var MO=["size","style"];function qf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Cl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?qf(Object(t),!0).forEach(function(r){DO(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):qf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function DO(n,e,t){return e=EO(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function EO(n){var e=TO(n,"string");return Gi(e)=="symbol"?e:String(e)}function TO(n,e){if(Gi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Gi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function NO(n,e){if(n==null)return{};var t=LO(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function LO(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var k1=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=NO(n,MO);return d.jsxs("svg",Cl(Cl({fill:"currentColor",fillRule:"evenodd",height:t,style:Cl({flex:"none",lineHeight:1},r),viewBox:"0 0 98 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Qn}),d.jsx("path",{d:"M21.186 12.67c0 2.649-.786 4.759-2.359 6.33-1.766 1.87-4.09 2.806-6.969 2.806-2.756 0-5.088-.953-6.996-2.86C2.954 17.04 2 14.693 2 11.904c0-2.789.954-5.137 2.862-7.043C6.77 2.953 9.102 2 11.858 2c1.396 0 2.712.247 3.949.741 1.236.495 2.252 1.192 3.047 2.092l-1.749 1.748c-.583-.706-1.338-1.258-2.266-1.655a7.49 7.49 0 00-2.981-.596c-2.067 0-3.816.715-5.247 2.145-1.413 1.448-2.12 3.257-2.12 5.428s.707 3.98 2.12 5.428c1.431 1.43 3.18 2.145 5.247 2.145 1.89 0 3.463-.53 4.717-1.588 1.254-1.06 1.979-2.516 2.173-4.37h-6.89v-2.277h9.196c.088.495.132.971.132 1.43m7.652-4.633c1.946 0 3.494.629 4.645 1.886 1.15 1.257 1.726 3.018 1.726 5.282l-.027.268H24.877c.036 1.284.464 2.318 1.285 3.102.82.785 1.802 1.177 2.944 1.177 1.57 0 2.802-.784 3.694-2.354l2.195 1.07a6.54 6.54 0 01-2.45 2.595C31.503 21.688 30.32 22 29 22c-1.927 0-3.516-.66-4.765-1.98-1.249-1.319-1.873-2.986-1.873-5.001 0-1.997.606-3.66 1.82-4.988 1.213-1.329 2.766-1.993 4.657-1.993m-.053 2.247c-.928 0-1.727.285-2.396.856-.67.57-1.11 1.337-1.325 2.3h7.522c-.071-.91-.442-1.663-1.111-2.26-.67-.598-1.566-.896-2.69-.896M39.247 21.53h-2.455V8.465h2.348v1.813h.107c.374-.64.947-1.173 1.721-1.6.774-.427 1.544-.64 2.309-.64.96 0 1.806.222 2.535.667a3.931 3.931 0 011.601 1.84c1.085-1.671 2.589-2.507 4.51-2.507 1.513 0 2.678.462 3.496 1.387.819.924 1.228 2.24 1.228 3.946v8.16h-2.455v-7.786c0-1.227-.223-2.112-.668-2.654-.444-.542-1.192-.813-2.241-.813-.943 0-1.735.4-2.375 1.2-.64.8-.961 1.742-.961 2.826v7.227h-2.455v-7.786c0-1.227-.223-2.112-.668-2.654-.444-.542-1.191-.813-2.241-.813-.943 0-1.735.4-2.375 1.2-.64.8-.961 1.742-.961 2.826v7.227zM61.911 3.93c0 .48-.17.89-.508 1.228a1.675 1.675 0 01-1.23.508c-.48 0-.89-.17-1.229-.508a1.673 1.673 0 01-.508-1.228c0-.481.17-.89.508-1.229a1.675 1.675 0 011.23-.508c.48 0 .89.17 1.23.508.338.338.507.748.507 1.228m-.11 4.514v13.088h-2.857V8.443h2.857zM80 3.93c0 .48-.17.89-.508 1.228a1.675 1.675 0 01-1.23.508c-.48 0-.89-.17-1.229-.508a1.673 1.673 0 01-.508-1.228c0-.481.17-.89.508-1.229a1.675 1.675 0 011.23-.508c.48 0 .89.17 1.23.508.338.338.507.748.507 1.228m-.11 4.514v13.088h-2.857V8.443h2.857zm-16.343.022h2.349v1.813h.107c.373-.64.947-1.173 1.721-1.6a4.935 4.935 0 012.415-.64c1.601 0 2.833.458 3.696 1.373.863.916 1.294 2.218 1.294 3.907v8.213h-2.455v-8.053c-.053-2.133-1.13-3.2-3.229-3.2-.978 0-1.797.395-2.455 1.187-.658.79-.987 1.737-.987 2.84v7.226h-2.456V8.465z"})]}))});function qi(n){"@babel/helpers - typeof";return qi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qi(n)}var RO=["type"];function Yf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function IO(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Yf(Object(t),!0).forEach(function(r){BO(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Yf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function BO(n,e,t){return e=$O(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function $O(n){var e=FO(n,"string");return qi(e)=="symbol"?e:String(e)}function FO(n,e){if(qi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(qi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function zO(n,e){if(n==null)return{};var t=VO(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function VO(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var HO=b.memo(function(n){var e=n.type,t=e===void 0?"mono":e,r=zO(n,RO),i=t==="color"?Ih:w1;return d.jsx(Dn,IO({Icon:i,Text:k1,"aria-label":Qn,spaceMultiple:nO,textMultiple:tO},r))}),er=w1;er.Color=Ih;er.Text=k1;er.Combine=HO;er.Avatar=kO;er.colorPrimary=v1;er.title=Qn;function Yi(n){"@babel/helpers - typeof";return Yi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Yi(n)}var _O=["type"];function Qf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function WO(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Qf(Object(t),!0).forEach(function(r){UO(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Qf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function UO(n,e,t){return e=KO(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function KO(n){var e=GO(n,"string");return Yi(e)=="symbol"?e:String(e)}function GO(n,e){if(Yi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Yi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function qO(n,e){if(n==null)return{};var t=YO(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function YO(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var QO=b.memo(function(n){var e=n.type,t=e===void 0?"normal":e,r=qO(n,_O),i=b.useMemo(function(){switch(t){case"gpt3":return m1;case"gpt4":return g1;case"gpt5":return b1;case"o3":case"o1":return Lh;case"oss":return y1;case"platform":return x1;default:return K6}},[t]);return d.jsx(Mn,WO({Icon:Rh,"aria-label":Ms,background:i,color:G6,iconMultiple:q6},r))});function Qi(n){"@babel/helpers - typeof";return Qi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Qi(n)}var JO=["size","style"];function Jf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Ol(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Jf(Object(t),!0).forEach(function(r){XO(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Jf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function XO(n,e,t){return e=ZO(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function ZO(n){var e=e7(n,"string");return Qi(e)=="symbol"?e:String(e)}function e7(n,e){if(Qi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Qi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function t7(n,e){if(n==null)return{};var t=n7(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function n7(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var S1=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=t7(n,JO);return d.jsxs("svg",Ol(Ol({fill:"currentColor",fillRule:"evenodd",height:t,style:Ol({flex:"none",lineHeight:1},r),viewBox:"0 0 84 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Ms}),d.jsx("path",{d:"M2 10.955c0 5.276 3.376 8.955 8.054 8.955 4.678 0 8.054-3.679 8.054-8.955S14.732 2 10.054 2C5.423 2 2.068 5.606 2 10.797L2 10.955zm13.021 0c0 3.775-2.05 6.22-4.967 6.22-2.918 0-4.968-2.445-4.968-6.22 0-3.776 2.05-6.22 4.968-6.22 2.917 0 4.967 2.444 4.967 6.22zm11.778 8.955c3.545 0 5.57-3.001 5.57-6.607 0-3.607-2.025-6.608-5.57-6.608-1.64 0-2.845.654-3.64 1.598V6.937h-2.894V24h2.893v-5.688c.796.944 2.002 1.598 3.641 1.598zm-3.713-6.97c0-2.397 1.35-3.703 3.135-3.703 2.097 0 3.23 1.645 3.23 4.066 0 2.42-1.133 4.066-3.23 4.066-1.785 0-3.135-1.332-3.135-3.68v-.75zM40.2 19.91c2.532 0 4.533-1.331 5.425-3.558l-2.483-.944c-.386 1.307-1.52 2.033-2.942 2.033-1.857 0-3.159-1.331-3.376-3.51h8.874v-.967c0-3.485-1.953-6.269-5.619-6.269-3.665 0-6.028 2.88-6.028 6.608 0 3.92 2.532 6.607 6.15 6.607zm-.145-10.77c1.833 0 2.701 1.21 2.725 2.614H36.97c.434-1.719 1.591-2.614 3.086-2.614zm7.814 10.504h2.894v-7.455c0-1.815 1.326-2.783 2.628-2.783 1.591 0 2.218 1.137 2.218 2.71v7.528h2.894V11.27c0-2.735-1.592-4.575-4.244-4.575-1.64 0-2.773.75-3.496 1.598V6.937h-2.894v12.707zM66.978 2.266l-6.56 17.378h3.063l1.471-3.97h7.475l1.495 3.97h3.11L70.475 2.266h-3.496zm1.687 3.437l2.75 7.26h-5.45l2.7-7.26zM82 2.317h-3.086v17.377H82V2.317z"})]}))});function Ji(n){"@babel/helpers - typeof";return Ji=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ji(n)}var r7=["extraStyle"];function Xf(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Zf(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Xf(Object(t),!0).forEach(function(r){i7(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Xf(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function i7(n,e,t){return e=s7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function s7(n){var e=o7(n,"string");return Ji(e)=="symbol"?e:String(e)}function o7(n,e){if(Ji(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Ji(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function a7(n,e){if(n==null)return{};var t=l7(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function l7(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var c7=b.memo(function(n){var e=n.extraStyle,t=a7(n,r7);return d.jsx(Dn,Zf({Icon:Rh,Text:S1,"aria-label":Ms,extraStyle:Zf({fontWeight:600},e),spaceMultiple:U6,textMultiple:W6},t))}),ut=Rh;ut.Text=S1;ut.Combine=c7;ut.Avatar=QO;ut.colorPrimary=p1;ut.colorGpt3=m1;ut.colorGpt4=g1;ut.colorGpt5=b1;ut.colorO1=Lh;ut.colorO3=Lh;ut.colorOss=y1;ut.colorPlatform=x1;ut.title=Ms;var Ds="GithubCopilot",h7=.75,u7=.3,C1="#000",d7=C1,f7="#fff",p7=.75;function Xi(n){"@babel/helpers - typeof";return Xi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Xi(n)}var m7=["size","style"];function ep(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function jl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ep(Object(t),!0).forEach(function(r){g7(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):ep(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function g7(n,e,t){return e=b7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function b7(n){var e=y7(n,"string");return Xi(e)=="symbol"?e:String(e)}function y7(n,e){if(Xi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Xi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function x7(n,e){if(n==null)return{};var t=v7(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function v7(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var Bh=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=x7(n,m7);return d.jsxs("svg",jl(jl({fill:"currentColor",fillRule:"evenodd",height:t,style:jl({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Ds}),d.jsx("path",{d:"M19.245 5.364c1.322 1.36 1.877 3.216 2.11 5.817.622 0 1.2.135 1.592.654l.73.964c.21.278.323.61.323.955v2.62c0 .339-.173.669-.453.868C20.239 19.602 16.157 21.5 12 21.5c-4.6 0-9.205-2.583-11.547-4.258-.28-.2-.452-.53-.453-.868v-2.62c0-.345.113-.679.321-.956l.73-.963c.392-.517.974-.654 1.593-.654l.029-.297c.25-2.446.81-4.213 2.082-5.52 2.461-2.54 5.71-2.851 7.146-2.864h.198c1.436.013 4.685.323 7.146 2.864zm-7.244 4.328c-.284 0-.613.016-.962.05-.123.447-.305.85-.57 1.108-1.05 1.023-2.316 1.18-2.994 1.18-.638 0-1.306-.13-1.851-.464-.516.165-1.012.403-1.044.996a65.882 65.882 0 00-.063 2.884l-.002.48c-.002.563-.005 1.126-.013 1.69.002.326.204.63.51.765 2.482 1.102 4.83 1.657 6.99 1.657 2.156 0 4.504-.555 6.985-1.657a.854.854 0 00.51-.766c.03-1.682.006-3.372-.076-5.053-.031-.596-.528-.83-1.046-.996-.546.333-1.212.464-1.85.464-.677 0-1.942-.157-2.993-1.18-.266-.258-.447-.661-.57-1.108-.32-.032-.64-.049-.96-.05zm-2.525 4.013c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zm5 0c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zM7.635 5.087c-1.05.102-1.935.438-2.385.906-.975 1.037-.765 3.668-.21 4.224.405.394 1.17.657 1.995.657h.09c.649-.013 1.785-.176 2.73-1.11.435-.41.705-1.433.675-2.47-.03-.834-.27-1.52-.63-1.813-.39-.336-1.275-.482-2.265-.394zm6.465.394c-.36.292-.6.98-.63 1.813-.03 1.037.24 2.06.675 2.47.968.957 2.136 1.104 2.776 1.11h.044c.825 0 1.59-.263 1.995-.657.555-.556.765-3.187-.21-4.224-.45-.468-1.335-.804-2.385-.906-.99-.088-1.875.058-2.265.394zM12 7.615c-.24 0-.525.015-.84.044.03.16.045.336.06.526l-.001.159a2.94 2.94 0 01-.014.25c.225-.022.425-.027.612-.028h.366c.187 0 .387.006.612.028-.015-.146-.015-.277-.015-.409.015-.19.03-.365.06-.526a9.29 9.29 0 00-.84-.044z"})]}))});function Zi(n){"@babel/helpers - typeof";return Zi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Zi(n)}function tp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function w7(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?tp(Object(t),!0).forEach(function(r){k7(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):tp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function k7(n,e,t){return e=S7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function S7(n){var e=C7(n,"string");return Zi(e)=="symbol"?e:String(e)}function C7(n,e){if(Zi(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Zi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function O7(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var j7=b.memo(function(n){var e=Object.assign({},(O7(n),n));return d.jsx(Mn,w7({Icon:Bh,"aria-label":Ds,background:d7,color:f7,iconMultiple:p7},e))});function es(n){"@babel/helpers - typeof";return es=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},es(n)}var P7=["size","style"];function np(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Pl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?np(Object(t),!0).forEach(function(r){A7(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):np(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function A7(n,e,t){return e=M7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function M7(n){var e=D7(n,"string");return es(e)=="symbol"?e:String(e)}function D7(n,e){if(es(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(es(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function E7(n,e){if(n==null)return{};var t=T7(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function T7(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var O1=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=E7(n,P7);return d.jsxs("svg",Pl(Pl({fill:"currentColor",fillRule:"evenodd",height:t,style:Pl({flex:"none",lineHeight:1},r),viewBox:"0 0 154 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Ds}),d.jsx("path",{d:"M2 11.875c0 5.256 3.013 8.506 8.19 8.506 4.76 0 8.027-2.72 8.027-7.722v-1.545h-7.982v2.928h4.095c-.161 1.96-1.68 3.25-4.049 3.25-2.6 0-4.347-1.498-4.347-4.334V10.7c0-2.582 1.518-4.31 4.186-4.31 1.91 0 3.267.922 3.68 2.374h3.865c-.437-3.366-3.427-5.625-7.499-5.625C5.29 3.138 2 6.366 2 11.875zm17.308-5.44h3.496V3h-3.496v3.435zm0 13.715h3.496V7.795h-3.496V20.15zm10.544-9.52h2.438V7.795h-2.438V3.922h-3.496v3.873H24.17v2.835h2.186v6.8c0 1.637.69 2.72 2.76 2.72h3.174v-2.766h-2.438V10.63zm3.994 9.52h3.727v-7.076h7.568v7.076h3.726V3.346h-3.726v6.777h-7.568V3.346h-3.727V20.15zM62.385 7.795h-3.497v6.523c0 1.868-1.012 3.205-2.668 3.205-1.38 0-2.162-.83-2.162-2.56V7.796h-3.52v7.722c0 2.95 1.357 4.864 4.118 4.864 1.955 0 3.29-.945 4.002-2.49h.207l.46 2.26h3.06V7.794zm1.698 12.355h3.06l.436-2.213h.207c.713 1.591 2.3 2.444 4.072 2.444 3.174 0 5.015-2.374 5.015-6.385 0-4.057-1.887-6.432-5.084-6.432-1.978 0-3.428 1.014-4.003 2.49h-.207V3h-3.496v17.15zm3.496-5.624v-1.06c0-1.845 1.173-3.043 2.99-3.043 1.657 0 2.738.853 2.738 2.581v1.983c0 1.521-.874 2.559-2.714 2.559-1.864 0-3.014-1.222-3.014-3.02zm21.8 5.855c4.21 0 7.177-2.351 7.683-6.063h-3.151c-.46 2.098-2.186 3.389-4.486 3.389-2.852 0-4.67-1.867-4.67-4.518v-2.743c0-2.882 1.887-4.634 4.716-4.634 2.53 0 4.072 1.36 4.44 3.366h3.151c-.368-3.665-3.243-6.063-7.499-6.063-5.038 0-7.982 3.274-7.982 8.668 0 5.348 2.898 8.598 7.798 8.598zm8.533-6.34c0 3.92 2.346 6.34 5.98 6.34 3.796 0 6.004-2.536 6.004-6.34 0-4.056-2.484-6.338-6.003-6.338-3.635 0-5.981 2.397-5.981 6.339zm2.898.992V13.12c0-1.89 1.22-3.066 3.083-3.066 1.817 0 3.082 1.152 3.082 3.066v1.913c0 1.96-1.288 2.997-3.082 2.997-1.749 0-3.083-1.015-3.083-2.997zM111.018 24h2.853v-6.132h.184c.667 1.453 2.116 2.398 4.186 2.398 3.083 0 4.992-2.26 4.992-6.293 0-3.942-1.863-6.27-4.992-6.27-1.863 0-3.427.852-4.186 2.397h-.184l-.345-2.167h-2.508V24zm6.211-6.063c-2.024 0-3.358-1.314-3.358-3.342v-1.222c0-2.005 1.31-3.342 3.381-3.342 2.002 0 3.037 1.152 3.037 2.881v2.144c0 1.815-1.16 2.849-2.973 2.88l-.087.001zm7.1-11.733h2.83V3.115h-2.83v3.09zm0 13.946h2.83V7.933h-2.83V20.15zm4.338 0h2.83V3.115h-2.83V20.15zm9.927-12.447c3.52 0 6.004 2.282 6.004 6.339 0 3.803-2.208 6.339-6.004 6.339-3.634 0-5.98-2.42-5.98-6.34 0-3.941 2.346-6.338 5.98-6.338zm10.922-3.689v3.919H152v2.328h-2.484v7.607H152v2.282h-2.99c-1.749 0-2.324-.922-2.324-2.282v-7.607h-2.185V7.933h2.185V4.014h2.83zm-10.922 6.04c-1.863 0-3.082 1.175-3.082 3.066v1.913c0 1.982 1.334 2.997 3.082 2.997 1.795 0 3.083-1.038 3.083-2.997V13.12c0-1.914-1.265-3.066-3.083-3.066z"})]}))});function ts(n){"@babel/helpers - typeof";return ts=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ts(n)}function rp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function N7(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?rp(Object(t),!0).forEach(function(r){L7(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):rp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function L7(n,e,t){return e=R7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function R7(n){var e=I7(n,"string");return ts(e)=="symbol"?e:String(e)}function I7(n,e){if(ts(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(ts(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function B7(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var $7=b.memo(function(n){var e=Object.assign({},(B7(n),n));return d.jsx(Dn,N7({Icon:Bh,Text:O1,"aria-label":Ds,spaceMultiple:u7,textMultiple:h7},e))}),Lr=Bh;Lr.Text=O1;Lr.Combine=$7;Lr.Avatar=j7;Lr.colorPrimary=C1;Lr.title=Ds;var Es="Cline",F7=.7,z7=.2,j1="#323B43",V7=j1,H7="#fff",_7=.6;function ns(n){"@babel/helpers - typeof";return ns=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ns(n)}var W7=["size","style"];function ip(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Al(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ip(Object(t),!0).forEach(function(r){U7(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):ip(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function U7(n,e,t){return e=K7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function K7(n){var e=G7(n,"string");return ns(e)=="symbol"?e:String(e)}function G7(n,e){if(ns(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(ns(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function q7(n,e){if(n==null)return{};var t=Y7(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function Y7(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var $h=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=q7(n,W7);return d.jsxs("svg",Al(Al({fill:"currentColor",fillRule:"evenodd",height:t,style:Al({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Es}),d.jsx("path",{d:"M17.035 3.991c2.75 0 4.98 2.24 4.98 5.003v1.667l1.45 2.896a1.01 1.01 0 01-.002.909l-1.448 2.864v1.668c0 2.762-2.23 5.002-4.98 5.002H7.074c-2.751 0-4.98-2.24-4.98-5.002V17.33l-1.48-2.855a1.01 1.01 0 01-.003-.927l1.482-2.887V8.994c0-2.763 2.23-5.003 4.98-5.003h9.962zM8.265 9.6a2.274 2.274 0 00-2.274 2.274v4.042a2.274 2.274 0 004.547 0v-4.042A2.274 2.274 0 008.265 9.6zm7.326 0a2.274 2.274 0 00-2.274 2.274v4.042a2.274 2.274 0 104.548 0v-4.042A2.274 2.274 0 0015.59 9.6z"}),d.jsx("path",{d:"M12.054 5.558a2.779 2.779 0 100-5.558 2.779 2.779 0 000 5.558z"})]}))});function rs(n){"@babel/helpers - typeof";return rs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rs(n)}function sp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Q7(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?sp(Object(t),!0).forEach(function(r){J7(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):sp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function J7(n,e,t){return e=X7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function X7(n){var e=Z7(n,"string");return rs(e)=="symbol"?e:String(e)}function Z7(n,e){if(rs(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(rs(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function ej(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var tj=b.memo(function(n){var e=Object.assign({},(ej(n),n));return d.jsx(Mn,Q7({Icon:$h,"aria-label":Es,background:V7,color:H7,iconMultiple:_7},e))});function is(n){"@babel/helpers - typeof";return is=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},is(n)}var nj=["size","style"];function op(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Ml(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?op(Object(t),!0).forEach(function(r){rj(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):op(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function rj(n,e,t){return e=ij(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function ij(n){var e=sj(n,"string");return is(e)=="symbol"?e:String(e)}function sj(n,e){if(is(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(is(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function oj(n,e){if(n==null)return{};var t=aj(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function aj(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var P1=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=oj(n,nj);return d.jsxs("svg",Ml(Ml({fill:"currentColor",fillRule:"evenodd",height:t,style:Ml({flex:"none",lineHeight:1},r),viewBox:"0 0 88 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Es}),d.jsx("path",{d:"M79.558 21.986c-1.13 0-2.167-.189-3.108-.565a7.128 7.128 0 01-2.403-1.569 6.933 6.933 0 01-1.554-2.331 7.876 7.876 0 01-.537-2.925v-.58c0-1.196.189-2.279.566-3.25.376-.97.894-1.798 1.554-2.486a6.84 6.84 0 012.289-1.582 7.005 7.005 0 012.797-.566c1.103 0 2.078.189 2.925.566.848.367 1.56.88 2.134 1.54.575.668 1.008 1.464 1.3 2.388.292.923.438 1.93.438 3.023v1.456H75.362v.07c.103.67.263 1.23.48 1.682.217.452.513.857.89 1.215.377.377.82.669 1.328.876.518.207 1.084.31 1.696.31.838 0 1.62-.16 2.346-.48a4.71 4.71 0 001.794-1.398l1.808 1.752c-.508.734-1.29 1.394-2.345 1.978-1.046.584-2.313.876-3.8.876zm-.41-13.113c-.48 0-.927.09-1.342.269-.405.17-.768.414-1.088.735-.32.33-.589.725-.805 1.187a6.25 6.25 0 00-.48 1.568h7.191v-.226c0-.443-.08-.88-.24-1.314a3.545 3.545 0 00-.678-1.159 3.004 3.004 0 00-1.074-.763c-.424-.198-.919-.297-1.484-.297zM55.043 21.703V6.415h3.052l.212 2.176c.207-.292.433-.56.678-.805.255-.255.523-.48.806-.679a5.555 5.555 0 013.179-.975 6.5 6.5 0 012.148.34 4.11 4.11 0 011.667 1.073c.461.49.82 1.117 1.074 1.88.254.753.381 1.667.381 2.74v9.538h-3.377v-9.48c0-.632-.07-1.16-.212-1.583-.141-.424-.348-.763-.621-1.018a2.3 2.3 0 00-.99-.537 4.736 4.736 0 00-1.328-.17c-.414 0-.8.057-1.158.17a3.421 3.421 0 00-1.611 1.004 4.282 4.282 0 00-.523.706v10.908h-3.377zM38.44 6.415h8.111v12.49h4.493v2.798H38.441v-2.797h4.705v-9.68H38.44V6.416zm4.395-3.956c0-.274.047-.523.141-.75a1.69 1.69 0 01.41-.607c.17-.16.372-.282.607-.367.245-.094.519-.141.82-.141.509 0 .918.131 1.23.395.32.254.503.584.55.99.066.414-.004.776-.212 1.087-.207.302-.508.504-.904.608a1.48 1.48 0 01-.706.353c-.273.057-.575.033-.905-.07a1.396 1.396 0 01-.777-.552 1.758 1.758 0 01-.254-.946zM20.934 0h8.238v18.906h4.634v2.797H20.934v-2.797h4.832V2.812h-4.832V0zM16.71 15.373c-.095.999-.33 1.908-.707 2.727a6.672 6.672 0 01-1.484 2.077 6.542 6.542 0 01-2.218 1.357c-.848.31-1.79.466-2.826.466-.848 0-1.63-.113-2.346-.339a6.467 6.467 0 01-1.893-.99 6.55 6.55 0 01-1.413-1.426 9.438 9.438 0 01-1.003-1.851c-.274-.66-.48-1.375-.622-2.148A14.34 14.34 0 012 12.83v-2.812c0-.8.066-1.573.198-2.317.132-.744.33-1.446.593-2.106A8.284 8.284 0 013.88 3.603a7.296 7.296 0 011.555-1.54 6.953 6.953 0 011.836-.904A7.256 7.256 0 019.49.834c1.083 0 2.049.16 2.896.48.858.32 1.588.773 2.19 1.357a6.337 6.337 0 011.442 2.147c.358.839.588 1.771.692 2.798h-3.391a6.568 6.568 0 00-.353-1.653c-.17-.5-.405-.923-.707-1.272a2.977 2.977 0 00-1.144-.791c-.453-.188-.994-.283-1.625-.283-.443 0-.843.062-1.201.184-.349.122-.66.297-.933.523a3.385 3.385 0 00-.947 1.074 7.033 7.033 0 00-.607 1.455c-.123.471-.217.975-.283 1.512a15.25 15.25 0 00-.084 1.625v2.84c0 .688.037 1.333.113 1.936.084.602.212 1.154.381 1.653.132.414.297.791.495 1.13.207.34.452.631.734.876.292.264.627.466 1.004.608.386.132.824.198 1.314.198.584 0 1.102-.085 1.554-.255.452-.17.838-.419 1.159-.749.31-.32.56-.72.748-1.2.189-.481.311-1.032.368-1.654h3.405z"})]}))});function ss(n){"@babel/helpers - typeof";return ss=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ss(n)}function ap(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function lj(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ap(Object(t),!0).forEach(function(r){cj(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):ap(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function cj(n,e,t){return e=hj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function hj(n){var e=uj(n,"string");return ss(e)=="symbol"?e:String(e)}function uj(n,e){if(ss(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(ss(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function dj(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var fj=b.memo(function(n){var e=Object.assign({},(dj(n),n));return d.jsx(Dn,lj({Icon:$h,Text:P1,"aria-label":Es,iconProps:{shape:"square"},spaceMultiple:z7,textMultiple:F7},e))}),Rr=$h;Rr.Text=P1;Rr.Combine=fj;Rr.Avatar=tj;Rr.colorPrimary=j1;Rr.title=Es;var Ts="Cursor",pj=.7,mj=.1,A1="#000",gj=A1,bj="#fff",yj=.6;function os(n){"@babel/helpers - typeof";return os=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},os(n)}var xj=["size","style"];function lp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Dl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?lp(Object(t),!0).forEach(function(r){vj(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):lp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function vj(n,e,t){return e=wj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function wj(n){var e=kj(n,"string");return os(e)=="symbol"?e:String(e)}function kj(n,e){if(os(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(os(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Sj(n,e){if(n==null)return{};var t=Cj(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function Cj(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var Fh=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=Sj(n,xj);return d.jsxs("svg",Dl(Dl({fill:"currentColor",fillRule:"evenodd",height:t,style:Dl({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Ts}),d.jsx("path",{d:"M22.106 5.68L12.5.135a.998.998 0 00-.998 0L1.893 5.68a.84.84 0 00-.419.726v11.186c0 .3.16.577.42.727l9.607 5.547a.999.999 0 00.998 0l9.608-5.547a.84.84 0 00.42-.727V6.407a.84.84 0 00-.42-.726zm-.603 1.176L12.228 22.92c-.063.108-.228.064-.228-.061V12.34a.59.59 0 00-.295-.51l-9.11-5.26c-.107-.062-.063-.228.062-.228h18.55c.264 0 .428.286.296.514z"})]}))});function as(n){"@babel/helpers - typeof";return as=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},as(n)}function cp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Oj(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?cp(Object(t),!0).forEach(function(r){jj(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):cp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function jj(n,e,t){return e=Pj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Pj(n){var e=Aj(n,"string");return as(e)=="symbol"?e:String(e)}function Aj(n,e){if(as(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(as(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Mj(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var Dj=b.memo(function(n){var e=Object.assign({},(Mj(n),n));return d.jsx(Mn,Oj({Icon:Fh,"aria-label":Ts,background:gj,color:bj,iconMultiple:yj},e))});function ls(n){"@babel/helpers - typeof";return ls=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ls(n)}var Ej=["size","style"];function hp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function El(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?hp(Object(t),!0).forEach(function(r){Tj(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):hp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function Tj(n,e,t){return e=Nj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Nj(n){var e=Lj(n,"string");return ls(e)=="symbol"?e:String(e)}function Lj(n,e){if(ls(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(ls(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Rj(n,e){if(n==null)return{};var t=Ij(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function Ij(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var M1=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=Rj(n,Ej);return d.jsxs("svg",El(El({fill:"currentColor",fillRule:"evenodd",height:t,style:El({flex:"none",lineHeight:1},r),viewBox:"0 0 123 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Ts}),d.jsx("path",{d:"M11.995 2.33h6.516v3.582h-6.295C8.82 5.912 6.169 7.868 6.169 12c0 4.133 2.65 6.089 6.047 6.089h6.295v3.581H11.72C6.03 21.67 2 18.336 2 12c0-6.337 4.307-9.67 9.995-9.67zm9.829 0h4.03V14.15c0 2.947 1.354 4.325 4.53 4.325 3.175 0 4.528-1.377 4.528-4.325V2.33h4.03v12.644c0 4.297-2.733 7.025-8.559 7.025-5.826 0-8.56-2.755-8.56-7.052V2.33zm38.185 5.483c0 2.149-1.243 3.801-2.9 4.518v.055c1.74.248 2.624 1.488 2.65 3.169l.084 6.115h-4.031l-.083-5.454c-.027-1.212-.745-1.956-2.181-1.956h-6.71v7.41h-4.03V2.33h11.127c3.644 0 6.074 1.846 6.074 5.483zm-4.059.55c0-1.652-.883-2.561-2.54-2.561H46.84v5.123h6.626c1.518 0 2.485-.909 2.485-2.562zm19.3 7.66c0-1.378-.884-1.957-2.209-2.067l-4.473-.413c-3.866-.358-5.881-1.873-5.881-5.537 0-3.664 2.485-5.675 6.046-5.675h9.885V5.8h-9.609c-1.38 0-2.263.717-2.263 2.094 0 1.378.91 2.039 2.291 2.15l4.556.385c3.452.303 5.715 1.874 5.715 5.565 0 3.691-2.402 5.675-5.798 5.675H63.184V18.2h9.94c1.297 0 2.126-.882 2.126-2.177zM91.097 2c6.074 0 9.912 3.884 9.912 9.972C101.01 18.061 97.006 22 90.932 22s-9.912-3.94-9.912-10.028C81.02 5.884 85.024 2 91.098 2zm5.743 10c0-4.077-2.374-6.474-5.826-6.474-3.451 0-5.826 2.397-5.826 6.474s2.375 6.473 5.826 6.473c3.452 0 5.826-2.396 5.826-6.473zM121 7.813c0 2.149-1.242 3.801-2.899 4.518v.055c1.739.248 2.623 1.488 2.65 3.169l.083 6.115h-4.031l-.083-5.454c-.027-1.212-.745-1.956-2.181-1.956h-6.709v7.41h-4.031V2.33h11.127c3.645 0 6.074 1.846 6.074 5.483zm-4.059.55c0-1.652-.883-2.561-2.54-2.561h-6.571v5.123h6.626c1.518 0 2.485-.909 2.485-2.562z"})]}))});function cs(n){"@babel/helpers - typeof";return cs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},cs(n)}function up(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Bj(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?up(Object(t),!0).forEach(function(r){$j(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):up(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function $j(n,e,t){return e=Fj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Fj(n){var e=zj(n,"string");return cs(e)=="symbol"?e:String(e)}function zj(n,e){if(cs(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(cs(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Vj(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var Hj=b.memo(function(n){var e=Object.assign({},(Vj(n),n));return d.jsx(Dn,Bj({Icon:Fh,Text:M1,"aria-label":Ts,spaceMultiple:mj,textMultiple:pj},e))}),Ir=Fh;Ir.Text=M1;Ir.Combine=Hj;Ir.Avatar=Dj;Ir.colorPrimary=A1;Ir.title=Ts;var Ns="Goose",_j=.7,Wj=.2,D1="#fff",Uj=D1,Kj="#000",Gj=.65;function hs(n){"@babel/helpers - typeof";return hs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},hs(n)}var qj=["size","style"];function dp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Tl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?dp(Object(t),!0).forEach(function(r){Yj(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):dp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function Yj(n,e,t){return e=Qj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Qj(n){var e=Jj(n,"string");return hs(e)=="symbol"?e:String(e)}function Jj(n,e){if(hs(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(hs(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Xj(n,e){if(n==null)return{};var t=Zj(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function Zj(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var zh=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=Xj(n,qj);return d.jsxs("svg",Tl(Tl({fill:"currentColor",fillRule:"evenodd",height:t,style:Tl({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Ns}),d.jsx("path",{d:"M21.595 23.61c1.167-.254 2.405-.944 2.405-.944l-2.167-1.784a12.124 12.124 0 01-2.695-3.131 12.127 12.127 0 00-3.97-4.049l-.794-.462a1.115 1.115 0 01-.488-.815.844.844 0 01.154-.575c.413-.582 2.548-3.115 2.94-3.44.503-.416 1.065-.762 1.586-1.159.074-.056.148-.112.221-.17.003-.002.007-.004.009-.007.167-.131.325-.272.45-.438.453-.524.563-.988.59-1.193-.061-.197-.244-.639-.753-1.148.319.02.705.272 1.056.569.235-.376.481-.773.727-1.171.165-.266-.08-.465-.086-.471h-.001V3.22c-.007-.007-.206-.25-.471-.086-.567.35-1.134.702-1.639 1.021 0 0-.597-.012-1.305.599a2.464 2.464 0 00-.438.45l-.007.009c-.058.072-.114.147-.17.221-.397.521-.743 1.083-1.16 1.587-.323.391-2.857 2.526-3.44 2.94a.842.842 0 01-.574.153 1.115 1.115 0 01-.815-.488l-.462-.794a12.123 12.123 0 00-4.049-3.97 12.133 12.133 0 01-3.13-2.695L1.332 0S.643 1.238.39 2.405c.352.428 1.27 1.49 2.34 2.302C1.58 4.167.73 3.75.06 3.4c-.103.765-.063 1.92.043 2.816.726.317 1.961.806 3.219 1.066-1.006.236-2.11.278-2.961.262.15.554.358 1.119.64 1.688.119.263.25.52.39.77.452.125 2.222.383 3.164.171l-2.51.897a27.776 27.776 0 002.544 2.726c2.031-1.092 2.494-1.241 4.018-2.238-2.467 2.008-3.108 2.828-3.8 3.67l-.483.678c-.25.351-.469.725-.65 1.117-.61 1.31-1.47 4.1-1.47 4.1-.154.486.202.842.674.674 0 0 2.79-.861 4.1-1.47.392-.182.766-.4 1.118-.65l.677-.483c.227-.187.453-.37.701-.586 0 0 1.705 2.02 3.458 3.349l.896-2.511c-.211.942.046 2.712.17 3.163.252.142.509.272.772.392.569.28 1.134.49 1.688.64-.016-.853.026-1.956.261-2.962.26 1.258.75 2.493 1.067 3.219.895.106 2.051.146 2.816.043a73.87 73.87 0 01-1.308-2.67c.811 1.07 1.874 1.988 2.302 2.34h-.001z"})]}))});function us(n){"@babel/helpers - typeof";return us=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},us(n)}function fp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function e8(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?fp(Object(t),!0).forEach(function(r){t8(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):fp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function t8(n,e,t){return e=n8(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function n8(n){var e=r8(n,"string");return us(e)=="symbol"?e:String(e)}function r8(n,e){if(us(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(us(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function i8(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var s8=b.memo(function(n){var e=Object.assign({},(i8(n),n));return d.jsx(Mn,e8({Icon:zh,"aria-label":Ns,background:Uj,color:Kj,iconMultiple:Gj},e))});function ds(n){"@babel/helpers - typeof";return ds=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ds(n)}var o8=["size","style"];function pp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Nl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?pp(Object(t),!0).forEach(function(r){a8(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):pp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function a8(n,e,t){return e=l8(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function l8(n){var e=c8(n,"string");return ds(e)=="symbol"?e:String(e)}function c8(n,e){if(ds(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(ds(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function h8(n,e){if(n==null)return{};var t=u8(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function u8(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var E1=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=h8(n,o8);return d.jsxs("svg",Nl(Nl({fill:"currentColor",fillRule:"evenodd",height:t,style:Nl({flex:"none",lineHeight:1},r),viewBox:"0 0 87 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Ns}),d.jsx("path",{d:"M17.122 16.607c0 4.696-3.219 7.393-7.774 7.393-3.674 0-6.255-1.546-7.257-4.637l3.401-1.21c.486 1.786 1.852 2.907 3.856 2.907 2.46 0 4.13-1.211 4.13-4.12v-1.122c-.85 1.121-2.46 2-4.494 2C4.61 17.818 2 14.273 2 9.909 2 5.546 4.611 2 8.984 2c2.004 0 3.644.879 4.494 2V2.303h3.644v14.303zm-3.583-6.85c0-2.908-1.58-4.575-3.857-4.575-2.52 0-4.008 1.757-4.008 4.727 0 2.94 1.488 4.727 4.008 4.727 2.278 0 3.857-1.666 3.857-4.515v-.363zM35.546 10.273c0 4.94-3.188 8.273-7.683 8.273-4.494 0-7.682-3.334-7.682-8.273C20.181 5.333 23.37 2 27.863 2c4.495 0 7.683 3.333 7.683 8.273zm-11.69 0c0 3.242 1.548 5.212 4.007 5.212 2.46 0 4.009-1.97 4.009-5.212 0-3.243-1.549-5.212-4.009-5.212-2.46 0-4.008 1.97-4.008 5.212zM52.957 10.273c0 4.94-3.188 8.273-7.682 8.273s-7.682-3.334-7.682-8.273C37.593 5.333 40.78 2 45.275 2s7.682 3.333 7.682 8.273zm-11.69 0c0 3.242 1.548 5.212 4.008 5.212s4.008-1.97 4.008-5.212c0-3.243-1.549-5.212-4.008-5.212-2.46 0-4.008 1.97-4.008 5.212zM54.336 15.182L57.069 13c.941 1.546 2.763 2.576 4.615 2.576 1.549 0 2.976-.546 2.976-1.97 0-1.364-1.336-1.515-3.856-2.03-2.52-.515-5.405-1.152-5.405-4.546 0-2.909 2.55-5.03 6.224-5.03 2.794 0 5.284 1.242 6.438 3L65.6 7.212c-.91-1.424-2.429-2.242-4.19-2.242-1.488 0-2.46.666-2.46 1.727 0 1.152 1.154 1.364 3.158 1.788 2.703.576 6.104 1.151 6.104 4.788 0 3.211-2.946 5.273-6.56 5.273-2.945 0-5.89-1.182-7.317-3.364zM77.965 18.546c-4.555 0-7.743-3.364-7.743-8.273 0-4.667 3.157-8.273 7.59-8.273 4.616 0 7.076 3.485 7.076 7.849v1.212H73.713c.274 2.727 1.913 4.394 4.252 4.394 1.791 0 3.218-.91 3.704-2.546l3.128 1.182c-1.124 2.787-3.644 4.455-6.832 4.455zm-.183-13.485c-1.882 0-3.34 1.12-3.886 3.272h7.318c-.03-1.757-1.124-3.272-3.432-3.272z"})]}))});function fs(n){"@babel/helpers - typeof";return fs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fs(n)}function mp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function d8(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?mp(Object(t),!0).forEach(function(r){f8(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):mp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function f8(n,e,t){return e=p8(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function p8(n){var e=m8(n,"string");return fs(e)=="symbol"?e:String(e)}function m8(n,e){if(fs(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(fs(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function g8(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var b8=b.memo(function(n){var e=Object.assign({},(g8(n),n));return d.jsx(Dn,d8({Icon:zh,Text:E1,"aria-label":Ns,iconProps:{shape:"square"},spaceMultiple:Wj,textMultiple:_j},e))}),Br=zh;Br.Text=E1;Br.Combine=b8;Br.Avatar=s8;Br.colorPrimary=D1;Br.title=Ns;var Ls="Windsurf",y8=.7,x8=.2,T1="#fff",v8=T1,w8="#000",k8=.75;function ps(n){"@babel/helpers - typeof";return ps=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ps(n)}var S8=["size","style"];function gp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Ll(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?gp(Object(t),!0).forEach(function(r){C8(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):gp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function C8(n,e,t){return e=O8(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function O8(n){var e=j8(n,"string");return ps(e)=="symbol"?e:String(e)}function j8(n,e){if(ps(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(ps(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function P8(n,e){if(n==null)return{};var t=A8(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function A8(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var Vh=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=P8(n,S8);return d.jsxs("svg",Ll(Ll({fill:"currentColor",fillRule:"evenodd",height:t,style:Ll({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Ls}),d.jsx("path",{clipRule:"evenodd",d:"M23.78 5.004h-.228a2.187 2.187 0 00-2.18 2.196v4.912c0 .98-.804 1.775-1.76 1.775a1.818 1.818 0 01-1.472-.773L13.168 5.95a2.197 2.197 0 00-1.81-.95c-1.134 0-2.154.972-2.154 2.173v4.94c0 .98-.797 1.775-1.76 1.775-.57 0-1.136-.289-1.472-.773L.408 5.098C.282 4.918 0 5.007 0 5.228v4.284c0 .216.066.426.188.604l5.475 7.889c.324.466.8.812 1.351.938 1.377.316 2.645-.754 2.645-2.117V11.89c0-.98.787-1.775 1.76-1.775h.002c.586 0 1.135.288 1.472.773l4.972 7.163a2.15 2.15 0 001.81.95c1.158 0 2.151-.973 2.151-2.173v-4.939c0-.98.787-1.775 1.76-1.775h.194c.122 0 .22-.1.22-.222V5.225a.221.221 0 00-.22-.222z"})]}))});function ms(n){"@babel/helpers - typeof";return ms=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ms(n)}function bp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function M8(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?bp(Object(t),!0).forEach(function(r){D8(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):bp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function D8(n,e,t){return e=E8(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function E8(n){var e=T8(n,"string");return ms(e)=="symbol"?e:String(e)}function T8(n,e){if(ms(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(ms(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function N8(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var L8=b.memo(function(n){var e=Object.assign({},(N8(n),n));return d.jsx(Mn,M8({Icon:Vh,"aria-label":Ls,background:v8,color:w8,iconMultiple:k8},e))});function gs(n){"@babel/helpers - typeof";return gs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},gs(n)}var R8=["size","style"];function yp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function Rl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?yp(Object(t),!0).forEach(function(r){I8(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):yp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function I8(n,e,t){return e=B8(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function B8(n){var e=$8(n,"string");return gs(e)=="symbol"?e:String(e)}function $8(n,e){if(gs(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(gs(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function F8(n,e){if(n==null)return{};var t=z8(n,e),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);for(i=0;i<s.length;i++)r=s[i],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function z8(n,e){if(n==null)return{};var t={},r=Object.keys(n),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(t[i]=n[i]);return t}var N1=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=F8(n,R8);return d.jsxs("svg",Rl(Rl({fill:"currentColor",fillRule:"evenodd",height:t,style:Rl({flex:"none",lineHeight:1},r),viewBox:"0 0 111 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[d.jsx("title",{children:Ls}),d.jsx("path",{clipRule:"evenodd",d:"M33.412 7.182h-1.715a.316.316 0 00-.315.316v13.79c0 .174.14.316.315.316h1.715a.316.316 0 00.316-.317V7.498a.316.316 0 00-.316-.316zm-1.772-5.18h1.828c.174 0 .315.141.315.316V4.57a.316.316 0 01-.315.316H31.64a.316.316 0 01-.315-.316V2.318c0-.175.141-.317.315-.317zM43.676 6.79c-1.927 0-3.324.671-4.218 1.653a.457.457 0 01-.782-.322v-.623a.316.316 0 00-.316-.316h-1.686a.316.316 0 00-.316.316v13.79c0 .174.142.316.316.316h1.687a.316.316 0 00.316-.317v-8.729c0-3.025.587-3.697 3.8-3.697s3.742.533 3.742 3.557v8.868c0 .175.142.317.316.317h1.715a.316.316 0 00.316-.317v-9.513c0-3.445-1.956-4.986-4.889-4.986v.003h-.001zm17.518 1.849a.457.457 0 00.782-.322V2.319c0-.175.142-.316.316-.316h1.687c.174 0 .316.141.316.316v18.97a.316.316 0 01-.316.316h-1.687a.316.316 0 01-.316-.316v-.819c.017-.418-.489-.62-.782-.322-.81 1.008-2.374 1.848-4.47 1.848-3.685 0-6.088-2.632-6.088-7.533 0-5.18 2.68-7.673 6.172-7.673 2.095 0 3.604.84 4.386 1.849zm-8.018 5.767c0 4.733.587 5.434 4.414 5.434 3.8 0 4.386-.701 4.386-5.434 0-4.733-.559-5.461-4.386-5.461s-4.414.728-4.414 5.461zm20.924-.894l-2.763-.476c-2.04-.364-2.404-.98-2.404-2.045.028-1.457.587-2.184 3.296-2.184 2.538 0 3.35.752 3.525 2.376.017.16.152.284.313.284h1.677c.18 0 .326-.151.316-.333-.163-2.788-2.709-4.346-5.746-4.346-3.408 0-5.67 1.82-5.67 4.426 0 2.38 1.844 3.417 4.05 3.837l3.046.56c1.676.31 2.235.87 2.235 1.933 0 1.709-.587 2.437-3.464 2.437s-3.673-.832-3.858-2.518a.315.315 0 00-.313-.282h-1.687a.318.318 0 00-.317.325c.08 3.004 2.797 4.493 6.034 4.493 3.52 0 5.949-1.82 5.949-4.566 0-2.408-1.845-3.501-4.219-3.921zm12.21 6.414c3.128 0 3.715-.672 3.715-3.697V7.502c0-.174.141-.316.316-.316h1.714c.175 0 .316.142.316.316v13.79a.316.316 0 01-.316.316h-1.714a.316.316 0 01-.316-.317v-.6c-.007-.429-.45-.642-.755-.343-.892.98-2.289 1.652-4.161 1.652-2.877 0-4.833-1.54-4.833-4.986V7.501c0-.175.142-.317.316-.317h1.715c.174 0 .316.142.316.317v8.868c0 3.024.558 3.557 3.687 3.557zm19.782-12.744v-1.85c0-.727.588-1.316 1.314-1.316h1.276a.316.316 0 00.315-.317V2.317a.316.316 0 00-.315-.317h-.885c-2.514 0-4.051 1.4-4.051 3.81v1.372h-1.859c-1.647.002-2.94.229-3.803 1.26-.317.302-.755.076-.755-.36V7.5a.316.316 0 00-.315-.317h-1.715a.316.316 0 00-.316.317v13.789c0 .174.141.316.316.316h1.715a.316.316 0 00.315-.316v-8.645c0-2.857.727-3.528 3.855-3.528h2.562V21.29c0 .175.141.317.316.317h1.715a.316.316 0 00.315-.317V9.116h2.593a.316.316 0 00.315-.317V7.501a.316.316 0 00-.315-.317h-2.593v-.002zM21.834 18.008a.561.561 0 001.091.005l3.933-15.772A.318.318 0 0127.166 2h1.963c.21 0 .363.199.31.403l-4.947 18.972a.305.305 0 01-.295.228h-3.502a.31.31 0 01-.3-.234L16.285 5.5a.56.56 0 00-.543-.42h-.036a.562.562 0 00-.542.42l-4.11 15.87a.31.31 0 01-.299.234H7.253a.304.304 0 01-.295-.228L2.011 2.403A.321.321 0 012.32 2h1.963c.145 0 .272.1.308.241l3.932 15.772a.56.56 0 001.09-.005l3.78-15.764A.316.316 0 0113.7 2h4.047c.146 0 .273.1.307.244l3.779 15.764z"})]}))});function bs(n){"@babel/helpers - typeof";return bs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bs(n)}function xp(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,r)}return t}function V8(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?xp(Object(t),!0).forEach(function(r){H8(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):xp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function H8(n,e,t){return e=_8(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function _8(n){var e=W8(n,"string");return bs(e)=="symbol"?e:String(e)}function W8(n,e){if(bs(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(bs(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function U8(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var K8=b.memo(function(n){var e=Object.assign({},(U8(n),n));return d.jsx(Dn,V8({Icon:Vh,Text:N1,"aria-label":Ls,iconProps:{shape:"square"},spaceMultiple:x8,textMultiple:y8},e))}),$r=Vh;$r.Text=N1;$r.Combine=K8;$r.Avatar=L8;$r.colorPrimary=T1;$r.title=Ls;const G8={"claude-code":Zn.Avatar,cursor:Ir.Avatar,codex:ut.Avatar,"gemini-cli":er.Avatar,goose:Br.Avatar,"github-copilot":Lr.Avatar,windsurf:$r.Avatar,cline:Rr.Avatar},q8={antigravity:"/agents/antigravity.png",opencode:"/agents/opencode.svg",amp:"/agents/amp.png",kilo:"/agents/kilo.png",roo:"/agents/roo.png",openhands:"/agents/openhands.png"};function Y8(n){return n.split(/\s+/).map(e=>e[0]).join("").toUpperCase().slice(0,2)}const Ic=({agentName:n,displayName:e,size:t=20})=>{const r=G8[n];if(r)return d.jsx(r,{size:t});const i=q8[n];return i?d.jsx("img",{src:i,alt:e,className:"rounded object-contain",style:{width:t,height:t}}):d.jsx("div",{className:"flex items-center justify-center rounded bg-dash-surface-hover text-dash-text-muted font-semibold",style:{width:t,height:t,fontSize:t*.45},children:Y8(e)})},Q8=({skill:n,installations:e,agents:t,onClose:r,onInstall:i,onUninstall:s})=>{const{t:o}=he(),[a,l]=b.useState(!0),[c,h]=b.useState(!1),[u,f]=b.useState(null),p=e.filter(k=>k.skillName===n.id),m=new Map(p.map(k=>[k.agent,k])),g=t.filter(k=>k.detected),y=t.filter(k=>!k.detected),v=zt[n.category]||zt.General;b.useEffect(()=>{const k=j=>{j.key==="Escape"&&r()};return document.addEventListener("keydown",k),()=>document.removeEventListener("keydown",k)},[r]);const S=async k=>{try{h(!0),f(null),await i(n.id,[k],a)}catch(j){f(j instanceof Error?j.message:"Installation failed")}finally{h(!1)}},C=async k=>{try{h(!0),f(null),await s(n.id,k)}catch(j){f(j instanceof Error?j.message:"Uninstall failed")}finally{h(!1)}},A=async()=>{const k=g.filter(j=>!m.has(j.name)&&j.name!==n.sourceAgent);if(k.length!==0)try{h(!0),f(null),await i(n.id,k.map(j=>j.name),a)}catch(j){f(j instanceof Error?j.message:"Installation failed")}finally{h(!1)}};return d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"fixed inset-0 bg-black/50 z-40",onClick:r,style:{pointerEvents:"auto"}}),d.jsxs("div",{className:"fixed top-0 right-0 w-[480px] h-full bg-dash-surface border-l border-dash-border shadow-2xl z-50 flex flex-col animate-slide-in",children:[d.jsx("div",{className:"px-6 py-5 border-b border-dash-border",children:d.jsxs("div",{className:"flex items-start justify-between",children:[d.jsxs("div",{className:"flex-1",children:[d.jsx("h2",{className:"text-xl font-bold text-dash-text",children:n.name}),d.jsxs("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[d.jsx("span",{className:"text-[11px] font-semibold px-2 py-0.5 rounded-lg",style:{background:`${v}26`,color:v},children:n.category}),n.kit&&d.jsx(Eh,{kit:n.kit}),n.isCustomized&&d.jsx(Th,{label:o("customizedBadge")}),n.version&&d.jsx("span",{className:"text-[11px] text-dash-text-muted",children:o("versionLabel").replace("{version}",n.version.replace(/^v/,""))})]})]}),d.jsx("button",{type:"button",onClick:r,className:"w-8 h-8 flex items-center justify-center rounded-md text-dash-text-muted hover:bg-dash-surface-hover hover:text-dash-text transition-colors",children:d.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:[d.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18",strokeWidth:2}),d.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18",strokeWidth:2})]})})]})}),d.jsxs("div",{className:"flex-1 overflow-y-auto px-6 py-5 space-y-6",children:[d.jsxs("div",{children:[d.jsx("h3",{className:"text-[11px] font-bold uppercase tracking-wide text-dash-text-muted mb-2.5",children:o("description")}),d.jsx("p",{className:"text-sm text-dash-text-secondary leading-relaxed",children:n.description||o("noDescription")})]}),(n.kit||n.installedVersion||n.installedAt)&&d.jsxs("div",{children:[d.jsx("h3",{className:"text-[11px] font-bold uppercase tracking-wide text-dash-text-muted mb-2.5",children:o("skillMetadata")}),d.jsxs("div",{className:"grid grid-cols-2 gap-x-4 gap-y-2 text-sm",children:[n.kit&&d.jsxs(d.Fragment,{children:[d.jsx("span",{className:"text-dash-text-muted",children:o("kitLabel")}),d.jsx("span",{className:"text-dash-text",children:n.kit==="engineer"?o("kitBadgeEngineer"):n.kit==="marketing"?o("kitBadgeMarketing"):n.kit})]}),n.installedVersion&&d.jsxs(d.Fragment,{children:[d.jsx("span",{className:"text-dash-text-muted",children:o("installedVersionLabel")}),d.jsx("span",{className:"text-dash-text font-mono text-xs",children:n.installedVersion.replace(/^v/,"")})]}),n.installedAt&&d.jsxs(d.Fragment,{children:[d.jsx("span",{className:"text-dash-text-muted",children:o("installedAtLabel")}),d.jsx("span",{className:"text-dash-text text-xs",children:new Date(n.installedAt).toLocaleDateString()})]}),n.sourceTimestamp&&d.jsxs(d.Fragment,{children:[d.jsx("span",{className:"text-dash-text-muted",children:o("sourceTimestampLabel")}),d.jsx("span",{className:"text-dash-text text-xs",children:new Date(n.sourceTimestamp).toLocaleDateString()})]})]})]}),d.jsxs("div",{children:[d.jsxs("div",{className:"flex items-center justify-between mb-3",children:[d.jsx("h3",{className:"text-[11px] font-bold uppercase tracking-wide text-dash-text-muted",children:o("scopeLabel")}),d.jsxs("div",{className:"flex bg-dash-bg border border-dash-border rounded-lg overflow-hidden",children:[d.jsx("button",{type:"button",onClick:()=>l(!0),className:`px-3.5 py-1.5 text-xs font-medium transition-colors ${a?"bg-dash-accent/10 text-dash-accent":"text-dash-text-muted hover:text-dash-text"}`,children:o("scopeGlobal")}),d.jsx("button",{type:"button",onClick:()=>l(!1),className:`px-3.5 py-1.5 text-xs font-medium transition-colors ${a?"text-dash-text-muted hover:text-dash-text":"bg-dash-accent/10 text-dash-accent"}`,children:o("scopeProject")})]})]}),u&&d.jsx("div",{className:"mb-3 px-3 py-2 bg-red-500/10 border border-red-500/20 rounded-lg",children:d.jsx("p",{className:"text-xs text-red-500",children:u})}),d.jsx("div",{className:"space-y-1.5",children:g.map(k=>{const j=m.get(k.name),x=!!j,T=n.sourceAgent===k.name;return d.jsxs("div",{className:"flex items-center justify-between px-3 py-2.5 bg-dash-bg rounded-lg",children:[d.jsxs("div",{className:"flex items-center gap-2.5",children:[d.jsx(Ic,{agentName:k.name,displayName:k.displayName,size:20}),d.jsxs("div",{children:[d.jsx("div",{className:"text-sm font-medium text-dash-text",children:k.displayName}),d.jsx("div",{className:"text-[11px] text-dash-text-muted",children:T?o("skillSource"):`${o("detected")} — ${x?`${o("agentInstalled")} (${j.isGlobal?o("scopeGlobal").toLowerCase():o("scopeProject").toLowerCase()})`:o("agentNotInstalled")}`})]})]}),T?d.jsx("span",{className:"px-2.5 py-1 text-[11px] font-semibold rounded-md bg-emerald-500/10 text-emerald-600 border border-emerald-500/20",children:o("skillSourceBadge")}):d.jsx("button",{type:"button",onClick:()=>x?C(k.name):S(k.name),disabled:c,className:`px-2.5 py-1 text-[11px] font-semibold rounded-md transition-colors disabled:opacity-50 ${x?"bg-transparent text-dash-text-secondary border border-dash-border hover:bg-dash-surface-hover":"bg-dash-accent text-white hover:bg-dash-accent/90"}`,children:o(x?"uninstall":"install")})]},k.name)})}),y.length>0&&d.jsx("div",{className:"space-y-1.5 mt-1.5 opacity-50",children:y.map(k=>d.jsxs("div",{className:"flex items-center justify-between px-3 py-2.5 bg-dash-bg rounded-lg",children:[d.jsxs("div",{className:"flex items-center gap-2.5",children:[d.jsx(Ic,{agentName:k.name,displayName:k.displayName,size:20}),d.jsxs("div",{children:[d.jsx("div",{className:"text-sm font-medium text-dash-text",children:k.displayName}),d.jsx("div",{className:"text-[11px] text-dash-text-muted",children:o("notDetected")})]})]}),d.jsx("button",{type:"button",disabled:!0,className:"px-2.5 py-1 text-[11px] font-semibold rounded-md bg-dash-accent text-white opacity-50 cursor-not-allowed",children:o("install")})]},k.name))})]})]}),d.jsxs("div",{className:"px-6 py-4 border-t border-dash-border flex gap-3",children:[d.jsx("button",{type:"button",onClick:r,className:"flex-1 px-4 py-2.5 border border-dash-border rounded-lg text-sm font-semibold text-dash-text-secondary hover:bg-dash-surface-hover transition-colors",children:o("detailPanelClose")}),d.jsx("button",{type:"button",onClick:A,disabled:c||g.filter(k=>k.name!==n.sourceAgent).every(k=>m.has(k.name))||g.filter(k=>k.name!==n.sourceAgent).length===0,className:"flex-1 px-4 py-2.5 bg-dash-accent text-white rounded-lg text-sm font-semibold hover:bg-dash-accent/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:o(c?"installing":"installToAll")})]})]})]})},J8=({skill:n,installations:e,agents:t,onClick:r})=>{const{t:i}=he(),s=e.filter(u=>u.skillName===n.id),o=s.length>0,a=t.filter(u=>u.detected),l=new Map(s.map(u=>[u.agent,u])),c=a.slice(0,3),h=Math.max(0,a.length-3);return d.jsxs("div",{onClick:r,className:"grid grid-cols-[1fr_120px_200px_100px] items-center gap-4 px-4 py-2.5 bg-dash-surface border border-transparent rounded-lg cursor-pointer transition-all hover:border-dash-border hover:bg-dash-surface-hover",children:[d.jsxs("div",{className:"min-w-0",children:[d.jsxs("div",{className:"flex items-center gap-1.5",children:[d.jsx("span",{className:"text-sm font-semibold text-dash-text truncate",children:n.name}),n.kit&&d.jsx(Eh,{kit:n.kit}),n.isCustomized&&d.jsx(Th,{label:i("customizedBadge")})]}),d.jsx("div",{className:"text-xs text-dash-text-muted truncate max-w-xs mt-0.5",children:n.description||i("noDescription")})]}),d.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-medium",children:[d.jsx("div",{className:"w-1.5 h-1.5 rounded-full",style:{background:zt[n.category]||zt.General}}),d.jsx("span",{className:"text-dash-text-secondary",children:n.category})]}),d.jsxs("div",{className:"flex items-center gap-1",children:[c.map(u=>{const f=l.get(u.name);return d.jsx("div",{title:`${u.displayName}${f?" (installed)":""}`,className:`w-5 h-5 rounded-full flex items-center justify-center border transition-colors ${f?"bg-dash-accent/10 border-dash-accent/30":"bg-dash-surface-hover border-dash-border opacity-50"}`,children:d.jsx(Ic,{agentName:u.name,displayName:u.displayName,size:14})},u.name)}),h>0&&d.jsxs("span",{className:"text-[10px] text-dash-text-muted ml-0.5",children:["+",h]})]}),d.jsx("div",{className:"flex justify-end",children:d.jsx("button",{type:"button",onClick:u=>{u.stopPropagation(),r()},className:`px-4 py-1.5 text-xs font-semibold rounded-md transition-colors ${o?"bg-transparent text-dash-text-secondary border border-dash-border hover:bg-dash-surface-hover":"bg-dash-accent text-white hover:bg-dash-accent/90"}`,children:i(o?"manage":"install")})})]})},X8=()=>{const{t:n}=he(),[e,t]=b.useState([]),[r,i]=b.useState([]),[s,o]=b.useState([]),[a,l]=b.useState(!0),[c,h]=b.useState(!1),[u,f]=b.useState(null),[p,m]=b.useState("list"),[g,y]=b.useState("a-z"),[v,S]=b.useState(""),[C,A]=b.useState("all"),[k,j]=b.useState(null),x=b.useCallback(async(D=!1)=>{try{D?h(!0):l(!0),f(null);const[$,V,F]=await Promise.all([im(),Jx(),Xx()]);t($),i(V.installations),o(F.agents)}catch($){f($ instanceof Error?$.message:"Failed to load skills")}finally{l(!1),h(!1)}},[]);b.useEffect(()=>{x()},[x]);const T=b.useMemo(()=>e.map(D=>({...D,name:D.id,category:Fx[D.id]||D.category})),[e]),P=b.useCallback(async(D,$,V)=>{const q=(await Nu(D,$,V)).results.filter(re=>!re.success);if(q.length>0)throw new Error(`Failed for: ${q.map(re=>re.agent).join(", ")}`);await x(!0)},[x]),R=b.useCallback(async(D,$)=>{await Zx(D,[$]),await x(!0)},[x]),L=b.useMemo(()=>{let D=T;if(v.trim()){const V=v.toLowerCase();D=D.filter(F=>F.name.toLowerCase().includes(V)||F.description?.toLowerCase().includes(V)||F.category.toLowerCase().includes(V))}C!=="all"&&(D=D.filter(V=>V.category===C));const $=[...D];return g==="a-z"?$.sort((V,F)=>V.name.localeCompare(F.name)):g==="category"?$.sort((V,F)=>{const q=V.category.localeCompare(F.category);return q!==0?q:V.name.localeCompare(F.name)}):g==="installed-first"&&$.sort((V,F)=>{const q=r.some(se=>se.skillName===V.name),re=r.some(se=>se.skillName===F.name);return q===re?V.name.localeCompare(F.name):q?-1:1}),$},[T,v,C,g,r]),I=b.useMemo(()=>{if(p!=="list")return{};const D={};for(const V of L)D[V.category]||(D[V.category]=[]),D[V.category].push(V);const $={};for(const V of Ws)D[V]&&($[V]=D[V]);for(const V of Object.keys(D))Ws.includes(V)||($[V]=D[V]);return $},[L,p]),W=b.useMemo(()=>{const D={all:T.length};for(const $ of T)D[$.category]=(D[$.category]||0)+1;return D},[T]),U=b.useMemo(()=>{const D=new Set(r.map(V=>V.skillName)).size,$=s.filter(V=>V.detected).length;return{available:e.length,installed:D,agents:$}},[e,r,s]);return b.useEffect(()=>{const D=$=>{$.key==="/"&&document.activeElement?.tagName!=="INPUT"&&($.preventDefault(),document.getElementById("skills-search")?.focus())};return document.addEventListener("keydown",D),()=>document.removeEventListener("keydown",D)},[]),a?d.jsx("div",{className:"flex items-center justify-center h-full",children:d.jsxs("div",{className:"text-center",children:[d.jsx("div",{className:"w-8 h-8 border-4 border-dash-accent border-t-transparent rounded-full animate-spin mx-auto mb-3"}),d.jsx("p",{className:"text-dash-text-muted",children:n("loadingSkills")})]})}):u?d.jsx("div",{className:"flex items-center justify-center h-full",children:d.jsxs("div",{className:"text-center max-w-md",children:[d.jsx("p",{className:"text-red-500 mb-3",children:u}),d.jsx("button",{type:"button",onClick:()=>x(),className:"px-4 py-2 bg-dash-accent text-white rounded-md hover:bg-dash-accent/90",children:n("tryAgain")})]})}):d.jsxs("div",{className:"h-full flex flex-col",children:[d.jsx("div",{className:"border-b border-dash-border bg-dash-surface px-8 py-5",children:d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("h1",{className:"text-xl font-bold text-dash-text",children:n("skillsTitle")}),d.jsx("p",{className:"text-sm text-dash-text-muted mt-0.5",children:n("skillsSubtitle")})]}),d.jsxs("div",{className:"flex items-center gap-6",children:[d.jsxs("div",{className:"text-center",children:[d.jsx("div",{className:"text-xl font-bold text-dash-accent",children:U.available}),d.jsx("div",{className:"text-[11px] text-dash-text-muted uppercase tracking-wide",children:n("availableCount")})]}),d.jsxs("div",{className:"text-center",children:[d.jsx("div",{className:"text-xl font-bold text-dash-accent",children:U.installed}),d.jsx("div",{className:"text-[11px] text-dash-text-muted uppercase tracking-wide",children:n("installedCount")})]}),d.jsxs("div",{className:"text-center",children:[d.jsx("div",{className:"text-xl font-bold text-dash-accent",children:U.agents}),d.jsx("div",{className:"text-[11px] text-dash-text-muted uppercase tracking-wide",children:n("agentsCount")})]})]})]})}),d.jsxs("div",{className:"border-b border-dash-border bg-dash-surface px-8 py-3 space-y-2.5",children:[d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsxs("div",{className:"relative flex-1",children:[d.jsxs("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 stroke-dash-text-muted",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[d.jsx("circle",{cx:"11",cy:"11",r:"8"}),d.jsx("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),d.jsx("input",{id:"skills-search",type:"text",value:v,onChange:D=>S(D.target.value),placeholder:n("searchSkills"),className:"w-full pl-9 pr-12 py-2 bg-dash-bg border border-dash-border rounded-lg text-dash-text text-sm focus:outline-none focus:border-dash-accent transition-colors"}),d.jsx("span",{className:"absolute right-2.5 top-1/2 -translate-y-1/2 text-[11px] text-dash-text-muted bg-dash-surface-hover border border-dash-border px-1.5 py-0.5 rounded",children:n("searchShortcut")})]}),d.jsx("button",{type:"button",onClick:async()=>{const D=s.filter($=>$.detected);if(D.length===0){f(n("noAgentsDetected"));return}try{h(!0),f(null),await Promise.all(e.map($=>Nu($.name,D.map(V=>V.name),!0))),await x(!0)}catch($){f($ instanceof Error?$.message:n("bulkInstallFailed"))}finally{h(!1)}},disabled:a||c||s.filter(D=>D.detected).length===0||e.length===0,className:"px-3 py-1.5 bg-dash-accent text-white rounded-md text-xs font-semibold hover:bg-dash-accent/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap",children:n(c?"installing":"installAllToAllAgents")}),d.jsxs("select",{value:g,onChange:D=>y(D.target.value),className:"px-2.5 py-1.5 bg-dash-bg border border-dash-border rounded-md text-dash-text-secondary text-xs focus:outline-none",children:[d.jsx("option",{value:"a-z",children:n("sortAZ")}),d.jsx("option",{value:"category",children:n("sortCategory")}),d.jsx("option",{value:"installed-first",children:n("sortInstalledFirst")})]}),d.jsxs("div",{className:"flex bg-dash-bg border border-dash-border rounded-md overflow-hidden",children:[d.jsx("button",{type:"button",onClick:()=>m("list"),title:n("listView"),className:`p-1.5 transition-colors ${p==="list"?"bg-dash-surface-hover text-dash-accent":"text-dash-text-muted hover:text-dash-text"}`,children:d.jsxs("svg",{className:"w-3.5 h-3.5 stroke-current",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,children:[d.jsx("line",{x1:"8",y1:"6",x2:"21",y2:"6"}),d.jsx("line",{x1:"8",y1:"12",x2:"21",y2:"12"}),d.jsx("line",{x1:"8",y1:"18",x2:"21",y2:"18"}),d.jsx("line",{x1:"3",y1:"6",x2:"3.01",y2:"6"}),d.jsx("line",{x1:"3",y1:"12",x2:"3.01",y2:"12"}),d.jsx("line",{x1:"3",y1:"18",x2:"3.01",y2:"18"})]})}),d.jsx("button",{type:"button",onClick:()=>m("grid"),title:n("gridView"),className:`p-1.5 transition-colors ${p==="grid"?"bg-dash-surface-hover text-dash-accent":"text-dash-text-muted hover:text-dash-text"}`,children:d.jsxs("svg",{className:"w-3.5 h-3.5 stroke-current",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,children:[d.jsx("rect",{x:"3",y:"3",width:"7",height:"7"}),d.jsx("rect",{x:"14",y:"3",width:"7",height:"7"}),d.jsx("rect",{x:"3",y:"14",width:"7",height:"7"}),d.jsx("rect",{x:"14",y:"14",width:"7",height:"7"})]})})]})]}),d.jsx("div",{className:"flex gap-1.5 overflow-x-auto pb-0.5",style:{scrollbarWidth:"none"},children:["all",...Array.from(new Set(T.map(D=>D.category))).sort((D,$)=>{const V=Ws.indexOf(D),F=Ws.indexOf($);return V===-1&&F===-1?D.localeCompare($):V===-1?1:F===-1?-1:V-F})].map(D=>d.jsxs("button",{type:"button",onClick:()=>A(D),className:`px-3 py-1 text-xs font-medium rounded-full border transition-all whitespace-nowrap shrink-0 ${C===D?"bg-dash-accent/10 border-dash-accent text-dash-accent":"border-dash-border text-dash-text-secondary hover:bg-dash-surface-hover hover:text-dash-text"}`,children:[D==="all"?n("categoryAll"):D,d.jsx("span",{className:"opacity-60 ml-1 text-[10px]",children:W[D]||0})]},D))})]}),d.jsx("div",{className:"flex-1 overflow-y-auto px-8 py-6",children:L.length===0?d.jsx("div",{className:"text-center py-12",children:d.jsx("p",{className:"text-dash-text-muted",children:n("noSkillsFound")})}):p==="list"?d.jsx("div",{className:"space-y-6",children:Object.entries(I).map(([D,$])=>d.jsxs("div",{children:[d.jsxs("div",{className:"flex items-center gap-2.5 mb-3",children:[d.jsx("div",{className:"w-2 h-2 rounded-full",style:{background:zt[D]||zt.General}}),d.jsx("h2",{className:"text-[13px] font-semibold uppercase tracking-wide",style:{color:zt[D]||zt.General},children:D}),d.jsx("span",{className:"text-[11px] text-dash-text-muted ml-auto",children:n("skillsCountLabel").replace("{count}",String($.length))}),d.jsx("div",{className:"flex-1 h-px bg-dash-border ml-3"})]}),d.jsx("div",{className:"space-y-0.5",children:$.map(V=>d.jsx(J8,{skill:V,installations:r,agents:s,onClick:()=>j(V)},V.id))})]},D))}):d.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3",children:L.map(D=>d.jsx(RC,{skill:D,installations:r,agents:s,onClick:()=>j(D)},D.id))})}),k&&d.jsx(Q8,{skill:k,installations:r,agents:s,onClose:()=>j(null),onInstall:P,onUninstall:R})]})},Z8=kx([{path:"/",element:d.jsx(iv,{}),children:[{index:!0,element:d.jsx(Du,{to:"/config/global",replace:!0})},{path:"config/global",element:d.jsx(xC,{})},{path:"config/project/:projectId",element:d.jsx(DC,{})},{path:"project/:projectId",element:d.jsx(NC,{})},{path:"onboarding",element:d.jsx(MC,{})},{path:"skills",element:d.jsx(X8,{})},{path:"*",element:d.jsx(Du,{to:"/",replace:!0})}]}]),L1=document.getElementById("root");if(!L1)throw document.body.innerHTML='<div style="padding:20px;color:red;">Fatal: Root element not found</div>',new Error("Root element #root not found");Il.createRoot(L1).render(d.jsx(nb.StrictMode,{children:d.jsx(Bx,{children:d.jsx($x,{children:d.jsx(Lx,{router:Z8})})})}));