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.
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
var t1=Object.defineProperty;var n1=(n,e,t)=>e in n?t1(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var ou=(n,e,t)=>n1(n,typeof e!="symbol"?e+"":e,t);import{r as b,a as Op,R as r1,b as i1}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 Pp={exports:{}},ca={};/**
|
|
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 s1=b,o1=Symbol.for("react.element"),a1=Symbol.for("react.fragment"),l1=Object.prototype.hasOwnProperty,c1=s1.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,h1={key:!0,ref:!0,__self:!0,__source:!0};function Ap(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)l1.call(e,r)&&!h1.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:o1,type:n,key:s,ref:o,props:i,_owner:c1.current}}ca.Fragment=a1;ca.jsx=Ap;ca.jsxs=Ap;Pp.exports=ca;var u=Pp.exports,Fl={},au=Op;Fl.createRoot=au.createRoot,Fl.hydrateRoot=au.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 Mp=n=>{throw TypeError(n)},u1=(n,e,t)=>e.has(n)||Mp("Cannot "+t),La=(n,e,t)=>(u1(n,e,"read from private field"),t?t.call(n):e.get(n)),d1=(n,e,t)=>e.has(n)?Mp("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,t),lu="popstate";function f1(n={}){function e(r,i){let{pathname:s,search:o,hash:a}=r.location;return fi("",{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:Kt(i)}return m1(e,t,null,n)}function le(n,e){if(n===!1||n===null||typeof n>"u")throw new Error(e)}function Ae(n,e){if(!n){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function p1(){return Math.random().toString(36).substring(2,10)}function cu(n,e){return{usr:n.state,key:n.key,idx:e}}function fi(n,e,t=null,r){return{pathname:typeof n=="string"?n:n.pathname,search:"",hash:"",...typeof e=="string"?Mn(e):e,state:t,key:e&&e.key||r||p1()}}function Kt({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 Mn(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 m1(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 d(){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=fi(g.location,y,v);c=h()+1;let C=cu(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=fi(g.location,y,v);c=h();let C=cu(S,c),A=g.createHref(S);o.replaceState(C,"",A),s&&l&&l({action:a,location:g.location,delta:0})}function m(y){return Np(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(lu,d),l=y,()=>{i.removeEventListener(lu,d),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 Np(n,e=!1){let t="http://localhost";typeof window<"u"&&(t=window.location.origin!=="null"?window.location.origin:window.location.href),le(t,"No window.location.(origin|href) available to create URL");let r=typeof n=="string"?n:Kt(n);return r=r.replace(/ $/,"%20"),!e&&r.startsWith("//")&&(r=t+r),new URL(r,t)}var Xr,hu=class{constructor(n){if(d1(this,Xr,new Map),n)for(let[e,t]of n)this.set(e,t)}get(n){if(La(this,Xr).has(n))return La(this,Xr).get(n);if(n.defaultValue!==void 0)return n.defaultValue;throw new Error("No value found for context")}set(n,e){La(this,Xr).set(n,e)}};Xr=new WeakMap;var g1=new Set(["lazy","caseSensitive","path","id","index","children"]);function b1(n){return g1.has(n)}var y1=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function x1(n){return y1.has(n)}function v1(n){return n.index===!0}function pi(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(le(s.index!==!0||!s.children,"Cannot specify children on an index route"),le(i||!r[l],`Found a route id collision on id "${l}". Route id's must be globally unique within Data Router usages`),v1(s)){let c={...s,id:l};return r[l]=uu(c,e(c)),c}else{let c={...s,id:l,children:void 0};return r[l]=uu(c,e(c)),s.children&&(c.children=pi(s.children,e,a,r,i)),c}})}function uu(n,e){return Object.assign(n,{...e,...typeof e.lazy=="object"&&e.lazy!=null?{lazy:{...n.lazy,...e.lazy}}:{}})}function pn(n,e,t="/"){return Zr(n,e,t,!1)}function Zr(n,e,t,r){let i=typeof e=="string"?Mn(e):e,s=wt(i.pathname||"/",t);if(s==null)return null;let o=Dp(n);k1(o);let a=null;for(let l=0;a==null&&l<o.length;++l){let c=T1(s);a=D1(o[l],c,r)}return a}function w1(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 Dp(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;le(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 d=_t([r,h.relativePath]),f=t.concat(h);o.children&&o.children.length>0&&(le(o.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${d}".`),Dp(o.children,e,f,d,l)),!(o.path==null&&!o.index)&&e.push({path:d,score:M1(d,o.index),routesMeta:f})};return n.forEach((o,a)=>{if(o.path===""||!o.path?.includes("?"))s(o,a);else for(let l of Ep(o.path))s(o,a,!0,l)}),e}function Ep(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=Ep(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 k1(n){n.sort((e,t)=>e.score!==t.score?t.score-e.score:N1(e.routesMeta.map(r=>r.childrenIndex),t.routesMeta.map(r=>r.childrenIndex)))}var S1=/^:[\w-]+$/,C1=3,j1=2,O1=1,P1=10,A1=-2,du=n=>n==="*";function M1(n,e){let t=n.split("/"),r=t.length;return t.some(du)&&(r+=A1),e&&(r+=j1),t.filter(i=>!du(i)).reduce((i,s)=>i+(S1.test(s)?C1:s===""?O1:P1),r)}function N1(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 D1(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)||"/",d=Ro({path:l.relativePath,caseSensitive:l.caseSensitive,end:c},h),f=l.route;if(!d&&c&&t&&!r[r.length-1].route.index&&(d=Ro({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},h)),!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:_t([s,d.pathname]),pathnameBase:I1(_t([s,d.pathnameBase])),route:f}),d.pathnameBase!=="/"&&(s=_t([s,d.pathnameBase]))}return o}function Ro(n,e){typeof n=="string"&&(n={path:n,caseSensitive:!1,end:!0});let[t,r]=E1(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:d},f)=>{if(h==="*"){let m=a[f]||"";o=s.slice(0,s.length-m.length).replace(/(.)\/+$/,"$1")}const p=a[f];return d&&!p?c[h]=void 0:c[h]=(p||"").replace(/%2F/g,"/"),c},{}),pathname:s,pathnameBase:o,pattern:n}}function E1(n,e=!1,t=!0){Ae(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 T1(n){try{return n.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return Ae(!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 wt(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 L1({basename:n,pathname:e}){return e==="/"?n:_t([n,e])}var Tp=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ha=n=>Tp.test(n);function R1(n,e="/"){let{pathname:t,search:r="",hash:i=""}=typeof n=="string"?Mn(n):n,s;if(t)if(ha(t))s=t;else{if(t.includes("//")){let o=t;t=t.replace(/\/\/+/g,"/"),Ae(!1,`Pathnames cannot have embedded double slashes - normalizing ${o} -> ${t}`)}t.startsWith("/")?s=fu(t.substring(1),"/"):s=fu(t,e)}else s=e;return{pathname:s,search:B1(r),hash:$1(i)}}function fu(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 Ra(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 Lp(n){return n.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function ua(n){let e=Lp(n);return e.map((t,r)=>r===e.length-1?t.pathname:t.pathnameBase)}function da(n,e,t,r=!1){let i;typeof n=="string"?i=Mn(n):(i={...n},le(!i.pathname||!i.pathname.includes("?"),Ra("?","pathname","search",i)),le(!i.pathname||!i.pathname.includes("#"),Ra("#","pathname","hash",i)),le(!i.search||!i.search.includes("#"),Ra("#","search","hash",i)));let s=n===""||i.pathname==="",o=s?"/":i.pathname,a;if(o==null)a=t;else{let d=e.length-1;if(!r&&o.startsWith("..")){let f=o.split("/");for(;f[0]==="..";)f.shift(),d-=1;i.pathname=f.join("/")}a=d>=0?e[d]:"/"}let l=R1(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,"/"),I1=n=>n.replace(/\/+$/,"").replace(/^\/*/,"/"),B1=n=>!n||n==="?"?"":n.startsWith("?")?n:"?"+n,$1=n=>!n||n==="#"?"":n.startsWith("#")?n:"#"+n,xs=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 mi(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.internal=="boolean"&&"data"in n}function vs(n){return n.map(e=>e.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Rp=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ip(n,e){let t=n;if(typeof t!="string"||!Tp.test(t))return{absoluteURL:void 0,isExternal:!1,to:t};let r=t,i=!1;if(Rp)try{let s=new URL(window.location.href),o=t.startsWith("//")?new URL(s.protocol+t):new URL(t),a=wt(o.pathname,e);o.origin===s.origin&&a!=null?t=a+o.search+o.hash:i=!0}catch{Ae(!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 yn=Symbol("Uninstrumented");function F1(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=lr(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=lr(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[yn]??s,a=lr(t[i],o,(...l)=>pu(l[0]));a&&(a[yn]=o,r[i]=a)}}),e.middleware&&e.middleware.length>0&&t.middleware.length>0&&(r.middleware=e.middleware.map(i=>{let s=i[yn]??i,o=lr(t.middleware,s,(...a)=>pu(a[0]));return o?(o[yn]=s,o):i})),r}function V1(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[yn]??n.navigate,i=lr(t.navigate,r,(...s)=>{let[o,a]=s;return{to:typeof o=="number"||typeof o=="string"?o:o?Kt(o):".",...mu(n,a??{})}});i&&(i[yn]=r,n.navigate=i)}if(t.fetch.length>0){let r=n.fetch[yn]??n.fetch,i=lr(t.fetch,r,(...s)=>{let[o,,a,l]=s;return{href:a??".",fetcherKey:o,...mu(n,l??{})}});i&&(i[yn]=r,n.fetch=i)}return n}function lr(n,e,t){return n.length===0?null:async(...r)=>{let i=await Bp(n,t(...r),()=>e(...r),n.length-1);if(i.type==="error")throw i.value;return i.value}}async function Bp(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=Bp(n,e,t,r-1),s=await o,le(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 pu(n){let{request:e,context:t,params:r,unstable_pattern:i}=n;return{request:z1(e),params:{...r},unstable_pattern:i,context:H1(t)}}function mu(n,e){return{currentUrl:Kt(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 z1(n){return{method:n.method,url:n.url,headers:{get:(...e)=>n.headers.get(...e)}}}function H1(n){if(_1(n)){let e={...n};return Object.freeze(e),e}else return{get:e=>n.get(e)}}var W1=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function _1(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")===W1}var $p=["POST","PUT","PATCH","DELETE"],U1=new Set($p),K1=["GET",...$p],G1=new Set(K1),Fp=new Set([301,302,303,307,308]),q1=new Set([307,308]),Ia={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Y1={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},J1=n=>({hasErrorBoundary:!!n.hasErrorBoundary}),Vp="remix-router-transitions",zp=Symbol("ResetLoaderData");function Q1(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";le(n.routes.length>0,"You must provide a non-empty routes array to createRouter");let r=n.hydrationRouteProperties||[],i=n.mapRouteProperties||J1,s=i;if(n.unstable_instrumentations){let w=n.unstable_instrumentations;s=j=>({...i(j),...F1(w.map(M=>M.route).filter(Boolean),j)})}let o={},a=pi(n.routes,s,void 0,o),l,c=n.basename||"/";c.startsWith("/")||(c=`/${c}`);let h=n.dataStrategy||ny,d={...n.future},f=null,p=new Set,m=null,g=null,y=null,v=n.hydrationData!=null,S=pn(a,n.history.location,c),C=!1,A=null,k;if(S==null&&!n.patchRoutesOnNavigation){let w=mt(404,{pathname:n.history.location.pathname}),{matches:j,route:M}=Ws(a);k=!0,S=j,A={[M.id]:w}}else if(S&&!n.hydrationData&&$s(S,a,n.history.location.pathname).active&&(S=null),S)if(S.some(w=>w.route.lazy))k=!1;else if(!S.some(w=>Vc(w.route)))k=!0;else{let w=n.hydrationData?n.hydrationData.loaderData:null,j=n.hydrationData?n.hydrationData.errors:null;if(j){let M=S.findIndex($=>j[$.route.id]!==void 0);k=S.slice(0,M+1).every($=>!zl($.route,w,j))}else k=S.every(M=>!zl(M.route,w,j))}else{k=!1,S=[];let w=$s(null,a,n.history.location.pathname);w.active&&w.matches&&(C=!0,S=w.matches)}let O,x={historyAction:n.history.action,location:n.history.location,matches:S,initialized:k,navigation:Ia,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},E="POP",P=null,I=!1,L,B=!1,z=new Map,W=null,N=!1,R=!1,F=new Set,G=new Map,J=0,se=-1,Y=new Map,ae=new Set,ee=new Map,de=new Map,fe=new Set,je=new Map,ot,Xt=null;function Is(){if(f=n.history.listen(({action:w,location:j,delta:M})=>{if(ot){ot(),ot=void 0;return}Ae(je.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 $=tu({currentLocation:x.location,nextLocation:j,historyAction:w});if($&&M!=null){let V=new Promise(X=>{ot=X});n.history.go(M*-1),Bs($,{state:"blocked",location:j,proceed(){Bs($,{state:"proceeding",proceed:void 0,reset:void 0,location:j}),V.then(()=>n.history.go(M))},reset(){let X=new Map(x.blockers);X.set($,_r),We({blockers:X})}}),P?.resolve(),P=null;return}return Tn(w,j)}),t){vy(e,z);let w=()=>wy(e,z);e.addEventListener("pagehide",w),W=()=>e.removeEventListener("pagehide",w)}return x.initialized||Tn("POP",x.location,{initialHydration:!0}),O}function Vr(){f&&f(),W&&W(),p.clear(),L&&L.abort(),x.fetchers.forEach((w,j)=>Da(j)),x.blockers.forEach((w,j)=>eu(j))}function Fb(w){return p.add(w),()=>p.delete(w)}function We(w,j={}){w.matches&&(w.matches=w.matches.map(V=>{let X=o[V.route.id],q=V.route;return q.element!==X.element||q.errorElement!==X.errorElement||q.hydrateFallbackElement!==X.hydrateFallbackElement?{...V,route:X}:V})),x={...x,...w};let M=[],$=[];x.fetchers.forEach((V,X)=>{V.state==="idle"&&(fe.has(X)?M.push(X):$.push(X))}),fe.forEach(V=>{!x.fetchers.has(V)&&!G.has(V)&&M.push(V)}),[...p].forEach(V=>V(x,{deletedFetchers:M,newErrors:w.errors??null,viewTransitionOpts:j.viewTransitionOpts,flushSync:j.flushSync===!0})),M.forEach(V=>Da(V)),$.forEach(V=>x.fetchers.delete(V))}function nr(w,j,{flushSync:M}={}){let $=x.actionData!=null&&x.navigation.formMethod!=null&&Ue(x.navigation.formMethod)&&x.navigation.state==="loading"&&w.state?._isRedirect!==!0,V;j.actionData?Object.keys(j.actionData).length>0?V=j.actionData:V=null:$?V=x.actionData:V=null;let X=j.loaderData?ju(x.loaderData,j.loaderData,j.matches||[],j.errors):x.loaderData,q=x.blockers;q.size>0&&(q=new Map(q),q.forEach((ie,te)=>q.set(te,_r)));let Q=N?!1:ru(w,j.matches||x.matches),Z=I===!0||x.navigation.formMethod!=null&&Ue(x.navigation.formMethod)&&w.state?._isRedirect!==!0;l&&(a=l,l=void 0),N||E==="POP"||(E==="PUSH"?n.history.push(w,w.state):E==="REPLACE"&&n.history.replace(w,w.state));let re;if(E==="POP"){let ie=z.get(x.location.pathname);ie&&ie.has(w.pathname)?re={currentLocation:x.location,nextLocation:w}:z.has(w.pathname)&&(re={currentLocation:w,nextLocation:x.location})}else if(B){let ie=z.get(x.location.pathname);ie?ie.add(w.pathname):(ie=new Set([w.pathname]),z.set(x.location.pathname,ie)),re={currentLocation:x.location,nextLocation:w}}We({...j,actionData:V,loaderData:X,historyAction:E,location:w,initialized:!0,navigation:Ia,revalidation:"idle",restoreScrollPosition:Q,preventScrollReset:Z,blockers:q},{viewTransitionOpts:re,flushSync:M===!0}),E="POP",I=!1,B=!1,N=!1,R=!1,P?.resolve(),P=null,Xt?.resolve(),Xt=null}async function Gh(w,j){if(P?.resolve(),P=null,typeof w=="number"){P||(P=Mu());let ge=P.promise;return n.history.go(w),ge}let M=Vl(x.location,x.matches,c,w,j?.fromRouteId,j?.relative),{path:$,submission:V,error:X}=gu(!1,M,j),q=x.location,Q=fi(x.location,$,j&&j.state);Q={...Q,...n.history.encodeLocation(Q)};let Z=j&&j.replace!=null?j.replace:void 0,re="PUSH";Z===!0?re="REPLACE":Z===!1||V!=null&&Ue(V.formMethod)&&V.formAction===x.location.pathname+x.location.search&&(re="REPLACE");let ie=j&&"preventScrollReset"in j?j.preventScrollReset===!0:void 0,te=(j&&j.flushSync)===!0,me=tu({currentLocation:q,nextLocation:Q,historyAction:re});if(me){Bs(me,{state:"blocked",location:Q,proceed(){Bs(me,{state:"proceeding",proceed:void 0,reset:void 0,location:Q}),Gh(w,j)},reset(){let ge=new Map(x.blockers);ge.set(me,_r),We({blockers:ge})}});return}await Tn(re,Q,{submission:V,pendingError:X,preventScrollReset:ie,replace:j&&j.replace,enableViewTransition:j&&j.viewTransition,flushSync:te,callSiteDefaultShouldRevalidate:j&&j.unstable_defaultShouldRevalidate})}function Vb(){Xt||(Xt=Mu()),Na(),We({revalidation:"loading"});let w=Xt.promise;return x.navigation.state==="submitting"?w:x.navigation.state==="idle"?(Tn(x.historyAction,x.location,{startUninterruptedRevalidation:!0}),w):(Tn(E||x.historyAction,x.navigation.location,{overrideNavigation:x.navigation,enableViewTransition:B===!0}),w)}async function Tn(w,j,M){L&&L.abort(),L=null,E=w,N=(M&&M.startUninterruptedRevalidation)===!0,Qb(x.location,x.matches),I=(M&&M.preventScrollReset)===!0,B=(M&&M.enableViewTransition)===!0;let $=l||a,V=M&&M.overrideNavigation,X=M?.initialHydration&&x.matches&&x.matches.length>0&&!C?x.matches:pn($,j,c),q=(M&&M.flushSync)===!0;if(X&&x.initialized&&!R&&hy(x.location,j)&&!(M&&M.submission&&Ue(M.submission.formMethod))){nr(j,{matches:X},{flushSync:q});return}let Q=$s(X,$,j.pathname);if(Q.active&&Q.matches&&(X=Q.matches),!X){let{error:Ie,notFoundMatches:Ye,route:xe}=Ea(j.pathname);nr(j,{matches:Ye,loaderData:{},errors:{[xe.id]:Ie}},{flushSync:q});return}L=new AbortController;let Z=sr(n.history,j,L.signal,M&&M.submission),re=n.getContext?await n.getContext():new hu,ie;if(M&&M.pendingError)ie=[mn(X).route.id,{type:"error",error:M.pendingError}];else if(M&&M.submission&&Ue(M.submission.formMethod)){let Ie=await zb(Z,j,M.submission,X,re,Q.active,M&&M.initialHydration===!0,{replace:M.replace,flushSync:q});if(Ie.shortCircuited)return;if(Ie.pendingActionResult){let[Ye,xe]=Ie.pendingActionResult;if(ht(xe)&&mi(xe.error)&&xe.error.status===404){L=null,nr(j,{matches:Ie.matches,loaderData:{},errors:{[Ye]:xe.error}});return}}X=Ie.matches||X,ie=Ie.pendingActionResult,V=Ba(j,M.submission),q=!1,Q.active=!1,Z=sr(n.history,Z.url,Z.signal)}let{shortCircuited:te,matches:me,loaderData:ge,errors:$e}=await Hb(Z,j,X,re,Q.active,V,M&&M.submission,M&&M.fetcherSubmission,M&&M.replace,M&&M.initialHydration===!0,q,ie,M&&M.callSiteDefaultShouldRevalidate);te||(L=null,nr(j,{matches:me||X,...Ou(ie),loaderData:ge,errors:$e}))}async function zb(w,j,M,$,V,X,q,Q={}){Na();let Z=yy(j,M);if(We({navigation:Z},{flushSync:Q.flushSync===!0}),X){let te=await Fs($,j.pathname,w.signal);if(te.type==="aborted")return{shortCircuited:!0};if(te.type==="error"){if(te.partialMatches.length===0){let{matches:ge,route:$e}=Ws(a);return{matches:ge,pendingActionResult:[$e.id,{type:"error",error:te.error}]}}let me=mn(te.partialMatches).route.id;return{matches:te.partialMatches,pendingActionResult:[me,{type:"error",error:te.error}]}}else if(te.matches)$=te.matches;else{let{notFoundMatches:me,error:ge,route:$e}=Ea(j.pathname);return{matches:me,pendingActionResult:[$e.id,{type:"error",error:ge}]}}}let re,ie=ko($,j);if(!ie.route.action&&!ie.route.lazy)re={type:"error",error:mt(405,{method:w.method,pathname:j.pathname,routeId:ie.route.id})};else{let te=fr(s,o,w,$,ie,q?[]:r,V),me=await zr(w,te,V,null);if(re=me[ie.route.id],!re){for(let ge of $)if(me[ge.route.id]){re=me[ge.route.id];break}}if(w.signal.aborted)return{shortCircuited:!0}}if(Hn(re)){let te;return Q&&Q.replace!=null?te=Q.replace:te=ku(re.response.headers.get("Location"),new URL(w.url),c)===x.location.pathname+x.location.search,await Ln(w,re,!0,{submission:M,replace:te}),{shortCircuited:!0}}if(ht(re)){let te=mn($,ie.route.id);return(Q&&Q.replace)!==!0&&(E="PUSH"),{matches:$,pendingActionResult:[te.route.id,re,ie.route.id]}}return{matches:$,pendingActionResult:[ie.route.id,re]}}async function Hb(w,j,M,$,V,X,q,Q,Z,re,ie,te,me){let ge=X||Ba(j,q),$e=q||Q||Au(ge),Ie=!N&&!re;if(V){if(Ie){let _e=qh(te);We({navigation:ge,..._e!==void 0?{actionData:_e}:{}},{flushSync:ie})}let pe=await Fs(M,j.pathname,w.signal);if(pe.type==="aborted")return{shortCircuited:!0};if(pe.type==="error"){if(pe.partialMatches.length===0){let{matches:rr,route:Bn}=Ws(a);return{matches:rr,loaderData:{},errors:{[Bn.id]:pe.error}}}let _e=mn(pe.partialMatches).route.id;return{matches:pe.partialMatches,loaderData:{},errors:{[_e]:pe.error}}}else if(pe.matches)M=pe.matches;else{let{error:_e,notFoundMatches:rr,route:Bn}=Ea(j.pathname);return{matches:rr,loaderData:{},errors:{[Bn.id]:_e}}}}let Ye=l||a,{dsMatches:xe,revalidatingFetchers:pt}=bu(w,$,s,o,n.history,x,M,$e,j,re?[]:r,re===!0,R,F,fe,ee,ae,Ye,c,n.patchRoutesOnNavigation!=null,te,me);if(se=++J,!n.dataStrategy&&!xe.some(pe=>pe.shouldLoad)&&!xe.some(pe=>pe.route.middleware&&pe.route.middleware.length>0)&&pt.length===0){let pe=Xh();return nr(j,{matches:M,loaderData:{},errors:te&&ht(te[1])?{[te[0]]:te[1].error}:null,...Ou(te),...pe?{fetchers:new Map(x.fetchers)}:{}},{flushSync:ie}),{shortCircuited:!0}}if(Ie){let pe={};if(!V){pe.navigation=ge;let _e=qh(te);_e!==void 0&&(pe.actionData=_e)}pt.length>0&&(pe.fetchers=Wb(pt)),We(pe,{flushSync:ie})}pt.forEach(pe=>{tn(pe.key),pe.controller&&G.set(pe.key,pe.controller)});let Rn=()=>pt.forEach(pe=>tn(pe.key));L&&L.signal.addEventListener("abort",Rn);let{loaderResults:Hr,fetcherResults:hn}=await Yh(xe,pt,w,$);if(w.signal.aborted)return{shortCircuited:!0};L&&L.signal.removeEventListener("abort",Rn),pt.forEach(pe=>G.delete(pe.key));let Et=_s(Hr);if(Et)return await Ln(w,Et.result,!0,{replace:Z}),{shortCircuited:!0};if(Et=_s(hn),Et)return ae.add(Et.key),await Ln(w,Et.result,!0,{replace:Z}),{shortCircuited:!0};let{loaderData:Ta,errors:Wr}=Cu(x,M,Hr,te,pt,hn);re&&x.errors&&(Wr={...x.errors,...Wr});let In=Xh(),Vs=Zh(se),zs=In||Vs||pt.length>0;return{matches:M,loaderData:Ta,errors:Wr,...zs?{fetchers:new Map(x.fetchers)}:{}}}function qh(w){if(w&&!ht(w[1]))return{[w[0]]:w[1].data};if(x.actionData)return Object.keys(x.actionData).length===0?null:x.actionData}function Wb(w){return w.forEach(j=>{let M=x.fetchers.get(j.key),$=Ur(void 0,M?M.data:void 0);x.fetchers.set(j.key,$)}),new Map(x.fetchers)}async function _b(w,j,M,$){tn(w);let V=($&&$.flushSync)===!0,X=l||a,q=Vl(x.location,x.matches,c,M,j,$?.relative),Q=pn(X,q,c),Z=$s(Q,X,q);if(Z.active&&Z.matches&&(Q=Z.matches),!Q){en(w,j,mt(404,{pathname:q}),{flushSync:V});return}let{path:re,submission:ie,error:te}=gu(!0,q,$);if(te){en(w,j,te,{flushSync:V});return}let me=n.getContext?await n.getContext():new hu,ge=($&&$.preventScrollReset)===!0;if(ie&&Ue(ie.formMethod)){await Ub(w,j,re,Q,me,Z.active,V,ge,ie,$&&$.unstable_defaultShouldRevalidate);return}ee.set(w,{routeId:j,path:re}),await Kb(w,j,re,Q,me,Z.active,V,ge,ie)}async function Ub(w,j,M,$,V,X,q,Q,Z,re){Na(),ee.delete(w);let ie=x.fetchers.get(w);Zt(w,xy(Z,ie),{flushSync:q});let te=new AbortController,me=sr(n.history,M,te.signal,Z);if(X){let Oe=await Fs($,new URL(me.url).pathname,me.signal,w);if(Oe.type==="aborted")return;if(Oe.type==="error"){en(w,j,Oe.error,{flushSync:q});return}else if(Oe.matches)$=Oe.matches;else{en(w,j,mt(404,{pathname:M}),{flushSync:q});return}}let ge=ko($,M);if(!ge.route.action&&!ge.route.lazy){let Oe=mt(405,{method:Z.formMethod,pathname:M,routeId:j});en(w,j,Oe,{flushSync:q});return}G.set(w,te);let $e=J,Ie=fr(s,o,me,$,ge,r,V),Ye=await zr(me,Ie,V,w),xe=Ye[ge.route.id];if(!xe){for(let Oe of Ie)if(Ye[Oe.route.id]){xe=Ye[Oe.route.id];break}}if(me.signal.aborted){G.get(w)===te&&G.delete(w);return}if(fe.has(w)){if(Hn(xe)||ht(xe)){Zt(w,nn(void 0));return}}else{if(Hn(xe))if(G.delete(w),se>$e){Zt(w,nn(void 0));return}else return ae.add(w),Zt(w,Ur(Z)),Ln(me,xe,!1,{fetcherSubmission:Z,preventScrollReset:Q});if(ht(xe)){en(w,j,xe.error);return}}let pt=x.navigation.location||x.location,Rn=sr(n.history,pt,te.signal),Hr=l||a,hn=x.navigation.state!=="idle"?pn(Hr,x.navigation.location,c):x.matches;le(hn,"Didn't find any matches after fetcher action");let Et=++J;Y.set(w,Et);let Ta=Ur(Z,xe.data);x.fetchers.set(w,Ta);let{dsMatches:Wr,revalidatingFetchers:In}=bu(Rn,V,s,o,n.history,x,hn,Z,pt,r,!1,R,F,fe,ee,ae,Hr,c,n.patchRoutesOnNavigation!=null,[ge.route.id,xe],re);In.filter(Oe=>Oe.key!==w).forEach(Oe=>{let Hs=Oe.key,su=x.fetchers.get(Hs),e1=Ur(void 0,su?su.data:void 0);x.fetchers.set(Hs,e1),tn(Hs),Oe.controller&&G.set(Hs,Oe.controller)}),We({fetchers:new Map(x.fetchers)});let Vs=()=>In.forEach(Oe=>tn(Oe.key));te.signal.addEventListener("abort",Vs);let{loaderResults:zs,fetcherResults:pe}=await Yh(Wr,In,Rn,V);if(te.signal.aborted)return;if(te.signal.removeEventListener("abort",Vs),Y.delete(w),G.delete(w),In.forEach(Oe=>G.delete(Oe.key)),x.fetchers.has(w)){let Oe=nn(xe.data);x.fetchers.set(w,Oe)}let _e=_s(zs);if(_e)return Ln(Rn,_e.result,!1,{preventScrollReset:Q});if(_e=_s(pe),_e)return ae.add(_e.key),Ln(Rn,_e.result,!1,{preventScrollReset:Q});let{loaderData:rr,errors:Bn}=Cu(x,hn,zs,void 0,In,pe);Zh(Et),x.navigation.state==="loading"&&Et>se?(le(E,"Expected pending action"),L&&L.abort(),nr(x.navigation.location,{matches:hn,loaderData:rr,errors:Bn,fetchers:new Map(x.fetchers)})):(We({errors:Bn,loaderData:ju(x.loaderData,rr,hn,Bn),fetchers:new Map(x.fetchers)}),R=!1)}async function Kb(w,j,M,$,V,X,q,Q,Z){let re=x.fetchers.get(w);Zt(w,Ur(Z,re?re.data:void 0),{flushSync:q});let ie=new AbortController,te=sr(n.history,M,ie.signal);if(X){let xe=await Fs($,new URL(te.url).pathname,te.signal,w);if(xe.type==="aborted")return;if(xe.type==="error"){en(w,j,xe.error,{flushSync:q});return}else if(xe.matches)$=xe.matches;else{en(w,j,mt(404,{pathname:M}),{flushSync:q});return}}let me=ko($,M);G.set(w,ie);let ge=J,$e=fr(s,o,te,$,me,r,V),Ye=(await zr(te,$e,V,w))[me.route.id];if(G.get(w)===ie&&G.delete(w),!te.signal.aborted){if(fe.has(w)){Zt(w,nn(void 0));return}if(Hn(Ye))if(se>ge){Zt(w,nn(void 0));return}else{ae.add(w),await Ln(te,Ye,!1,{preventScrollReset:Q});return}if(ht(Ye)){en(w,j,Ye.error);return}Zt(w,nn(Ye.data))}}async function Ln(w,j,M,{submission:$,fetcherSubmission:V,preventScrollReset:X,replace:q}={}){M||(P?.resolve(),P=null),j.response.headers.has("X-Remix-Revalidate")&&(R=!0);let Q=j.response.headers.get("Location");le(Q,"Expected a Location header on the redirect Response"),Q=ku(Q,new URL(w.url),c);let Z=fi(x.location,Q,{_isRedirect:!0});if(t){let $e=!1;if(j.response.headers.has("X-Remix-Reload-Document"))$e=!0;else if(ha(Q)){const Ie=Np(Q,!0);$e=Ie.origin!==e.location.origin||wt(Ie.pathname,c)==null}if($e){q?e.location.replace(Q):e.location.assign(Q);return}}L=null;let re=q===!0||j.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:ie,formAction:te,formEncType:me}=x.navigation;!$&&!V&&ie&&te&&me&&($=Au(x.navigation));let ge=$||V;if(q1.has(j.response.status)&&ge&&Ue(ge.formMethod))await Tn(re,Z,{submission:{...ge,formAction:Q},preventScrollReset:X||I,enableViewTransition:M?B:void 0});else{let $e=Ba(Z,$);await Tn(re,Z,{overrideNavigation:$e,fetcherSubmission:V,preventScrollReset:X||I,enableViewTransition:M?B:void 0})}}async function zr(w,j,M,$){let V,X={};try{V=await iy(h,w,j,$,M,!1)}catch(q){return j.filter(Q=>Q.shouldLoad).forEach(Q=>{X[Q.route.id]={type:"error",error:q}}),X}if(w.signal.aborted)return X;if(!Ue(w.method))for(let q of j){if(V[q.route.id]?.type==="error")break;!V.hasOwnProperty(q.route.id)&&!x.loaderData.hasOwnProperty(q.route.id)&&(!x.errors||!x.errors.hasOwnProperty(q.route.id))&&q.shouldCallHandler()&&(V[q.route.id]={type:"error",result:new Error(`No result returned from dataStrategy for route ${q.route.id}`)})}for(let[q,Q]of Object.entries(V))if(py(Q)){let Z=Q.result;X[q]={type:"redirect",response:ly(Z,w,q,j,c)}}else X[q]=await ay(Q);return X}async function Yh(w,j,M,$){let V=zr(M,w,$,null),X=Promise.all(j.map(async Z=>{if(Z.matches&&Z.match&&Z.request&&Z.controller){let ie=(await zr(Z.request,Z.matches,$,Z.key))[Z.match.route.id];return{[Z.key]:ie}}else return Promise.resolve({[Z.key]:{type:"error",error:mt(404,{pathname:Z.path})}})})),q=await V,Q=(await X).reduce((Z,re)=>Object.assign(Z,re),{});return{loaderResults:q,fetcherResults:Q}}function Na(){R=!0,ee.forEach((w,j)=>{G.has(j)&&F.add(j),tn(j)})}function Zt(w,j,M={}){x.fetchers.set(w,j),We({fetchers:new Map(x.fetchers)},{flushSync:(M&&M.flushSync)===!0})}function en(w,j,M,$={}){let V=mn(x.matches,j);Da(w),We({errors:{[V.route.id]:M},fetchers:new Map(x.fetchers)},{flushSync:($&&$.flushSync)===!0})}function Jh(w){return de.set(w,(de.get(w)||0)+1),fe.has(w)&&fe.delete(w),x.fetchers.get(w)||Y1}function Gb(w,j){tn(w,j?.reason),Zt(w,nn(null))}function Da(w){let j=x.fetchers.get(w);G.has(w)&&!(j&&j.state==="loading"&&Y.has(w))&&tn(w),ee.delete(w),Y.delete(w),ae.delete(w),fe.delete(w),F.delete(w),x.fetchers.delete(w)}function qb(w){let j=(de.get(w)||0)-1;j<=0?(de.delete(w),fe.add(w)):de.set(w,j),We({fetchers:new Map(x.fetchers)})}function tn(w,j){let M=G.get(w);M&&(M.abort(j),G.delete(w))}function Qh(w){for(let j of w){let M=Jh(j),$=nn(M.data);x.fetchers.set(j,$)}}function Xh(){let w=[],j=!1;for(let M of ae){let $=x.fetchers.get(M);le($,`Expected fetcher: ${M}`),$.state==="loading"&&(ae.delete(M),w.push(M),j=!0)}return Qh(w),j}function Zh(w){let j=[];for(let[M,$]of Y)if($<w){let V=x.fetchers.get(M);le(V,`Expected fetcher: ${M}`),V.state==="loading"&&(tn(M),Y.delete(M),j.push(M))}return Qh(j),j.length>0}function Yb(w,j){let M=x.blockers.get(w)||_r;return je.get(w)!==j&&je.set(w,j),M}function eu(w){x.blockers.delete(w),je.delete(w)}function Bs(w,j){let M=x.blockers.get(w)||_r;le(M.state==="unblocked"&&j.state==="blocked"||M.state==="blocked"&&j.state==="blocked"||M.state==="blocked"&&j.state==="proceeding"||M.state==="blocked"&&j.state==="unblocked"||M.state==="proceeding"&&j.state==="unblocked",`Invalid blocker state transition: ${M.state} -> ${j.state}`);let $=new Map(x.blockers);$.set(w,j),We({blockers:$})}function tu({currentLocation:w,nextLocation:j,historyAction:M}){if(je.size===0)return;je.size>1&&Ae(!1,"A router only supports one blocker at a time");let $=Array.from(je.entries()),[V,X]=$[$.length-1],q=x.blockers.get(V);if(!(q&&q.state==="proceeding")&&X({currentLocation:w,nextLocation:j,historyAction:M}))return V}function Ea(w){let j=mt(404,{pathname:w}),M=l||a,{matches:$,route:V}=Ws(M);return{notFoundMatches:$,route:V,error:j}}function Jb(w,j,M){if(m=w,y=j,g=M||null,!v&&x.navigation===Ia){v=!0;let $=ru(x.location,x.matches);$!=null&&We({restoreScrollPosition:$})}return()=>{m=null,y=null,g=null}}function nu(w,j){return g&&g(w,j.map($=>w1($,x.loaderData)))||w.key}function Qb(w,j){if(m&&y){let M=nu(w,j);m[M]=y()}}function ru(w,j){if(m){let M=nu(w,j),$=m[M];if(typeof $=="number")return $}return null}function $s(w,j,M){if(n.patchRoutesOnNavigation)if(w){if(Object.keys(w[0].params).length>0)return{active:!0,matches:Zr(j,M,c,!0)}}else return{active:!0,matches:Zr(j,M,c,!0)||[]};return{active:!1,matches:null}}async function Fs(w,j,M,$){if(!n.patchRoutesOnNavigation)return{type:"success",matches:w};let V=w;for(;;){let X=l==null,q=l||a,Q=o;try{await n.patchRoutesOnNavigation({signal:M,path:j,matches:V,fetcherKey:$,patch:(ie,te)=>{M.aborted||yu(ie,te,q,Q,s,!1)}})}catch(ie){return{type:"error",error:ie,partialMatches:V}}finally{X&&!M.aborted&&(a=[...a])}if(M.aborted)return{type:"aborted"};let Z=pn(q,j,c),re=null;if(Z){if(Object.keys(Z[0].params).length===0)return{type:"success",matches:Z};if(re=Zr(q,j,c,!0),!(re&&V.length<re.length&&iu(V,re.slice(0,V.length))))return{type:"success",matches:Z}}if(re||(re=Zr(q,j,c,!0)),!re||iu(V,re))return{type:"success",matches:null};V=re}}function iu(w,j){return w.length===j.length&&w.every((M,$)=>M.route.id===j[$].route.id)}function Xb(w){o={},l=pi(w,s,void 0,o)}function Zb(w,j,M=!1){let $=l==null;yu(w,j,l||a,o,s,M),$&&(a=[...a],We({}))}return O={get basename(){return c},get future(){return d},get state(){return x},get routes(){return a},get window(){return e},initialize:Is,subscribe:Fb,enableScrollRestoration:Jb,navigate:Gh,fetch:_b,revalidate:Vb,createHref:w=>n.history.createHref(w),encodeLocation:w=>n.history.encodeLocation(w),getFetcher:Jh,resetFetcher:Gb,deleteFetcher:qb,dispose:Vr,getBlocker:Yb,deleteBlocker:eu,patchRoutes:Zb,_internalFetchControllers:G,_internalSetRoutes:Xb,_internalSetStateDoNotUseOrYouWillBreakYourApp(w){We(w)}},n.unstable_instrumentations&&(O=V1(O,n.unstable_instrumentations.map(w=>w.router).filter(Boolean))),O}function X1(n){return n!=null&&("formData"in n&&n.formData!=null||"body"in n&&n.body!==void 0)}function Vl(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=da(r||".",ua(o),wt(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=Hc(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),d=h.getAll("index");h.delete("index"),d.filter(p=>p).forEach(p=>h.append("index",p));let f=h.toString();l.search=f?`?${f}`:""}}return t!=="/"&&(l.pathname=L1({basename:t,pathname:l.pathname})),Kt(l)}function gu(n,e,t){if(!t||!X1(t))return{path:e};if(t.formMethod&&!by(t.formMethod))return{path:e,error:mt(405,{method:t.formMethod})};let r=()=>({path:e,error:mt(400,{type:"invalid-body"})}),s=(t.formMethod||"get").toUpperCase(),o=Gp(e);if(t.body!==void 0){if(t.formEncType==="text/plain"){if(!Ue(s))return r();let d=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:d}}}else if(t.formEncType==="application/json"){if(!Ue(s))return r();try{let d=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:d,text:void 0}}}catch{return r()}}}le(typeof FormData=="function","FormData is not available in this environment");let a,l;if(t.formData)a=Wl(t.formData),l=t.formData;else if(t.body instanceof FormData)a=Wl(t.body),l=t.body;else if(t.body instanceof URLSearchParams)a=t.body,l=Su(a);else if(t.body==null)a=new URLSearchParams,l=new FormData;else try{a=new URLSearchParams(t.body),l=Su(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(Ue(c.formMethod))return{path:e,submission:c};let h=Mn(e);return n&&h.search&&Hc(h.search)&&a.append("index",""),h.search=`?${a}`,{path:Kt(h),submission:c}}function bu(n,e,t,r,i,s,o,a,l,c,h,d,f,p,m,g,y,v,S,C,A){let k=C?ht(C[1])?C[1].error:C[1].data:void 0,O=i.createURL(s.location),x=i.createURL(l),E;if(h&&s.errors){let N=Object.keys(s.errors)[0];E=o.findIndex(R=>R.route.id===N)}else if(C&&ht(C[1])){let N=C[0];E=o.findIndex(R=>R.route.id===N)-1}let P=C?C[1].statusCode:void 0,I=P&&P>=400,L={currentUrl:O,currentParams:s.matches[0]?.params||{},nextUrl:x,nextParams:o[0].params,...a,actionResult:k,actionStatus:P},B=vs(o),z=o.map((N,R)=>{let{route:F}=N,G=null;if(E!=null&&R>E?G=!1:F.lazy?G=!0:Vc(F)?h?G=zl(F,s.loaderData,s.errors):Z1(s.loaderData,s.matches[R],N)&&(G=!0):G=!1,G!==null)return Hl(t,r,n,B,N,c,e,G);let J=!1;typeof A=="boolean"?J=A:I?J=!1:(d||O.pathname+O.search===x.pathname+x.search||O.search!==x.search||ey(s.matches[R],N))&&(J=!0);let se={...L,defaultShouldRevalidate:J},Y=ii(N,se);return Hl(t,r,n,B,N,c,e,Y,se,A)}),W=[];return m.forEach((N,R)=>{if(h||!o.some(de=>de.route.id===N.routeId)||p.has(R))return;let F=s.fetchers.get(R),G=F&&F.state!=="idle"&&F.data===void 0,J=pn(y,N.path,v);if(!J){if(S&&G)return;W.push({key:R,routeId:N.routeId,path:N.path,matches:null,match:null,request:null,controller:null});return}if(g.has(R))return;let se=ko(J,N.path),Y=new AbortController,ae=sr(i,N.path,Y.signal),ee=null;if(f.has(R))f.delete(R),ee=fr(t,r,ae,J,se,c,e);else if(G)d&&(ee=fr(t,r,ae,J,se,c,e));else{let de;typeof A=="boolean"?de=A:I?de=!1:de=d;let fe={...L,defaultShouldRevalidate:de};ii(se,fe)&&(ee=fr(t,r,ae,J,se,c,e,fe))}ee&&W.push({key:R,routeId:N.routeId,path:N.path,matches:ee,match:se,request:ae,controller:Y})}),{dsMatches:z,revalidatingFetchers:W}}function Vc(n){return n.loader!=null||n.middleware!=null&&n.middleware.length>0}function zl(n,e,t){if(n.lazy)return!0;if(!Vc(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 Z1(n,e,t){let r=!e||t.route.id!==e.route.id,i=!n.hasOwnProperty(t.route.id);return r||i}function ey(n,e){let t=n.route.path;return n.pathname!==e.pathname||t!=null&&t.endsWith("*")&&n.params["*"]!==e.params["*"]}function ii(n,e){if(n.route.shouldRevalidate){let t=n.route.shouldRevalidate(e);if(typeof t=="boolean")return t}return e.defaultShouldRevalidate}function yu(n,e,t,r,i,s){let o;if(n){let c=r[n];le(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(d=>Hp(c,d));h?l.push({existingRoute:h,newRoute:c}):a.push(c)}),a.length>0){let c=pi(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:d}=l[c],f=h,[p]=pi([d],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 Hp(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=>Hp(t,i))):!1}var xu=new WeakMap,Wp=({key:n,route:e,manifest:t,mapRouteProperties:r})=>{let i=t[e.id];if(le(i,"No route found in manifest"),!i.lazy||typeof i.lazy!="object")return;let s=i.lazy[n];if(!s)return;let o=xu.get(i);o||(o={},xu.set(i,o));let a=o[n];if(a)return a;let l=(async()=>{let c=b1(n),d=i[n]!==void 0&&n!=="hasErrorBoundary";if(c)Ae(!c,"Route property "+n+" is not a supported lazy route property. This property will be ignored."),o[n]=Promise.resolve();else if(d)Ae(!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},vu=new WeakMap;function ty(n,e,t,r,i){let s=t[n.id];if(le(s,"No route found in manifest"),!n.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof n.lazy=="function"){let h=vu.get(s);if(h)return{lazyRoutePromise:h,lazyHandlerPromise:h};let d=(async()=>{le(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=x1(m),S=s[m]!==void 0&&m!=="hasErrorBoundary";y?Ae(!y,"Route property "+m+" is not a supported property to be returned from a lazy route function. This property will be ignored."):S?Ae(!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 vu.set(s,d),d.catch(()=>{}),{lazyRoutePromise:d,lazyHandlerPromise:d}}let o=Object.keys(n.lazy),a=[],l;for(let h of o){if(i&&i.includes(h))continue;let d=Wp({key:h,route:n,manifest:t,mapRouteProperties:r});d&&(a.push(d),h===e&&(l=d))}let c=a.length>0?Promise.all(a).then(()=>{}):void 0;return c?.catch(()=>{}),l?.catch(()=>{}),{lazyRoutePromise:c,lazyHandlerPromise:l}}async function wu(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 ny(n){return n.matches.some(e=>e.route.middleware)?_p(n,()=>wu(n)):wu(n)}function _p(n,e){return ry(n,e,r=>{if(gy(r))throw r;return r},dy,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=mn(o,o[a].route.id).route.id;return Promise.resolve({[l]:{type:"error",result:r}})}}}async function ry(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 Up({request:o,params:a,context:l,unstable_pattern:c},h,e,t,r,i)}async function Up(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,d,f=async()=>{if(d)throw new Error("You may only call `next()` once per middleware");try{return d={value:await Up(n,e,t,r,i,s,o+1)},d.value}catch(p){return d={value:await s(p,c,d)},d.value}};try{let p=await h(n,f),m=p!=null?r(p):void 0;return i(m)?m:d?m??d.value:(d={value:await f()},d.value)}catch(p){return await s(p,c,d)}}function Kp(n,e,t,r,i){let s=Wp({key:"middleware",route:r.route,manifest:e,mapRouteProperties:n}),o=ty(r.route,Ue(t.method)?"action":"loader",e,n,i);return{middleware:s,route:o.lazyRoutePromise,handler:o.lazyHandlerPromise}}function Hl(n,e,t,r,i,s,o,a,l=null,c){let h=!1,d=Kp(n,e,t,i,s);return{...i,_lazyPromises:d,shouldLoad:a,shouldRevalidateArgs:l,shouldCallHandler(f){return h=!0,l?typeof c=="boolean"?ii(i,{...l,defaultShouldRevalidate:c}):typeof f=="boolean"?ii(i,{...l,defaultShouldRevalidate:f}):ii(i,l):a},resolve(f){let{lazy:p,loader:m,middleware:g}=i.route,y=h||a||f&&!Ue(t.method)&&(p||m),v=g&&g.length>0&&!m&&!p;return y&&(Ue(t.method)||!v)?sy({request:t,unstable_pattern:r,match:i,lazyHandlerPromise:d?.handler,lazyRoutePromise:d?.route,handlerOverride:f,scopedContext:o}):Promise.resolve({type:"data",result:void 0})}}}function fr(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:Kp(n,e,t,l,s),resolve:()=>Promise.resolve({type:"data",result:void 0})}:Hl(n,e,t,vs(r),l,s,o,!0,a))}async function iy(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:vs(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 sy({request:n,unstable_pattern:e,match:t,lazyHandlerPromise:r,lazyRoutePromise:i,handlerOverride:s,scopedContext:o}){let a,l,c=Ue(n.method),h=c?"action":"loader",d=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([d(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([d(p),i]);else if(h==="action"){let m=new URL(n.url),g=m.pathname+m.search;throw mt(405,{method:n.method,pathname:g,routeId:t.route.id})}else return{type:"data",result:void 0}}else if(f)a=await d(f);else{let p=new URL(n.url),m=p.pathname+p.search;throw mt(404,{pathname:m})}}catch(f){return{type:"error",result:f}}finally{l&&n.signal.removeEventListener("abort",l)}return a}async function oy(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 ay(n){let{result:e,type:t}=n;if(zc(e)){let r;try{r=await oy(e)}catch(i){return{type:"error",error:i}}return t==="error"?{type:"error",error:new xs(e.status,e.statusText,r),statusCode:e.status,headers:e.headers}:{type:"data",data:r,statusCode:e.status,headers:e.headers}}return t==="error"?Pu(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:uy(e),statusCode:mi(e)?e.status:void 0,headers:e.init?.headers?new Headers(e.init.headers):void 0}:{type:"error",error:e,statusCode:mi(e)?e.status:void 0}:Pu(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 ly(n,e,t,r,i){let s=n.headers.get("Location");if(le(s,"Redirects returned/thrown from loaders/actions must have a Location header"),!ha(s)){let o=r.slice(0,r.findIndex(a=>a.route.id===t)+1);s=Vl(new URL(e.url),o,i,s),n.headers.set("Location",s)}return n}function ku(n,e,t){if(ha(n)){let r=n,i=r.startsWith("//")?new URL(e.protocol+r):new URL(r),s=wt(i.pathname,t)!=null;if(i.origin===e.origin&&s)return i.pathname+i.search+i.hash}return n}function sr(n,e,t,r){let i=n.createURL(Gp(e)).toString(),s={signal:t};if(r&&Ue(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=Wl(r.formData):s.body=r.formData}return new Request(i,s)}function Wl(n){let e=new URLSearchParams;for(let[t,r]of n.entries())e.append(t,typeof r=="string"?r:r.name);return e}function Su(n){let e=new FormData;for(let[t,r]of n.entries())e.append(t,r);return e}function cy(n,e,t,r=!1,i=!1){let s={},o=null,a,l=!1,c={},h=t&&ht(t[1])?t[1].error:void 0;return n.forEach(d=>{if(!(d.route.id in e))return;let f=d.route.id,p=e[f];if(le(!Hn(p),"Cannot handle redirect results in processLoaderData"),ht(p)){let m=p.error;if(h!==void 0&&(m=h,h=void 0),o=o||{},i)o[f]=m;else{let g=mn(n,f);o[g.route.id]==null&&(o[g.route.id]=m)}r||(s[f]=zp),l||(l=!0,a=mi(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 Cu(n,e,t,r,i,s){let{loaderData:o,errors:a}=cy(e,t,r);return i.filter(l=>!l.matches||l.matches.some(c=>c.shouldLoad)).forEach(l=>{let{key:c,match:h,controller:d}=l;if(d&&d.signal.aborted)return;let f=s[c];if(le(f,"Did not find corresponding fetcher result"),ht(f)){let p=mn(n.matches,h?.route.id);a&&a[p.route.id]||(a={...a,[p.route.id]:f.error}),n.fetchers.delete(c)}else if(Hn(f))le(!1,"Unhandled fetcher revalidation redirect");else{let p=nn(f.data);n.fetchers.set(c,p)}}),{loaderData:o,errors:a}}function ju(n,e,t,r){let i=Object.entries(e).filter(([,s])=>s!==zp).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 Ou(n){return n?ht(n[1])?{actionData:{}}:{actionData:{[n[0]]:n[1].data}}:{}}function mn(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 Ws(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 mt(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 xs(n||500,o,new Error(a),!0)}function _s(n){let e=Object.entries(n);for(let t=e.length-1;t>=0;t--){let[r,i]=e[t];if(Hn(i))return{key:r,result:i}}}function Gp(n){let e=typeof n=="string"?Mn(n):n;return Kt({...e,hash:""})}function hy(n,e){return n.pathname!==e.pathname||n.search!==e.search?!1:n.hash===""?e.hash!=="":n.hash===e.hash?!0:e.hash!==""}function uy(n){return new xs(n.init?.status??500,n.init?.statusText??"Internal Server Error",n.data)}function dy(n){return n!=null&&typeof n=="object"&&Object.entries(n).every(([e,t])=>typeof e=="string"&&fy(t))}function fy(n){return n!=null&&typeof n=="object"&&"type"in n&&"result"in n&&(n.type==="data"||n.type==="error")}function py(n){return zc(n.result)&&Fp.has(n.result.status)}function ht(n){return n.type==="error"}function Hn(n){return(n&&n.type)==="redirect"}function Pu(n){return typeof n=="object"&&n!=null&&"type"in n&&"data"in n&&"init"in n&&n.type==="DataWithResponseInit"}function zc(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.headers=="object"&&typeof n.body<"u"}function my(n){return Fp.has(n)}function gy(n){return zc(n)&&my(n.status)&&n.headers.has("Location")}function by(n){return G1.has(n.toUpperCase())}function Ue(n){return U1.has(n.toUpperCase())}function Hc(n){return new URLSearchParams(n).getAll("index").some(e=>e==="")}function ko(n,e){let t=typeof e=="string"?Mn(e).search:e.search;if(n[n.length-1].route.index&&Hc(t||""))return n[n.length-1];let r=Lp(n);return r[r.length-1]}function Au(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 Ba(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 yy(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 Ur(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 xy(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 nn(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 vy(n,e){try{let t=n.sessionStorage.getItem(Vp);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 wy(n,e){if(e.size>0){let t={};for(let[r,i]of e)t[r]=[...i];try{n.sessionStorage.setItem(Vp,JSON.stringify(t))}catch(r){Ae(!1,`Failed to save applied view transitions in sessionStorage (${r}).`)}}}function Mu(){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 Xn=b.createContext(null);Xn.displayName="DataRouter";var ws=b.createContext(null);ws.displayName="DataRouterState";var qp=b.createContext(!1);function ky(){return b.useContext(qp)}var Wc=b.createContext({isTransitioning:!1});Wc.displayName="ViewTransition";var Yp=b.createContext(new Map);Yp.displayName="Fetchers";var Sy=b.createContext(null);Sy.displayName="Await";var dt=b.createContext(null);dt.displayName="Navigation";var fa=b.createContext(null);fa.displayName="Location";var St=b.createContext({outlet:null,matches:[],isDataRoute:!1});St.displayName="Route";var _c=b.createContext(null);_c.displayName="RouteError";var Jp="REACT_ROUTER_ERROR",Cy="REDIRECT",jy="ROUTE_ERROR_RESPONSE";function Oy(n){if(n.startsWith(`${Jp}:${Cy}:{`))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 Py(n){if(n.startsWith(`${Jp}:${jy}:{`))try{let e=JSON.parse(n.slice(40));if(typeof e=="object"&&e&&typeof e.status=="number"&&typeof e.statusText=="string")return new xs(e.status,e.statusText,e.data)}catch{}}function Ay(n,{relative:e}={}){le(Mr(),"useHref() may be used only in the context of a <Router> component.");let{basename:t,navigator:r}=b.useContext(dt),{hash:i,pathname:s,search:o}=ks(n,{relative:e}),a=s;return t!=="/"&&(a=s==="/"?t:_t([t,s])),r.createHref({pathname:a,search:o,hash:i})}function Mr(){return b.useContext(fa)!=null}function Gt(){return le(Mr(),"useLocation() may be used only in the context of a <Router> component."),b.useContext(fa).location}var Qp="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Xp(n){b.useContext(dt).static||b.useLayoutEffect(n)}function qt(){let{isDataRoute:n}=b.useContext(St);return n?Hy():My()}function My(){le(Mr(),"useNavigate() may be used only in the context of a <Router> component.");let n=b.useContext(Xn),{basename:e,navigator:t}=b.useContext(dt),{matches:r}=b.useContext(St),{pathname:i}=Gt(),s=JSON.stringify(ua(r)),o=b.useRef(!1);return Xp(()=>{o.current=!0}),b.useCallback((l,c={})=>{if(Ae(o.current,Qp),!o.current)return;if(typeof l=="number"){t.go(l);return}let h=da(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 Zp=b.createContext(null);function em(){return b.useContext(Zp)}function Ny(n){let e=b.useContext(St).outlet;return b.useMemo(()=>e&&b.createElement(Zp.Provider,{value:n},e),[e,n])}function tm(){let{matches:n}=b.useContext(St),e=n[n.length-1];return e?e.params:{}}function ks(n,{relative:e}={}){let{matches:t}=b.useContext(St),{pathname:r}=Gt(),i=JSON.stringify(ua(t));return b.useMemo(()=>da(n,JSON.parse(i),r,e==="path"),[n,i,r,e])}function Dy(n,e,t,r,i){le(Mr(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:s}=b.useContext(dt),{matches:o}=b.useContext(St),a=o[o.length-1],l=a?a.params:{},c=a?a.pathname:"/",h=a?a.pathnameBase:"/",d=a&&a.route;{let S=d&&d.path||"";rm(c,!d||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=Gt(),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=pn(n,{pathname:g});return Ae(d||y!=null,`No routes matched location "${p.pathname}${p.search}${p.hash}" `),Ae(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.`),Iy(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=mi(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),nm=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=Py(n.digest);t&&(n=t)}let e=n!==void 0?b.createElement(St.Provider,{value:this.props.routeContext},b.createElement(_c.Provider,{value:n,children:this.props.component})):this.props.children;return this.context?b.createElement(Ly,{error:n},e):e}};nm.contextType=qp;var $a=new WeakMap;function Ly({children:n,error:e}){let{basename:t}=b.useContext(dt);if(typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){let r=Oy(e.digest);if(r){let i=$a.get(e);if(i)throw i;let s=Ip(r.location,t);if(Rp&&!$a.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 $a.set(e,o),o}return b.createElement("meta",{httpEquiv:"refresh",content:`0;url=${s.absoluteURL||s.to}`})}}return n}function Ry({routeContext:n,match:e,children:t}){let r=b.useContext(Xn);return r&&r.static&&r.staticContext&&(e.route.errorElement||e.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=e.route.id),b.createElement(St.Provider,{value:n},t)}function Iy(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(d=>d.route.id&&o?.[d.route.id]!==void 0);le(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 d=s[h];if((d.route.HydrateFallback||d.route.hydrateFallbackElement)&&(l=h),d.route.id){let{loaderData:f,errors:p}=t,m=d.route.loader&&!f.hasOwnProperty(d.route.id)&&(!p||p[d.route.id]===void 0);if(d.route.lazy||m){a=!0,l>=0?s=s.slice(0,l+1):s=[s[0]];break}}}let c=t&&r?(h,d)=>{r(h,{location:t.location,params:t.matches?.[0]?.params??{},unstable_pattern:vs(t.matches),errorInfo:d})}:void 0;return s.reduceRight((h,d,f)=>{let p,m=!1,g=null,y=null;t&&(p=o&&d.route.id?o[d.route.id]:void 0,g=d.route.errorElement||Ty,a&&(l<0&&f===0?(rm("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),m=!0,y=null):l===f&&(m=!0,y=d.route.hydrateFallbackElement||null)));let v=e.concat(s.slice(0,f+1)),S=()=>{let C;return p?C=g:m?C=y:d.route.Component?C=b.createElement(d.route.Component,null):d.route.element?C=d.route.element:C=h,b.createElement(Ry,{match:d,routeContext:{outlet:h,matches:v,isDataRoute:t!=null},children:C})};return t&&(d.route.ErrorBoundary||d.route.errorElement||f===0)?b.createElement(nm,{location:t.location,revalidation:t.revalidation,component:g,error:p,children:S(),routeContext:{outlet:null,matches:v,isDataRoute:!0},onError:c}):S()},null)}function Uc(n){return`${n} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function By(n){let e=b.useContext(Xn);return le(e,Uc(n)),e}function $y(n){let e=b.useContext(ws);return le(e,Uc(n)),e}function Fy(n){let e=b.useContext(St);return le(e,Uc(n)),e}function Kc(n){let e=Fy(n),t=e.matches[e.matches.length-1];return le(t.route.id,`${n} can only be used on routes that contain a unique "id"`),t.route.id}function Vy(){return Kc("useRouteId")}function zy(){let n=b.useContext(_c),e=$y("useRouteError"),t=Kc("useRouteError");return n!==void 0?n:e.errors?.[t]}function Hy(){let{router:n}=By("useNavigate"),e=Kc("useNavigate"),t=b.useRef(!1);return Xp(()=>{t.current=!0}),b.useCallback(async(i,s={})=>{Ae(t.current,Qp),t.current&&(typeof i=="number"?await n.navigate(i):await n.navigate(i,{fromRouteId:e,...s}))},[n,e])}var Nu={};function rm(n,e,t){!e&&!Nu[n]&&(Nu[n]=!0,Ae(!1,t))}var Du={};function Eu(n,e){!n&&!Du[e]&&(Du[e]=!0,console.warn(e))}var Wy="useOptimistic",Tu=r1[Wy],_y=()=>{};function Uy(n){return Tu?Tu(n):[n,_y]}function Ky(n){let e={hasErrorBoundary:n.hasErrorBoundary||n.ErrorBoundary!=null||n.errorElement!=null};return n.Component&&(n.element&&Ae(!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&&Ae(!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&&Ae(!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 Gy=["HydrateFallback","hydrateFallbackElement"],qy=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 Yy({router:n,flushSync:e,onError:t,unstable_useTransitions:r}){r=ky()||r;let[s,o]=b.useState(n.state),[a,l]=Uy(s),[c,h]=b.useState(),[d,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((E,{deletedFetchers:P,newErrors:I,flushSync:L,viewTransitionOpts:B})=>{I&&t&&Object.values(I).forEach(W=>t(W,{location:E.location,params:E.matches[0]?.params??{},unstable_pattern:vs(E.matches)})),E.fetchers.forEach((W,N)=>{W.data!==void 0&&C.current.set(N,W.data)}),P.forEach(W=>C.current.delete(W)),Eu(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 z=n.window!=null&&n.window.document!=null&&typeof n.window.document.startViewTransition=="function";if(Eu(B==null||z,"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."),!B||!z){e&&L?e(()=>o(E)):r===!1?o(E):b.startTransition(()=>{r===!0&&l(W=>Lu(W,E)),o(E)});return}if(e&&L){e(()=>{g&&(p?.resolve(),g.skipTransition()),f({isTransitioning:!0,flushSync:!0,currentLocation:B.currentLocation,nextLocation:B.nextLocation})});let W=n.window.document.startViewTransition(()=>{e(()=>o(E))});W.finished.finally(()=>{e(()=>{m(void 0),y(void 0),h(void 0),f({isTransitioning:!1})})}),e(()=>y(W));return}g?(p?.resolve(),g.skipTransition(),S({state:E,currentLocation:B.currentLocation,nextLocation:B.nextLocation})):(h(E),f({isTransitioning:!0,flushSync:!1,currentLocation:B.currentLocation,nextLocation:B.nextLocation}))},[n.window,e,g,p,r,l,t]);b.useLayoutEffect(()=>n.subscribe(A),[n,A]),b.useEffect(()=>{d.isTransitioning&&!d.flushSync&&m(new qy)},[d]),b.useEffect(()=>{if(p&&c&&n.window){let E=c,P=p.promise,I=n.window.document.startViewTransition(async()=>{r===!1?o(E):b.startTransition(()=>{r===!0&&l(L=>Lu(L,E)),o(E)}),await P});I.finished.finally(()=>{m(void 0),y(void 0),h(void 0),f({isTransitioning:!1})}),y(I)}},[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(()=>{!d.isTransitioning&&v&&(h(v.state),f({isTransitioning:!0,flushSync:!1,currentLocation:v.currentLocation,nextLocation:v.nextLocation}),S(void 0))},[d.isTransitioning,v]);let k=b.useMemo(()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:E=>n.navigate(E),push:(E,P,I)=>n.navigate(E,{state:P,preventScrollReset:I?.preventScrollReset}),replace:(E,P,I)=>n.navigate(E,{replace:!0,state:P,preventScrollReset:I?.preventScrollReset})}),[n]),O=n.basename||"/",x=b.useMemo(()=>({router:n,navigator:k,static:!1,basename:O,onError:t}),[n,k,O,t]);return b.createElement(b.Fragment,null,b.createElement(Xn.Provider,{value:x},b.createElement(ws.Provider,{value:a},b.createElement(Yp.Provider,{value:C.current},b.createElement(Wc.Provider,{value:d},b.createElement(Zy,{basename:O,location:a.location,navigationType:a.historyAction,navigator:k,unstable_useTransitions:r},b.createElement(Jy,{routes:n.routes,future:n.future,state:a,onError:t})))))),null)}function Lu(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 Jy=b.memo(Qy);function Qy({routes:n,future:e,state:t,onError:r}){return Dy(n,void 0,t,r,e)}function _l({to:n,replace:e,state:t,relative:r}){le(Mr(),"<Navigate> may be used only in the context of a <Router> component.");let{static:i}=b.useContext(dt);Ae(!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(St),{pathname:o}=Gt(),a=qt(),l=da(n,ua(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 Xy(n){return Ny(n.context)}function Zy({basename:n="/",children:e=null,location:t,navigationType:r="POP",navigator:i,static:s=!1,unstable_useTransitions:o}){le(!Mr(),"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=Mn(t));let{pathname:c="/",search:h="",hash:d="",state:f=null,key:p="default"}=t,m=b.useMemo(()=>{let g=wt(c,a);return g==null?null:{location:{pathname:g,search:h,hash:d,state:f,key:p},navigationType:r}},[a,c,h,d,f,p,r]);return Ae(m!=null,`<Router basename="${a}"> is not able to match the URL "${c}${h}${d}" because it does not start with the basename, so the <Router> won't render anything.`),m==null?null:b.createElement(dt.Provider,{value:l},b.createElement(fa.Provider,{children:e,value:m}))}var So="get",Co="application/x-www-form-urlencoded";function pa(n){return typeof HTMLElement<"u"&&n instanceof HTMLElement}function ex(n){return pa(n)&&n.tagName.toLowerCase()==="button"}function tx(n){return pa(n)&&n.tagName.toLowerCase()==="form"}function nx(n){return pa(n)&&n.tagName.toLowerCase()==="input"}function rx(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}function ix(n,e){return n.button===0&&(!e||e==="_self")&&!rx(n)}var Us=null;function sx(){if(Us===null)try{new FormData(document.createElement("form"),0),Us=!1}catch{Us=!0}return Us}var ox=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Fa(n){return n!=null&&!ox.has(n)?(Ae(!1,`"${n}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Co}"`),null):n}function ax(n,e){let t,r,i,s,o;if(tx(n)){let a=n.getAttribute("action");r=a?wt(a,e):null,t=n.getAttribute("method")||So,i=Fa(n.getAttribute("enctype"))||Co,s=new FormData(n)}else if(ex(n)||nx(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?wt(l,e):null,t=n.getAttribute("formmethod")||a.getAttribute("method")||So,i=Fa(n.getAttribute("formenctype"))||Fa(a.getAttribute("enctype"))||Co,s=new FormData(a,n),!sx()){let{name:c,type:h,value:d}=n;if(h==="image"){let f=c?`${c}.`:"";s.append(`${f}x`,"0"),s.append(`${f}y`,"0")}else c&&s.append(c,d)}}else{if(pa(n))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');t=So,r=null,i=Co,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 Gc(n,e){if(n===!1||n===null||typeof n>"u")throw new Error(e)}function lx(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&&wt(r.pathname,e)==="/"?r.pathname=`${e.replace(/\/$/,"")}/_root.${t}`:r.pathname=`${r.pathname.replace(/\/$/,"")}.${t}`,r}async function cx(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 hx(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 ux(n,e,t){let r=await Promise.all(n.map(async i=>{let s=e.routes[i.route.id];if(s){let o=await cx(s,t);return o.links?o.links():[]}return[]}));return mx(r.flat(1).filter(hx).filter(i=>i.rel==="stylesheet"||i.rel==="preload").map(i=>i.rel==="stylesheet"?{...i,rel:"prefetch",as:"style"}:{...i,rel:"prefetch"}))}function Ru(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 d=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 d=="boolean")return d}return!0}):[]}function dx(n,e,{includeHydrateFallback:t}={}){return fx(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 fx(n){return[...new Set(n)]}function px(n){let e={},t=Object.keys(n).sort();for(let r of t)e[r]=n[r];return e}function mx(n,e){let t=new Set;return new Set(e),n.reduce((r,i)=>{let s=JSON.stringify(px(i));return t.has(s)||(t.add(s),r.push({key:s,link:i})),r},[])}function im(){let n=b.useContext(Xn);return Gc(n,"You must render this element inside a <DataRouterContext.Provider> element"),n}function gx(){let n=b.useContext(ws);return Gc(n,"You must render this element inside a <DataRouterStateContext.Provider> element"),n}var qc=b.createContext(void 0);qc.displayName="FrameworkContext";function sm(){let n=b.useContext(qc);return Gc(n,"You must render this element inside a <HydratedRouter> element"),n}function bx(n,e){let t=b.useContext(qc),[r,i]=b.useState(!1),[s,o]=b.useState(!1),{onFocus:a,onBlur:l,onMouseEnter:c,onMouseLeave:h,onTouchStart:d}=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:Kr(a,p),onBlur:Kr(l,m),onMouseEnter:Kr(c,p),onMouseLeave:Kr(h,m),onTouchStart:Kr(d,p)}]:[!1,f,{}]}function Kr(n,e){return t=>{n&&n(t),t.defaultPrevented||e(t)}}function yx({page:n,...e}){let{router:t}=im(),r=b.useMemo(()=>pn(t.routes,n,t.basename),[t.routes,n,t.basename]);return r?b.createElement(vx,{page:n,matches:r,...e}):null}function xx(n){let{manifest:e,routeModules:t}=sm(),[r,i]=b.useState([]);return b.useEffect(()=>{let s=!1;return ux(n,e,t).then(o=>{s||i(o)}),()=>{s=!0}},[n,e,t]),r}function vx({page:n,matches:e,...t}){let r=Gt(),{manifest:i,routeModules:s}=sm(),{basename:o}=im(),{loaderData:a,matches:l}=gx(),c=b.useMemo(()=>Ru(n,e,l,i,r,"data"),[n,e,l,i,r]),h=b.useMemo(()=>Ru(n,e,l,i,r,"assets"),[n,e,l,i,r]),d=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=lx(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(()=>dx(h,i),[h,i]),p=xx(h);return b.createElement(b.Fragment,null,d.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 wx(...n){return e=>{n.forEach(t=>{typeof t=="function"?t(e):t!=null&&(t.current=e)})}}var kx=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{kx&&(window.__reactRouterVersion="7.11.0")}catch{}function Sx(n,e){return Q1({basename:e?.basename,getContext:e?.getContext,future:e?.future,history:f1({window:e?.window}),hydrationData:Cx(),routes:n,mapRouteProperties:Ky,hydrationRouteProperties:Gy,dataStrategy:e?.dataStrategy,patchRoutesOnNavigation:e?.patchRoutesOnNavigation,window:e?.window,unstable_instrumentations:e?.unstable_instrumentations}).initialize()}function Cx(){let n=window?.__staticRouterHydrationData;return n&&n.errors&&(n={...n,errors:jx(n.errors)}),n}function jx(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 xs(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 om=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,am=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:d,unstable_defaultShouldRevalidate:f,...p},m){let{basename:g,unstable_useTransitions:y}=b.useContext(dt),v=typeof c=="string"&&om.test(c),S=Ip(c,g);c=S.to;let C=Ay(c,{relative:i}),[A,k,O]=bx(r,p),x=Mx(c,{replace:o,state:a,target:l,preventScrollReset:h,relative:i,viewTransition:d,unstable_defaultShouldRevalidate:f,unstable_useTransitions:y});function E(I){e&&e(I),I.defaultPrevented||x(I)}let P=b.createElement("a",{...p,...O,href:S.absoluteURL||C,onClick:S.isExternal||s?e:E,ref:wx(m,k),target:l,"data-discover":!v&&t==="render"?"true":void 0});return A&&!v?b.createElement(b.Fragment,null,P,b.createElement(yx,{page:C})):P});am.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 d=ks(o,{relative:c.relative}),f=Gt(),p=b.useContext(ws),{navigator:m,basename:g}=b.useContext(dt),y=p!=null&&Lx(d)&&a===!0,v=m.encodeLocation?m.encodeLocation(d).pathname:d.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=wt(C,g)||C);const A=v!=="/"&&v.endsWith("/")?v.length-1:v.length;let k=S===v||!i&&S.startsWith(v)&&S.charAt(A)==="/",O=C!=null&&(C===v||!i&&C.startsWith(v)&&C.charAt(v.length)==="/"),x={isActive:k,isPending:O,isTransitioning:y},E=k?e:void 0,P;typeof r=="function"?P=r(x):P=[r,k?"active":null,O?"pending":null,y?"transitioning":null].filter(Boolean).join(" ");let I=typeof s=="function"?s(x):s;return b.createElement(am,{...c,"aria-current":E,className:P,ref:h,style:I,to:o,viewTransition:a},typeof l=="function"?l(x):l)});Ox.displayName="NavLink";var Px=b.forwardRef(({discover:n="render",fetcherKey:e,navigate:t,reloadDocument:r,replace:i,state:s,method:o=So,action:a,onSubmit:l,relative:c,preventScrollReset:h,viewTransition:d,unstable_defaultShouldRevalidate:f,...p},m)=>{let{unstable_useTransitions:g}=b.useContext(dt),y=Ex(),v=Tx(a,{relative:c}),S=o.toLowerCase()==="get"?"get":"post",C=typeof a=="string"&&om.test(a),A=k=>{if(l&&l(k),k.defaultPrevented)return;k.preventDefault();let O=k.nativeEvent.submitter,x=O?.getAttribute("formmethod")||o,E=()=>y(O||k.currentTarget,{fetcherKey:e,method:x,navigate:t,replace:i,state:s,relative:c,preventScrollReset:h,viewTransition:d,unstable_defaultShouldRevalidate:f});g&&t!==!1?b.startTransition(()=>E()):E()};return b.createElement("form",{ref:m,method:S,action:v,onSubmit:r?l:A,...p,"data-discover":!C&&n==="render"?"true":void 0})});Px.displayName="Form";function Ax(n){return`${n} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function lm(n){let e=b.useContext(Xn);return le(e,Ax(n)),e}function Mx(n,{target:e,replace:t,state:r,preventScrollReset:i,relative:s,viewTransition:o,unstable_defaultShouldRevalidate:a,unstable_useTransitions:l}={}){let c=qt(),h=Gt(),d=ks(n,{relative:s});return b.useCallback(f=>{if(ix(f,e)){f.preventDefault();let p=t!==void 0?t:Kt(h)===Kt(d),m=()=>c(n,{replace:p,state:r,preventScrollReset:i,relative:s,viewTransition:o,unstable_defaultShouldRevalidate:a});l?b.startTransition(()=>m()):m()}},[h,c,d,t,r,e,n,i,s,o,a,l])}var Nx=0,Dx=()=>`__${String(++Nx)}__`;function Ex(){let{router:n}=lm("useSubmit"),{basename:e}=b.useContext(dt),t=Vy(),r=n.fetch,i=n.navigate;return b.useCallback(async(s,o={})=>{let{action:a,method:l,encType:c,formData:h,body:d}=ax(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:d,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:d,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(dt),r=b.useContext(St);le(r,"useFormAction must be used inside a RouteContext");let[i]=r.matches.slice(-1),s={...ks(n||".",{relative:e})},o=Gt();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(d=>d).forEach(d=>a.append("index",d));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])),Kt(s)}function Lx(n,{relative:e}={}){let t=b.useContext(Wc);le(t!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=lm("useViewTransitionState"),i=ks(n,{relative:e});if(!t.isTransitioning)return!1;let s=wt(t.currentLocation.pathname,r)||t.currentLocation.pathname,o=wt(t.nextLocation.pathname,r)||t.nextLocation.pathname;return Ro(i.pathname,o)!=null||Ro(i.pathname,s)!=null}function Rx(n){return b.createElement(Yy,{flushSync:Op.flushSync,...n})}const Ix={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"},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"}},Yc=b.createContext(null),cm="ck-dashboard-lang";function Bx(){const n=localStorage.getItem(cm);return n==="en"||n==="vi"?n:navigator.language.startsWith("vi")?"vi":"en"}function $x({children:n}){const[e,t]=b.useState(Bx),r=s=>{localStorage.setItem(cm,s),t(s)},i=s=>Ix[e][s];return u.jsx(Yc.Provider,{value:{lang:e,setLang:r,t:i},children:n})}function ye(){const n=b.useContext(Yc);if(!n)throw new Error("useI18n must be used within I18nProvider");return n}class Fx extends b.Component{constructor(){super(...arguments);ou(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 u.jsx(Yc.Consumer,{children:r=>u.jsx("div",{className:"flex h-screen items-center justify-center bg-dash-bg",children:u.jsx("div",{className:"text-center space-y-4 max-w-md px-6",children:t?u.jsxs(u.Fragment,{children:[u.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:"🔌"}),u.jsx("h1",{className:"text-2xl font-bold text-orange-500",children:r?.t("serverNotRunning")??"Server Not Running"}),u.jsx("p",{className:"text-dash-text-secondary",children:r?.t("startServerMessage")??"The Config UI requires the backend server to be running."}),u.jsxs("div",{className:"bg-dash-surface border border-dash-border rounded-lg p-4",children:[u.jsx("p",{className:"text-xs text-dash-text-muted uppercase tracking-widest mb-2 font-bold",children:r?.t("runThisCommand")??"Run this command"}),u.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"})]}),u.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"})]}):u.jsxs(u.Fragment,{children:[u.jsx("h1",{className:"text-2xl font-bold text-red-500",children:r?.t("somethingWentWrong")??"Something went wrong"}),u.jsx("p",{className:"text-dash-text-muted",children:this.state.error?.message}),u.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 gi=({direction:n="horizontal",isDragging:e=!1,onMouseDown:t})=>{const r=n==="horizontal";return u.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:u.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
|
-
`})})},Vx={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"},Ks=["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 gn=(n=>(n.HEALTHY="healthy",n.WARNING="warning",n.ERROR="error",n.LOADING="loading",n.UNKNOWN="unknown",n))(gn||{}),Bt=(n=>(n.ENGINEER="engineer",n.MARKETING="marketing",n.ARCHITECT="architect",n.RESEARCHER="researcher",n.DEVOP="devops",n))(Bt||{});const zx=({isOpen:n,onClose:e,onAdd:t})=>{const{t:r}=ye(),[i,s]=b.useState(""),[o,a]=b.useState(""),[l,c]=b.useState(!1),[h,d]=b.useState(null);b.useEffect(()=>{n||(s(""),a(""),d(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()){d(r("pathRequired"));return}try{c(!0),d(null);const m={path:i.trim(),...o.trim()&&{alias:o.trim()}};await t(m),e()}catch(m){d(m instanceof Error?m.message:r("failedToAdd"))}finally{c(!1)}};return n?u.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:e,children:u.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:[u.jsxs("div",{className:"px-6 py-4 border-b border-dash-border",children:[u.jsx("h2",{className:"text-lg font-bold text-dash-text",children:r("addProjectTitle")}),u.jsx("p",{className:"text-sm text-dash-text-muted mt-1",children:r("addProjectDescription")})]}),u.jsxs("form",{onSubmit:f,className:"p-6 space-y-4",children:[u.jsxs("div",{children:[u.jsxs("label",{htmlFor:"project-path",className:"block text-sm font-medium text-dash-text mb-2",children:[r("projectPath")," ",u.jsx("span",{className:"text-red-500",children:"*"})]}),u.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"})]}),u.jsxs("div",{children:[u.jsxs("label",{htmlFor:"project-alias",className:"block text-sm font-medium text-dash-text mb-2",children:[r("alias")," ",r("aliasOptional")]}),u.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"}),u.jsx("p",{className:"text-xs text-dash-text-muted mt-1",children:r("aliasDescription")})]}),h&&u.jsx("div",{className:"px-3 py-2 bg-red-500/10 border border-red-500/20 rounded-md",children:u.jsx("p",{className:"text-sm text-red-500",children:h})}),u.jsxs("div",{className:"flex gap-3 pt-2",children:[u.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")}),u.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},Hx=({vertical:n=!1})=>{const{lang:e,setLang:t}=ye();return u.jsxs("div",{className:`flex ${n?"flex-col":""} items-center rounded-lg border border-dash-border overflow-hidden`,children:[u.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"}),u.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"})]})},Wx=({projects:n,currentProjectId:e,isCollapsed:t,width:r,isConnected:i,theme:s,onSwitchProject:o,onToggle:a,onAddProject:l,onToggleTheme:c})=>{const{t:h}=ye(),d=qt(),f=Gt(),[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,O)=>k.pinned&&!O.pinned?-1:!k.pinned&&O.pinned?1:k.name.localeCompare(O.name)),S=r?{width:`${r}px`}:void 0,C=r?"":t?"w-14":"w-72",A=r?r>=160:!t;return u.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:[u.jsxs("div",{className:`flex items-center ${A?"p-6 gap-3":"p-2 justify-center"}`,children:[u.jsx("img",{src:"/images/logo-transparent-32.png",alt:"ClaudeKit",className:"w-8 h-8 shrink-0"}),A&&u.jsxs("div",{className:"overflow-hidden",children:[u.jsx("h1",{className:"text-sm font-bold truncate tracking-tight text-dash-text",children:"ClaudeKit"}),u.jsx("p",{className:"text-[10px] text-dash-text-muted font-medium uppercase tracking-wider",children:h("controlCenter")})]})]}),u.jsxs("div",{className:`${A?"px-4":"px-2"} py-2 space-y-1`,children:[A&&u.jsx("p",{className:"px-2 pb-2 text-[10px] font-bold text-dash-text-muted uppercase tracking-widest",children:h("settingsSection")}),u.jsx(Iu,{icon:u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:[u.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"}),u.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:()=>d("/config/global")}),u.jsx(Iu,{icon:u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.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:()=>d("/skills")})]}),u.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&&u.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 O=f.pathname.endsWith("/config"),x=e===k.id&&!g&&!O&&!y;return u.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:[u.jsx("div",{className:`w-2 h-2 rounded-full shrink-0 ${k.health===gn.HEALTHY?"bg-dash-accent":k.health===gn.WARNING?"bg-orange-400":"bg-red-500"} ${x?"animate-pulse":""}`}),A&&u.jsxs(u.Fragment,{children:[k.pinned&&u.jsx("span",{className:"text-xs",children:"📌"}),u.jsx("span",{className:"text-sm font-medium truncate",children:k.name})]}),!A&&u.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)}),u.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:[u.jsx("div",{className:`${A?"w-5 h-5":""} flex items-center justify-center`,children:u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})})}),A&&u.jsx("span",{className:"text-sm font-medium",children:h("addProject")})]})]}),u.jsx(zx,{isOpen:p,onClose:()=>m(!1),onAdd:l}),u.jsx("div",{className:"border-t border-dash-border",children:u.jsxs("div",{className:`py-3 flex items-center ${A?"px-3 justify-between":"justify-center flex-col gap-2"}`,children:[u.jsxs("div",{className:"flex items-center gap-2",title:h(i?"sync":"offline"),children:[u.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&&u.jsx("span",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest",children:h(i?"sync":"offline")})]}),u.jsxs("div",{className:`flex items-center gap-1 ${A?"":"flex-col"}`,children:[u.jsx(Hx,{vertical:!A}),u.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"?u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.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"})}):u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.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"})})}),u.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?u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 5l7 7-7 7M5 5l7 7-7 7"})}):u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 19l-7-7 7-7m8 14l-7-7 7-7"})})})]})]})})]})},Iu=({icon:n,label:e,badge:t,badgeColor:r="bg-dash-accent-subtle text-dash-accent",isCollapsed:i,active:s,onClick:o,disabled:a})=>u.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:[u.jsx("div",{className:`${i?"":"w-5 h-5"} flex items-center justify-center`,children:n}),!i&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"text-sm font-medium flex-1 text-left",children:e}),t&&u.jsx("span",{className:`text-[10px] font-bold px-1.5 py-0.5 rounded ${r}`,children:t})]}),i&&u.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})]}),Ze="/api";class Va extends Error{constructor(){super("Backend server is not running. Start it with: ck config ui"),this.name="ServerUnavailableError"}}async function Mt(){try{if(!(await fetch(`${Ze}/health`,{method:"GET"})).ok)throw new Va}catch(n){throw n instanceof Va?n:new Va}}function Jc(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 hm(){await Mt();const n=await fetch(`${Ze}/projects`);if(!n.ok)throw new Error("Failed to fetch projects");return(await n.json()).map(Jc)}async function um(){await Mt();const n=await fetch(`${Ze}/skills`);if(!n.ok)throw new Error("Failed to fetch skills");return n.json()}async function _x(n,e){try{await Mt();const t=e!==void 0?`?limit=${e}`:"",r=await fetch(`${Ze}/sessions/${encodeURIComponent(n)}${t}`);return r.ok?r.json():[]}catch{return[]}}async function Ux(n,e){await Mt();const t=await fetch(`${Ze}/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 Kx(n){await Mt();const e=await fetch(`${Ze}/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 Jc(t)}async function Gx(n){await Mt();const e=await fetch(`${Ze}/projects/${encodeURIComponent(n)}`,{method:"DELETE"});if(!e.ok){const t=await e.text();throw new Error(t||"Failed to remove project")}}async function qx(n,e){await Mt();const t=await fetch(`${Ze}/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 Jc(r)}async function Yx(){const n=await fetch(`${Ze}/metadata/global`);return n.ok?n.json():(console.error("Failed to fetch global metadata"),{})}async function Jx(n){const e=await fetch(`${Ze}/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(`${Ze}/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 Xx(){await Mt();const n=await fetch(`${Ze}/skills/installed`);if(!n.ok)throw new Error("Failed to fetch installed skills");return n.json()}async function Zx(){await Mt();const n=await fetch(`${Ze}/agents`);if(!n.ok)throw new Error("Failed to fetch agents");return n.json()}async function Bu(n,e,t){await Mt();const r=await fetch(`${Ze}/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 ev(n,e){await Mt();const t=await fetch(`${Ze}/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 tv(){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 um();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 nv(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 rv(){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 hm();e(h)}catch(h){s(h instanceof Error?h.message:"Failed to load projects")}finally{r(!1)}},[]),a=b.useCallback(async h=>{const d=await Kx(h);return await o(),d},[o]),l=b.useCallback(async h=>{await Gx(h),await o()},[o]),c=b.useCallback(async(h,d)=>{const f=await qx(h,d);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 iv({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]),d=b.useCallback(f=>{o(Math.max(t,Math.min(r,f)))},[t,r]);return{size:s,isDragging:a,startDrag:c,setSize:d,reset:h}}const sv=()=>{const{t:n}=ye(),e=qt(),t=Gt(),{projectId:r}=tm(),[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:d,setSize:f}=iv({storageKey:"claudekit-sidebar-width",defaultSize:288,minSize:56,maxSize:400}),p=c<=56,{projects:m,loading:g,error:y,addProject:v}=rv(),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}`)},O=()=>{f(p?288:56)};return g?u.jsx("div",{className:"flex h-screen w-full bg-dash-bg text-dash-text items-center justify-center",children:u.jsx("div",{className:"animate-pulse text-dash-text-muted",children:n("loading")})}):y?u.jsx("div",{className:"flex h-screen w-full bg-dash-bg text-dash-text items-center justify-center",children:u.jsxs("div",{className:"text-red-500",children:[n("error"),": ",y]})}):u.jsxs("div",{className:"flex h-screen w-full bg-dash-bg text-dash-text overflow-hidden font-sans transition-colors duration-300",children:[u.jsx(Wx,{projects:m,currentProjectId:i,isCollapsed:p,width:c,isConnected:l,theme:o,onSwitchProject:k,onToggle:O,onAddProject:S,onToggleTheme:C}),u.jsx(gi,{direction:"horizontal",isDragging:h,onMouseDown:d}),u.jsx("div",{className:"flex-1 flex flex-col min-w-0 h-full relative",children:u.jsx("main",{className:"flex-1 flex flex-col overflow-hidden p-4 md:p-6",children:u.jsx(Xy,{context:{project:A,isConnected:l,theme:o,onToggleTheme:C}})})})]})},Qc=(n,e)=>{const[t,r]=b.useState(null);return b.useEffect(()=>{const i=n.split(`
|
|
31
|
-
`),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 d=h[1];if(a===e){o=s.length>0?`${s.join(".")}.${d}`:d;break}}}r(o)},[n,e]),t},Xc={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:`{
|
|
32
|
-
"codingLevel": 1
|
|
33
|
-
}`},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:`{
|
|
34
|
-
"privacyBlock": false
|
|
35
|
-
}`},"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:`{
|
|
36
|
-
"plan": {
|
|
37
|
-
"namingFormat": "{date}-{slug}"
|
|
38
|
-
}
|
|
39
|
-
}`},"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:`{
|
|
40
|
-
"plan": {
|
|
41
|
-
"dateFormat": "YYMMDD"
|
|
42
|
-
}
|
|
43
|
-
}`},"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:`{
|
|
44
|
-
"plan": {
|
|
45
|
-
"issuePrefix": "GH-"
|
|
46
|
-
}
|
|
47
|
-
}`},"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:`{
|
|
48
|
-
"plan": {
|
|
49
|
-
"reportsDir": "reports"
|
|
50
|
-
}
|
|
51
|
-
}`},"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:`{
|
|
52
|
-
"plan": {
|
|
53
|
-
"resolution": {
|
|
54
|
-
"order": ["session", "branch"]
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}`},"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:`{
|
|
58
|
-
"plan": {
|
|
59
|
-
"resolution": {
|
|
60
|
-
"branchPattern": "(?:feat|fix)/(.+)"
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}`},"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:`{
|
|
64
|
-
"plan": {
|
|
65
|
-
"validation": {
|
|
66
|
-
"mode": "auto"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}`},"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:`{
|
|
70
|
-
"plan": {
|
|
71
|
-
"validation": {
|
|
72
|
-
"minQuestions": 5
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}`},"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:`{
|
|
76
|
-
"plan": {
|
|
77
|
-
"validation": {
|
|
78
|
-
"maxQuestions": 10
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}`},"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:`{
|
|
82
|
-
"plan": {
|
|
83
|
-
"validation": {
|
|
84
|
-
"focusAreas": ["security", "performance"]
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}`},"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:`{
|
|
88
|
-
"paths": {
|
|
89
|
-
"docs": "docs"
|
|
90
|
-
}
|
|
91
|
-
}`},"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:`{
|
|
92
|
-
"paths": {
|
|
93
|
-
"plans": "plans"
|
|
94
|
-
}
|
|
95
|
-
}`},"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:`{
|
|
96
|
-
"locale": {
|
|
97
|
-
"thinkingLanguage": "en"
|
|
98
|
-
}
|
|
99
|
-
}`},"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:`{
|
|
100
|
-
"locale": {
|
|
101
|
-
"responseLanguage": "fr"
|
|
102
|
-
}
|
|
103
|
-
}`},"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:`{
|
|
104
|
-
"trust": {
|
|
105
|
-
"enabled": true
|
|
106
|
-
}
|
|
107
|
-
}`},"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:`{
|
|
108
|
-
"trust": {
|
|
109
|
-
"passphrase": "super-secret-key"
|
|
110
|
-
}
|
|
111
|
-
}`},"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:`{
|
|
112
|
-
"project": {
|
|
113
|
-
"type": "monorepo"
|
|
114
|
-
}
|
|
115
|
-
}`},"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:`{
|
|
116
|
-
"project": {
|
|
117
|
-
"packageManager": "pnpm"
|
|
118
|
-
}
|
|
119
|
-
}`},"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:`{
|
|
120
|
-
"project": {
|
|
121
|
-
"framework": "nextjs"
|
|
122
|
-
}
|
|
123
|
-
}`},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:`{
|
|
124
|
-
"docs": {
|
|
125
|
-
"maxLoc": 1000
|
|
126
|
-
}
|
|
127
|
-
}`},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:`{
|
|
128
|
-
"gemini": {
|
|
129
|
-
"model": "gemini-2.5-pro"
|
|
130
|
-
}
|
|
131
|
-
}`},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:`{
|
|
132
|
-
"skills": {
|
|
133
|
-
"research": {
|
|
134
|
-
"useGemini": false
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}`},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:`{
|
|
138
|
-
"hooks": {
|
|
139
|
-
"session-init": false
|
|
140
|
-
}
|
|
141
|
-
}`},"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:`{
|
|
142
|
-
"hooks": {
|
|
143
|
-
"subagent-init": false
|
|
144
|
-
}
|
|
145
|
-
}`},"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:`{
|
|
146
|
-
"hooks": {
|
|
147
|
-
"dev-rules-reminder": false
|
|
148
|
-
}
|
|
149
|
-
}`},"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:`{
|
|
150
|
-
"hooks": {
|
|
151
|
-
"usage-context-awareness": false
|
|
152
|
-
}
|
|
153
|
-
}`},"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:`{
|
|
154
|
-
"hooks": {
|
|
155
|
-
"scout-block": false
|
|
156
|
-
}
|
|
157
|
-
}`},"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:`{
|
|
158
|
-
"hooks": {
|
|
159
|
-
"privacy-block": false
|
|
160
|
-
}
|
|
161
|
-
}`},"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:`{
|
|
162
|
-
"hooks": {
|
|
163
|
-
"post-edit-simplify-reminder": false
|
|
164
|
-
}
|
|
165
|
-
}`},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:`{
|
|
166
|
-
"statusline": "compact"
|
|
167
|
-
}`},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:`{
|
|
168
|
-
"assertions": ["Use strict mode", "No console.logs"]
|
|
169
|
-
}`}},ov=({project:n,onBack:e})=>{const{t}=ye(),[r,i]=b.useState("merged"),[s,o]=b.useState(JSON.stringify({codingLevel:n.id==="p1"?3:n.id==="p2"?2:1,privacyBlock:!0,plan:{namingFormat:"{date}-{issue}-{slug}",dateFormat:"YYMMDD-HHmm",issuePrefix:"GH-",reportsDir:"reports",resolution:{order:["session","branch"],branchPattern:"(?:feat|fix|chore|refactor|docs)/(?:[^/]+/)?(.+)"},validation:{mode:"prompt",minQuestions:3,maxQuestions:8,focusAreas:["assumptions","risks","tradeoffs","architecture"]}},paths:{docs:"docs",plans:"plans"},locale:{thinkingLanguage:"en",responseLanguage:null},project:{type:"auto",packageManager:"pnpm",framework:"react"},assertions:["Follow best practices","No unused imports"]},null,2)),[a,l]=b.useState(0),[c,h]=b.useState(null);b.useEffect(()=>{try{JSON.parse(s),h(null)}catch(m){h(m instanceof Error?m.message:"Invalid JSON")}},[s]);const d=Qc(s,a),f=d?Xc[d]:null,p=m=>{l(m)};return u.jsxs("div",{className:"animate-in fade-in duration-300 w-full h-full flex flex-col transition-colors",children:[u.jsxs("div",{className:"flex items-center justify-between mb-6 shrink-0",children:[u.jsxs("div",{children:[u.jsxs("button",{onClick:e,className:"text-xs text-dash-text-muted hover:text-dash-text mb-2 flex items-center gap-1 group transition-colors font-medium",children:[u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-3 h-3 group-hover:-translate-x-0.5 transition-transform",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})}),t("backToDashboard")]}),u.jsx("h1",{className:"text-2xl font-bold tracking-tight text-dash-text",children:t("educationalConfigEditor")})]}),u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsx("button",{className:"px-4 py-2 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:t("discard")}),u.jsx("button",{className:"px-4 py-2 rounded-lg bg-dash-accent text-xs font-bold text-dash-bg hover:bg-dash-accent-hover transition-all shadow-lg shadow-dash-accent/20 tracking-widest uppercase",children:t("saveChanges")})]})]}),u.jsxs("div",{className:"flex-1 flex gap-6 min-h-0",children:[u.jsxs("div",{className:"flex-[3] bg-dash-surface border border-dash-border rounded-xl overflow-hidden flex flex-col shadow-sm",children:[u.jsxs("div",{className:"flex items-center gap-1 bg-dash-surface-hover/50 px-4 py-2 border-b border-dash-border shrink-0",children:[u.jsx(za,{active:r==="merged",label:t("mergedView"),onClick:()=>i("merged")}),u.jsx(za,{active:r==="local",label:t("localConfig"),onClick:()=>i("local")}),u.jsx(za,{active:r==="global",label:t("globalConfig"),onClick:()=>i("global")})]}),u.jsx("div",{className:"flex-1 flex min-h-0 relative",children:u.jsxs("div",{className:"flex-1 overflow-auto bg-dash-surface p-4 font-mono text-sm leading-relaxed scrollbar-hide",onClick:()=>document.getElementById("config-editor-textarea")?.focus(),children:[u.jsx("div",{className:"relative inline-block w-full",children:s.split(`
|
|
170
|
-
`).map((m,g)=>u.jsxs("div",{onClick:()=>p(g),className:`flex cursor-text transition-colors px-2 rounded-sm ${a===g?"bg-dash-accent-subtle ring-1 ring-dash-accent/20":"hover:bg-dash-bg/50"}`,children:[u.jsx("span",{className:"w-8 text-dash-text-muted select-none mr-4 text-right border-r border-dash-border pr-2 shrink-0",children:g+1}),u.jsx("pre",{className:"whitespace-pre break-all overflow-hidden flex-1",children:u.jsx("span",{className:m.includes(":")?"text-dash-accent font-semibold":m.includes('"')?"text-dash-text opacity-90":m.match(/\d+/)?"text-dash-accent-hover":"text-dash-text-secondary",children:m})})]},g))}),u.jsx("textarea",{id:"config-editor-textarea",value:s,onChange:m=>o(m.target.value),className:"absolute inset-0 w-full h-full opacity-0 pointer-events-none cursor-text font-mono text-sm resize-none",spellCheck:!1})]})}),u.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:[u.jsxs("div",{className:"flex gap-4",children:[u.jsx("span",{children:"UTF-8"}),u.jsx("span",{children:"JSON"}),u.jsxs("span",{children:["L:",a+1]})]}),u.jsx("div",{className:"flex items-center gap-2",children:c?u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-red-500"}),u.jsx("span",{className:"text-red-500 normal-case",children:c})]}):u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-dash-accent"}),t("syntaxValid")]})})]})]}),u.jsxs("div",{className:"flex-[2] bg-dash-surface border border-dash-border rounded-xl flex flex-col shadow-sm overflow-hidden animate-in fade-in slide-in-from-right-2 duration-300",children:[u.jsx("div",{className:"p-4 border-b border-dash-border bg-dash-surface-hover/50 shrink-0",children:u.jsx("h3",{className:"text-xs font-bold text-dash-text-secondary uppercase tracking-widest",children:t("configurationHelp")})}),u.jsx("div",{className:"flex-1 overflow-y-auto p-6",children:f?u.jsxs("div",{className:"space-y-6 animate-in fade-in duration-500",children:[u.jsxs("header",{children:[u.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[u.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:t("field")}),u.jsx("h2",{className:"text-lg font-bold text-dash-text mono break-all",children:f.path})]}),u.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[u.jsx($u,{label:t("type"),value:f.type}),u.jsx($u,{label:t("default"),value:f.default})]})]}),u.jsxs("section",{children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:t("description")}),u.jsx("p",{className:"text-sm text-dash-text-secondary leading-relaxed italic",children:f.description})]}),f.validValues&&u.jsxs("section",{children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:t("validValues")}),u.jsx("div",{className:"flex flex-wrap gap-1.5",children:f.validValues.map(m=>u.jsx("span",{className:"px-2 py-0.5 bg-dash-bg border border-dash-border rounded text-[11px] mono text-dash-text",children:m},m))})]}),f.effect&&u.jsxs("section",{className:"bg-dash-accent-subtle/30 p-4 rounded-lg border border-dash-accent/10",children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-accent uppercase tracking-widest mb-1",children:t("systemEffect")}),u.jsx("p",{className:"text-[12px] text-dash-text-secondary leading-normal",children:f.effect})]}),f.example&&u.jsxs("section",{children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:t("exampleUsage")}),u.jsx("div",{className:"bg-dash-bg p-3 rounded-lg border border-dash-border overflow-hidden",children:u.jsx("pre",{className:"text-[11px] mono text-dash-text-secondary whitespace-pre overflow-x-auto",children:f.example})})]})]}):u.jsxs("div",{className:"h-full flex flex-col items-center justify-center text-center opacity-40 space-y-4",children:[u.jsx("div",{className:"w-12 h-12 rounded-full bg-dash-bg border border-dash-border flex items-center justify-center text-xl",children:"💡"}),u.jsxs("div",{className:"max-w-[200px]",children:[u.jsx("p",{className:"text-sm font-bold text-dash-text mb-1 italic",children:t("knowledgeBase")}),u.jsx("p",{className:"text-xs text-dash-text-secondary",children:t("clickToSeeHelp")})]})]})}),f&&u.jsx("div",{className:"p-4 bg-dash-surface-hover/20 border-t border-dash-border shrink-0",children:u.jsxs("p",{className:"text-[10px] text-dash-text-muted font-medium flex items-center gap-1.5 italic",children:[u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.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"})}),t("extractedFrom")]})})]})]})]})},za=({active:n,label:e,onClick:t})=>u.jsx("button",{onClick:t,className:`px-3 py-1.5 text-xs font-bold rounded-md transition-all ${n?"bg-dash-surface text-dash-text border border-dash-border shadow-sm":"text-dash-text-muted hover:text-dash-text-secondary"}`,children:e}),$u=({label:n,value:e})=>u.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 bg-dash-bg border border-dash-border rounded-md",children:[u.jsxs("span",{className:"text-[9px] font-bold text-dash-text-muted uppercase",children:[n,":"]}),u.jsx("span",{className:"text-[10px] mono font-bold text-dash-text-secondary",children:e})]}),av=()=>{const{project:n}=em(),e=qt();if(!n)return u.jsx(_l,{to:"/",replace:!0});const t=()=>{e(`/project/${n.id}`)};return u.jsx(ov,{project:n,onBack:t})},dm=1024;let lv=0,Ha=class{constructor(e,t){this.from=e,this.to=t}};class ce{constructor(e={}){this.id=lv++,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=st.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}}ce.closedBy=new ce({deserialize:n=>n.split(" ")});ce.openedBy=new ce({deserialize:n=>n.split(" ")});ce.group=new ce({deserialize:n=>n.split(" ")});ce.isolate=new ce({deserialize:n=>{if(n&&n!="rtl"&&n!="ltr"&&n!="auto")throw new RangeError("Invalid value for isolate: "+n);return n||"auto"}});ce.contextHash=new ce({perNode:!0});ce.lookAhead=new ce({perNode:!0});ce.mounted=new ce({perNode:!0});class si{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[ce.mounted.id]}}const cv=Object.create(null);class st{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):cv,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new st(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(ce.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(ce.group),s=-1;s<(i?i.length:0);s++){let o=t[s<0?r.name:i[s]];if(o)return o}}}}st.none=new st("",Object.create(null),0,8);class Zc{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 st(r.name,i,r.id,r.flags):r)}return new Zc(t)}}const Gs=new WeakMap,Fu=new WeakMap;var Pe;(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"})(Pe||(Pe={}));class Ne{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=si.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 Kl(this.topNode,e)}cursorAt(e,t=0,r=0){let i=Gs.get(this)||this.topNode,s=new Kl(i);return s.moveTo(e,t),Gs.set(this,s._tree),s}get topNode(){return new vt(this,0,0,null)}resolve(e,t=0){let r=bi(Gs.get(this)||this.topNode,e,t,!1);return Gs.set(this,r),r}resolveInner(e,t=0){let r=bi(Fu.get(this)||this.topNode,e,t,!0);return Fu.set(this,r),r}resolveStack(e,t=0){return dv(this,e,t)}iterate(e){let{enter:t,leave:r,from:i=0,to:s=this.length}=e,o=e.mode||0,a=(o&Pe.IncludeAnonymous)>0;for(let l=this.cursor(o|Pe.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:nh(st.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,i)=>new Ne(this.type,t,r,i,this.propValues),e.makeTree||((t,r,i)=>new Ne(st.none,t,r,i)))}static build(e){return fv(e)}}Ne.empty=new Ne(st.none,[],[],0);class eh{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 eh(this.buffer,this.index)}}class Sn{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return st.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&&!(fm(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 Sn(s,o,this.set)}}function fm(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 bi(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 vt&&n.index<0?null:n.parent;if(!o)return n;n=o}let s=r?0:Pe.IgnoreOverlays;if(r)for(let o=n,a=o.parent;a;o=a,a=o.parent)o instanceof vt&&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 pm{cursor(e=0){return new Kl(this,e)}getChild(e,t=null,r=null){let i=Vu(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return Vu(this,e,t,r)}resolve(e,t=0){return bi(this,e,t,!1)}resolveInner(e,t=0){return bi(this,e,t,!0)}matchContext(e){return Ul(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 vt extends pm{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 d=l[e],f=c[e]+a.from;if(!(!(s&Pe.EnterBracketed&&d instanceof Ne&&((o=si.get(d))===null||o===void 0?void 0:o.overlay)===null&&(f>=r||f+d.length<=r))&&!fm(i,r,f,f+d.length))){if(d instanceof Sn){if(s&Pe.ExcludeBuffers)continue;let p=d.findChild(0,d.buffer.length,t,r-f,i);if(p>-1)return new xn(new hv(a,d,e,f),null,p)}else if(s&Pe.IncludeAnonymous||!d.type.isAnonymous||th(d)){let p;if(!(s&Pe.IgnoreMounts)&&(p=si.get(d))&&!p.overlay)return new vt(p.tree,f,e,a);let m=new vt(d,f,e,a);return s&Pe.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(t<0?d.children.length-1:0,t,r,i,s)}}}if(s&Pe.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&Pe.IgnoreOverlays)&&(i=si.get(this._tree))&&i.overlay){let s=e-this.from,o=r&Pe.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 vt(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 Vu(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 Ul(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 hv{constructor(e,t,r,i){this.parent=e,this.buffer=t,this.index=r,this.start=i}}class xn extends pm{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 xn(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&Pe.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 xn(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 xn(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 xn(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 Ne(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function mm(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 vt&&t.index<0?null:t.parent,i=n.slice();return r?i[e]=r:i.splice(e,1),new uv(i,t)}class uv{constructor(e,t){this.heads=e,this.node=t}get next(){return mm(this.heads)}}function dv(n,e,t){let r=n.resolveInner(e,t),i=null;for(let s=r instanceof vt?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=si.get(s.tree);if(o&&o.overlay&&o.overlay[0].from<=e&&o.overlay[o.overlay.length-1].to>=e){let a=new vt(o.tree,o.overlay[0].from+s.from,-1,s);(i||(i=[r])).push(bi(a,e,t,!1))}}return i?mm(i):r}class Kl{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&~Pe.EnterBracketed,e instanceof vt)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 vt?(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&Pe.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Pe.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Pe.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&Pe.IncludeAnonymous||a instanceof Sn||!a.type.isAnonymous||th(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 xn(this.buffer,t,this.stack[i]);return this.bufferNode=new xn(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 Ul(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 Ul(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 th(n){return n.children.some(e=>e instanceof Sn||!e.type.isAnonymous||th(e))}function fv(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:i=dm,reused:s=[],minRepeatType:o=r.types.length}=n,a=Array.isArray(t)?new eh(t,t.length):t,l=r.types,c=0,h=0;function d(k,O,x,E,P,I){let{id:L,start:B,end:z,size:W}=a,N=h,R=c;if(W<0)if(a.next(),W==-1){let Y=s[L];x.push(Y),E.push(B-k);return}else if(W==-3){c=L;return}else if(W==-4){h=L;return}else throw new RangeError(`Unrecognized record size: ${W}`);let F=l[L],G,J,se=B-k;if(z-B<=i&&(J=y(a.pos-O,P))){let Y=new Uint16Array(J.size-J.skip),ae=a.pos-J.size,ee=Y.length;for(;a.pos>ae;)ee=v(J.start,Y,ee);G=new Sn(Y,z-J.start,r),se=J.start-k}else{let Y=a.pos-W;a.next();let ae=[],ee=[],de=L>=o?L:-1,fe=0,je=z;for(;a.pos>Y;)de>=0&&a.id==de&&a.size>=0?(a.end<=je-i&&(m(ae,ee,B,fe,a.end,je,de,N,R),fe=ae.length,je=a.end),a.next()):I>2500?f(B,Y,ae,ee):d(B,Y,ae,ee,de,I+1);if(de>=0&&fe>0&&fe<ae.length&&m(ae,ee,B,fe,B,je,de,N,R),ae.reverse(),ee.reverse(),de>-1&&fe>0){let ot=p(F,R);G=nh(F,ae,ee,0,ae.length,0,z-B,ot,ot)}else G=g(F,ae,ee,z-B,N-z,R)}x.push(G),E.push(se)}function f(k,O,x,E){let P=[],I=0,L=-1;for(;a.pos>O;){let{id:B,start:z,end:W,size:N}=a;if(N>4)a.next();else{if(L>-1&&z<L)break;L<0&&(L=W-i),P.push(B,z,W),I++,a.next()}}if(I){let B=new Uint16Array(I*4),z=P[P.length-2];for(let W=P.length-3,N=0;W>=0;W-=3)B[N++]=P[W],B[N++]=P[W+1]-z,B[N++]=P[W+2]-z,B[N++]=N;x.push(new Sn(B,P[2]-z,r)),E.push(z-k)}}function p(k,O){return(x,E,P)=>{let I=0,L=x.length-1,B,z;if(L>=0&&(B=x[L])instanceof Ne){if(!L&&B.type==k&&B.length==P)return B;(z=B.prop(ce.lookAhead))&&(I=E[L]+B.length+z)}return g(k,x,E,P,I,O)}}function m(k,O,x,E,P,I,L,B,z){let W=[],N=[];for(;k.length>E;)W.push(k.pop()),N.push(O.pop()+x-P);k.push(g(r.types[L],W,N,I-P,B-I,z)),O.push(P-x)}function g(k,O,x,E,P,I,L){if(I){let B=[ce.contextHash,I];L=L?[B].concat(L):[B]}if(P>25){let B=[ce.lookAhead,P];L=L?[B].concat(L):[B]}return new Ne(k,O,x,E,L)}function y(k,O){let x=a.fork(),E=0,P=0,I=0,L=x.end-i,B={size:0,start:0,skip:0};e:for(let z=x.pos-k;x.pos>z;){let W=x.size;if(x.id==O&&W>=0){B.size=E,B.start=P,B.skip=I,I+=4,E+=4,x.next();continue}let N=x.pos-W;if(W<0||N<z||x.start<L)break;let R=x.id>=o?4:0,F=x.start;for(x.next();x.pos>N;){if(x.size<0)if(x.size==-3||x.size==-4)R+=4;else break e;else x.id>=o&&(R+=4);x.next()}P=F,E+=W,I+=R}return(O<0||E==k)&&(B.size=E,B.start=P,B.skip=I),B.size>4?B:void 0}function v(k,O,x){let{id:E,start:P,end:I,size:L}=a;if(a.next(),L>=0&&E<o){let B=x;if(L>4){let z=a.pos-(L-4);for(;a.pos>z;)x=v(k,O,x)}O[--x]=B,O[--x]=I-k,O[--x]=P-k,O[--x]=E}else L==-3?c=E:L==-4&&(h=E);return x}let S=[],C=[];for(;a.pos>0;)d(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 Ne(l[n.topID],S.reverse(),C.reverse(),A)}const zu=new WeakMap;function jo(n,e){if(!n.isAnonymous||e instanceof Sn||e.type!=n)return 1;let t=zu.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof Ne)){t=1;break}t+=jo(n,r)}zu.set(e,t)}return t}function nh(n,e,t,r,i,s,o,a,l){let c=0;for(let m=r;m<i;m++)c+=jo(n,e[m]);let h=Math.ceil(c*1.5/8),d=[],f=[];function p(m,g,y,v,S){for(let C=y;C<v;){let A=C,k=g[C],O=jo(n,m[C]);for(C++;C<v;C++){let x=jo(n,m[C]);if(O+x>=h)break;O+=x}if(C==A+1){if(O>h){let x=m[A];p(x.children,x.positions,0,x.children.length,g[A]+S);continue}d.push(m[A])}else{let x=g[C-1]+m[C-1].length-k;d.push(nh(n,m,g,A,C,k,x,null,l))}f.push(k+S-s)}}return p(e,t,r,i,0),(a||l)(d,f,o)}class Kn{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 Kn(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,d=h?h.fromA:1e9;if(d-l>=r)for(;o&&o.from<d;){let f=o;if(l>=f.from||d<=f.to||c){let p=Math.max(f.from,l)-c,m=Math.min(f.to,d)-c;f=p>=m?null:new Kn(p,m,f.tree,f.offset+c,a>0,!!h)}if(f&&i.push(f),o.to>d)break;o=s<e.length?e[s++]:null}if(!h)break;l=h.toA,c=h.toA-h.toB}return i}}class gm{startParse(e,t,r){return typeof e=="string"&&(e=new pv(e)),r=r?r.length?r.map(i=>new Ha(i.from,i.to)):[new Ha(0,0)]:[new Ha(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 pv{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 ce({perNode:!0});var Hu={};class Io{constructor(e,t,r,i,s,o,a,l,c,h=0,d){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=d}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 Io(e,[],t,r,r,0,[],0,i?new Wu(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 d=l?this.stack[l-1]:0,f=this.bufferBase+this.buffer.length-d;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 Io(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 mv(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 Wu(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 Wu{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class mv{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 Bo{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 Bo(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 Bo(this.stack,this.pos,this.index)}}function qs(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 Oo{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const _u=new Oo;class gv{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=_u,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=_u,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 pr{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;bv(this.data,e,t,this.id,r.data,r.tokenPrecTable)}}pr.prototype.contextual=pr.prototype.fallback=pr.prototype.extend=!1;pr.prototype.fallback=pr.prototype.extend=!1;function bv(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||yv(m,e.token.value,i,s))){e.acceptToken(m);break}}let h=e.next,d=0,f=n[o+2];if(e.next<0&&f>d&&n[c+f*3-3]==65535){o=n[c+f*3-1];continue e}for(;d<f;){let p=d+f>>1,m=c+p+(p<<1),g=n[m],y=n[m+1]||65536;if(h<g)f=p;else if(h>=y)d=p+1;else{o=n[m+2],e.advance();continue e}}break}}function Uu(n,e,t){for(let r=e,i;(i=n[r])!=65535;r++)if(i==t)return r-e;return-1}function yv(n,e,t,r){let i=Uu(t,r,e);return i<0||Uu(t,r,n)<i}const at=typeof process<"u"&&Hu&&/\bparse\b/.test(Hu.LOG);let Wa=null;function Ku(n,e,t){let r=n.cursor(Pe.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 xv{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?Ku(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Ku(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 Ne){if(o==e){if(o<this.safeFrom)return null;let a=o+s.length;if(a<=this.safeTo){let l=s.prop(ce.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 vv{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new Oo)}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],d=this.tokens[c];if(!(r&&!h.fallback)&&((h.contextual||d.start!=e.pos||d.mask!=o||d.context!=a)&&(this.updateCachedToken(d,h,e),d.mask=o,d.context=a),d.lookAhead>d.end+25&&(l=Math.max(d.lookAhead,l)),d.value!=0)){let f=t;if(d.extended>-1&&(t=this.addActions(e,d.extended,d.end,t)),t=this.addActions(e,d.value,d.end,t),!h.extend&&(r=d,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!r&&e.pos==this.stream.end&&(r=new Oo,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 Oo,{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=rn(a,c+2);else{i==0&&a[c+1]==2&&(i=this.putAction(rn(a,c+2),t,r,i));break}a[c]==t&&(i=this.putAction(rn(a,c+1),t,r,i))}return i}}class wv{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 gv(t,i),this.tokens=new vv(e,this.stream),this.topTerm=e.top[1];let{from:s}=i[0];this.stacks=[Io.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new xv(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&&Sv(i);if(o)return at&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw at&&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 at&&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=at?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 d=this.fragments.nodeAt(i);d;){let f=this.parser.nodeSet.types[d.type.id]==d.type?s.getGoto(e.state,d.type.id):-1;if(f>-1&&d.length&&(!c||(d.prop(ce.contextHash)||0)==h))return e.useNode(d,f),at&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(d.type.id)})`),!0;if(!(d instanceof Ne)||d.children.length==0||d.positions[0]>0)break;let p=d.children[0];if(p instanceof Ne&&d.positions[0]==0)d=p;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),at&&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++],d=l[c++],f=l[c++],p=c==l.length||!r,m=p?e:e.split(),g=this.tokens.mainToken;if(m.apply(h,d,g?g.start:m.pos,f),at&&console.log(o+this.stackID(m)+` (via ${h&65536?`reduce of ${s.getName(h&65535)}`:"shift"} for ${s.getName(d)} @ ${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 Gu(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=at?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),at&&console.log(h+this.stackID(a)+" (restarted)"),this.advanceFully(a,r))))continue;let d=a.split(),f=h;for(let p=0;p<10&&d.forceReduce()&&(at&&console.log(f+this.stackID(d)+" (via force-reduce)"),!this.advanceFully(d,r));p++)at&&(f=this.stackID(d)+" -> ");for(let p of a.recoverByInsert(l))at&&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),at&&console.log(h+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),Gu(a,r)):(!i||i.score<a.score)&&(i=a)}return i}stackToTree(e){return e.close(),Ne.build({buffer:Bo.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=(Wa||(Wa=new WeakMap)).get(e);return t||Wa.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}}function Gu(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 kv{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}}class $o extends gm{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=ce[l]);for(let c=1;c<a.length;){let h=a[c++];if(h>=0)s(h,l,a[c++]);else{let d=a[c+-h];for(let f=-h;f>0;f--)s(a[c++],l,d);c++}}}this.nodeSet=new Zc(t.map((a,l)=>st.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=dm;let o=qs(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(qu),this.states=qs(e.states,Uint32Array),this.data=qs(e.stateData),this.goto=qs(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new pr(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 wv(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=rn(r,s+2)];else{if(r[s+1]==2)return rn(r,s+2);break}if(o==t||o==0)return rn(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=rn(this.data,s+2);else break;i=t(rn(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=rn(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($o.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]=qu(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 kv(e,r,i)}static deserialize(e){return new $o(e)}}function rn(n,e){return n[e]|n[e+1]<<16}function Sv(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 qu(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}let Cv=0;class gt{constructor(e,t,r,i){this.name=e,this.set=t,this.base=r,this.modified=i,this.id=Cv++}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 gt&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let i=new gt(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 Fo(e);return r=>r.modified.indexOf(t)>-1?r:Fo.get(r.base||r,r.modified.concat(t).sort((i,s)=>i.id-s.id))}}let jv=0;class Fo{constructor(e){this.name=e,this.instances=[],this.id=jv++}static get(e,t){if(!t.length)return e;let r=t[0].instances.find(a=>a.base==e&&Ov(t,a.modified));if(r)return r;let i=[],s=new gt(e.name,i,e,t);for(let a of t)a.instances.push(s);let o=Pv(t);for(let a of e.set)if(!a.modified.length)for(let l of o)i.push(Fo.get(a,l));return s}}function Ov(n,e){return n.length==e.length&&n.every((t,r)=>t==e[r])}function Pv(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 bm(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 d=0;;){if(a=="..."&&d>0&&d+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]),d+=f[0].length,d==i.length)break;let p=i[d++];if(d==i.length&&p=="!"){o=0;break}if(p!="/")throw new RangeError("Invalid path: "+i);a=i.slice(d)}let l=s.length-1,c=s[l];if(!c)throw new RangeError("Invalid path: "+i);let h=new yi(r,o,l>0?s.slice(0,l):null);e[c]=h.sort(e[c])}}return ym.add(e)}const ym=new ce({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 yi(i.tags,i.mode,i.context);t?t.next=s:r=s,t=s}return r}});class yi{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}}yi.empty=new yi([],2,null);function xm(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 Av(n,e){let t=null;for(let r of n){let i=r.style(e);i&&(t=t?t+" "+i:i)}return t}function Mv(n,e,t,r=0,i=n.length){let s=new Nv(r,Array.isArray(e)?e:[e],t);s.highlightRange(n.cursor(),r,i,"",s.highlighters),s.flush(i)}class Nv{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=Dv(e)||yi.empty,d=Av(s,h.tags);if(d&&(c&&(c+=" "),c+=d,h.mode==1&&(i+=(i?" ":"")+d)),this.startSpan(Math.max(t,a),c),h.opaque)return;let f=e.tree&&e.tree.prop(ce.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 Dv(n){let e=n.type.prop(ym);for(;e&&e.context&&!n.matchContext(e.context);)e=e.next;return e||null}const H=gt.define,Ys=H(),dn=H(),Yu=H(dn),Ju=H(dn),fn=H(),Js=H(fn),_a=H(fn),It=H(),$n=H(It),Tt=H(),Lt=H(),Gl=H(),Gr=H(Gl),Qs=H(),D={comment:Ys,lineComment:H(Ys),blockComment:H(Ys),docComment:H(Ys),name:dn,variableName:H(dn),typeName:Yu,tagName:H(Yu),propertyName:Ju,attributeName:H(Ju),className:H(dn),labelName:H(dn),namespace:H(dn),macroName:H(dn),literal:fn,string:Js,docString:H(Js),character:H(Js),attributeValue:H(Js),number:_a,integer:H(_a),float:H(_a),bool:H(fn),regexp:H(fn),escape:H(fn),color:H(fn),url:H(fn),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:Lt,derefOperator:H(Lt),arithmeticOperator:H(Lt),logicOperator:H(Lt),bitwiseOperator:H(Lt),compareOperator:H(Lt),updateOperator:H(Lt),definitionOperator:H(Lt),typeOperator:H(Lt),controlOperator:H(Lt),punctuation:Gl,separator:H(Gl),bracket:Gr,angleBracket:H(Gr),squareBracket:H(Gr),paren:H(Gr),brace:H(Gr),content:It,heading:$n,heading1:H($n),heading2:H($n),heading3:H($n),heading4:H($n),heading5:H($n),heading6:H($n),contentSeparator:H(It),list:H(It),quote:H(It),emphasis:H(It),strong:H(It),link:H(It),monospace:H(It),strikethrough:H(It),inserted:H(),deleted:H(),changed:H(),invalid:H(),meta:Qs,documentMeta:H(Qs),annotation:H(Qs),processingInstruction:H(Qs),definition:gt.defineModifier("definition"),constant:gt.defineModifier("constant"),function:gt.defineModifier("function"),standard:gt.defineModifier("standard"),local:gt.defineModifier("local"),special:gt.defineModifier("special")};for(let n in D){let e=D[n];e instanceof gt&&(e.name=n)}xm([{tag:D.link,class:"tok-link"},{tag:D.heading,class:"tok-heading"},{tag:D.emphasis,class:"tok-emphasis"},{tag:D.strong,class:"tok-strong"},{tag:D.keyword,class:"tok-keyword"},{tag:D.atom,class:"tok-atom"},{tag:D.bool,class:"tok-bool"},{tag:D.url,class:"tok-url"},{tag:D.labelName,class:"tok-labelName"},{tag:D.inserted,class:"tok-inserted"},{tag:D.deleted,class:"tok-deleted"},{tag:D.literal,class:"tok-literal"},{tag:D.string,class:"tok-string"},{tag:D.number,class:"tok-number"},{tag:[D.regexp,D.escape,D.special(D.string)],class:"tok-string2"},{tag:D.variableName,class:"tok-variableName"},{tag:D.local(D.variableName),class:"tok-variableName tok-local"},{tag:D.definition(D.variableName),class:"tok-variableName tok-definition"},{tag:D.special(D.variableName),class:"tok-variableName2"},{tag:D.definition(D.propertyName),class:"tok-propertyName tok-definition"},{tag:D.typeName,class:"tok-typeName"},{tag:D.namespace,class:"tok-namespace"},{tag:D.className,class:"tok-className"},{tag:D.macroName,class:"tok-macroName"},{tag:D.propertyName,class:"tok-propertyName"},{tag:D.operator,class:"tok-operator"},{tag:D.comment,class:"tok-comment"},{tag:D.meta,class:"tok-meta"},{tag:D.invalid,class:"tok-invalid"},{tag:D.punctuation,class:"tok-punctuation"}]);const Ev=bm({String:D.string,Number:D.number,"True False":D.bool,PropertyName:D.propertyName,Null:D.null,", :":D.separator,"[ ]":D.squareBracket,"{ }":D.brace}),Tv=$o.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:[Ev],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 ql=[],vm=[];(()=>{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?vm:ql).push(t=t+n[e])})();function Lv(n){if(n<768)return!1;for(let e=0,t=ql.length;;){let r=e+t>>1;if(n<ql[r])t=r;else if(n>=vm[r])e=r+1;else return!0;if(e==t)return!1}}function Qu(n){return n>=127462&&n<=127487}const Xu=8205;function Rv(n,e,t=!0,r=!0){return(t?wm:Iv)(n,e,r)}function wm(n,e,t){if(e==n.length)return e;e&&km(n.charCodeAt(e))&&Sm(n.charCodeAt(e-1))&&e--;let r=Ua(n,e);for(e+=Zu(r);e<n.length;){let i=Ua(n,e);if(r==Xu||i==Xu||t&&Lv(i))e+=Zu(i),r=i;else if(Qu(i)){let s=0,o=e-2;for(;o>=0&&Qu(Ua(n,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function Iv(n,e,t){for(;e>0;){let r=wm(n,e-2,t);if(r<e)return r;e--}return 0}function Ua(n,e){let t=n.charCodeAt(e);if(!Sm(t)||e+1==n.length)return t;let r=n.charCodeAt(e+1);return km(r)?(t-55296<<10)+(r-56320)+65536:t}function km(n){return n>=56320&&n<57344}function Sm(n){return n>=55296&&n<56320}function Zu(n){return n<65536?1:2}class be{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]=wr(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),$t.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]=wr(this,e,t);let r=[];return this.decompose(e,t,r,0),$t.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 oi(this),s=new oi(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 oi(this,e)}iterRange(e,t=this.length){return new Cm(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 jm(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]?be.empty:e.length<=32?new Me(e):$t.from(Me.split(e,[]))}}class Me extends be{constructor(e,t=Bv(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 $v(i,a,r,o);i=a+1,r++}}decompose(e,t,r,i){let s=e<=0&&t>=this.length?this:new Me(ed(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(i&1){let o=r.pop(),a=Po(s.text,o.text.slice(),0,s.length);if(a.length<=32)r.push(new Me(a,o.length+s.length));else{let l=a.length>>1;r.push(new Me(a.slice(0,l)),new Me(a.slice(l)))}}else r.push(s)}replace(e,t,r){if(!(r instanceof Me))return super.replace(e,t,r);[e,t]=wr(this,e,t);let i=Po(this.text,Po(r.text,ed(this.text,0,e)),t),s=this.length+r.length-(t-e);return i.length<=32?new Me(i,s):$t.from(Me.split(i,[]),s)}sliceString(e,t=this.length,r=`
|
|
171
|
-
`){[e,t]=wr(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 Me(r,i)),r=[],i=-1);return i>-1&&t.push(new Me(r,i)),t}}class $t extends be{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]=wr(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 $t(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=`
|
|
172
|
-
`){[e,t]=wr(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 $t))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 Me(p,t)}let i=Math.max(32,r>>5),s=i<<1,o=i>>1,a=[],l=0,c=-1,h=[];function d(p){let m;if(p.lines>s&&p instanceof $t)for(let g of p.children)d(g);else p.lines>o&&(l>o||!l)?(f(),a.push(p)):p instanceof Me&&l&&(m=h[h.length-1])instanceof Me&&p.lines+m.lines<=32?(l+=p.lines,c+=p.length+1,h[h.length-1]=new Me(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]:$t.from(h,c)),c=-1,l=h.length=0)}for(let p of e)d(p);return f(),a.length==1?a[0]:new $t(a,t)}}be.empty=new Me([""],0);function Bv(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Po(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 ed(n,e,t){return Po(n,[""],e,t)}class oi{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 Me?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 Me?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=`
|
|
173
|
-
`,this;e--}else if(i instanceof Me){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 Me?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 Cm{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new oi(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 jm{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"&&(be.prototype[Symbol.iterator]=function(){return this.iter()},oi.prototype[Symbol.iterator]=Cm.prototype[Symbol.iterator]=jm.prototype[Symbol.iterator]=function(){return this});class $v{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 wr(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function Le(n,e,t=!0,r=!0){return Rv(n,e,t,r)}function Fv(n){return n>=56320&&n<57344}function Vv(n){return n>=55296&&n<56320}function et(n,e){let t=n.charCodeAt(e);if(!Vv(t)||e+1==n.length)return t;let r=n.charCodeAt(e+1);return Fv(r)?(t-55296<<10)+(r-56320)+65536:t}function rh(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Ft(n){return n<65536?1:2}const Yl=/\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 Ut{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){Jl(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 Ut(e)}composeDesc(e){return this.empty?e:e.empty?this:Om(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 Ut(e)}static create(e){return new Ut(e)}}class Te extends Ut{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 Jl(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(be.empty);r.push(o?e.slice(s,s+o):be.empty)}s+=o}return new Te(t,r)}compose(e){return this.empty?e:e.empty?this:Om(this,e,!0)}map(e,t=!1){return e.empty?this:Ql(this,e,t,!0)}iterChanges(e,t=!1){Jl(this,e,t)}get desc(){return Ut.create(this.sections)}filter(e){let t=[],r=[],i=[],s=new xi(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);Ke(i,h,-1);let d=s.ins==-1?-1:s.off==0?s.ins:0;Ke(t,h,d),d>0&&vn(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);Ke(t,h,-1),Ke(i,h,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(h),a+=h}}return{changes:new Te(t,r),filtered:Ut.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&&Ke(i,t-o,-1);let d=new Te(i,s);a=a?a.compose(d.map(a)):d,i=[],s=[],o=0}function c(h){if(Array.isArray(h))for(let d of h)c(d);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:d,to:f=d,insert:p}=h;if(d>f||d<0||f>t)throw new RangeError(`Invalid change range ${d} to ${f} (in doc of length ${t})`);let m=p?typeof p=="string"?be.of(p.split(r||Yl)):p:be.empty,g=m.length;if(d==f&&g==0)return;d<o&&l(),d>o&&Ke(i,d-o,-1),Ke(i,f-d,g),vn(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(be.empty);r[i]=be.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 Ke(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 vn(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(be.empty);n.push(t)}}function Jl(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,d=be.empty;for(;c+=a,h+=l,l&&r&&(d=d.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,d),i=c,s=h}}}function Ql(n,e,t,r=!1){let i=[],s=r?[]:null,o=new xi(n),a=new xi(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);Ke(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(Ke(i,a.ins,-1);c;){let h=Math.min(o.len,c);o.ins>=0&&l<o.i&&o.len<=h&&(Ke(i,0,o.ins),s&&vn(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 d=Math.min(h,a.len);c+=d,h-=d,a.forward(d)}else if(a.ins==0&&a.len<h)h-=a.len,a.next();else break;Ke(i,c,l<o.i?o.ins:0),s&&l<o.i&&vn(s,i,o.text),l=o.i,o.forward(o.len-h)}else{if(o.done&&a.done)return s?Te.createSet(i,s):Ut.create(i);throw new Error("Mismatched change set lengths")}}}function Om(n,e,t=!1){let r=[],i=t?[]:null,s=new xi(n),o=new xi(e);for(let a=!1;;){if(s.done&&o.done)return i?Te.createSet(r,i):Ut.create(r);if(s.ins==0)Ke(r,s.len,0,a),s.next();else if(o.len==0&&!o.done)Ke(r,0,o.ins,a),i&&vn(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;Ke(r,l,h,a),i&&h&&vn(i,r,o.text)}else o.ins==-1?(Ke(r,s.off?0:s.len,l,a),i&&vn(i,r,s.textBit(l))):(Ke(r,s.off?0:s.len,o.off?0:o.ins,a),i&&!o.off&&vn(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 xi{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?be.empty:e[t]}textBit(e){let{inserted:t}=this.set,r=this.i-2>>1;return r>=t.length&&!e?be.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 Wn{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 Wn(r,i,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return T.range(e,t);let r=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return T.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 T.range(e.anchor,e.head)}static create(e,t,r){return new Wn(e,t,r)}}class T{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:T.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 T([this.main],0)}addRange(e,t=!0){return T.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let r=this.ranges.slice();return r[t]=e,T.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 T(e.ranges.map(t=>Wn.fromJSON(t)),e.main)}static single(e,t=e){return new T([T.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 T.normalized(e.slice(),t);r=s.to}return new T(e,t)}static cursor(e,t=0,r,i){return Wn.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?Wn.create(t,e,48|s):Wn.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?T.range(l,a):T.range(a,l))}}return new T(e,t)}}function Pm(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let ih=0;class K{constructor(e,t,r,i,s){this.combine=e,this.compareInput=t,this.compare=r,this.isStatic=i,this.id=ih++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new K(e.combine||(t=>t),e.compareInput||((t,r)=>t===r),e.compare||(e.combine?(t,r)=>t===r:sh),!!e.static,e.enables)}of(e){return new Ao([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ao(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ao(e,this,2,t)}from(e,t){return t||(t=r=>r),this.compute([e],r=>t(r.field(e)))}}function sh(n,e){return n==e||n.length==e.length&&n.every((t,r)=>t===e[r])}class Ao{constructor(e,t,r,i){this.dependencies=e,this.facet=t,this.type=r,this.value=i,this.id=ih++}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 d of this.dependencies)d=="doc"?l=!0:d=="selection"?c=!0:((t=e[d.id])!==null&&t!==void 0?t:1)&1||h.push(e[d.id]);return{create(d){return d.values[o]=r(d),1},update(d,f){if(l&&f.docChanged||c&&(f.docChanged||f.selection)||Xl(d,h)){let p=r(d);if(a?!td(p,d.values[o],i):!i(p,d.values[o]))return d.values[o]=p,1}return 0},reconfigure:(d,f)=>{let p,m=f.config.address[s];if(m!=null){let g=zo(f,m);if(this.dependencies.every(y=>y instanceof K?f.facet(y)===d.facet(y):y instanceof He?f.field(y,!1)==d.field(y,!1):!0)||(a?td(p=r(d),g,i):i(p=r(d),g)))return d.values[o]=g,0}else p=r(d);return d.values[o]=p,1}}}}function td(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 Xl(n,e){let t=!1;for(let r of e)ai(n,r)&1&&(t=!0);return t}function zv(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 d=zo(l,r[h]);if(i[h]==2)for(let f of d)c.push(f);else c.push(d)}return e.combine(c)}return{create(l){for(let c of r)ai(l,c);return l.values[o]=a(l),1},update(l,c){if(!Xl(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=Xl(l,r),d=c.config.facets[e.id],f=c.facet(e);if(d&&!h&&sh(t,d))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 Xs=K.define({static:!0});class He{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 He(ih++,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(Xs).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(Xs),o=i.facet(Xs),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,Xs.of({field:this,create:e})]}get extension(){return this}}const Vn={lowest:4,low:3,default:2,high:1,highest:0};function qr(n){return e=>new Am(e,n)}const Zn={highest:qr(Vn.highest),high:qr(Vn.high),default:qr(Vn.default),low:qr(Vn.low),lowest:qr(Vn.lowest)};class Am{constructor(e,t){this.inner=e,this.prec=t}}class ma{of(e){return new Zl(this,e)}reconfigure(e){return ma.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Zl{constructor(e,t){this.compartment=e,this.inner=t}}class Vo{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 Hv(e,t,o))f instanceof He?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,sh(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=>zv(y,m,p))}}let d=c.map(f=>f(a));return new Vo(e,o,d,a,l,s)}}function Hv(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 Zl&&t.delete(o.compartment)}if(i.set(o,a),Array.isArray(o))for(let c of o)s(c,a);else if(o instanceof Zl){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 Am)s(o.inner,o.prec);else if(o instanceof He)r[a].push(o),o.provides&&s(o.provides,a);else if(o instanceof Ao)r[a].push(o),o.facet.extensions&&s(o.facet.extensions,Vn.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,Vn.default),r.reduce((o,a)=>o.concat(a))}function ai(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 zo(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const Mm=K.define(),ec=K.define({combine:n=>n.some(e=>e),static:!0}),Nm=K.define({combine:n=>n.length?n[0]:void 0,static:!0}),Dm=K.define(),Em=K.define(),Tm=K.define(),Lm=K.define({combine:n=>n.length?n[0]:!1});class Yt{constructor(e,t){this.type=e,this.value=t}static define(){return new Wv}}class Wv{of(e){return new Yt(this,e)}}class _v{constructor(e){this.map=e}of(e){return new oe(this,e)}}class oe{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 oe(this.type,t)}is(e){return this.type==e}static define(e={}){return new _v(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}}oe.reconfigure=oe.define();oe.appendConfig=oe.define();class Re{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&&Pm(r,t.newLength),s.some(a=>a.type==Re.time)||(this.annotations=s.concat(Re.time.of(Date.now())))}static create(e,t,r,i,s,o){return new Re(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(Re.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}Re.time=Yt.define();Re.userEvent=Yt.define();Re.addToHistory=Yt.define();Re.remote=Yt.define();function Uv(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 Rm(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:oe.mapEffects(n.effects,i).concat(oe.mapEffects(e.effects,s)),annotations:n.annotations.length?n.annotations.concat(e.annotations):e.annotations,scrollIntoView:n.scrollIntoView||e.scrollIntoView}}function tc(n,e,t){let r=e.selection,i=mr(e.annotations);return e.userEvent&&(i=i.concat(Re.userEvent.of(e.userEvent))),{changes:e.changes instanceof Te?e.changes:Te.of(e.changes||[],t,n.facet(Nm)),selection:r&&(r instanceof T?r:T.single(r.anchor,r.head)),effects:mr(e.effects),annotations:i,scrollIntoView:!!e.scrollIntoView}}function Im(n,e,t){let r=tc(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=Rm(r,tc(n,e[s],o?r.changes.newLength:n.doc.length),o)}let i=Re.create(n,r.changes,r.selection,r.effects,r.annotations,r.scrollIntoView);return Gv(t?Kv(i):i)}function Kv(n){let e=n.startState,t=!0;for(let i of e.facet(Dm)){let s=i(n);if(s===!1){t=!1;break}Array.isArray(s)&&(t=t===!0?s:Uv(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=Re.create(e,i,n.selection&&n.selection.map(s),oe.mapEffects(n.effects,s),n.annotations,n.scrollIntoView)}let r=e.facet(Em);for(let i=r.length-1;i>=0;i--){let s=r[i](n);s instanceof Re?n=s:Array.isArray(s)&&s.length==1&&s[0]instanceof Re?n=s[0]:n=Im(e,mr(s),!1)}return n}function Gv(n){let e=n.startState,t=e.facet(Tm),r=n;for(let i=t.length-1;i>=0;i--){let s=t[i](n);s&&Object.keys(s).length&&(r=Rm(r,tc(e,s,n.changes.newLength),!0))}return r==n?n:Re.create(e,n.changes,n.selection,r.effects,r.annotations,r.scrollIntoView)}const qv=[];function mr(n){return n==null?qv:Array.isArray(n)?n:[n]}var Ce=function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n}(Ce||(Ce={}));const Yv=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let nc;try{nc=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function Jv(n){if(nc)return nc.test(n);for(let e=0;e<n.length;e++){let t=n[e];if(/\w/.test(t)||t>""&&(t.toUpperCase()!=t.toLowerCase()||Yv.test(t)))return!0}return!1}function Qv(n){return e=>{if(!/\S/.test(e))return Ce.Space;if(Jv(e))return Ce.Word;for(let t=0;t<n.length;t++)if(e.indexOf(n[t])>-1)return Ce.Word;return Ce.Other}}class ue{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++)ai(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 ai(this,r),zo(this,r)}update(...e){return Im(this,e,!0)}applyTransaction(e){let t=this.config,{base:r,compartments:i}=t;for(let a of e.effects)a.is(ma.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(oe.reconfigure)?(t=null,r=a.value):a.is(oe.appendConfig)&&(t=null,r=mr(r).concat(a.value));let s;t?s=e.startState.values.slice():(t=Vo.resolve(r,i,this),s=new ue(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(ec)?e.newSelection:e.newSelection.asSingle();new ue(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:T.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=mr(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 d=i.mapDesc(c,!0);s.push(l.range.map(d)),i=i.compose(h),o=oe.mapEffects(o,h).concat(oe.mapEffects(mr(l.effects),d))}return{changes:i,selection:T.create(s,t.mainIndex),effects:o}}changes(e=[]){return e instanceof Te?e:Te.of(e,this.doc.length,this.facet(ue.lineSeparator))}toText(e){return be.of(e.split(this.facet(ue.lineSeparator)||Yl))}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:(ai(this,t),zo(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 He&&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 ue.create({doc:e.doc,selection:T.fromJSON(e.selection),extensions:t.extensions?i.concat([t.extensions]):i})}static create(e={}){let t=Vo.resolve(e.extensions||[],new Map),r=e.doc instanceof be?e.doc:be.of((e.doc||"").split(t.staticFacet(ue.lineSeparator)||Yl)),i=e.selection?e.selection instanceof T?e.selection:T.single(e.selection.anchor,e.selection.head):T.single(0);return Pm(i,r.length),t.staticFacet(ec)||(i=i.asSingle()),new ue(t,r,i,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(ue.tabSize)}get lineBreak(){return this.facet(ue.lineSeparator)||`
|
|
174
|
-
`}get readOnly(){return this.facet(Lm)}phrase(e,...t){for(let r of this.facet(ue.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(Mm))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 Qv(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=Le(t,o,!1);if(s(t.slice(l,o))!=Ce.Word)break;o=l}for(;a<i;){let l=Le(t,a);if(s(t.slice(a,l))!=Ce.Word)break;a=l}return o==a?null:T.range(o+r,a+r)}}ue.allowMultipleSelections=ec;ue.tabSize=K.define({combine:n=>n.length?n[0]:4});ue.lineSeparator=Nm;ue.readOnly=Lm;ue.phrases=K.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])}});ue.languageData=Mm;ue.changeFilter=Dm;ue.transactionFilter=Em;ue.transactionExtender=Tm;ma.reconfigure=oe.define();function Jt(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 Cn{eq(e){return this==e}range(e,t=e){return vi.create(e,t,this)}}Cn.prototype.startSide=Cn.prototype.endSide=0;Cn.prototype.point=!1;Cn.prototype.mapMode=Qe.TrackDel;function oh(n,e){return n==e||n.constructor==e.constructor&&n.eq(e)}class vi{constructor(e,t,r){this.from=e,this.to=t,this.value=r}static create(e,t,r){return new vi(e,t,r)}}function rc(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}class ah{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,d=this.to[l]+e,f,p;if(h==d){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(d,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 ah(i,s,r,a):null,pos:o}}}class he{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 he(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(rc)),this.isEmpty)return t.length?he.of(t):this;let a=new Bm(this,null,-1).goto(0),l=0,c=[],h=new an;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let d=t[l++];h.addInner(d.from,d.to,d.value)||c.push(d)}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(vi.create(a.from,a.to,a.value))),a.next());return h.finishInner(this.nextLayer.isEmpty&&!c.length?he.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:d}=l.map(a,e);h&&(i=Math.max(i,h.maxPoint),t.push(h),r.push(d))}}let s=this.nextLayer.map(e);return t.length==0?s:new he(r,t,s||he.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 wi.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return wi.from(e).goto(t)}static compare(e,t,r,i,s=-1){let o=e.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=s),a=t.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=s),l=nd(o,a,r),c=new Yr(o,l,s),h=new Yr(a,l,s);r.iterGaps((d,f,p)=>rd(c,d,h,f,p,i)),r.empty&&r.length==0&&rd(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=nd(s,o),l=new Yr(s,a,0).goto(r),c=new Yr(o,a,0).goto(r);for(;;){if(l.to!=c.to||!ic(l.active,c.active)||l.point&&(!c.point||!oh(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 Yr(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),d=o.pointFrom<t?h.length+1:o.point.startSide<0?h.length:Math.min(h.length,l);i.point(a,c,o.point,h,d,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 an;for(let i of e instanceof vi?[e]:t?Xv(e):e)r.add(i.from,i.to,i.value);return r.finish()}static join(e){if(!e.length)return he.empty;let t=e[e.length-1];for(let r=e.length-2;r>=0;r--)for(let i=e[r];i!=he.empty;i=i.nextLayer)t=new he(i.chunkPos,i.chunk,t,Math.max(i.maxPoint,t.maxPoint));return t}}he.empty=new he([],[],null,-1);function Xv(n){if(n.length>1)for(let e=n[0],t=1;t<n.length;t++){let r=n[t];if(rc(e,r)>0)return n.slice().sort(rc);e=r}return n}he.empty.nextLayer=he.empty;class an{finishChunk(e){this.chunks.push(new ah(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 an)).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(he.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=he.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function nd(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 Bm{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 wi{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 Bm(o,t,r,s));return i.length==1?i[0]:new wi(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--)Ka(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--)Ka(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(),Ka(this.heap,0)}}}function Ka(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 Yr{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=wi.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){Zs(this.active,e),Zs(this.activeTo,e),Zs(this.activeRank,e),this.minActive=id(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++;eo(this.active,t,r),eo(this.activeTo,t,i),eo(this.activeRank,t,s),e&&eo(e,t,this.cursor.from),this.minActive=id(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&&Zs(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 rd(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 d=n.to+l-t.to,f=d||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&&oh(n.point,t.point)&&ic(n.activeForPoint(n.to),t.activeForPoint(t.to))||s.comparePoint(a,m,n.point,t.point),h=!1):(h&&s.boundChange(a),m>a&&!ic(n.active,t.active)&&s.compareRange(a,m,n.active,t.active),c&&m<o&&(d||n.openEnd(p)!=t.openEnd(p))&&(h=!0)),p>o)break;a=p,f<=0&&n.next(),f>=0&&t.next()}}function ic(n,e){if(n.length!=e.length)return!1;for(let t=0;t<n.length;t++)if(n[t]!=e[t]&&!oh(n[t],e[t]))return!1;return!0}function Zs(n,e){for(let t=e,r=n.length-1;t<r;t++)n[t]=n[t+1];n.pop()}function eo(n,e,t){for(let r=n.length-1;r>=e;r--)n[r+1]=n[r];n[e]=t}function id(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 Nr(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=Le(n,i));return r}function sc(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=Le(n,i)}return r===!0?-1:n.length}const oc="ͼ",sd=typeof Symbol>"u"?"__"+oc:Symbol.for(oc),ac=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),od=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class jn{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=[],d=/^@(\w+)\b/.exec(o[0]),f=d&&d[1]=="keyframes";if(d&&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(!d)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&&!d&&!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(`
|
|
175
|
-
`)}static newName(){let e=od[sd]||1;return od[sd]=e+1,oc+e.toString(36)}static mount(e,t,r){let i=e[ac],s=r&&r.nonce;i?s&&i.setNonce(s):i=new Zv(e,s),i.mount(Array.isArray(t)?t:[t],e)}}let ad=new Map;class Zv{constructor(e,t){let r=e.ownerDocument||e,i=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let s=ad.get(r);if(s)return e[ac]=s;this.sheet=new i.CSSStyleSheet,ad.set(r,this)}else this.styleTag=r.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[ac]=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()+`
|
|
176
|
-
`;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 On={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:"'"},ki={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},e2=typeof navigator<"u"&&/Mac/.test(navigator.platform),t2=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Ve=0;Ve<10;Ve++)On[48+Ve]=On[96+Ve]=String(Ve);for(var Ve=1;Ve<=24;Ve++)On[Ve+111]="F"+Ve;for(var Ve=65;Ve<=90;Ve++)On[Ve]=String.fromCharCode(Ve+32),ki[Ve]=String.fromCharCode(Ve);for(var Ga in On)ki.hasOwnProperty(Ga)||(ki[Ga]=On[Ga]);function n2(n){var e=e2&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||t2&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?ki:On)[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 ve(){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++)$m(n,arguments[e]);return n}function $m(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++)$m(n,e[t]);else throw new RangeError("Unsupported child node: "+e)}let Je=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},lc=typeof document<"u"?document:{documentElement:{style:{}}};const cc=/Edge\/(\d+)/.exec(Je.userAgent),Fm=/MSIE \d/.test(Je.userAgent),hc=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Je.userAgent),ga=!!(Fm||hc||cc),ld=!ga&&/gecko\/(\d+)/i.test(Je.userAgent),qa=!ga&&/Chrome\/(\d+)/.exec(Je.userAgent),r2="webkitFontSmoothing"in lc.documentElement.style,uc=!ga&&/Apple Computer/.test(Je.vendor),cd=uc&&(/Mobile\/\w+/.test(Je.userAgent)||Je.maxTouchPoints>2);var U={mac:cd||/Mac/.test(Je.platform),windows:/Win/.test(Je.platform),linux:/Linux|X11/.test(Je.platform),ie:ga,ie_version:Fm?lc.documentMode||6:hc?+hc[1]:cc?+cc[1]:0,gecko:ld,gecko_version:ld?+(/Firefox\/(\d+)/.exec(Je.userAgent)||[0,0])[1]:0,chrome:!!qa,chrome_version:qa?+qa[1]:0,ios:cd,android:/Android\b/.test(Je.userAgent),webkit_version:r2?+(/\bAppleWebKit\/(\d+)/.exec(Je.userAgent)||[0,0])[1]:0,safari:uc,safari_version:uc?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Je.userAgent)||[0,0])[1]:0,tabSize:lc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function lh(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 Ho=Object.create(null);function ch(n,e,t){if(n==e)return!0;n||(n=Ho),e||(e=Ho);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 i2(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 hd(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 s2(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 Qt{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 ne extends Cn{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 Ss(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 qn(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}=Vm(e,t);r=(s?t?-3e8:-1:5e8)-1,i=(o?t?2e8:1:-6e8)+1}return new qn(e,r,i,t,e.widget||null,!0)}static line(e){return new Cs(e)}static set(e,t=!1){return he.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}ne.none=he.empty;class Ss extends ne{constructor(e){let{start:t,end:r}=Vm(e);super(t?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?lh(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||Ho}eq(e){return this==e||e instanceof Ss&&this.tagName==e.tagName&&ch(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)}}Ss.prototype.point=!1;class Cs extends ne{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Cs&&this.spec.class==e.spec.class&&ch(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)}}Cs.prototype.mapMode=Qe.TrackBefore;Cs.prototype.point=!0;class qn extends ne{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 qn&&o2(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)}}qn.prototype.point=!0;function Vm(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 o2(n,e){return n==e||!!(n&&e&&n.compare(e))}function gr(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 Si extends Cn{constructor(e,t){super(),this.tagName=e,this.attributes=t}eq(e){return e==this||e instanceof Si&&this.tagName==e.tagName&&ch(this.attributes,e.attributes)}static create(e){return new Si(e.tagName,e.attributes||Ho)}static set(e,t=!1){return he.of(e,t)}}Si.prototype.startSide=Si.prototype.endSide=-1;function Ci(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}function dc(n,e){return e?n==e||n.contains(e.nodeType!=1?e.parentNode:e):!1}function Mo(n,e){if(!e.anchorNode)return!1;try{return dc(n,e.anchorNode)}catch{return!1}}function li(n){return n.nodeType==3?Oi(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function ci(n,e,t,r){return t?ud(n,e,t,r,-1)||ud(n,e,t,r,1):!1}function Pn(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}function Wo(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(n.nodeName)}function ud(n,e,t,r,i){for(;;){if(n==t&&e==r)return!0;if(e==(i<0?0:ln(n))){if(n.nodeName=="DIV")return!1;let s=n.parentNode;if(!s||s.nodeType!=1)return!1;e=Pn(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?ln(n):0}else return!1}}function ln(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}function ji(n,e){let t=e?n.left:n.right;return{left:t,right:t,top:n.top,bottom:n.bottom}}function a2(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 zm(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 l2(n,e,t,r,i,s,o,a){let l=n.ownerDocument,c=l.defaultView||window;for(let h=n,d=!1;h&&!d;)if(h.nodeType==1){let f,p=h==l.body,m=1,g=1;if(p)f=a2(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(d=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let S=h.getBoundingClientRect();({scaleX:m,scaleY:g}=zm(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 c2(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 h2{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?ln(t):0),r,Math.min(e.focusOffset,r?ln(r):0))}set(e,t,r,i){this.anchorNode=e,this.anchorOffset=t,this.focusNode=r,this.focusOffset=i}}let Fn=null;U.safari&&U.safari_version>=26&&(Fn=!1);function Hm(n){if(n.setActive)return n.setActive();if(Fn)return n.focus(Fn);let e=[];for(let t=n;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(n.focus(Fn==null?{get preventScroll(){return Fn={preventScroll:!0},!0}}:void 0),!Fn){Fn=!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 dd;function Oi(n,e,t=e){let r=dd||(dd=document.createRange());return r.setEnd(n,t),r.setStart(n,e),r}function br(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 u2(n){for(;n;){if(n&&(n.nodeType==9||n.nodeType==11&&n.host))return n;n=n.assignedSlot||n.parentNode}return null}function d2(n,e){let t=e.focusNode,r=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=r)return!1;for(r=Math.min(r,ln(t));;)if(r){if(t.nodeType!=1)return!1;let i=t.childNodes[r-1];i.contentEditable=="false"?r--:(t=i,r=ln(t))}else{if(t==n)return!0;r=Pn(t),t=t.parentNode}}function Wm(n){return n.scrollTop>Math.max(1,n.scrollHeight-n.clientHeight-4)}function _m(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=ln(t)}else if(t.parentNode&&!Wo(t))r=Pn(t),t=t.parentNode;else return null}}function Um(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&&!Wo(t))r=Pn(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,Pn(e),t)}static after(e,t){return new Ot(e.parentNode,Pn(e)+1,t)}}var ke=function(n){return n[n.LTR=0]="LTR",n[n.RTL=1]="RTL",n}(ke||(ke={}));const Yn=ke.LTR,hh=ke.RTL;function Km(n){let e=[];for(let t=0;t<n.length;t++)e.push(1<<+n[t]);return e}const f2=Km("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),p2=Km("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),fc=Object.create(null),Rt=[];for(let n of["()","[]","{}"]){let e=n.charCodeAt(0),t=n.charCodeAt(1);fc[e]=t,fc[t]=-e}function Gm(n){return n<=247?f2[n]:1424<=n&&n<=1524?2:1536<=n&&n<=1785?p2[n-1536]:1774<=n&&n<=2220?4:8192<=n&&n<=8204?256:64336<=n&&n<=65023?4:1}const m2=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class on{get dir(){return this.level%2?hh:Yn}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 qm(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||!qm(r.inner,i.inner))return!1}return!0}const we=[];function g2(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,d=l;c<a;c++){let f=Gm(n.charCodeAt(c));f==512?f=h:f==8&&d==4&&(f=16),we[c]=f==4?2:f,f&7&&(d=f),h=f}for(let c=o,h=l,d=l;c<a;c++){let f=we[c];if(f==128)c<a-1&&h==we[c+1]&&h&24?f=we[c]=h:we[c]=256;else if(f==64){let p=c+1;for(;p<a&&we[p]==64;)p++;let m=c&&h==8||p<t&&we[p]==8?d==1?1:8:256;for(let g=c;g<p;g++)we[g]=m;c=p-1}else f==8&&d==1&&(we[c]=1);h=f,f&7&&(d=f)}}}function b2(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 d=c,f,p,m;d<h;d++)if(p=fc[f=n.charCodeAt(d)])if(p<0){for(let g=a-3;g>=0;g-=3)if(Rt[g+1]==-p){let y=Rt[g+2],v=y&2?i:y&4?y&1?s:i:0;v&&(we[d]=we[Rt[g]]=v),a=g;break}}else{if(Rt.length==189)break;Rt[a++]=d,Rt[a++]=f,Rt[a++]=l}else if((m=we[d])==2||m==1){let g=m==i;l=g?0:1;for(let y=a-3;y>=0;y-=3){let v=Rt[y+2];if(v&2)break;if(g)Rt[y+2]|=2;else{if(v&4)break;Rt[y+2]|=4}}}}}function y2(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=we[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(we[h]==256)h++;else break;let d=s==1,f=(h<e?we[h]:r)==1,p=d==f?d?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),we[--m]=p;l=h}else s=c,l++}}}function pc(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,d=!1;if(c==s.length||l<s[c].from){let g=we[l];g!=a&&(h=!1,d=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(d)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(we[y]==a)break e;break}}if(c++,f)f.push(g);else{g.from>l&&o.push(new on(l,g.from,p));let y=g.direction==Yn!=!(p%2);mc(n,y?r+1:r,i,g.inner,g.from,g.to,o),l=g.to}m=g.to}else{if(m==t||(h?we[m]!=a:we[m]==a))break;m++}f?pc(n,l,m,r+1,i,f,o):l<m&&o.push(new on(l,m,p)),l=m}else for(let l=t,c=s.length;l>e;){let h=!0,d=!1;if(!c||l>s[c-1].to){let g=we[l-1];g!=a&&(h=!1,d=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(d)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(we[y-1]==a)break e;break}}if(f)f.push(g);else{g.to<l&&o.push(new on(g.to,l,p));let y=g.direction==Yn!=!(p%2);mc(n,y?r+1:r,i,g.inner,g.from,g.to,o),l=g.from}m=g.from}else{if(m==e||(h?we[m-1]!=a:we[m-1]==a))break;m--}f?pc(n,m,l,r+1,i,f,o):m<l&&o.push(new on(m,l,p)),l=m}}function mc(n,e,t,r,i,s,o){let a=e%2?2:1;g2(n,i,s,r,a),b2(n,i,s,r,a),y2(i,s,r,a),pc(n,i,s,e,t,r,o)}function x2(n,e,t){if(!n)return[new on(0,0,e==hh?1:0)];if(e==Yn&&!t.length&&!m2.test(n))return Ym(n.length);if(t.length)for(;n.length>we.length;)we[we.length]=256;let r=[],i=e==Yn?0:1;return mc(n,i,i,t,0,n.length,r),r}function Ym(n){return[new on(0,n,0)]}let Jm="";function v2(n,e,t,r,i){var s;let o=r.head-n.from,a=on.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=Le(n.text,o,l.forward(i,t));(h<l.from||h>l.to)&&(h=c),Jm=n.text.slice(Math.min(o,h),Math.max(o,h));let d=a==(i?e.length-1:0)?null:e[a+(i?1:-1)];return d&&h==c&&d.level+(i?0:1)<l.level?T.cursor(d.side(!i,t)+n.from,d.forward(i,t)?1:-1,d.level):T.cursor(h+n.from,l.forward(i,t)?-1:1,l.level)}function w2(n,e,t){for(let r=e;r<t;r++){let i=Gm(n.charCodeAt(r));if(i==1)return Yn;if(i==2||i==4)return hh}return Yn}const Qm=K.define(),Xm=K.define(),Zm=K.define(),eg=K.define(),gc=K.define(),tg=K.define(),ng=K.define(),uh=K.define(),dh=K.define(),rg=K.define({combine:n=>n.some(e=>e)}),ig=K.define({combine:n=>n.some(e=>e)}),sg=K.define();class yr{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 yr(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 yr(T.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const to=oe.define({map:(n,e)=>n.map(e)}),og=oe.define();function rt(n,e,t){let r=n.facet(eg);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 sn=K.define({combine:n=>n.length?n[0]:!0});let k2=0;const cr=K.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 De{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(cr.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(cr.of({plugin:this,arg:e}))}static define(e,t){const{eventHandlers:r,eventObservers:i,provide:s,decorations:o}=t||{};return new De(k2++,e,r,i,a=>{let l=[];return o&&l.push(Pi.of(c=>{let h=c.plugin(a);return h?o(h):ne.none})),s&&l.push(s(a)),l})}static fromClass(e,t){return De.define((r,i)=>new e(r,i),t)}}class Ya{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(rt(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){rt(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){rt(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const ag=K.define(),fh=K.define(),Pi=K.define(),lg=K.define(),cg=K.define(),js=K.define(),hg=K.define();function fd(n,e){let t=n.state.facet(hg);if(!t.length)return t;let r=t.map(s=>s instanceof Function?s(n):s),i=[];return he.spans(r,e.from,e.to,{point(){},span(s,o,a,l){let c=s-e.from,h=o-e.from,d=i;for(let f=a.length-1;f>=0;f--,l--){let p=a[f].spec.bidiIsolate,m;if(p==null&&(p=w2(e.text,c,h)),l>0&&d.length&&(m=d[d.length-1]).to==c&&m.direction==p)m.to=h,d=m.inner;else{let g={from:c,to:h,direction:p,inner:[]};d.push(g),d=g.inner}}}}),i}const ug=K.define();function ph(n){let e=0,t=0,r=0,i=0;for(let s of n.state.facet(ug)){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 ei=K.define();class bt{constructor(e,t,r,i){this.fromA=e,this.toA=t,this.fromB=r,this.toB=i}join(e){return new bt(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,d=c,f=h;for(;;)if(s<t.length&&t[s]<=d){let p=t[s+1];s+=2,d=Math.max(d,p);for(let m=i;m<e.length&&e[m].fromB<=d;m++)o=e[m].toA-e[m].toB;f=Math.max(f,p+o)}else if(i<e.length&&e[i].fromB<=d){let p=e[i++];d=Math.max(d,p.toB),f=Math.max(f,p.toA),o=p.toA-p.toB}else break;r.push(new bt(h,f,c,d))}return r}}class _o{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 bt(s,o,a,l))),this.changedRanges=i}static create(e,t,r){return new _o(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 S2=[];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 S2}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&&i2(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=Pn(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 ya)return e;return null}static get(e){return e.cmTile}}class ba 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=pd(i);else t.insertBefore(a.dom,i);r=a.dom}for(i=r?r.nextSibling:t.firstChild,s&&i&&(s.written=!0);i;)i=pd(i);this.length=o}}function pd(n){let e=n.nextSibling;return n.parentNode.removeChild(n),e}class ya extends ba{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 wn)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 wn extends ba{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 wn(t||document.createElement(e.tagName),e);return t||(r.flags|=4),r}}class kr extends ba{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,r){let i=new kr(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,d){for(let f=0,p=0;f<h.children.length&&p<=d;f++){let m=h.children[f],g=p+m.length;g>=d&&(m.isComposite()?l(m,d-p):(!o||o.isHidden&&(t>0||r&&j2(o,m)))&&(g>d||m.flags&32)?(o=m,a=d-p):(p<d||m.flags&16&&!m.isHidden)&&(i=m,s=d-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):C2(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 C2(n){let e=n.dom.lastChild;if(!e)return n.dom.getBoundingClientRect();let t=li(e);return t[t.length-1]||null}function j2(n,e){let t=n.coordsIn(0,1),r=e.coordsIn(0,1);return t&&r&&r.top<t.bottom}class nt extends ba{constructor(e,t){super(e),this.mark=t}get domAttrs(){return this.mark.attrs}static of(e,t){let r=new nt(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?U.chrome||U.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 U.safari&&!o&&l.width==0&&(l=Array.prototype.find.call(a,c=>c.width)||l),o?ji(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 Sr 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 ji(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 ji(o,!a)}}get overrideDOMText(){if(!this.length)return be.empty;let{root:e}=this;if(!e)return be.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 Sr(s,r,e,i)}}class Uo 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 be.empty}coordsIn(e){return this.dom.getBoundingClientRect()}}class O2{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 P2{constructor(e,t,r,i){this.from=e,this.to=t,this.wrapper=r,this.rank=i}}class A2{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)?Ja(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 nt&&c.mark.eq(l.mark))c.dom!=l.dom&&c.setDOM(Ja(l.dom)),i=c;else{if(this.cache.reused.get(l)){let d=Ee.get(l.dom);d&&d.setDOM(Ja(l.dom))}let h=nt.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=dg);let i=kr.start(e,t||((r=this.cache.find(kr))===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 nt&&a.mark.eq(o))i=a,t--;else{let l=nt.of(o,(r=this.cache.find(nt,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||!md(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(U.ios&&md(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(Qa,0,32)||new Sr(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 P2(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 wn&&i.wrapper.eq(r.wrapper))t=i;else{let s=wn.of(r.wrapper,(e=this.cache.find(wn,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(Uo,void 0,1);return r&&(r.flags=t),r||new Uo(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class M2{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 Ko=[Sr,kr,_n,nt,Uo,wn,ya];for(let n=0;n<Ko.length;n++)Ko[n].bucket=n;class N2{constructor(e){this.view=e,this.buckets=Ko.map(()=>[]),this.index=Ko.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 D2{constructor(e,t,r,i,s){this.view=e,this.decorations=i,this.disallowBlockEffectsFor=s,this.openWidget=!1,this.openMarks=0,this.cache=new N2(e),this.text=new M2(e.state.doc),this.builder=new A2(this.cache,new ya(e,e.contentDOM),he.iter(r)),this.cache.reused.set(t,2),this.old=new O2(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=L2(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?Sr.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 Uo)this.cache.add(o);else if(o instanceof nt)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 nt&&i.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?i.length&&(i.length=s=0):o instanceof nt&&(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=he.spans(this.decorations,e,t,{point:(a,l,c,h,d,f)=>{if(c instanceof qn){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,d>h.length)i.continueWidget(l-a);else{let p=c.widget||(c.block?Cr.block:Cr.inline),m=E2(c),g=this.cache.findWidget(p,l-a,m)||Sr.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,d))}r=null}else r=T2(r,c);l>a&&this.text.skip(l-a)},span:(a,l,c,h)=>{for(let d=a;d<l;){let f=this.text.next(Math.min(512,l-d));f==null?(i.addLineStartIfNotCovered(r),i.addBreak(),d++):(i.ensureLine(r),i.addText(f,c,h),d+=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 nt?t.push(s):s?.isLine()?r=s:i.nodeName=="DIV"&&!r&&i!=this.view.contentDOM?r=new kr(i,dg):t.push(nt.of(new Ss({tagName:i.nodeName.toLowerCase(),attributes:s2(i)}),i))}return{line:r,marks:t}}}function md(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 E2(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 dg={class:"cm-line"};function T2(n,e){let t=e.spec.attributes,r=e.spec.class;return!t&&!r||(n||(n={class:"cm-line"}),t&&lh(t,n),r&&(n.class+=" "+r)),n}function L2(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 nt&&e.push(r.mark)}return e}function Ja(n){let e=Ee.get(n);return e&&e.setDOM(n.cloneNode()),n}class Cr extends Qt{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}}Cr.inline=new Cr("span");Cr.block=new Cr("div");const Qa=new class extends Qt{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class gd{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=ne.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 ya(e,e.contentDOM),this.updateInner([new bt(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:d})=>d<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:!W2(e.changes,this.hasComposition)&&!e.selectionSet&&(i=e.state.selection.main.head));let s=i>-1?I2(this.view,e.changes,i):null;if(this.domChanged=null,this.hasComposition){let{from:h,to:d}=this.hasComposition;r=new bt(h,d,e.changes.mapPos(h,-1),e.changes.mapPos(d,1)).addToSet(r.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(U.ie||U.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=F2(o,this.decorations,e.changes);l.length&&(r=bt.extendWithRanges(r,l));let c=z2(a,this.blockWrappers,e.changes);return c.length&&(r=bt.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 D2(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);this.tile=a.run(e,t),bc(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=U.chrome||U.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 Xa&&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(og)&&(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(sn)||r.tabIndex>-1)&&Mo(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)),U.gecko&&l.empty&&!this.hasComposition&&R2(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 d=this.view.observer.selectionRange;(a||!d.focusNode||(!ci(c.node,c.offset,d.anchorNode,d.anchorOffset)||!ci(h.node,h.offset,d.focusNode,d.focusOffset))&&!this.suppressWidgetCursorChange(d,l))&&(this.view.observer.ignore(()=>{U.android&&U.chrome&&r.contains(d.focusNode)&&H2(d.focusNode,r)&&(r.blur(),r.focus({preventScroll:!0}));let f=Ci(this.view.root);if(f)if(l.empty){if(U.gecko){let p=B2(c.node,c.offset);if(p&&p!=3){let m=(p==1?_m:Um)(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(d.anchorNode,d.anchorOffset),this.impreciseHead=h.precise?null:new Ot(d.focusNode,d.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&ci(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=Ci(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 d=e.observer.selectionRange;e.docView.posFromDOM(d.anchorNode,d.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=ln(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 d=h+c.length;if(h<=e&&(r=c,i=e-h,s=d<e),d>=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 Xa?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=Le(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==ke.LTR,c=0,h=(d,f,p)=>{for(let m=0;m<d.children.length&&!(f>i);m++){let g=d.children[m],y=f+g.length,v=g.dom.getBoundingClientRect(),{height:S}=v;if(p&&!m&&(c+=v.top-p.top),g instanceof wn)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?li(C):[];if(A.length){let k=A[A.length-1],O=l?k.right-v.left:v.right-k.left;O>a&&(a=O,this.minWidth=s,this.minWidthFrom=f,this.minWidthTo=y)}}p&&m==d.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"?ke.RTL:ke.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=li(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=li(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(ne.replace({widget:new Xa(a),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!s)break;r=s.to+1}return ne.set(e)}updateDeco(){let e=1,t=this.view.state.facet(Pi).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),r=!1,i=this.view.state.facet(cg).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(he.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(lg).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(sg))try{if(c(this.view,e.range,e))return!0}catch(h){rt(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=ph(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;l2(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==ke.LTR)}lineHasWidget(e){let t=r=>r.isWidget()||r.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){bc(this.tile)}}function bc(n,e){let t=e?.get(n);if(t!=1){t==null&&n.destroy();for(let r of n.children)bc(r,e)}}function R2(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 fg(n,e){let t=n.observer.selectionRange;if(!t.focusNode)return null;let r=_m(t.focusNode,t.focusOffset),i=Um(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 I2(n,e,t){let r=fg(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 bt(l.mapPos(s),l.mapPos(o),s,o),text:i}}function B2(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 $2=class{constructor(){this.changes=[]}compareRange(e,t){gr(e,t,this.changes)}comparePoint(e,t){gr(e,t,this.changes)}boundChange(e){gr(e,e,this.changes)}};function F2(n,e,t){let r=new $2;return he.compare(n,e,t,r),r.changes}class V2{constructor(){this.changes=[]}compareRange(e,t){gr(e,t,this.changes)}comparePoint(){}boundChange(e){gr(e,e,this.changes)}}function z2(n,e,t){let r=new V2;return he.compare(n,e,t,r),r.changes}function H2(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 W2(n,e){let t=!1;return e&&n.iterChangedRanges((r,i)=>{r<e.to&&i>e.from&&(t=!0)}),t}class Xa extends Qt{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 _2(n,e,t=1){let r=n.charCategorizer(e),i=n.doc.lineAt(e),s=e-i.from;if(i.length==0)return T.cursor(e);s==0?t=1:s==i.length&&(t=-1);let o=s,a=s;t<0?o=Le(i.text,s,!1):a=Le(i.text,s);let l=r(i.text.slice(o,a));for(;o>0;){let c=Le(i.text,o,!1);if(r(i.text.slice(c,o))!=l)break;o=c}for(;a<i.length;){let c=Le(i.text,a);if(r(i.text.slice(a,c))!=l)break;a=c}return T.range(o+i.from,a+i.from)}function U2(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+sc(o,s,n.state.tabSize)}function yc(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 K2(n,e,t,r){let i=yc(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==ke.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(l!=null)return T.cursor(l,t?-1:1)}return T.cursor(t?i.to:i.from,t?-1:1)}function bd(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=v2(i,s,o,a,t),h=Jm;if(!c){if(i.number==(t?n.state.doc.lines:1))return a;h=`
|
|
177
|
-
`,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 G2(n,e,t){let r=n.state.charCategorizer(e),i=r(t);return s=>{let o=r(s);return i==Ce.Space&&(i=o),i==o}}function q2(n,e,t,r){let i=e.head,s=t?1:-1;if(i==(t?n.state.doc.length:0))return T.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 d=l.left+o,f=r??n.viewState.heightOracle.textHeight>>1;for(let p=0;;p+=10){let m=a+(f+p)*s,g=xc(n,{x:d,y:m},!1,s);return T.cursor(g.pos,g.assoc,void 0,o)}}function hi(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 pg(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=hi(n,i.from,0);o!=i.from&&(s=T.cursor(o,-1))}else{let o=hi(n,i.from,-1),a=hi(n,i.to,1);(o!=i.from||a!=i.to)&&(s=T.range(i.from==i.anchor?o:a,i.from==i.head?o:a))}s&&(t||(t=e.ranges.slice()),t[r]=s)}return t?T.create(t,e.mainIndex):e}function Za(n,e,t){let r=hi(n.state.facet(js).map(i=>i(n)),t.from,e.head>t.from?-1:1);return r==t.from?t:T.cursor(r,r<t.from?1:-1)}class Vt{constructor(e,t){this.pos=e,this.assoc=t}}function xc(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 Vt(0,1);if(l>n.viewState.docHeight)return new Vt(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 d=n.viewState.heightOracle.textHeight/2;l=r>0?c.bottom+d:c.top-d}if(n.viewport.from>=c.to||n.viewport.to<=c.from){if(t)return null;if(c.type==ze.Text){let d=U2(n,i,c,o,a);return new Vt(d,d==c.from?1:-1)}}if(c.type!=ze.Text)return l<(c.top+c.bottom)/2?new Vt(c.from,1):new Vt(c.to,-1);let h=n.docView.lineAt(c.from,2);return(!h||h.length!=c.length)&&(h=n.docView.lineAt(c.from,-2)),mg(n,h,c.from,o,a)}function mg(n,e,t,r,i){let s=-1,o=null,a=1e9,l=1e9,c=i,h=i,d=(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=Le(e.text,p);if(d(Oi(e.dom,p,m).getClientRects(),p),!a&&!l)break;p=m}return r>(o.left+o.right)/2==(yd(n,s+t)==ke.LTR)?new Vt(t+Le(e.text,s),-1):new Vt(t+s,1)}else{if(!e.length)return new Vt(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(d(v,g),!a&&!l)break}let f=e.children[s],p=e.posBefore(f,t);return f.isComposite()||f.isText()?mg(n,f,p,Math.max(o.left,Math.min(o.right,r)),i):r>(o.left+o.right)/2==(yd(n,s+t)==ke.LTR)?new Vt(p+f.length,-1):new Vt(p,1)}}function yd(n,e){let t=n.state.doc.lineAt(e);return n.bidiSpans(t)[on.find(n.bidiSpans(t),e-t.from,-1,1)].dir}const ti="";class Y2{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(ue.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=ti}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:Wo(i))||Wo(a)&&(i.nodeName!="BR"||o?.isWidget())&&this.text.length>s)&&!Q2(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+(J2(e,r.node,r.offset)?t:0))}}function J2(n,e,t){for(;;){if(!e||t<ln(e))return!1;if(e==n)return!0;t=Pn(e)+1,e=e.parentNode}}function Q2(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 xd{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}class X2{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=gg(e.docView.tile,t,r,0))){let a=s||o?[]:ew(e),l=new Y2(a,e);l.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=l.text,this.newSel=tw(a,this.bounds.from)}else{let a=e.observer.selectionRange,l=s&&s.node==a.focusNode&&s.offset==a.focusOffset||!dc(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||!dc(e.contentDOM,a.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),h=e.viewport;if((U.ios||U.chrome)&&e.state.selection.main.empty&&l!=c&&(h.from>0||h.to<e.state.doc.length)){let d=Math.min(l,c),f=Math.max(l,c),p=h.from-d,m=h.to-f;(p==0||p==1||d==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(T.range(c,l)):this.newSel=T.single(c,l)}}}function gg(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 d=n.children[l],f=c+d.length;if(c<e&&f>t)return gg(d,e,t,c);if(f>=e&&i==-1&&(i=l,s=c),c>t&&d.dom.parentNode==n.dom){o=l,a=h;break}h=f,c=f+d.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 bg(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||U.android&&e.text.length<a-o)&&(l=i.to,c="end");let h=yg(n.state.doc.sliceString(o,a,ti),e.text,l-o,c);h&&(U.chrome&&s==13&&h.toB==h.from+2&&e.text.slice(h.from,h.toB)==ti+ti&&h.toB--,t={from:o+h.from,to:o+h.toA,insert:be.of(e.text.slice(h.from,h.toB).split(ti))})}else r&&(!n.hasFocus&&n.state.facet(sn)||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)}:(U.mac||U.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=T.single(r.main.anchor-1,r.main.head-1)),t={from:t.from,to:t.to,insert:be.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)}:U.chrome&&t&&t.from==t.to&&t.from==i.head&&t.insert.toString()==`
|
|
178
|
-
`&&n.lineWrapping&&(r&&(r=T.single(r.main.anchor-1,r.main.head-1)),t={from:i.from,to:i.to,insert:be.of([" "])}),t)return mh(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=pg(n.state.facet(js).map(l=>l(n)),r))),n.dispatch({selection:r,scrollIntoView:o,userEvent:a}),!0}else return!1}function mh(n,e,t,r=-1){if(U.ios&&n.inputState.flushIOSKey(e))return!0;let i=n.state.selection.main;if(U.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&&br(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)&&br(n.contentDOM,"Backspace",8)||e.from==i.from&&e.to==i.to+1&&e.insert.length==0&&br(n.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();n.inputState.composing>=0&&n.inputState.composing++;let o,a=()=>o||(o=Z2(n,e,t));return n.state.facet(tg).some(l=>l(n,e.from,e.to,s,a))||n.dispatch(a()),!0}function Z2(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=hi(i.facet(js).map(d=>d(n)),c,l);e.from==h&&(o=h)}if(o>-1)r={changes:e,selection:T.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),d,f=t&&fg(n,t.main.head);if(f){let m=e.insert.length-(e.to-e.from);d={from:f.from,to:f.to-m}}else d=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>=d.from&&y<=d.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?T.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 yg(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 ew(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 xd(t,r)),(i!=t||s!=r)&&e.push(new xd(i,s))),e}function tw(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?T.single(t+e,r+e):null}class nw{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,U.safari&&e.contentDOM.addEventListener("input",()=>null),U.gecko&&bw(e.contentDOM.ownerDocument)}handleEvent(e){!hw(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=rw(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&&vg.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),U.android&&U.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return U.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=xg.find(r=>r.keyCode==e.keyCode))&&!e.ctrlKey||iw.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,br(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:U.safari&&!U.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 vd(n,e){return(t,r)=>{try{return e.call(n,r,t)}catch(i){rt(t.state,i)}}}function rw(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(vd(r.value,l))}if(o)for(let a in o){let l=o[a];l&&t(a).observers.push(vd(r.value,l))}}for(let r in At)t(r).handlers.push(At[r]);for(let r in kt)t(r).observers.push(kt[r]);return e}const xg=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],iw="dthko",vg=[16,17,18,20,91,92,224,225],no=6;function ro(n){return Math.max(0,n)*.7+8}function sw(n,e){return Math.max(Math.abs(n.clientX-e.clientX),Math.abs(n.clientY-e.clientY))}class ow{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=c2(e.contentDOM),this.atoms=e.state.facet(js).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(ue.allowMultipleSelections)&&aw(e,t),this.dragging=cw(e,t)&&Sg(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&&sw(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=ph(this.view);e.clientX-l.left<=i+no?t=-ro(i-e.clientX):e.clientX+l.right>=o-no&&(t=ro(e.clientX-o)),e.clientY-l.top<=s+no?r=-ro(s-e.clientY):e.clientY+l.bottom>=a-no&&(r=ro(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=pg(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 aw(n,e){let t=n.state.facet(Qm);return t.length?t[0](e):U.mac?e.metaKey:e.ctrlKey}function lw(n,e){let t=n.state.facet(Xm);return t.length?t[0](e):U.mac?!e.altKey:!e.ctrlKey}function cw(n,e){let{main:t}=n.state.selection;if(t.empty)return!1;let r=Ci(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 hw(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 At=Object.create(null),kt=Object.create(null),wg=U.ie&&U.ie_version<15||U.ios&&U.webkit_version<604;function uw(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(),kg(n,t.value)},50)}function xa(n,e,t){for(let r of n.facet(e))t=r(t,n);return t}function kg(n,e){e=xa(n.state,uh,e);let{state:t}=n,r,i=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(vc!=null&&t.selection.ranges.every(l=>l.empty)&&vc==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 d=t.toText((o?s.line(i++).text:e)+t.lineBreak);return{changes:{from:h.from,insert:d},range:T.cursor(c.from+d.length)}})}else o?r=t.changeByRange(l=>{let c=s.line(i++);return{changes:{from:l.from,to:l.to,insert:c.text},range:T.cursor(l.from+c.length)}}):r=t.replaceSelection(s);n.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}kt.scroll=n=>{n.inputState.lastScrollTop=n.scrollDOM.scrollTop,n.inputState.lastScrollLeft=n.scrollDOM.scrollLeft};At.keydown=(n,e)=>(n.inputState.setSelectionOrigin("select"),e.keyCode==27&&n.inputState.tabFocusMode!=0&&(n.inputState.tabFocusMode=Date.now()+2e3),!1);kt.touchstart=(n,e)=>{n.inputState.lastTouchTime=Date.now(),n.inputState.setSelectionOrigin("select.pointer")};kt.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};At.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(Zm))if(t=r(n,e),t)break;if(!t&&e.button==0&&(t=fw(n,e)),t){let r=!n.hasFocus;n.inputState.startMouseSelection(new ow(n,e,t,r)),r&&n.observer.ignore(()=>{Hm(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 wd(n,e,t,r){if(r==1)return T.cursor(e,t);if(r==2)return _2(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++,T.range(o,a)}}const dw=U.ie&&U.ie_version<=11;let kd=null,Sd=0,Cd=0;function Sg(n){if(!dw)return n.detail;let e=kd,t=Cd;return kd=n,Cd=Date.now(),Sd=!e||t>Date.now()-400&&Math.abs(e.clientX-n.clientX)<2&&Math.abs(e.clientY-n.clientY)<2?(Sd+1)%3:1}function fw(n,e){let t=n.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),r=Sg(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=wd(n,l.pos,l.assoc,r);if(t.pos!=l.pos&&!o){let d=wd(n,t.pos,t.assoc,r),f=Math.min(d.from,h.from),p=Math.max(d.to,h.to);h=f<h.from?T.range(f,p):T.range(p,f)}return o?i.replaceRange(i.main.extend(h.from,h.to)):a&&r==1&&i.ranges.length>1&&(c=pw(i,l.pos))?c:a?i.addRange(h):T.create([h])}}}function pw(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 T.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}At.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=T.range(s,o))}}let{inputState:r}=n;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",xa(n.state,dh,n.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};At.dragend=n=>(n.inputState.draggedContent=null,!1);function jd(n,e,t,r){if(t=xa(n.state,uh,t),!t)return;let i=n.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=n.inputState,o=r&&s&&lw(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}At.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&&jd(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 jd(n,e,r,!0),!0}return!1};At.paste=(n,e)=>{if(n.state.readOnly)return!0;n.observer.flush();let t=wg?null:e.clipboardData;return t?(kg(n,t.getData("text/plain")||t.getData("text/uri-list")),!0):(uw(n),!1)};function mw(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 gw(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:xa(n,dh,e.join(n.lineBreak)),ranges:t,linewise:r}}let vc=null;At.copy=At.cut=(n,e)=>{let{text:t,ranges:r,linewise:i}=gw(n.state);if(!t&&!i)return!1;vc=i?t:null,e.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let s=wg?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(mw(n,t),!1)};const Cg=Yt.define();function jg(n,e){let t=[];for(let r of n.facet(ng)){let i=r(n,e);i&&t.push(i)}return t.length?n.update({effects:t,annotations:Cg.of(!0)}):null}function Og(n){setTimeout(()=>{let e=n.hasFocus;if(e!=n.inputState.notifiedFocused){let t=jg(n.state,e);t?n.dispatch(t):n.update([])}},10)}kt.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),Og(n)};kt.blur=n=>{n.observer.clearSelectionRange(),Og(n)};kt.compositionstart=kt.compositionupdate=n=>{n.observer.editContext||(n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0))};kt.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,U.chrome&&U.android?n.observer.flushSoon():n.inputState.compositionPendingChange?Promise.resolve().then(()=>n.observer.flush()):setTimeout(()=>{n.inputState.composing<0&&n.docView.hasComposition&&n.update([])},50))};kt.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};At.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 mh(n,{from:l,to:c,insert:n.state.toText(s)},null),!0}}let i;if(U.chrome&&U.android&&(i=xg.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 U.ios&&e.inputType=="deleteContentForward"&&n.observer.flushSoon(),U.safari&&e.inputType=="insertText"&&n.inputState.composing>=0&&setTimeout(()=>kt.compositionend(n,e),20),!1};const Od=new Set;function bw(n){Od.has(n)||(Od.add(n),n.addEventListener("copy",()=>{}),n.addEventListener("cut",()=>{}))}const Pd=["pre-wrap","normal","pre-line","break-spaces"];let jr=!1;function Ad(){jr=!1}class yw{constructor(e){this.lineWrapping=e,this.doc=be.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 Pd.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=Pd.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 xw{constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}}class jt{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 qn?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 jt(this.from,this.length+e.length,this.top,this.height+e.height,t)}}var Se=function(n){return n[n.ByPos=0]="ByPos",n[n.ByHeight=1]="ByHeight",n[n.ByPosNoHeight=2]="ByPosNoHeight",n}(Se||(Se={}));const No=.001;class Xe{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)>No&&(jr=!0),this.height=e)}replace(e,t,r){return Xe.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:d}=i[a],f=s.lineAt(l,Se.ByPosNoHeight,r.setDoc(t),0,0),p=f.to>=c?f:s.lineAt(c,Se.ByPosNoHeight,r,0,0);for(d+=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,Se.ByPosNoHeight,r,0,0));h+=f.from-l,l=f.from;let m=gh.build(r.setDoc(o),e,h,d);s=Go(s,s.replace(l,c,m))}return s.updateHeight(r,0)}static empty(){return new ct(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 ww(Xe.of(e.slice(0,t)),o,Xe.of(e.slice(r)))}}function Go(n,e){return n==e?n:(n.constructor!=e.constructor&&(jr=!0),e)}Xe.prototype.size=1;const vw=ne.replace({});class Pg extends Xe{constructor(e,t,r){super(e,t),this.deco=r,this.spaceAbove=0}mainBlock(e,t){return new jt(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 jt(i,0,r,this.spaceAbove,vw):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,Se.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 ct extends Pg{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 jt(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 ct||i instanceof Fe&&i.flags&4)&&Math.abs(this.length-i.length)<10?(i instanceof Fe?i=new ct(i.length,this.height,this.spaceAbove):i.height=this.height,this.outdated||(i.outdated=!1),i):Xe.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 Fe extends Xe{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),d=a+h.length*l,f=Math.max(r,e-d/2);return new jt(h.from,h.length,f,d,0)}else{let c=Math.max(0,Math.min(o-s,Math.floor((e-r)/a))),{from:h,length:d}=t.doc.line(s+c);return new jt(h,d,r+a*c,a,0)}}lineAt(e,t,r,i,s){if(t==Se.ByHeight)return this.blockAt(e,r,i,s);if(t==Se.ByPosNoHeight){let{from:p,to:m}=r.doc.lineAt(e);return new jt(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,d=c.number-o,f=i+a*d+l*(c.from-s-d);return new jt(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,d=i;h<=t;){let f=r.doc.lineAt(h);if(h==e){let m=f.number-a;d+=l*m+c*(e-s-m)}let p=l+c*f.length;o(new jt(f.from,f.length,d,p,0)),d+=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 Fe?r[r.length-1]=new Fe(s.length+i):r.push(null,new Fe(i-1))}if(e>0){let s=r[0];s instanceof Fe?r[0]=new Fe(e+s.length):r.unshift(new Fe(e-1),null)}return Xe.of(r)}decomposeLeft(e,t){t.push(new Fe(e-1),null)}decomposeRight(e,t){t.push(null,new Fe(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 Fe(i.from-t-1).updateHeight(e,t));a<=s&&i.more;){let h=e.doc.lineAt(a).length;o.length&&o.push(null);let d=i.heights[i.index++],f=0;d<0&&(f=-d,d=i.heights[i.index++]),l==-1?l=d:Math.abs(d-l)>=No&&(l=-2);let p=new ct(h,d,f);p.outdated=!1,o.push(p),a+=h+1}a<=s&&o.push(null,new Fe(s-a).updateHeight(e,a));let c=Xe.of(o);return(l<0||Math.abs(c.height-this.height)>=No||Math.abs(l-this.heightMetrics(e,t).perLine)>=No)&&(jr=!0),Go(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 ww extends Xe{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==Se.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==Se.ByPosNoHeight?Se.ByPosNoHeight:Se.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,Se.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&&Md(s,o-1),t<this.length){let a=s.length;this.decomposeRight(t,s),Md(s,a)}return Xe.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?Xe.of(this.break?[e,null,t]:[e,t]):(this.left=Go(this.left,e),this.right=Go(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 Md(n,e){let t,r;n[e]==null&&(t=n[e-1])instanceof Fe&&(r=n[e+1])instanceof Fe&&n.splice(e-1,3,new Fe(t.length+1+r.length))}const kw=5;class gh{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 ct?i.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new ct(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 Pg(o,i,r)):(o||s||i>=kw)&&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 ct(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let r=new Fe(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 ct)return e;let t=new ct(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 ct)&&!this.isCovered?this.nodes.push(new ct(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 ct&&i.updateHeight(this.oracle,r),r+=i?i.length:1;return this.nodes}static build(e,t,r,i){let s=new gh(r,e);return he.spans(t,r,i,s,0),s.finish(r)}}function Sw(n,e,t){let r=new Cw;return he.compare(n,e,t,r,0),r.changes}class Cw{constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,r,i){(e<t||r&&r.heightRelevant||i&&i.heightRelevant)&&gr(e,t,this.changes,5)}}function jw(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,d=window.getComputedStyle(h);if((h.scrollHeight>h.clientHeight||h.scrollWidth>h.clientWidth)&&d.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=d.position=="absolute"||d.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 Ow(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 Pw(n,e){let t=n.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class el{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 ne.replace({widget:new Aw(this.displaySize*(t?e.scaleY:e.scaleX),t)}).range(this.from,this.to)}}class Aw extends Qt{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 Nd{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=Dd,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=ke.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(fh).some(r=>typeof r!="function"&&r.class=="cm-lineWrapping");this.heightOracle=new yw(t),this.stateDeco=e.facet(Pi).filter(r=>typeof r!="function"),this.heightMap=Xe.empty().applyChanges(this.stateDeco,be.empty,this.heightOracle.setDoc(e.doc),[new bt(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=ne.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 io(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?Dd:new bh(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(ni(e,this.scaler))})}update(e,t=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=this.state.facet(Pi).filter(h=>typeof h!="function");let i=e.changedRanges,s=bt.extendWithRanges(i,Sw(r,this.stateDeco,e?e.changes:Te.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);Ad(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||jr)&&(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(ig)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,r=window.getComputedStyle(t),i=this.heightOracle,s=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?ke.RTL:ke.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}=zm(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 d=(parseInt(r.paddingTop)||0)*this.scaleY,f=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=d||this.paddingBottom!=f)&&(this.paddingTop=d,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=Wm(e.scrollDOM);let m=(this.printing?Pw:jw)(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&&!Ow(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:O,textHeight:x}=e.docView.measureTextSize();o=k>0&&i.refresh(s,k,O,x,Math.max(5,S/O),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)),Ad();for(let k of this.viewports){let O=k.from==this.viewport.from?A:e.docView.measureVisibleLineHeights(k);this.heightMap=(o?Xe.empty().applyChanges(this.stateDeco,be.empty,this.heightOracle,[new bt(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(i,0,o,new xw(k.from,O))}jr&&(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 io(i.lineAt(o-r*1e3,Se.ByHeight,s,0,0).from,i.lineAt(a+(1-r)*1e3,Se.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),d=i.lineAt(c,Se.ByPos,s,0,0),f;t.y=="center"?f=(d.top+d.bottom)/2-h/2:t.y=="start"||t.y=="nearest"&&c<l.from?f=d.top:f=d.bottom-h,l=new io(i.lineAt(f-1e3/2,Se.ByHeight,s,0,0).from,i.lineAt(f+h+1e3/2,Se.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 io(this.heightMap.lineAt(r,Se.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(i,Se.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,Se.ByPos,this.heightOracle,0,0),{bottom:s}=this.heightMap.lineAt(t,Se.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 el(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!=ke.LTR&&!r)return[];let a=[],l=(h,d,f,p)=>{if(d-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<d){l(h,v-10,f,p),l(v+10,d,f,p);return}let y=Nw(e,v=>v.from>=f.from&&v.to<=f.to&&Math.abs(v.from-h)<s&&Math.abs(v.to-d)<s&&!g.some(S=>v.from<S&&v.to>S));if(!y){if(d<f.to&&t&&r&&t.visibleRanges.some(C=>C.from<=d&&C.to>=d)){let C=t.moveToLineBoundary(T.cursor(d),!1,!0).head;C>h&&(d=C)}let v=this.gapSize(f,h,d,p),S=r||v<2e6?v:2e6;y=new el(h,d,v,S)}a.push(y)},c=h=>{if(h.length<o||h.type!=ze.Text)return;let d=Mw(h.from,h.to,this.stateDeco);if(d.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=oo(d,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=so(d,y),m=so(d,v)}else{let g=d.total*this.heightOracle.charWidth,y=i*this.heightOracle.charWidth,v=0;if(g>2e6)for(let O of e)O.from>=h.from&&O.from<h.to&&O.size!=O.displaySize&&O.from*this.heightOracle.charWidth+v<this.pixelViewport.left&&(v=O.size-O.displaySize);let S=this.pixelViewport.left+v,C=this.pixelViewport.right+v,A,k;if(f!=null){let O=oo(d,f),x=((C-S)/2+y)/g;A=O-x,k=O+x}else A=(S-y)/g,k=(C+y)/g;p=so(d,A),m=so(d,k)}p>h.from&&l(h.from,p,h,d),m<h.to&&l(m,h.to,h,d)};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=oo(i,r)-oo(i,t);return this.heightOracle.lineWrapping?e.height*s:i.total*this.heightOracle.charWidth*s}updateLineGaps(e){el.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=ne.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=[];he.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)||ni(this.heightMap.lineAt(e,Se.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)||ni(this.heightMap.lineAt(this.scaler.fromDOM(e),Se.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 ni(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 io{constructor(e,t){this.from=e,this.to=t}}function Mw(n,e,t){let r=[],i=n,s=0;return he.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 so({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 oo(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 Nw(n,e){for(let t of n)if(e(t))return t}const Dd={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(n){return n==this}};class bh{constructor(e,t,r){let i=0,s=0,o=0;this.viewports=r.map(({from:a,to:l})=>{let c=t.lineAt(a,Se.ByPos,e,0,0).top,h=t.lineAt(l,Se.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 bh?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 ni(n,e){if(e.scale==1)return n;let t=e.toDOM(n.top),r=e.toDOM(n.bottom);return new jt(n.from,n.length,t,r-t,Array.isArray(n._content)?n._content.map(i=>ni(i,e)):n._content)}const ao=K.define({combine:n=>n.join(" ")}),wc=K.define({combine:n=>n.indexOf(!0)>-1}),kc=jn.newName(),Ag=jn.newName(),Mg=jn.newName(),Ng={"&light":"."+Ag,"&dark":"."+Mg};function Sc(n,e,t){return new jn(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 Dw=Sc("."+kc,{"&":{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"}},Ng),Ew={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},tl=U.ie&&U.ie_version<=11;class Tw{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new h2,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);(U.ie&&U.ie_version<=11||U.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&&U.android&&e.constructor.EDIT_CONTEXT!==!1&&!(U.chrome&&U.chrome_version<126)&&(this.editContext=new Rw(e),e.state.facet(sn)&&(e.contentDOM.editContext=this.editContext.editContext)),tl&&(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(sn)?r.root.activeElement!=this.dom:!Mo(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}(U.ie&&U.ie_version<=11||U.android&&U.chrome)&&!r.state.selection.main.empty&&i.focusNode&&ci(i.focusNode,i.focusOffset,i.anchorNode,i.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Ci(e.root);if(!t)return!1;let r=U.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&Lw(this.view,t)||t;if(!r||this.selectionRange.eq(r))return!1;let i=Mo(this.dom,r);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&d2(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,Ew),tl&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),tl&&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&&br(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&&Mo(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 X2(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=bg(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=Ed(t,e.previousSibling||e.target.previousSibling,-1),i=Ed(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(sn)!=e.state.facet(sn)&&(e.view.contentDOM.editContext=e.state.facet(sn)?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 Ed(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 Td(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 ci(o.node,o.offset,i,s)&&([t,r,i,s]=[i,s,t,r]),{anchorNode:t,anchorOffset:r,focusNode:i,focusOffset:s}}function Lw(n,e){if(e.getComposedRanges){let i=e.getComposedRanges(n.root)[0];if(i)return Td(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?Td(n,t):null}class Rw{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=yg(e.state.sliceDoc(a,l),r.text,(c?i.from:i.to)-a,c?"end":null);if(!h){let f=T.single(this.toEditorPos(r.selectionStart),this.toEditorPos(r.selectionEnd));f.main.eq(i)||e.dispatch({selection:f,userEvent:"select"});return}let d={from:h.from+a,to:h.toA+a,insert:be.of(r.text.slice(h.from,h.toB).split(`
|
|
179
|
-
`))};if((U.mac||U.android)&&d.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(d={from:a,to:l,insert:be.of([r.text.replace("."," ")])}),this.pendingContextChange=d,!e.state.readOnly){let f=this.to-this.from+(d.to-d.from+d.insert.length);mh(e,d,T.single(this.toEditorPos(r.selectionStart,f),this.toEditorPos(r.selectionEnd,f)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),d.from<d.to&&!d.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(ne.mark({attributes:{style:h}}).range(l,c))}}}e.dispatch({effects:og.of(ne.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=Ci(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||u2(e.parent)||document,this.viewState=new Nd(e.state||ue.create(e)),e.scrollTo&&e.scrollTo.is(to)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(cr).map(i=>new Ya(i));for(let i of this.plugins)i.update(this);this.observer=new Tw(this),this.inputState=new nw(this),this.inputState.ensureHandlers(this.plugins),this.docView=new gd(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 Re?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(Cg))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=jg(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(ue.phrases)!=this.state.facet(ue.phrases))return this.setState(s);i=_o.create(this,s,e),i.flags|=a;let d=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(d&&(d=d.map(f.changes)),f.scrollIntoView){let{main:p}=f.state.selection;d=new yr(p.empty?p:T.cursor(p.head,p.head>p.anchor?-1:1))}for(let p of f.effects)p.is(to)&&(d=p.value.clip(this.state))}this.viewState.update(i,d),this.bidiCache=qo.update(this.bidiCache,i.changes),i.empty||(this.updatePlugins(i),this.inputState.update(i)),t=this.docView.update(i),this.state.facet(ei)!=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(ao)!=i.state.facet(ao)&&(this.viewState.mustMeasureContent=!0),(t||r||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!i.empty)for(let f of this.state.facet(gc))try{f(i)}catch(p){rt(this.state,p,"update listener")}(l||h)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),h&&!bg(this,h)&&c.force&&br(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 Nd(e),this.plugins=e.facet(cr).map(r=>new Ya(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView.destroy(),this.docView=new gd(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(cr),r=e.state.facet(cr);if(t!=r){let i=[];for(let s of r){let o=t.indexOf(s);if(o<0)i.push(new Ya(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){rt(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(Wm(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 rt(this.state,m),Ld}}),d=_o.create(this,this.state,[]),f=!1;d.flags|=l,t?t.flags|=l:t=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),f=this.docView.update(d),f&&this.docViewUpdate());for(let p=0;p<c.length;p++)if(h[p]!=Ld)try{let m=c[p];m.write&&m.write(h[p],this)}catch(m){rt(this.state,m)}if(f&&this.docView.updateSelection(!0),!d.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(gc))a(t)}get themeClasses(){return kc+" "+(this.state.facet(wc)?Mg:Ag)+" "+this.state.facet(ao)}updateAttrs(){let e=Rd(this,ag,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(sn)?"true":"false",class:"cm-content",style:`${U.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Rd(this,fh,t);let r=this.observer.ignore(()=>{let i=hd(this.contentDOM,this.contentAttrs,t),s=hd(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(ei);let e=this.state.facet(_.cspNonce);jn.mount(this.root,this.styleModules.concat(Dw).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 Za(this,e,bd(this,e,t,r))}moveByGroup(e,t){return Za(this,e,bd(this,e,t,r=>G2(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 T.cursor(s.side(t,i)+e.from,s.forward(!t,i)?1:-1)}moveToLineBoundary(e,t,r=!0){return K2(this,e,t,r)}moveVertically(e,t,r){return Za(this,e,q2(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=xc(this,e,t);return r&&r.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),xc(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[on.find(s,e-i.from,-1,t)];return ji(r,o.dir==ke.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(rg)||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>Iw)return Ym(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||qm(s.isolates,r=fd(this,e))))return s.order;r||(r=fd(this,e));let i=x2(e.text,t,r);return this.bidiCache.push(new qo(e.from,e.to,t,r,!0,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||U.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Hm(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 to.of(new yr(typeof e=="number"?T.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 to.of(new yr(T.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 De.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return De.define(()=>({}),{eventObservers:e})}static theme(e,t){let r=jn.newName(),i=[ao.of(r),ei.of(Sc(`.${r}`,e))];return t&&t.dark&&i.push(wc.of(!0)),i}static baseTheme(e){return Zn.lowest(ei.of(Sc("."+kc,e,Ng)))}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=ei;_.inputHandler=tg;_.clipboardInputFilter=uh;_.clipboardOutputFilter=dh;_.scrollHandler=sg;_.focusChangeEffect=ng;_.perLineTextDirection=rg;_.exceptionSink=eg;_.updateListener=gc;_.editable=sn;_.mouseSelectionStyle=Zm;_.dragMovesSelection=Xm;_.clickAddsSelectionRange=Qm;_.decorations=Pi;_.blockWrappers=lg;_.outerDecorations=cg;_.atomicRanges=js;_.bidiIsolatedRanges=hg;_.scrollMargins=ug;_.darkTheme=wc;_.cspNonce=K.define({combine:n=>n.length?n[0]:""});_.contentAttributes=fh;_.editorAttributes=ag;_.lineWrapping=_.contentAttributes.of({class:"cm-lineWrapping"});_.announce=oe.define();const Iw=4096,Ld={};class qo{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:ke.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 qo(t.mapPos(o.from,1),t.mapPos(o.to,-1),o.dir,o.isolates,!1,o.order))}return r}}function Rd(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&&lh(o,t)}return t}const Bw=U.mac?"mac":U.windows?"win":U.linux?"linux":"key";function $w(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 lo(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 Fw=Zn.default(_.domEventHandlers({keydown(n,e){return Eg(Dg(e.state),n,e,"editor")}})),va=K.define({enables:Fw}),Id=new WeakMap;function Dg(n){let e=n.facet(va),t=Id.get(e);return t||Id.set(e,t=Hw(e.reduce((r,i)=>r.concat(i),[]))),t}function Vw(n,e,t){return Eg(Dg(n.state),e,n,t)}let bn=null;const zw=4e3;function Hw(n,e=Bw){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 d,f;let p=t[o]||(t[o]=Object.create(null)),m=a.split(/ (?!$)/).map(v=>$w(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=bn={view:C,prefix:S,scope:o};return setTimeout(()=>{bn==A&&(bn=null)},zw),!0}]})}let g=m.join(" ");i(g,!1);let y=p[g]||(p[g]={preventDefault:!1,stopPropagation:!1,run:((f=(d=p._any)===null||d===void 0?void 0:d.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:d}=o;for(let f in h)h[f].run.push(p=>d(p,Cc))}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 Cc=null;function Eg(n,e,t,r){Cc=e;let i=n2(e),s=et(i,0),o=Ft(s)==i.length&&i!=" ",a="",l=!1,c=!1,h=!1;bn&&bn.view==t&&bn.scope==r&&(a=bn.prefix+" ",vg.indexOf(e.keyCode)<0&&(c=!0,bn=null));let d=new Set,f=y=>{if(y){for(let v of y.run)if(!d.has(v)&&(d.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+lo(i,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(U.windows&&e.ctrlKey&&e.altKey)&&!(U.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(m=On[e.keyCode])&&m!=i?(f(p[a+lo(m,e,!0)])||e.shiftKey&&(g=ki[e.keyCode])!=i&&g!=m&&f(p[a+lo(g,e,!1)]))&&(l=!0):o&&e.shiftKey&&f(p[a+lo(i,e,!0)])&&(l=!0),!l&&f(p._any)&&(l=!0)),c&&(l=!0),l&&h&&e.stopPropagation(),Cc=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=Tg(e);return[new Os(t,i.left-s.left,i.top-s.top,null,i.bottom-i.top)]}else return Ww(e,t,r)}}function Tg(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==ke.LTR?e.left:e.right-n.scrollDOM.clientWidth*n.scaleX)-n.scrollDOM.scrollLeft*n.scaleX,top:e.top-n.scrollDOM.scrollTop*n.scaleY}}function Bd(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 Ww(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==ke.LTR,o=n.contentDOM,a=o.getBoundingClientRect(),l=Tg(n),c=o.querySelector(".cm-line"),h=c&&window.getComputedStyle(c),d=a.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),f=a.right-(h?parseInt(h.paddingRight):0),p=yc(n,r,1),m=yc(n,i,-1),g=p.type==ze.Text?p:null,y=m.type==ze.Text?m:null;if(g&&(n.lineWrapping||p.widgetLineBreaks)&&(g=Bd(n,r,1,g)),y&&(n.lineWrapping||m.widgetLineBreaks)&&(y=Bd(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),O=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<O.top?x.push(v(d,k.bottom,f,O.top)):k.bottom<O.top&&n.elementAtHeight((k.bottom+O.top)/2).type==ze.Text&&(k.bottom=O.top=(k.bottom+O.top)/2),S(k).concat(x).concat(S(O))}function v(k,O,x,E){return new Os(e,k-l.left,O-l.top,x-k,E-O)}function S({top:k,bottom:O,horizontal:x}){let E=[];for(let P=0;P<x.length;P+=2)E.push(v(x[P],k,x[P+1],O));return E}function C(k,O,x){let E=1e9,P=-1e9,I=[];function L(W,N,R,F,G){let J=n.coordsAtPos(W,W==x.to?-2:2),se=n.coordsAtPos(R,R==x.from?2:-2);!J||!se||(E=Math.min(J.top,se.top,E),P=Math.max(J.bottom,se.bottom,P),G==ke.LTR?I.push(s&&N?d:J.left,s&&F?f:se.right):I.push(!s&&F?d:se.left,!s&&N?f:J.right))}let B=k??x.from,z=O??x.to;for(let W of n.visibleRanges)if(W.to>B&&W.from<z)for(let N=Math.max(W.from,B),R=Math.min(W.to,z);;){let F=n.state.doc.lineAt(N);for(let G of n.bidiSpans(F)){let J=G.from+F.from,se=G.to+F.from;if(J>=R)break;se>N&&L(Math.max(J,N),k==null&&J<=B,Math.min(se,R),O==null&&se>=z,G.dir)}if(N=F.to+1,N>=R)break}return I.length==0&&L(B,k==null,z,O==null,n.textDirection),{top:E,bottom:P,horizontal:I}}function A(k,O){let x=a.top+(O?k.top:k.bottom);return{top:x,bottom:x,horizontal:[]}}}function _w(n,e){return n.constructor==e.constructor&&n.eq(e)}class Uw{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(Do)!=e.state.facet(Do)&&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(Do);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)=>!_w(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,U.safari&&U.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 Do=K.define();function Lg(n){return[De.define(e=>new Uw(e,n)),Do.of(n)]}const Ai=K.define({combine(n){return Jt(n,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Kw(n={}){return[Ai.of(n),Gw,qw,Yw,ig.of(!0)]}function Rg(n){return n.startState.facet(Ai)!=n.state.facet(Ai)}const Gw=Lg({above:!0,markers(n){let{state:e}=n,t=e.facet(Ai),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:T.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=Rg(n);return t&&$d(n.state,e),n.docChanged||n.selectionSet||t},mount(n,e){$d(e.state,n)},class:"cm-cursorLayer"});function $d(n,e){e.style.animationDuration=n.facet(Ai).cursorBlinkRate+"ms"}const qw=Lg({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||Rg(n)},class:"cm-selectionLayer"}),Yw=Zn.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"}}}})),Ig=oe.define({map(n,e){return n==null?null:e.mapPos(n)}}),ri=He.define({create(){return null},update(n,e){return n!=null&&(n=e.changes.mapPos(n)),e.effects.reduce((t,r)=>r.is(Ig)?r.value:t,n)}}),Jw=De.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(ri);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(ri)!=t||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:n}=this,e=n.state.field(ri),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(ri)!=n&&this.view.dispatch({effects:Ig.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 Qw(){return[ri,Jw]}function Fd(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 Xw(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 Zw{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 d=r(a,l,c);d&&h(c,c+a[0].length,d)};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 an,r=t.add.bind(t);for(let{from:i,to:s}of Xw(e,this.maxLength))Fd(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),d=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])){d=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<d-l.from;)this.addMatch(p,e,p.index+l.from,m);else Fd(e.state.doc,this.regexp,h,d,(g,y)=>this.addMatch(y,e,g,m));t=t.update({filterFrom:h,filterTo:d,filter:(g,y)=>g<h||y>d,add:f})}}return t}}const jc=/x/.unicode!=null?"gu":"g",ek=new RegExp(`[\0-\b
|
|
180
|
-
--\u2028\u2029\uFEFF-]`,jc),tk={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 nl=null;function nk(){var n;if(nl==null&&typeof document<"u"&&document.body){let e=document.body.style;nl=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return nl||!1}const Eo=K.define({combine(n){let e=Jt(n,{render:null,specialChars:ek,addSpecialChars:null});return(e.replaceTabs=!nk())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,jc)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,jc)),e}});function rk(n={}){return[Eo.of(n),ik()]}let Vd=null;function ik(){return Vd||(Vd=De.fromClass(class{constructor(n){this.view=n,this.decorations=ne.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(Eo)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new Zw({regexp:n.specialChars,decoration:(e,t,r)=>{let{doc:i}=t.state,s=et(e[0],0);if(s==9){let o=i.lineAt(r),a=t.state.tabSize,l=Nr(o.text,a,r-o.from);return ne.replace({widget:new lk((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=ne.replace({widget:new ak(n,s)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(Eo);n.startState.facet(Eo)!=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 sk="•";function ok(n){return n>=32?sk:n==10?"":String.fromCharCode(9216+n)}class ak extends Qt{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=ok(this.code),r=e.state.phrase("Control character")+" "+(tk[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 lk extends Qt{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 ck(){return uk}const hk=ne.line({class:"cm-activeLine"}),uk=De.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(hk.range(i.from)),e=i.from)}return ne.set(t)}},{decorations:n=>n.decorations});class dk extends Qt{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?li(e.firstChild):[];if(!t.length)return null;let r=window.getComputedStyle(e.parentNode),i=ji(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 fk(n){let e=De.fromClass(class{constructor(t){this.view=t,this.placeholder=n?ne.set([ne.widget({widget:new dk(n),side:1}).range(0)]):ne.none}get decorations(){return this.view.state.doc.length?ne.none:this.placeholder}},{decorations:t=>t.decorations});return typeof n=="string"?[e,_.contentAttributes.of({"aria-placeholder":n})]:e}const Oc=2e3;function pk(n,e,t){let r=Math.min(e.line,t.line),i=Math.max(e.line,t.line),s=[];if(e.off>Oc||t.off>Oc||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(T.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=sc(c.text,o,n.tabSize,!0);if(h<0)s.push(T.cursor(c.to));else{let d=sc(c.text,a,n.tabSize);s.push(T.range(c.from+h,c.from+d))}}}return s}function mk(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function zd(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>Oc?-1:i==r.length?mk(n,e.clientX):Nr(r.text,n.state.tabSize,t-r.from);return{line:r.number,col:s,off:i}}function gk(n,e){let t=zd(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=zd(n,i);if(!a)return r;let l=pk(n.state,t,a);return l.length?o?T.create(l.concat(r.ranges)):T.create(l):r}}:null}function bk(n){let e=t=>t.altKey&&t.button==0;return _.mouseSelectionStyle.of((t,r)=>e(r)?gk(t,r):null)}const yk={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},xk={style:"cursor: crosshair"};function vk(n={}){let[e,t]=yk[n.key||"Alt"],r=De.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?xk:null})]}const co="-10000px";class Bg{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 d=0;d<this.tooltips.length;d++){let f=this.tooltips[d];f&&f.create==c.create&&(h=d)}if(h<0)o[l]=this.createTooltipView(c,l?o[l-1]:null),a&&(a[l]=!!c.above);else{let d=o[l]=this.tooltipViews[h];a&&(a[l]=t[h]),d.update&&d.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 wk(n){let e=n.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const rl=K.define({combine:n=>{var e,t,r;return{position:U.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)||wk}}}),Hd=new WeakMap,yh=De.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(rl);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 Bg(n,xh,(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(rl);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=co,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(U.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=ph(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(rl).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,d=n.pos[a],f=n.size[a];if(!d||l.clip!==!1&&(d.bottom<=Math.max(t.top,r.top)||d.top>=Math.min(t.bottom,r.bottom)||d.right<Math.max(t.left,r.left)-.1||d.left>Math.min(t.right,r.right)+.1)){h.style.top=co;continue}let p=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,m=p?7:0,g=f.right-f.left,y=(e=Hd.get(c))!==null&&e!==void 0?e:f.bottom-f.top,v=c.offset||Sk,S=this.view.textDirection==ke.LTR,C=f.width>r.right-r.left?S?r.left:r.right-f.width:S?Math.max(r.left,Math.min(d.left-(p?14:0)+v.x,r.right-g)):Math.min(Math.max(r.left,d.left-g+(p?14:0)-v.x),r.right-g),A=this.above[a];!l.strictSide&&(A?d.top-y-m-v.y<r.top:d.bottom+y+m+v.y>r.bottom)&&A==r.bottom-d.bottom>d.top-r.top&&(A=this.above[a]=!A);let k=(A?d.top-r.top:r.bottom-d.bottom)-m;if(k<y&&c.resize!==!1){if(k<this.view.defaultLineHeight){h.style.top=co;continue}Hd.set(c,y),h.style.height=(y=k)/s+"px"}else h.style.height&&(h.style.height="");let O=A?d.top-y-m-v.y:d.bottom+m+v.y,x=C+g;if(c.overlap!==!0)for(let E of o)E.left<x&&E.right>C&&E.top<O+y&&E.bottom>O&&(O=A?E.top-y-2-m:E.bottom+m+2);if(this.position=="absolute"?(h.style.top=(O-n.parent.top)/s+"px",Wd(h,(C-n.parent.left)/i)):(h.style.top=O/s+"px",Wd(h,C/i)),p){let E=d.left+(S?v.x:-v.x)-(C+14-7);p.style.left=E/i+"px"}c.overlap!==!0&&o.push({left:C,top:O,right:x,bottom:O+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=co}},{eventObservers:{scroll(){this.maybeMeasure()}}});function Wd(n,e){let t=parseInt(n.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(n.style.left=e+"px")}const kk=_.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"}}}),Sk={x:0,y:0},xh=K.define({enables:[yh,kk]}),Yo=K.define({combine:n=>n.reduce((e,t)=>e.concat(t),[])});class wa{static create(e){return new wa(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Bg(e,Yo,(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 Ck=xh.compute([Yo],n=>{let e=n.facet(Yo);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:wa.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class jk{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==ke.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=>rt(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(yh),t=e?e.manager.tooltips.findIndex(r=>r.create==wa.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&&!Ok(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:!Pk(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 ho=4;function Ok(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-ho&&e.clientX<=r+ho&&e.clientY>=i-ho&&e.clientY<=s+ho}function Pk(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 Ak(n,e={}){let t=oe.define(),r=He.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(Mk)&&(i=[]);return i},provide:i=>Yo.from(i)});return{active:r,extension:[r,De.define(i=>new jk(i,n,r,t,e.hoverTime||300)),Ck]}}function $g(n,e){let t=n.plugin(yh);if(!t)return null;let r=t.manager.tooltips.indexOf(e);return r<0?null:t.manager.tooltipViews[r]}const Mk=oe.define(),_d=K.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 Mi(n,e){let t=n.plugin(Fg),r=t?t.specs.indexOf(e):-1;return r>-1?t.panels[r]:null}const Fg=De.fromClass(class{constructor(n){this.input=n.state.facet(Ni),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(n));let e=n.state.facet(_d);this.top=new uo(n,!0,e.topContainer),this.bottom=new uo(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(_d);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new uo(n.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new uo(n.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=n.state.facet(Ni);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 uo{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=Ud(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Ud(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 Ud(n){let e=n.nextSibling;return n.remove(),e}const Ni=K.define({enables:Fg});class cn extends Cn{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}cn.prototype.elementClass="";cn.prototype.toDOM=void 0;cn.prototype.mapMode=Qe.TrackBefore;cn.prototype.startSide=cn.prototype.endSide=-1;cn.prototype.point=!0;const To=K.define(),Nk=K.define(),Dk={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>he.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},ui=K.define();function Ek(n){return[Vg(),ui.of({...Dk,...n})]}const Kd=K.define({combine:n=>n.some(e=>e)});function Vg(n){return[Tk]}const Tk=De.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(ui).map(e=>new qd(n,e)),this.fixed=!n.state.facet(Kd);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(Kd)!=!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=he.iter(this.view.state.facet(To),this.view.viewport.from),r=[],i=this.gutters.map(s=>new Lk(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){Pc(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){Pc(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(ui),t=n.state.facet(ui),r=n.docChanged||n.heightChanged||n.viewportChanged||!he.eq(n.startState.facet(To),n.state.facet(To),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 qd(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==ke.LTR?{left:r,right:i}:{right:r,left:i}})});function Gd(n){return Array.isArray(n)?n:[n]}function Pc(n,e,t){for(;n.value&&n.from<=t;)n.from==t&&e.push(n.value),n.next()}class Lk{constructor(e,t,r){this.gutter=e,this.height=r,this.i=0,this.cursor=he.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 zg(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=[];Pc(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(Nk)){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 qd{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=Gd(t.markers(e)),t.initialSpacer&&(this.spacer=new zg(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=Gd(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!he.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 zg{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":""),Rk(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 d=o;d<this.markers.length;d++)if(this.markers[d].compare(l)){a=d,c=!0;break}}else a=this.markers.length;for(;o<a;){let h=this.markers[o++];if(h.toDOM){h.destroy(i);let d=i.nextSibling;i.remove(),i=d}}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 Rk(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 Ik=K.define(),Bk=K.define(),hr=K.define({combine(n){return Jt(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 il extends cn{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function sl(n,e){return n.state.facet(hr).formatNumber(e,n.state)}const $k=ui.compute([hr],n=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(Ik)},lineMarker(e,t,r){return r.some(i=>i.toDOM)?null:new il(sl(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,r)=>{for(let i of e.state.facet(Bk)){let s=i(e,t,r);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(hr)!=e.state.facet(hr),initialSpacer(e){return new il(sl(e,Yd(e.state.doc.lines)))},updateSpacer(e,t){let r=sl(t.view,Yd(t.view.state.doc.lines));return r==e.number?e:new il(r)},domEventHandlers:n.facet(hr).domEventHandlers,side:"before"}));function Fk(n={}){return[hr.of(n),Vg(),$k]}function Yd(n){let e=9;for(;e<n;)e=e*10+9;return e}const Vk=new class extends cn{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},zk=To.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(Vk.range(i)))}return he.of(e)});function Hk(){return zk}var ol;const ur=new ce;function Wk(n){return K.define({combine:n?e=>e.concat(n):void 0})}const _k=new ce;class Pt{constructor(e,t,r=[],i=""){this.data=e,this.name=i,ue.prototype.hasOwnProperty("tree")||Object.defineProperty(ue.prototype,"tree",{get(){return Ge(this)}}),this.parser=t,this.extension=[An.of(this),ue.languageData.of((s,o,a)=>{let l=Jd(s,o,a),c=l.type.prop(ur);if(!c)return[];let h=s.facet(c),d=l.type.prop(_k);if(d){let f=l.resolve(o-l.from,a);for(let p of d)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 Jd(e,t,r).type.prop(ur)==this.data}findRegions(e){let t=e.facet(An);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(ur)==this.data){r.push({from:o,to:o+s.length});return}let a=s.prop(ce.mounted);if(a){if(a.tree.prop(ur)==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 Ne&&i(c,s.positions[l]+o)}};return i(Ge(e),0),r}get allowsNesting(){return!0}}Pt.setState=oe.define();function Jd(n,e,t){let r=n.facet(An),i=Ge(n).topNode;if(!r||r.allowsNesting)for(let s=i;s;s=s.enter(e,t,Pe.ExcludeBuffers|Pe.EnterBracketed))s.type.isTop&&(i=s);return i}class Jo extends Pt{constructor(e,t,r){super(e,t,[],r),this.parser=t}static define(e){let t=Wk(e.languageData);return new Jo(t,e.parser.configure({props:[ur.add(r=>r.isTop?t:void 0)]}),e.name)}configure(e,t){return new Jo(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function Ge(n){let e=n.field(Pt.state,!1);return e?e.tree:Ne.empty}class Uk{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 Jr=null;class Qo{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 Qo(e,t,[],Ne.empty,0,r,[],null)}startParse(){return this.parser.startParse(new Uk(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=Ne.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(Kn.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(Kn.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Jr;Jr=this;try{return e()}finally{Jr=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Qd(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,d,f)=>l.push({fromA:c,toA:h,fromB:d,toB:f})),r=Kn.applyChanges(r,l),i=Ne.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),d=e.mapPos(c.to,-1);h<d&&a.push({from:h,to:d})}}}return new Qo(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=Qd(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 gm{createParse(t,r,i){let s=i[0].from,o=i[i.length-1].to;return{parsedPos:s,advance(){let l=Jr;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 Ne(st.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 Jr}}function Qd(n,e,t){return Kn.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=Qo.create(e.facet(An).parser,e,{from:0,to:t});return r.work(20,t)||r.takeTree(),new Or(r)}}Pt.state=He.define({create:Or.init,update(n,e){for(let t of e.effects)if(t.is(Pt.setState))return t.value;return e.startState.facet(An)!=e.state.facet(An)?Or.init(e.state):n.apply(e)}});let Hg=n=>{let e=setTimeout(()=>n(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Hg=n=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(n,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const al=typeof navigator<"u"&&(!((ol=navigator.scheduling)===null||ol===void 0)&&ol.isInputPending)?()=>navigator.scheduling.isInputPending():null,Kk=De.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(Pt.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(Pt.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Hg(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(Pt.state);if(s.tree==s.context.tree&&s.context.isDone(i+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!al?Math.max(25,e.timeRemaining()-5):1e9),a=s.context.treeLen<i&&r.doc.length>i+1e3,l=s.context.work(()=>al&&al()||Date.now()>o,i+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:Pt.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=>rt(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()}}}),An=K.define({combine(n){return n.length?n[0]:null},enables:n=>[Pt.state,Kk,_.contentAttributes.compute([n],e=>{let t=e.facet(n);return t&&t.name?{"data-language":t.name}:{}})]});class Gk{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}const qk=K.define(),ka=K.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 Xo(n){let e=n.facet(ka);return e.charCodeAt(0)==9?n.tabSize*e.length:e.length}function Di(n,e){let t="",r=n.tabSize,i=n.facet(ka)[0];if(i==" "){for(;e>=r;)t+=" ",e-=r;i=" "}for(let s=0;s<e;s++)t+=i;return t}function vh(n,e){n instanceof ue&&(n=new Sa(n));for(let r of n.state.facet(qk)){let i=r(n,e);if(i!==void 0)return i}let t=Ge(n.state);return t.length>=e?Yk(n,t,e):null}class Sa{constructor(e,t={}){this.state=e,this.options=t,this.unit=Xo(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 Nr(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 Wg=new ce;function Yk(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 _g(r,n,t)}function _g(n,e,t){for(let r=n;r;r=r.next){let i=Qk(r.node);if(i)return i(wh.create(e,t,r))}return 0}function Jk(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}function Qk(n){let e=n.type.prop(Wg);if(e)return e;let t=n.firstChild,r;if(t&&(r=t.type.prop(ce.closedBy))){let i=n.lastChild,s=i&&r.indexOf(i.name)>-1;return o=>t3(o,!0,1,void 0,s&&!Jk(o)?i.from:void 0)}return n.parent==null?Xk:null}function Xk(){return 0}class wh extends Sa{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 wh(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(Zk(r,e))break;t=this.state.doc.lineAt(r.from)}return this.lineIndent(t.from)}continue(){return _g(this.context.next,this.base,this.pos)}}function Zk(n,e){for(let t=e;t;t=t.parent)if(n==t)return!0;return!1}function e3(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 t3(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=e3(n);return l?a?n.column(l.from):n.column(l.to):n.baseIndent+(a?0:n.unit*t)}function Xd({except:n,units:e=1}={}){return t=>{let r=n&&n.test(t.textAfter);return t.baseIndent+(r?0:e*t.unit)}}const n3=200;function r3(){return ue.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+n3)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 d=vh(o,h.from);if(d==null)continue;let f=/^\s*/.exec(h.text)[0],p=Di(o,d);f!=p&&l.push({from:h.from,to:h.from+f.length,insert:p})}return l.length?[n,{changes:l,sequential:!0}]:n})}const i3=K.define(),Ug=new ce;function s3(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 o3(n,e,t){let r=Ge(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(Ug);if(l&&(a.to<r.length-50||r.length==n.doc.length||!a3(a))){let c=l(a,n);c&&c.from<=t&&c.from>=e&&c.to>t&&(s=c)}}return s}function a3(n){let e=n.lastChild;return e&&e.to==n.to&&e.type.isError}function Zo(n,e,t){for(let r of n.facet(i3)){let i=r(n,e,t);if(i)return i}return o3(n,e,t)}function Kg(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 Ca=oe.define({map:Kg}),Ps=oe.define({map:Kg});function Gg(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 Jn=He.define({create(){return ne.none},update(n,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((t,r)=>n=Zd(n,t,r)),n=n.map(e.changes);for(let t of e.effects)if(t.is(Ca)&&!l3(n,t.value.from,t.value.to)){let{preparePlaceholder:r}=e.state.facet(Jg),i=r?ne.replace({widget:new m3(r(e.state,t.value))}):ef;n=n.update({add:[i.range(t.value.from,t.value.to)]})}else t.is(Ps)&&(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=Zd(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(ef.range(r,i))}return ne.set(e,!0)}});function Zd(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 ea(n,e,t){var r;let i=null;return(r=n.field(Jn,!1))===null||r===void 0||r.between(e,t,(s,o)=>{(!i||i.from>s)&&(i={from:s,to:o})}),i}function l3(n,e,t){let r=!1;return n.between(e,e,(i,s)=>{i==e&&s==t&&(r=!0)}),r}function qg(n,e){return n.field(Jn,!1)?e:e.concat(oe.appendConfig.of(Qg()))}const c3=n=>{for(let e of Gg(n)){let t=Zo(n.state,e.from,e.to);if(t)return n.dispatch({effects:qg(n.state,[Ca.of(t),Yg(n,t)])}),!0}return!1},h3=n=>{if(!n.state.field(Jn,!1))return!1;let e=[];for(let t of Gg(n)){let r=ea(n.state,t.from,t.to);r&&e.push(Ps.of(r),Yg(n,r,!1))}return e.length&&n.dispatch({effects:e}),e.length>0};function Yg(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 u3=n=>{let{state:e}=n,t=[];for(let r=0;r<e.doc.length;){let i=n.lineBlockAt(r),s=Zo(e,i.from,i.to);s&&t.push(Ca.of(s)),r=(s?n.lineBlockAt(s.to):i).to+1}return t.length&&n.dispatch({effects:qg(n.state,t)}),!!t.length},d3=n=>{let e=n.state.field(Jn,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,n.state.doc.length,(r,i)=>{t.push(Ps.of({from:r,to:i}))}),n.dispatch({effects:t}),!0},f3=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:c3},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:h3},{key:"Ctrl-Alt-[",run:u3},{key:"Ctrl-Alt-]",run:d3}],p3={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Jg=K.define({combine(n){return Jt(n,p3)}});function Qg(n){return[Jn,y3]}function Xg(n,e){let{state:t}=n,r=t.facet(Jg),i=o=>{let a=n.lineBlockAt(n.posAtDOM(o.target)),l=ea(n.state,a.from,a.to);l&&n.dispatch({effects:Ps.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 ef=ne.replace({widget:new class extends Qt{toDOM(n){return Xg(n,null)}}});class m3 extends Qt{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Xg(e,this.value)}}const g3={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class ll extends cn{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 b3(n={}){let e={...g3,...n},t=new ll(e,!0),r=new ll(e,!1),i=De.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(An)!=o.state.facet(An)||o.startState.field(Jn,!1)!=o.state.field(Jn,!1)||Ge(o.startState)!=Ge(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let a=new an;for(let l of o.viewportLineBlocks){let c=ea(o.state,l.from,l.to)?r:Zo(o.state,l.from,l.to)?t:null;c&&a.add(l.from,l.from,c)}return a.finish()}}),{domEventHandlers:s}=e;return[i,Ek({class:"cm-foldGutter",markers(o){var a;return((a=o.plugin(i))===null||a===void 0?void 0:a.markers)||he.empty},initialSpacer(){return new ll(e,!1)},domEventHandlers:{...s,click:(o,a,l)=>{if(s.click&&s.click(o,a,l))return!0;let c=ea(o.state,a.from,a.to);if(c)return o.dispatch({effects:Ps.of(c)}),!0;let h=Zo(o.state,a.from,a.to);return h?(o.dispatch({effects:Ca.of(h)}),!0):!1}}}),Qg()]}const y3=_.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=jn.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 Pt?a=>a.prop(ur)==o.data:o?a=>a==o:void 0,this.style=xm(e.map(a=>({tag:a.tag,class:a.class||i(Object.assign({},a,{tag:null}))})),{all:s}).style,this.module=r?new jn(r):null,this.themeType=t.themeType}static define(e,t){return new Dr(e,t||{})}}const Ac=K.define(),Zg=K.define({combine(n){return n.length?[n[0]]:null}});function cl(n){let e=n.facet(Ac);return e.length?e:n.facet(Zg)}function kh(n,e){let t=[v3],r;return n instanceof Dr&&(n.module&&t.push(_.styleModule.of(n.module)),r=n.themeType),e?.fallback?t.push(Zg.of(n)):r?t.push(Ac.computeN([_.darkTheme],i=>i.facet(_.darkTheme)==(r=="dark")?[n]:[])):t.push(Ac.of(n)),t}class x3{constructor(e){this.markCache=Object.create(null),this.tree=Ge(e.state),this.decorations=this.buildDeco(e,cl(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=Ge(e.state),r=cl(e.state),i=r!=cl(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 ne.none;let r=new an;for(let{from:i,to:s}of e.visibleRanges)Mv(this.tree,t,(o,a,l)=>{r.add(o,a,this.markCache[l]||(this.markCache[l]=ne.mark({class:l})))},i,s);return r.finish()}}const v3=Zn.high(De.fromClass(x3,{decorations:n=>n.decorations})),w3=Dr.define([{tag:D.meta,color:"#404740"},{tag:D.link,textDecoration:"underline"},{tag:D.heading,textDecoration:"underline",fontWeight:"bold"},{tag:D.emphasis,fontStyle:"italic"},{tag:D.strong,fontWeight:"bold"},{tag:D.strikethrough,textDecoration:"line-through"},{tag:D.keyword,color:"#708"},{tag:[D.atom,D.bool,D.url,D.contentSeparator,D.labelName],color:"#219"},{tag:[D.literal,D.inserted],color:"#164"},{tag:[D.string,D.deleted],color:"#a11"},{tag:[D.regexp,D.escape,D.special(D.string)],color:"#e40"},{tag:D.definition(D.variableName),color:"#00f"},{tag:D.local(D.variableName),color:"#30a"},{tag:[D.typeName,D.namespace],color:"#085"},{tag:D.className,color:"#167"},{tag:[D.special(D.variableName),D.macroName],color:"#256"},{tag:D.definition(D.propertyName),color:"#00c"},{tag:D.comment,color:"#940"},{tag:D.invalid,color:"#f00"}]),k3=_.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),e0=1e4,t0="()[]{}",n0=K.define({combine(n){return Jt(n,{afterCursor:!0,brackets:t0,maxScanDistance:e0,renderMatch:j3})}}),S3=ne.mark({class:"cm-matchingBracket"}),C3=ne.mark({class:"cm-nonmatchingBracket"});function j3(n){let e=[],t=n.matched?S3:C3;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 O3=He.define({create(){return ne.none},update(n,e){if(!e.docChanged&&!e.selection)return n;let t=[],r=e.state.facet(n0);for(let i of e.state.selection.ranges){if(!i.empty)continue;let s=Ht(e.state,i.head,-1,r)||i.head>0&&Ht(e.state,i.head-1,1,r)||r.afterCursor&&(Ht(e.state,i.head,1,r)||i.head<e.state.doc.length&&Ht(e.state,i.head+1,-1,r));s&&(t=t.concat(r.renderMatch(s,e.state)))}return ne.set(t,!0)},provide:n=>_.decorations.from(n)}),P3=[O3,k3];function A3(n={}){return[n0.of(n),P3]}const M3=new ce;function Mc(n,e,t){let r=n.prop(e<0?ce.openedBy:ce.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 Nc(n){let e=n.type.prop(M3);return e?e(n.node):n}function Ht(n,e,t,r={}){let i=r.maxScanDistance||e0,s=r.brackets||t0,o=Ge(n),a=o.resolveInner(e,t);for(let l=a;l;l=l.parent){let c=Mc(l.type,t,s);if(c&&l.from<l.to){let h=Nc(l);if(h&&(t>0?e>=h.from&&e<h.to:e>h.from&&e<=h.to))return N3(n,e,t,l,h,c,s)}}return D3(n,e,t,o,a.type,i,s)}function N3(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 d=Nc(h);return{start:l,end:d?{from:d.from,to:d.to}:void 0,matched:!0}}else if(Mc(h.type,t,o))c++;else if(Mc(h.type,-t,o)){if(c==0){let d=Nc(h);return{start:l,end:d&&d.from<d.to?{from:d.from,to:d.to}:void 0,matched:!1}}c--}}while(t<0?h.prevSibling():h.nextSibling());return{start:l,matched:!1}}function D3(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),d=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)d++;else{if(d==1)return{start:c,end:{from:m+g,to:m+g+1},matched:v>>1==l>>1};d--}}t>0&&(f+=p.length)}return h.done?{start:c,matched:!1}:null}const E3=Object.create(null),tf=[st.none],nf=[],rf=Object.create(null),T3=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"]])T3[n]=L3(E3,e);function hl(n,e){nf.indexOf(n)>-1||(nf.push(n),console.warn(e))}function L3(n,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let h=n[c]||D[c];h?typeof h=="function"?l.length?l=l.map(h):hl(c,`Modifier ${c} used at start of tag`):l.length?hl(c,`Tag ${c} used as modifier`):l=Array.isArray(h)?h:[h]:hl(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=rf[i];if(s)return s.id;let o=rf[i]=st.define({id:tf.length,name:r,props:[bm({[r]:t})]});return tf.push(o),o.id}ke.RTL,ke.LTR;const R3=Jo.define({name:"json",parser:Tv.configure({props:[Wg.add({Object:Xd({except:/^\s*\}/}),Array:Xd({except:/^\s*\]/})}),Ug.add({"Object Array":s3})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function I3(){return new Gk(R3)}function Dc(){return Dc=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},Dc.apply(null,arguments)}function B3(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 $3=n=>{let{state:e}=n,t=e.doc.lineAt(e.selection.main.from),r=Ch(n.state,t.from);return r.line?F3(n):r.block?z3(n):!1};function Sh(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 F3=Sh(_3,0),V3=Sh(r0,0),z3=Sh((n,e)=>r0(n,e,W3(e)),0);function Ch(n,e){let t=n.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}const Qr=50;function H3(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,d;i-r<=2*Qr?h=d=n.sliceDoc(r,i):(h=n.sliceDoc(r,r+Qr),d=n.sliceDoc(i-Qr,i));let f=/^\s*/.exec(h)[0].length,p=/\s*$/.exec(d)[0].length,m=d.length-p-t.length;return h.slice(f,f+e.length)==e&&d.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(d.charAt(m-1))?1:0}}:null}function W3(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 r0(n,e,t=e.selection.ranges){let r=t.map(s=>Ch(e,s.from).block);if(!r.every(s=>s))return null;let i=t.map((s,o)=>H3(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 _3(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=Ch(e,s).line;if(c){for(let h=s;h<=o;){let d=e.doc.lineAt(h);if(d.from>i&&(s==o||o>d.from)){i=d.from;let f=/^\s*/.exec(d.text)[0].length,p=f==d.length,m=d.text.slice(f,f+c.length)==c?f:-1;f<d.text.length&&f<l&&(l=f),r.push({line:d,comment:m,token:c,indent:f,empty:p,single:!1})}h=d.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:d}of r)(d||!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 Ec=Yt.define(),U3=Yt.define(),K3=K.define(),i0=K.define({combine(n){return Jt(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)})}}),s0=He.define({create(){return Wt.empty},update(n,e){let t=e.state.facet(i0),r=e.annotation(Ec);if(r){let l=it.fromTransaction(e,r.selection),c=r.side,h=c==0?n.undone:n.done;return l?h=ta(h,h.length,t.minDepth,l):h=l0(h,e.startState.selection),new Wt(c==0?r.rest:h,c==0?h:r.rest)}let i=e.annotation(U3);if((i=="full"||i=="before")&&(n=n.isolate()),e.annotation(Re.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let s=it.fromTransaction(e),o=e.annotation(Re.time),a=e.annotation(Re.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 Wt(n.done.map(it.fromJSON),n.undone.map(it.fromJSON))}});function G3(n={}){return[s0,i0.of(n),_.domEventHandlers({beforeinput(e,t){let r=e.inputType=="historyUndo"?o0:e.inputType=="historyRedo"?Tc:null;return r?(e.preventDefault(),r(t)):!1}})]}function ja(n,e){return function({state:t,dispatch:r}){if(!e&&t.readOnly)return!1;let i=t.field(s0,!1);if(!i)return!1;let s=i.pop(n,t,e);return s?(r(s),!0):!1}}const o0=ja(0,!1),Tc=ja(1,!1),q3=ja(0,!0),Y3=ja(1,!0);class it{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 it(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 it(e.changes&&Te.fromJSON(e.changes),[],e.mapped&&Ut.fromJSON(e.mapped),e.startSelection&&T.fromJSON(e.startSelection),e.selectionsAfter.map(T.fromJSON))}static fromTransaction(e,t){let r=yt;for(let i of e.startState.facet(K3)){let s=i(e);s.length&&(r=r.concat(s))}return!r.length&&e.changes.empty?null:new it(e.changes.invert(e.startState.doc),r,void 0,t||e.startState.selection,yt)}static selection(e){return new it(void 0,yt,void 0,void 0,e)}}function ta(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 J3(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 Q3(n,e){return n.ranges.length==e.ranges.length&&n.ranges.filter((t,r)=>t.empty!=e.ranges[r].empty).length===0}function a0(n,e){return n.length?e.length?n.concat(e):n:e}const yt=[],X3=200;function l0(n,e){if(n.length){let t=n[n.length-1],r=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-X3));return r.length&&r[r.length-1].eq(e)?n:(r.push(e),ta(n,n.length-1,1e9,t.setSelAfter(r)))}else return[it.selection([e])]}function Z3(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 ul(n,e){if(!n.length)return n;let t=n.length,r=yt;for(;t;){let i=e4(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?[it.selection(r)]:yt}function e4(n,e,t){let r=a0(n.selectionsAfter.length?n.selectionsAfter.map(a=>a.map(e)):yt,t);if(!n.changes)return it.selection(r);let i=n.changes.map(e),s=e.mapDesc(n.changes,!0),o=n.mapped?n.mapped.composeDesc(s):s;return new it(i,oe.mapEffects(n.effects,e),o,n.startSelection.map(s),r)}const t4=/^(input\.type|delete)($|\.)/;class Wt{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 Wt(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||t4.test(r))&&(!a.selectionsAfter.length&&t-this.prevTime<i.newGroupDelay&&i.joinToEvent(s,J3(a.changes,e.changes))||r=="input.type.compose")?o=ta(o,o.length-1,i.minDepth,new it(e.changes.compose(a.changes),a0(oe.mapEffects(e.effects,a.changes),a.effects),a.mapped,a.startSelection,yt)):o=ta(o,o.length,i.minDepth,e),new Wt(o,yt,t,r)}addSelection(e,t,r,i){let s=this.done.length?this.done[this.done.length-1].selectionsAfter:yt;return s.length>0&&t-this.prevTime<i&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&Q3(s[s.length-1],e)?this:new Wt(l0(this.done,e),this.undone,t,r)}addMapping(e){return new Wt(ul(this.done,e),ul(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:Ec.of({side:e,rest:Z3(i),selection:o}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(s.changes){let a=i.length==1?yt:i.slice(0,i.length-1);return s.mapped&&(a=ul(a,s.mapped)),t.update({changes:s.changes,selection:s.startSelection,effects:s.effects,annotations:Ec.of({side:e,rest:a,selection:o}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}Wt.empty=new Wt(yt,yt);const n4=[{key:"Mod-z",run:o0,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Tc,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Tc,preventDefault:!0},{key:"Mod-u",run:q3,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Y3,preventDefault:!0}];function Er(n,e){return T.create(n.ranges.map(e),n.mainIndex)}function Nt(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(Nt(n,r)),!0)}function Oa(n,e){return T.cursor(e?n.to:n.from)}function c0(n,e){return Dt(n,t=>t.empty?n.moveByChar(t,e):Oa(t,e))}function qe(n){return n.textDirectionAt(n.state.selection.main.head)==ke.LTR}const h0=n=>c0(n,!qe(n)),u0=n=>c0(n,qe(n));function d0(n,e){return Dt(n,t=>t.empty?n.moveByGroup(t,e):Oa(t,e))}const r4=n=>d0(n,!qe(n)),i4=n=>d0(n,qe(n));function s4(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 Pa(n,e,t){let r=Ge(n).resolveInner(e.head),i=t?ce.closedBy:ce.openedBy;for(let l=e.head;;){let c=t?r.childAfter(l):r.childBefore(l);if(!c)break;s4(n,c,i)?r=c:l=t?c.to:c.from}let s=r.type.prop(i),o,a;return s&&(o=t?Ht(n,r.from,1):Ht(n,r.to,-1))&&o.matched?a=t?o.end.to:o.end.from:a=t?r.to:r.from,T.cursor(a,t?-1:1)}const o4=n=>Dt(n,e=>Pa(n.state,e,!qe(n))),a4=n=>Dt(n,e=>Pa(n.state,e,qe(n)));function f0(n,e){return Dt(n,t=>{if(!t.empty)return Oa(t,e);let r=n.moveVertically(t,e);return r.head!=t.head?r:n.moveToLineBoundary(t,e)})}const p0=n=>f0(n,!1),m0=n=>f0(n,!0);function g0(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 b0(n,e){let t=g0(n),{state:r}=n,i=Er(r.selection,o=>o.empty?n.moveVertically(o,e,t.height):Oa(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(Nt(r,i),{effects:s}),!0}const sf=n=>b0(n,!1),Lc=n=>b0(n,!0);function Nn(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=T.cursor(r.from+s))}return i}const l4=n=>Dt(n,e=>Nn(n,e,!0)),c4=n=>Dt(n,e=>Nn(n,e,!1)),h4=n=>Dt(n,e=>Nn(n,e,!qe(n))),u4=n=>Dt(n,e=>Nn(n,e,qe(n))),d4=n=>Dt(n,e=>T.cursor(n.lineBlockAt(e.head).from,1)),f4=n=>Dt(n,e=>T.cursor(n.lineBlockAt(e.head).to,-1));function p4(n,e,t){let r=!1,i=Er(n.selection,s=>{let o=Ht(n,s.head,-1)||Ht(n,s.head,1)||s.head>0&&Ht(n,s.head-1,1)||s.head<n.doc.length&&Ht(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 T.cursor(a)});return r?(e(Nt(n,i)),!0):!1}const m4=({state:n,dispatch:e})=>p4(n,e);function Ct(n,e){let t=Er(n.state.selection,r=>{let i=e(r);return T.range(r.anchor,i.head,i.goalColumn,i.bidiLevel||void 0)});return t.eq(n.state.selection)?!1:(n.dispatch(Nt(n.state,t)),!0)}function y0(n,e){return Ct(n,t=>n.moveByChar(t,e))}const x0=n=>y0(n,!qe(n)),v0=n=>y0(n,qe(n));function w0(n,e){return Ct(n,t=>n.moveByGroup(t,e))}const g4=n=>w0(n,!qe(n)),b4=n=>w0(n,qe(n)),y4=n=>Ct(n,e=>Pa(n.state,e,!qe(n))),x4=n=>Ct(n,e=>Pa(n.state,e,qe(n)));function k0(n,e){return Ct(n,t=>n.moveVertically(t,e))}const S0=n=>k0(n,!1),C0=n=>k0(n,!0);function j0(n,e){return Ct(n,t=>n.moveVertically(t,e,g0(n).height))}const of=n=>j0(n,!1),af=n=>j0(n,!0),v4=n=>Ct(n,e=>Nn(n,e,!0)),w4=n=>Ct(n,e=>Nn(n,e,!1)),k4=n=>Ct(n,e=>Nn(n,e,!qe(n))),S4=n=>Ct(n,e=>Nn(n,e,qe(n))),C4=n=>Ct(n,e=>T.cursor(n.lineBlockAt(e.head).from)),j4=n=>Ct(n,e=>T.cursor(n.lineBlockAt(e.head).to)),lf=({state:n,dispatch:e})=>(e(Nt(n,{anchor:0})),!0),cf=({state:n,dispatch:e})=>(e(Nt(n,{anchor:n.doc.length})),!0),hf=({state:n,dispatch:e})=>(e(Nt(n,{anchor:n.selection.main.anchor,head:0})),!0),uf=({state:n,dispatch:e})=>(e(Nt(n,{anchor:n.selection.main.anchor,head:n.doc.length})),!0),O4=({state:n,dispatch:e})=>(e(n.update({selection:{anchor:0,head:n.doc.length},userEvent:"select"})),!0),P4=({state:n,dispatch:e})=>{let t=Aa(n).map(({from:r,to:i})=>T.range(r,Math.min(i+1,n.doc.length)));return e(n.update({selection:T.create(t),userEvent:"select"})),!0},A4=({state:n,dispatch:e})=>{let t=Er(n.selection,r=>{let i=Ge(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 T.range(a.to,a.from)}return r});return t.eq(n.selection)?!1:(e(Nt(n,t)),!0)};function O0(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(Nt(t,T.create(i,i.length-1))),!0)}const M4=n=>O0(n,!1),N4=n=>O0(n,!0),D4=({state:n,dispatch:e})=>{let t=n.selection,r=null;return t.ranges.length>1?r=T.create([t.main]):t.main.empty||(r=T.create([T.cursor(t.main.head)])),r?(e(Nt(n,r)),!0):!1};function As(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=fo(n,l,!1)):l>o&&(t="delete.forward",l=fo(n,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=fo(n,o,!1),a=fo(n,a,!0);return o==a?{range:s}:{changes:{from:o,to:a},range:T.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 fo(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 P0=(n,e,t)=>As(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=Nr(a,s.tabSize),h=c%Xo(s)||Xo(s);for(let d=0;d<h&&a[a.length-1-d]==" ";d++)i--;l=i}else l=Le(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=Le(o.text,l-o.from,!1,!1)+o.from);return l}),Rc=n=>P0(n,!1,!0),A0=n=>P0(n,!0,!1),M0=(n,e)=>As(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=Le(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}),N0=n=>M0(n,!1),E4=n=>M0(n,!0),T4=n=>As(n,e=>{let t=n.lineBlockAt(e.head).to;return e.head<t?t:Math.min(n.state.doc.length,e.head+1)}),L4=n=>As(n,e=>{let t=n.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),R4=n=>As(n,e=>{let t=n.moveToLineBoundary(e,!0).head;return e.head<t?t:Math.min(n.state.doc.length,e.head+1)}),I4=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:be.of(["",""])},range:T.cursor(r.from)}));return e(n.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},B4=({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:Le(s.text,i-s.from,!1)+s.from,a=i==s.to?i+1:Le(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:T.cursor(a)}});return t.changes.empty?!1:(e(n.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Aa(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 D0(n,e,t){if(n.readOnly)return!1;let r=[],i=[];for(let s of Aa(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(T.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(T.range(l.anchor-a,l.head-a))}}return r.length?(e(n.update({changes:r,scrollIntoView:!0,selection:T.create(i,n.selection.mainIndex),userEvent:"move.line"})),!0):!1}const $4=({state:n,dispatch:e})=>D0(n,e,!1),F4=({state:n,dispatch:e})=>D0(n,e,!0);function E0(n,e,t){if(n.readOnly)return!1;let r=[];for(let s of Aa(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 V4=({state:n,dispatch:e})=>E0(n,e,!1),z4=({state:n,dispatch:e})=>E0(n,e,!0),H4=n=>{if(n.state.readOnly)return!1;let{state:e}=n,t=e.changes(Aa(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 W4(n,e){if(/\(\)|\[\]|\{\}/.test(n.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=Ge(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(ce.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 df=T0(!1),_4=T0(!0);function T0(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&&W4(e,s);n&&(s=o=(o<=a.to?a:e.doc.lineAt(o)).to);let c=new Sa(e,{simulateBreak:s,simulateDoubleBreak:!!l}),h=vh(c,s);for(h==null&&(h=Nr(/^\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 d=["",Di(e,h)];return l&&d.push(Di(e,c.lineIndent(a.from,-1))),{changes:{from:s,to:o,insert:be.of(d)},range:T.cursor(s+1+d[1].length)}});return t(e.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function jh(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:T.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}})}const U4=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=Object.create(null),r=new Sa(n,{overrideIndentation:s=>{let o=t[s];return o??-1}}),i=jh(n,(s,o,a)=>{let l=vh(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},L0=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(jh(n,(t,r)=>{r.push({from:t.from,insert:n.facet(ka)})}),{userEvent:"input.indent"})),!0),R0=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(jh(n,(t,r)=>{let i=/^\s*/.exec(t.text)[0];if(!i)return;let s=Nr(i,n.tabSize),o=0,a=Di(n,Math.max(0,s-Xo(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),K4=n=>(n.setTabFocusMode(),!0),G4=[{key:"Ctrl-b",run:h0,shift:x0,preventDefault:!0},{key:"Ctrl-f",run:u0,shift:v0},{key:"Ctrl-p",run:p0,shift:S0},{key:"Ctrl-n",run:m0,shift:C0},{key:"Ctrl-a",run:d4,shift:C4},{key:"Ctrl-e",run:f4,shift:j4},{key:"Ctrl-d",run:A0},{key:"Ctrl-h",run:Rc},{key:"Ctrl-k",run:T4},{key:"Ctrl-Alt-h",run:N0},{key:"Ctrl-o",run:I4},{key:"Ctrl-t",run:B4},{key:"Ctrl-v",run:Lc}],q4=[{key:"ArrowLeft",run:h0,shift:x0,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:r4,shift:g4,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:h4,shift:k4,preventDefault:!0},{key:"ArrowRight",run:u0,shift:v0,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:i4,shift:b4,preventDefault:!0},{mac:"Cmd-ArrowRight",run:u4,shift:S4,preventDefault:!0},{key:"ArrowUp",run:p0,shift:S0,preventDefault:!0},{mac:"Cmd-ArrowUp",run:lf,shift:hf},{mac:"Ctrl-ArrowUp",run:sf,shift:of},{key:"ArrowDown",run:m0,shift:C0,preventDefault:!0},{mac:"Cmd-ArrowDown",run:cf,shift:uf},{mac:"Ctrl-ArrowDown",run:Lc,shift:af},{key:"PageUp",run:sf,shift:of},{key:"PageDown",run:Lc,shift:af},{key:"Home",run:c4,shift:w4,preventDefault:!0},{key:"Mod-Home",run:lf,shift:hf},{key:"End",run:l4,shift:v4,preventDefault:!0},{key:"Mod-End",run:cf,shift:uf},{key:"Enter",run:df,shift:df},{key:"Mod-a",run:O4},{key:"Backspace",run:Rc,shift:Rc,preventDefault:!0},{key:"Delete",run:A0,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:N0,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:E4,preventDefault:!0},{mac:"Mod-Backspace",run:L4,preventDefault:!0},{mac:"Mod-Delete",run:R4,preventDefault:!0}].concat(G4.map(n=>({mac:n.key,run:n.run,shift:n.shift}))),Y4=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:o4,shift:y4},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:a4,shift:x4},{key:"Alt-ArrowUp",run:$4},{key:"Shift-Alt-ArrowUp",run:V4},{key:"Alt-ArrowDown",run:F4},{key:"Shift-Alt-ArrowDown",run:z4},{key:"Mod-Alt-ArrowUp",run:M4},{key:"Mod-Alt-ArrowDown",run:N4},{key:"Escape",run:D4},{key:"Mod-Enter",run:_4},{key:"Alt-l",mac:"Ctrl-l",run:P4},{key:"Mod-i",run:A4,preventDefault:!0},{key:"Mod-[",run:R0},{key:"Mod-]",run:L0},{key:"Mod-Alt-\\",run:U4},{key:"Shift-Mod-k",run:H4},{key:"Shift-Mod-\\",run:m4},{key:"Mod-/",run:$3},{key:"Alt-A",run:V3},{key:"Ctrl-m",mac:"Shift-Alt-m",run:K4}].concat(q4),J4={key:"Tab",run:L0,shift:R0},ff=typeof String.prototype.normalize=="function"?n=>n.normalize("NFKD"):n=>n;class Pr{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(ff(a)):ff,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 et(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=rh(e),r=this.bufferStart+this.bufferPos;this.bufferPos+=Ft(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"&&(Pr.prototype[Symbol.iterator]=function(){return this});const I0={from:-1,to:-1,match:/.*/.exec("")},Oh="gm"+(/x/.unicode==null?"":"u");class B0{constructor(e,t,r,i=0,s=e.length){if(this.text=e,this.to=s,this.curLine="",this.done=!1,this.value=I0,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new $0(e,t,r,i,s);this.re=new RegExp(t,Oh+(r?.ignoreCase?"i":"")),this.test=r?.test,this.iter=e.iter();let o=e.lineAt(i);this.curLineStart=o.from,this.matchPos=na(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=na(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 dl=new WeakMap;class xr{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,r){let i=dl.get(e);if(!i||i.from>=r||i.to<=t){let a=new xr(t,e.sliceString(t,r));return dl.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)),dl.set(e,new xr(o,s)),new xr(t,s.slice(t-o,r-o))}}class $0{constructor(e,t,r,i,s){this.text=e,this.to=s,this.done=!1,this.value=I0,this.matchPos=na(e,i),this.re=new RegExp(t,Oh+(r?.ignoreCase?"i":"")),this.test=r?.test,this.flat=xr.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=na(this.text,i+(r==i?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=xr.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(B0.prototype[Symbol.iterator]=$0.prototype[Symbol.iterator]=function(){return this});function Q4(n){try{return new RegExp(n,Oh),!0}catch{return!1}}function na(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 Ic(n){let e=String(n.state.doc.lineAt(n.state.selection.main.head).number),t=ve("input",{class:"cm-textfield",name:"line",value:e}),r=ve("form",{class:"cm-gotoLine",onkeydown:s=>{s.keyCode==27?(s.preventDefault(),n.dispatch({effects:di.of(!1)}),n.focus()):s.keyCode==13&&(s.preventDefault(),i())},onsubmit:s=>{s.preventDefault(),i()}},ve("label",n.state.phrase("Go to line"),": ",t)," ",ve("button",{class:"cm-button",type:"submit"},n.state.phrase("go")),ve("button",{name:"close",onclick:()=>{n.dispatch({effects:di.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,d]=s,f=h?+h.slice(1):0,p=c?+c:a.number;if(c&&d){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=T.cursor(m.from+Math.max(0,Math.min(f,m.length)));n.dispatch({effects:[di.of(!1),_.scrollIntoView(g.from,{y:"center"})],selection:g}),n.focus()}return{dom:r}}const di=oe.define(),pf=He.define({create(){return!0},update(n,e){for(let t of e.effects)t.is(di)&&(n=t.value);return n},provide:n=>Ni.from(n,e=>e?Ic:null)}),X4=n=>{let e=Mi(n,Ic);if(!e){let t=[di.of(!0)];n.state.field(pf,!1)==null&&t.push(oe.appendConfig.of([pf,Z4])),n.dispatch({effects:t}),e=Mi(n,Ic)}return e&&e.dom.querySelector("input").select(),!0},Z4=_.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"}}}),eS={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},tS=K.define({combine(n){return Jt(n,eS,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function nS(n){return[aS,oS]}const rS=ne.mark({class:"cm-selectionMatch"}),iS=ne.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function mf(n,e,t,r){return(t==0||n(e.sliceDoc(t-1,t))!=Ce.Word)&&(r==e.doc.length||n(e.sliceDoc(r,r+1))!=Ce.Word)}function sS(n,e,t,r){return n(e.sliceDoc(t,t+1))==Ce.Word&&n(e.sliceDoc(r-1,r))==Ce.Word}const oS=De.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(tS),{state:t}=n,r=t.selection;if(r.ranges.length>1)return ne.none;let i=r.main,s,o=null;if(i.empty){if(!e.highlightWordAroundCursor)return ne.none;let l=t.wordAt(i.head);if(!l)return ne.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 ne.none;if(e.wholeWords){if(s=t.sliceDoc(i.from,i.to),o=t.charCategorizer(i.head),!(mf(o,t,i.from,i.to)&&sS(o,t,i.from,i.to)))return ne.none}else if(s=t.sliceDoc(i.from,i.to),!s)return ne.none}let a=[];for(let l of n.visibleRanges){let c=new Pr(t.doc,s,l.from,l.to);for(;!c.next().done;){let{from:h,to:d}=c.value;if((!o||mf(o,t,h,d))&&(i.empty&&h<=i.from&&d>=i.to?a.push(iS.range(h,d)):(h>=i.to||d<=i.from)&&a.push(rS.range(h,d)),a.length>e.maxMatches))return ne.none}}return ne.set(a)}},{decorations:n=>n.decorations}),aS=_.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),lS=({state:n,dispatch:e})=>{let{selection:t}=n,r=T.create(t.ranges.map(i=>n.wordAt(i.head)||T.cursor(i.head)),t.mainIndex);return r.eq(t)?!1:(e(n.update({selection:r})),!0)};function cS(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 Pr(n.doc,e,r[r.length-1].to);;)if(a.next(),a.done){if(o)return null;a=new Pr(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 hS=({state:n,dispatch:e})=>{let{ranges:t}=n.selection;if(t.some(s=>s.from===s.to))return lS({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=cS(n,r);return i?(e(n.update({selection:n.selection.addRange(T.range(i.from,i.to),!1),effects:_.scrollIntoView(i.to)})),!0):!1},Tr=K.define({combine(n){return Jt(n,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new kS(e),scrollToMatch:e=>_.scrollIntoView(e)})}});class F0{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||Q4(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"?`
|
|
181
|
-
`: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 pS(this):new dS(this)}getCursor(e,t=0,r){let i=e.doc?e:ue.create({doc:e});return r==null&&(r=i.doc.length),this.regexp?ar(this,i,t,r):or(this,i,t,r)}}class V0{constructor(e){this.spec=e}}function or(n,e,t,r){return new Pr(e.doc,n.unquoted,t,r,n.caseSensitive?void 0:i=>i.toLowerCase(),n.wholeWord?uS(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function uS(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(ra(i,t-s))!=Ce.Word||e(ia(i,t-s))!=Ce.Word)&&(e(ia(i,r-s))!=Ce.Word||e(ra(i,r-s))!=Ce.Word))}class dS extends V0{constructor(e){super(e)}nextMatch(e,t,r){let i=or(this.spec,e,r,e.doc.length).nextOverlapping();if(i.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);i=or(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=or(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=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-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 ar(n,e,t,r){return new B0(e.doc,n.search,{ignoreCase:!n.caseSensitive,test:n.wholeWord?fS(e.charCategorizer(e.selection.main.head)):void 0},t,r)}function ra(n,e){return n.slice(Le(n,e,!1),e)}function ia(n,e){return n.slice(e,Le(n,e))}function fS(n){return(e,t,r)=>!r[0].length||(n(ra(r.input,r.index))!=Ce.Word||n(ia(r.input,r.index))!=Ce.Word)&&(n(ia(r.input,r.index+r[0].length))!=Ce.Word||n(ra(r.input,r.index+r[0].length))!=Ce.Word)}class pS extends V0{nextMatch(e,t,r){let i=ar(this.spec,e,r,e.doc.length).next();return i.done&&(i=ar(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=ar(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=ar(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=ar(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=oe.define(),Ph=oe.define(),kn=He.define({create(n){return new fl(Bc(n).create(),null)},update(n,e){for(let t of e.effects)t.is(Ei)?n=new fl(t.value.create(),n.panel):t.is(Ph)&&(n=new fl(n.query,t.value?Ah:null));return n},provide:n=>Ni.from(n,e=>e.panel)});class fl{constructor(e,t){this.query=e,this.panel=t}}const mS=ne.mark({class:"cm-searchMatch"}),gS=ne.mark({class:"cm-searchMatch cm-searchMatch-selected"}),bS=De.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(kn))}update(n){let e=n.state.field(kn);(e!=n.startState.field(kn)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return ne.none;let{view:t}=this,r=new an;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 d=t.state.selection.ranges.some(f=>f.from==c&&f.to==h);r.add(c,h,d?gS:mS)})}return r.finish()}},{decorations:n=>n.decorations});function Ms(n){return e=>{let t=e.state.field(kn,!1);return t&&t.query.spec.valid?n(e,t):W0(e)}}const sa=Ms((n,{query:e})=>{let{to:t}=n.state.selection.main,r=e.nextMatch(n.state,t,t);if(!r)return!1;let i=T.single(r.from,r.to),s=n.state.facet(Tr);return n.dispatch({selection:i,effects:[Mh(n,r),s.scrollToMatch(i.main,n)],userEvent:"select.search"}),H0(n),!0}),oa=Ms((n,{query:e})=>{let{state:t}=n,{from:r}=t.selection.main,i=e.prevMatch(t,r,r);if(!i)return!1;let s=T.single(i.from,i.to),o=n.state.facet(Tr);return n.dispatch({selection:s,effects:[Mh(n,i),o.scrollToMatch(s.main,n)],userEvent:"select.search"}),H0(n),!0}),yS=Ms((n,{query:e})=>{let t=e.matchAll(n.state,1e3);return!t||!t.length?!1:(n.dispatch({selection:T.create(t.map(r=>T.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),xS=({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 Pr(n.doc,n.sliceDoc(r,i));!a.next().done;){if(s.length>1e3)return!1;a.value.from==r&&(o=s.length),s.push(T.range(a.value.from,a.value.to))}return e(n.update({selection:T.create(s,o),userEvent:"select.search.matches"})),!0},gf=Ms((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 d=n.state.changes(a);return o&&(l=T.single(o.from,o.to).map(d),h.push(Mh(n,o)),h.push(t.facet(Tr).scrollToMatch(l.main,n))),n.dispatch({changes:d,selection:l,effects:h,userEvent:"input.replace"}),!0}),vS=Ms((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 Ah(n){return n.state.facet(Tr).createPanel(n)}function Bc(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 F0({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 z0(n){let e=Mi(n,Ah);return e&&e.dom.querySelector("[main-field]")}function H0(n){let e=z0(n);e&&e==n.root.activeElement&&e.select()}const W0=n=>{let e=n.state.field(kn,!1);if(e&&e.panel){let t=z0(n);if(t&&t!=n.root.activeElement){let r=Bc(n.state,e.query.spec);r.valid&&n.dispatch({effects:Ei.of(r)}),t.focus(),t.select()}}else n.dispatch({effects:[Ph.of(!0),e?Ei.of(Bc(n.state,e.query.spec)):oe.appendConfig.of(CS)]});return!0},_0=n=>{let e=n.state.field(kn,!1);if(!e||!e.panel)return!1;let t=Mi(n,Ah);return t&&t.dom.contains(n.root.activeElement)&&n.focus(),n.dispatch({effects:Ph.of(!1)}),!0},wS=[{key:"Mod-f",run:W0,scope:"editor search-panel"},{key:"F3",run:sa,shift:oa,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:sa,shift:oa,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:_0,scope:"editor search-panel"},{key:"Mod-Shift-l",run:xS},{key:"Mod-Alt-g",run:X4},{key:"Mod-d",run:hS,preventDefault:!0}];class kS{constructor(e){this.view=e;let t=this.query=e.state.field(kn).query.spec;this.commit=this.commit.bind(this),this.searchField=ve("input",{value:t.search,placeholder:lt(e,"Find"),"aria-label":lt(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=ve("input",{value:t.replace,placeholder:lt(e,"Replace"),"aria-label":lt(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=ve("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=ve("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=ve("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function r(i,s,o){return ve("button",{class:"cm-button",name:i,onclick:s,type:"button"},o)}this.dom=ve("div",{onkeydown:i=>this.keydown(i),class:"cm-search"},[this.searchField,r("next",()=>sa(e),[lt(e,"next")]),r("prev",()=>oa(e),[lt(e,"previous")]),r("select",()=>yS(e),[lt(e,"all")]),ve("label",null,[this.caseField,lt(e,"match case")]),ve("label",null,[this.reField,lt(e,"regexp")]),ve("label",null,[this.wordField,lt(e,"by word")]),...e.state.readOnly?[]:[ve("br"),this.replaceField,r("replace",()=>gf(e),[lt(e,"replace")]),r("replaceAll",()=>vS(e),[lt(e,"replace all")])],ve("button",{name:"close",onclick:()=>_0(e),"aria-label":lt(e,"close"),type:"button"},["×"])])}commit(){let e=new F0({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){Vw(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?oa:sa)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),gf(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 lt(n,e){return n.state.phrase(e)}const po=30,mo=/[\s\.,:;?!]/;function Mh(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-po),o=Math.min(i,t+po),a=n.state.sliceDoc(s,o);if(s!=r.from){for(let l=0;l<po;l++)if(!mo.test(a[l+1])&&mo.test(a[l])){a=a.slice(l);break}}if(o!=i){for(let l=a.length-1;l>a.length-po;l--)if(!mo.test(a[l-1])&&mo.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 SS=_.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"}}),CS=[kn,Zn.low(bS),SS];class U0{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=Ge(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(K0(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 bf(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 jS(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=bf(e)+bf(t)+"*$";return[new RegExp("^"+r),new RegExp(r)]}function OS(n){let e=n.map(i=>typeof i=="string"?{label:i}:i),[t,r]=e.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:jS(e);return i=>{let s=i.matchBefore(r);return s||i.explicit?{from:s?s.from:i.pos,options:e,validFor:t}:null}}class yf{constructor(e,t,r,i){this.completion=e,this.source=t,this.match=r,this.score=i}}function Gn(n){return n.selection.main.from}function K0(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 G0=Yt.define();function PS(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:T.cursor(a.from+s+l.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const xf=new WeakMap;function AS(n){if(!Array.isArray(n))return n;let e=xf.get(n);return e||xf.set(n,e=OS(n)),e}const aa=oe.define(),Ti=oe.define();class MS{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=et(e,t),i=Ft(r);this.chars.push(r);let s=e.slice(t,t+i),o=s.toUpperCase();this.folded.push(et(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=et(e,0),C=Ft(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=et(e,S);(A==t[c]||A==r[c])&&(i[c++]=S),S+=Ft(A)}if(c<l)return null}let h=0,d=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&&d<l;){let k=et(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 O,x=k<255?k>=48&&k<=57||k>=97&&k<=122?2:k>=65&&k<=90?1:0:(O=rh(k))!=O.toLowerCase()?1:O!=O.toUpperCase()?2:0;(!S||x==1&&y||A==0&&x!=0)&&(t[d]==k||r[d]==k&&(f=!0)?o[d++]=S:o.length&&(v=!1)),A=x,S+=Ft(k)}return d==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]):d==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?Ft(et(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 NS{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 Be=K.define({combine(n){return Jt(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:DS,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=>vf(e(r),t(r)),optionClass:(e,t)=>r=>vf(e(r),t(r)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function vf(n,e){return n?e?n+" "+e:n:e}function DS(n,e,t,r,i,s){let o=n.textDirection==ke.RTL,a=o,l=!1,c="top",h,d,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,d=Math.min(400,a?f:p);else{l=!0,d=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: ${d/v}px`,class:"cm-completionInfo-"+(l?o?"left-narrow":"right-narrow":a?"left":"right")}}function ES(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++],d=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,d))),f.className="cm-completionMatchedText",l=d}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 pl(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 TS{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(Be);this.optionContent=ES(a),this.optionClass=a.optionClass,this.tooltipClass=a.tooltipClass,this.range=pl(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,d;h&&h!=this.dom;h=h.parentNode)if(h.nodeName=="LI"&&(d=/-(\d+)$/.exec(h.id))&&+d[1]<c.length){this.applyCompletion(e,c[+d[1]]),l.preventDefault();return}}),this.dom.addEventListener("focusout",l=>{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(Be).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=pl(s.length,o,e.state.facet(Be).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=pl(t.options.length,t.selected,this.view.state.facet(Be).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=>rt(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&&RS(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(Be).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 d=this.optionClass(a);d&&(h.className=d);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 LS(n,e){return t=>new TS(t,n,e)}function RS(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 wf(n){return(n.boost||0)*100+(n.apply?10:0)+(n.info?5:0)+(n.type?1:0)}function IS(n,e){let t=[],r=null,i=null,s=h=>{t.push(h);let{section:d}=h.completion;if(d){r||(r=[]);let f=typeof d=="string"?d:d.name;r.some(p=>p.name==f)||r.push(typeof d=="string"?{name:f}:d)}},o=e.facet(Be);for(let h of n)if(h.hasResult()){let d=h.result.getMatch;if(h.result.filter===!1)for(let f of h.result.options)s(new yf(f,h.source,d?d(f):[],1e9-t.length));else{let f=e.sliceDoc(h.from,h.to),p,m=o.filterStrict?new NS(f):new MS(f);for(let g of h.result.options)if(p=m.match(g.label)){let y=g.displayLabel?d?d(g,p.matched):[]:p.matched,v=p.score+(g.boost||0);if(s(new yf(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),d=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))d-=1e5,h[p.name]=d;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((d,f)=>f.score-d.score||c(d.completion,f.completion))){let d=h.completion;!l||l.label!=d.label||l.detail!=d.detail||l.type!=null&&d.type!=null&&l.type!=d.type||l.apply!=d.apply||l.boost!=d.boost?a.push(h):wf(h.completion)>wf(l)&&(a[a.length-1]=h),l=h.completion}return a}class dr{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 dr(this.options,kf(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=IS(e,t);if(!a.length)return i&&e.some(c=>c.isPending)?i.setDisabled():null;let l=t.facet(Be).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 dr(a,kf(r,l),{pos:e.reduce((c,h)=>h.hasResult()?Math.min(c,h.from):c,1e8),create:HS,above:s.aboveCursor},i?i.timestamp:Date.now(),l,!1)}map(e){return new dr(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new dr(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class la{constructor(e,t,r){this.active=e,this.id=t,this.open=r}static start(){return new la(VS,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,r=t.facet(Be),s=(r.override||t.languageDataAt("autocomplete",Gn(t)).map(AS)).map(l=>(this.active.find(h=>h.source==l)||new xt(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(Nh));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||s.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!BS(s,this.active)||a?o=dr.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 xt(l.source,0):l));for(let l of e.effects)l.is(Y0)&&(o=o&&o.setSelected(l.value,this.id));return s==this.active&&o==this.open?this:new la(s,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?$S:FS}}function BS(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 $S={"aria-autocomplete":"list"},FS={};function kf(n,e){let t={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":n};return e>-1&&(t["aria-activedescendant"]=n+"-"+e),t}const VS=[];function q0(n,e){if(n.isUserEvent("input.complete")){let r=n.annotation(G0);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 xt{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=q0(e,t),i=this;(r&8||r&16&&this.touches(e))&&(i=new xt(i.source,0)),r&4&&i.state==0&&(i=new xt(this.source,1)),i=i.updateFor(e,r);for(let s of e.effects)if(s.is(aa))i=new xt(i.source,1,s.value);else if(s.is(Ti))i=new xt(i.source,0);else if(s.is(Nh))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(Gn(e.state))}}class vr extends xt{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=Gn(e.state);if(a>o||!i||t&2&&(Gn(e.startState)==this.from||a<this.limit))return new xt(this.source,t&4?1:0);let l=e.changes.mapPos(this.limit);return zS(i.validFor,e.state,s,o)?new vr(this.source,this.explicit,l,i,s,o):i.update&&(i=i.update(i,s,o,new U0(e.state,a,!1)))?new vr(this.source,this.explicit,l,i,i.from,(r=i.to)!==null&&r!==void 0?r:Gn(e.state)):new xt(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new vr(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new xt(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}function zS(n,e,t,r){if(!n)return!1;let i=e.sliceDoc(t,r);return typeof n=="function"?n(i,t,r,e):K0(n,!0).test(i)}const Nh=oe.define({map(n,e){return n.map(t=>t.map(e))}}),Y0=oe.define(),tt=He.define({create(){return la.start()},update(n,e){return n.update(e)},provide:n=>[xh.from(n,e=>e.tooltip),_.contentAttributes.from(n,e=>e.attrs)]});function Dh(n,e){const t=e.completion.apply||e.completion.label;let r=n.state.field(tt).active.find(i=>i.source==e.source);return r instanceof vr?(typeof t=="string"?n.dispatch({...PS(n.state,t,r.from,r.to),annotations:G0.of(e.completion)}):t(n,e.completion,r.from,r.to),!0):!1}const HS=LS(tt,Dh);function go(n,e="option"){return t=>{let r=t.state.field(tt,!1);if(!r||!r.open||r.open.disabled||Date.now()-r.open.timestamp<t.state.facet(Be).interactionDelay)return!1;let i=1,s;e=="page"&&(s=$g(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:Y0.of(a)}),!0}}const WS=n=>{let e=n.state.field(tt,!1);return n.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<n.state.facet(Be).interactionDelay?!1:Dh(n,e.open.options[e.open.selected])},ml=n=>n.state.field(tt,!1)?(n.dispatch({effects:aa.of(!0)}),!0):!1,_S=n=>{let e=n.state.field(tt,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(n.dispatch({effects:Ti.of(null)}),!0)};class US{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const KS=50,GS=1e3,qS=De.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(tt).active)e.isPending&&this.startQuery(e)}update(n){let e=n.state.field(tt),t=n.state.facet(Be);if(!n.selectionSet&&!n.docChanged&&n.startState.field(tt)==e)return;let r=n.transactions.some(s=>{let o=q0(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>KS&&Date.now()-o.time>GS){for(let a of o.context.abortListeners)try{a()}catch(l){rt(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(aa)))&&(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(tt);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(Be).updateSyncTime))}startQuery(n){let{state:e}=this.view,t=Gn(e),r=new U0(e,t,n.explicit,this.view),i=new US(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)}),rt(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(Be).updateSyncTime))}accept(){var n;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Be),r=this.view.state.field(tt);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=Gn(s.updates.length?s.updates[0].startState:this.view.state),l=Math.min(a,s.done.from+(s.active.explicit?0:1)),c=new vr(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 xt(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:Nh.of(e)})}},{eventHandlers:{blur(n){let e=this.view.state.field(tt,!1);if(e&&e.tooltip&&this.view.state.facet(Be).closeOnBlur){let t=e.open&&$g(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:aa.of(!1)}),20),this.composing=0}}}),YS=typeof navigator=="object"&&/Win/.test(navigator.platform),JS=Zn.highest(_.domEventHandlers({keydown(n,e){let t=e.state.field(tt,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||n.key.length>1||n.ctrlKey&&!(YS&&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&&Dh(e,r),!1}})),QS=_.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"}}}),Li={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Un=oe.define({map(n,e){let t=e.mapPos(n,-1,Qe.TrackAfter);return t??void 0}}),Eh=new class extends Cn{};Eh.startSide=1;Eh.endSide=-1;const J0=He.define({create(){return he.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(Un)&&(n=n.update({add:[Eh.range(t.value,t.value+1)]}));return n}});function XS(){return[e5,J0]}const gl="()[]{}<>«»»«[]{}";function Q0(n){for(let e=0;e<gl.length;e+=2)if(gl.charCodeAt(e)==n)return gl.charAt(e+1);return rh(n<128?n:n+1)}function X0(n,e){return n.languageDataAt("closeBrackets",e)[0]||Li}const ZS=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),e5=_.inputHandler.of((n,e,t,r)=>{if((ZS?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let i=n.state.selection.main;if(r.length>2||r.length==2&&Ft(et(r,0))==1||e!=i.from||t!=i.to)return!1;let s=r5(n.state,r);return s?(n.dispatch(s),!0):!1}),t5=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let r=X0(n,n.selection.main.head).brackets||Li.brackets,i=null,s=n.changeByRange(o=>{if(o.empty){let a=i5(n.doc,o.head);for(let l of r)if(l==a&&Ma(n.doc,o.head)==Q0(et(l,0)))return{changes:{from:o.head-l.length,to:o.head+l.length},range:T.cursor(o.head-l.length)}}return{range:i=o}});return i||e(n.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!i},n5=[{key:"Backspace",run:t5}];function r5(n,e){let t=X0(n,n.selection.main.head),r=t.brackets||Li.brackets;for(let i of r){let s=Q0(et(i,0));if(e==i)return s==i?a5(n,i,r.indexOf(i+i+i)>-1,t):s5(n,i,s,t.before||Li.before);if(e==s&&Z0(n,n.selection.main.from))return o5(n,i,s)}return null}function Z0(n,e){let t=!1;return n.field(J0).between(0,n.doc.length,r=>{r==e&&(t=!0)}),t}function Ma(n,e){let t=n.sliceString(e,e+2);return t.slice(0,Ft(et(t,0)))}function i5(n,e){let t=n.sliceString(e-2,e);return Ft(et(t,0))==t.length?t:t.slice(1)}function s5(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:Un.of(o.to+e.length),range:T.range(o.anchor+e.length,o.head+e.length)};let a=Ma(n.doc,o.head);return!a||/\s/.test(a)||r.indexOf(a)>-1?{changes:{insert:e+t,from:o.head},effects:Un.of(o.head+e.length),range:T.cursor(o.head+e.length)}:{range:i=o}});return i?null:n.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function o5(n,e,t){let r=null,i=n.changeByRange(s=>s.empty&&Ma(n.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:T.cursor(s.head+t.length)}:r={range:s});return r?null:n.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function a5(n,e,t,r){let i=r.stringPrefixes||Li.stringPrefixes,s=null,o=n.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:Un.of(a.to+e.length),range:T.range(a.anchor+e.length,a.head+e.length)};let l=a.head,c=Ma(n.doc,l),h;if(c==e){if(Sf(n,l))return{changes:{insert:e+e,from:l},effects:Un.of(l+e.length),range:T.cursor(l+e.length)};if(Z0(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:T.cursor(l+f.length)}}}else{if(t&&n.sliceDoc(l-2*e.length,l)==e+e&&(h=Cf(n,l-2*e.length,i))>-1&&Sf(n,h))return{changes:{insert:e+e+e+e,from:l},effects:Un.of(l+e.length),range:T.cursor(l+e.length)};if(n.charCategorizer(l)(c)!=Ce.Word&&Cf(n,l,i)>-1&&!l5(n,l,e,i))return{changes:{insert:e+e,from:l},effects:Un.of(l+e.length),range:T.cursor(l+e.length)}}return{range:s=a}});return s?null:n.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function Sf(n,e){let t=Ge(n).resolveInner(e+1);return t.parent&&t.from==e}function l5(n,e,t,r){let i=Ge(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 Cf(n,e,t){let r=n.charCategorizer(e);if(r(n.sliceDoc(e-1,e))!=Ce.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))!=Ce.Word)return s}return-1}function c5(n={}){return[JS,tt,Be.of(n),qS,h5,QS]}const eb=[{key:"Ctrl-Space",run:ml},{mac:"Alt-`",run:ml},{mac:"Alt-i",run:ml},{key:"Escape",run:_S},{key:"ArrowDown",run:go(!0)},{key:"ArrowUp",run:go(!1)},{key:"PageDown",run:go(!0,"page")},{key:"PageUp",run:go(!1,"page")},{key:"Enter",run:WS}],h5=Zn.highest(va.computeN([Be],n=>n.facet(Be).defaultKeymap?[eb]:[]));class jf{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(Ri).markerFilter;i&&(e=i(e,r));let s=e.slice().sort((p,m)=>p.from-m.from||p.to-m.to),o=new an,a=[],l=0,c=r.doc.iter(),h=0,d=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>d)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,d);let v=!1;if(a.some(C=>C.from==g&&(C.to==y||y==d))&&(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=S5(a);if(v)o.add(g,g,ne.widget({widget:new x5(S),diagnostics:a.slice()}));else{let C=a.reduce((A,k)=>k.markClass?A+" "+k.markClass:A,"");o.add(g,y,ne.mark({class:"cm-lintRange cm-lintRange-"+S+C,diagnostics:a.slice(),inclusiveEnd:a.some(A=>A.to>y)}))}if(l=y,l==d)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,Ar(f))}}function Ar(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 jf(i,s,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new jf(r.from,s,r.diagnostic)}}),r}function u5(n,e){let t=e.pos,r=e.end||t,i=n.state.facet(Ri).hideOn(n,t,r);if(i!=null)return i;let s=n.startState.doc.lineAt(e.pos);return!!(n.effects.some(o=>o.is(tb))||n.changes.touchesRange(s.from,Math.max(s.to,r)))}function d5(n,e){return n.field(ut,!1)?e:e.concat(oe.appendConfig.of(C5))}const tb=oe.define(),Th=oe.define(),nb=oe.define(),ut=He.define({create(){return new zn(ne.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=Ar(t,n.selected.diagnostic,s)||Ar(t,null,s)}!t.size&&i&&e.state.facet(Ri).autoPanel&&(i=null),n=new zn(t,i,r)}for(let t of e.effects)if(t.is(tb)){let r=e.state.facet(Ri).autoPanel?t.value.length?Ii.open:null:n.panel;n=zn.init(t.value,r,e.state)}else t.is(Th)?n=new zn(n.diagnostics,t.value?Ii.open:null,n.selected):t.is(nb)&&(n=new zn(n.diagnostics,n.panel,t.value));return n},provide:n=>[Ni.from(n,e=>e.panel),_.decorations.from(n,e=>e.diagnostics)]}),f5=ne.mark({class:"cm-lintRange cm-lintRange-active"});function p5(n,e,t){let{diagnostics:r}=n.state.field(ut),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(Ri).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:m5(n,i)}}}:null}function m5(n,e){return ve("ul",{class:"cm-tooltip-lint"},e.map(t=>ib(n,t,!1)))}const g5=n=>{let e=n.state.field(ut,!1);(!e||!e.panel)&&n.dispatch({effects:d5(n.state,[Th.of(!0)])});let t=Mi(n,Ii.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},Of=n=>{let e=n.state.field(ut,!1);return!e||!e.panel?!1:(n.dispatch({effects:Th.of(!1)}),!0)},b5=n=>{let e=n.state.field(ut,!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)},y5=[{key:"Mod-Shift-m",run:g5,preventDefault:!0},{key:"F8",run:b5}],Ri=K.define({combine(n){return{sources:n.map(e=>e.source).filter(e=>e!=null),...Jt(n.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:Pf,tooltipFilter:Pf,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 Pf(n,e){return n?e?(t,r)=>e(n(t,r),r):n:e}function rb(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 ib(n,e,t){var r;let i=t?rb(e.actions):[];return ve("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},ve("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=Ar(n.state.field(ut).diagnostics,e);m&&s.apply(n,m.from,m.to)},{name:c}=s,h=i[o]?c.indexOf(i[o]):-1,d=h<0?c:[c.slice(0,h),ve("u",c.slice(h,h+1)),c.slice(h+1)],f=s.markClass?" "+s.markClass:"";return ve("button",{type:"button",class:"cm-diagnosticAction"+f,onclick:l,onmousedown:l,"aria-label":` Action: ${c}${h<0?"":` (access key "${i[o]})"`}.`},d)}),e.source&&ve("div",{class:"cm-diagnosticSource"},e.source))}class x5 extends Qt{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return ve("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class Af{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=ib(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class Ii{constructor(e){this.view=e,this.items=[];let t=i=>{if(i.keyCode==27)Of(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=rb(s.actions);for(let a=0;a<o.length;a++)if(o[a].toUpperCase().charCodeAt(0)==i.keyCode){let l=Ar(this.view.state.field(ut).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=ve("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t,onclick:r}),this.dom=ve("div",{class:"cm-panel-lint"},this.list,ve("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Of(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(ut).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(ut),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 d=-1,f;for(let p=r;p<this.items.length;p++)if(this.items[p].diagnostic==h){d=p;break}d<0?(f=new Af(this.view,h),this.items.splice(r,0,f),i=!0):(f=this.items[d],d>r&&(this.items.splice(r,d-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 Af(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(ut),r=Ar(t.diagnostics,this.items[e].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:nb.of(r)})}static open(e){return new Ii(e)}}function v5(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 bo(n){return v5(`<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 w5=_.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:bo("#d11")},".cm-lintRange-warning":{backgroundImage:bo("orange")},".cm-lintRange-info":{backgroundImage:bo("#999")},".cm-lintRange-hint":{backgroundImage:bo("#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 k5(n){return n=="error"?4:n=="warning"?3:n=="info"?2:1}function S5(n){let e="hint",t=1;for(let r of n){let i=k5(r.severity);i>t&&(t=i,e=r.severity)}return e}const C5=[ut,_.decorations.compute([ut],n=>{let{selected:e,panel:t}=n.field(ut);return!e||!t||e.from==e.to?ne.none:ne.set([f5.range(e.from,e.to)])}),Ak(p5,{hideOn:u5}),w5];var Mf=function(e){e===void 0&&(e={});var{crosshairCursor:t=!1}=e,r=[];e.closeBracketsKeymap!==!1&&(r=r.concat(n5)),e.defaultKeymap!==!1&&(r=r.concat(Y4)),e.searchKeymap!==!1&&(r=r.concat(wS)),e.historyKeymap!==!1&&(r=r.concat(n4)),e.foldKeymap!==!1&&(r=r.concat(f3)),e.completionKeymap!==!1&&(r=r.concat(eb)),e.lintKeymap!==!1&&(r=r.concat(y5));var i=[];return e.lineNumbers!==!1&&i.push(Fk()),e.highlightActiveLineGutter!==!1&&i.push(Hk()),e.highlightSpecialChars!==!1&&i.push(rk()),e.history!==!1&&i.push(G3()),e.foldGutter!==!1&&i.push(b3()),e.drawSelection!==!1&&i.push(Kw()),e.dropCursor!==!1&&i.push(Qw()),e.allowMultipleSelections!==!1&&i.push(ue.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&i.push(r3()),e.syntaxHighlighting!==!1&&i.push(kh(w3,{fallback:!0})),e.bracketMatching!==!1&&i.push(A3()),e.closeBrackets!==!1&&i.push(XS()),e.autocompletion!==!1&&i.push(c5()),e.rectangularSelection!==!1&&i.push(bk()),t!==!1&&i.push(vk()),e.highlightActiveLine!==!1&&i.push(ck()),e.highlightSelectionMatches!==!1&&i.push(nS()),e.tabSize&&typeof e.tabSize=="number"&&i.push(ka.of(" ".repeat(e.tabSize))),i.concat([va.of(r.flat())]).filter(Boolean)};const j5="#e5c07b",Nf="#e06c75",O5="#56b6c2",P5="#ffffff",Lo="#abb2bf",$c="#7d8799",A5="#61afef",M5="#98c379",Df="#d19a66",N5="#c678dd",D5="#21252b",Ef="#2c313a",Tf="#282c34",bl="#353a42",E5="#3E4451",Lf="#528bff",T5=_.theme({"&":{color:Lo,backgroundColor:Tf},".cm-content":{caretColor:Lf},".cm-cursor, .cm-dropCursor":{borderLeftColor:Lf},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:E5},".cm-panels":{backgroundColor:D5,color:Lo},".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:Tf,color:$c,border:"none"},".cm-activeLineGutter":{backgroundColor:Ef},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:bl},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:bl,borderBottomColor:bl},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Ef,color:Lo}}},{dark:!0}),L5=Dr.define([{tag:D.keyword,color:N5},{tag:[D.name,D.deleted,D.character,D.propertyName,D.macroName],color:Nf},{tag:[D.function(D.variableName),D.labelName],color:A5},{tag:[D.color,D.constant(D.name),D.standard(D.name)],color:Df},{tag:[D.definition(D.name),D.separator],color:Lo},{tag:[D.typeName,D.className,D.number,D.changed,D.annotation,D.modifier,D.self,D.namespace],color:j5},{tag:[D.operator,D.operatorKeyword,D.url,D.escape,D.regexp,D.link,D.special(D.string)],color:O5},{tag:[D.meta,D.comment],color:$c},{tag:D.strong,fontWeight:"bold"},{tag:D.emphasis,fontStyle:"italic"},{tag:D.strikethrough,textDecoration:"line-through"},{tag:D.link,color:$c,textDecoration:"underline"},{tag:D.heading,fontWeight:"bold",color:Nf},{tag:[D.atom,D.bool,D.special(D.variableName)],color:Df},{tag:[D.processingInstruction,D.string,D.inserted],color:M5},{tag:D.invalid,color:P5}]),R5=[T5,kh(L5)];var I5=_.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),B5=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(va.of([J4])),a&&(typeof a=="boolean"?l.unshift(Mf()):l.unshift(Mf(a))),o&&l.unshift(fk(o)),s){case"light":l.push(I5);break;case"dark":l.push(R5);break;case"none":break;default:l.push(s);break}return r===!1&&l.push(_.editable.of(!1)),i&&l.push(ue.readOnly.of(!0)),[...l]},$5=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 F5{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 Rf{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 yl=null,V5=()=>typeof window>"u"?new Rf:(yl||(yl=new Rf),yl),If=Yt.define(),z5=200,H5=[];function W5(n){var{value:e,selection:t,onChange:r,onStatistics:i,onCreateEditor:s,onUpdate:o,extensions:a=H5,autoFocus:l,theme:c="light",height:h=null,minHeight:d=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:O}=n,[x,E]=b.useState(),[P,I]=b.useState(),[L,B]=b.useState(),z=b.useState(()=>({current:null}))[0],W=b.useState(()=>({current:null}))[0],N=_.theme({"&":{height:h,minHeight:d,maxHeight:f,width:p,minWidth:m,maxWidth:g},"& .cm-scroller":{height:"100% !important"}}),R=_.updateListener.of(J=>{if(J.docChanged&&typeof r=="function"&&!J.transactions.some(ae=>ae.annotation(If))){z.current?z.current.reset():(z.current=new F5(()=>{if(W.current){var ae=W.current;W.current=null,ae()}z.current=null},z5),V5().add(z.current));var se=J.state.doc,Y=se.toString();r(Y,J)}i&&i($5(J))}),F=B5({theme:c,editable:v,readOnly:S,placeholder:y,indentWithTab:C,basicSetup:A}),G=[R,N,...F];return o&&typeof o=="function"&&G.push(_.updateListener.of(o)),G=G.concat(a),b.useLayoutEffect(()=>{if(x&&!L){var J={doc:e,selection:t,extensions:G},se=O?ue.fromJSON(O.json,J,O.fields):ue.create(J);if(B(se),!P){var Y=new _({state:se,parent:x,root:k});I(Y),s&&s(Y,se)}}return()=>{P&&(B(void 0),I(void 0))}},[x,L]),b.useEffect(()=>{n.container&&E(n.container)},[n.container]),b.useEffect(()=>()=>{P&&(P.destroy(),I(void 0)),z.current&&(z.current.cancel(),z.current=null)},[P]),b.useEffect(()=>{l&&P&&P.focus()},[l,P]),b.useEffect(()=>{P&&P.dispatch({effects:oe.reconfigure.of(G)})},[c,a,h,d,f,p,m,g,y,v,S,C,A,r,o]),b.useEffect(()=>{if(e!==void 0){var J=P?P.state.doc.toString():"";if(P&&e!==J){var se=z.current&&!z.current.isDone,Y=()=>{P&&e!==P.state.doc.toString()&&P.dispatch({changes:{from:0,to:P.state.doc.toString().length,insert:e||""},annotations:[If.of(!0)]})};se?W.current=Y:Y()}}},[e,P]),{state:L,setState:B,view:P,setView:I,container:x,setContainer:E}}var _5=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],sb=b.forwardRef((n,e)=>{var{className:t,value:r="",selection:i,extensions:s=[],onChange:o,onStatistics:a,onCreateEditor:l,onUpdate:c,autoFocus:h,theme:d="light",height:f,minHeight:p,maxHeight:m,width:g,minWidth:y,maxWidth:v,basicSetup:S,placeholder:C,indentWithTab:A,editable:k,readOnly:O,root:x,initialState:E}=n,P=B3(n,_5),I=b.useRef(null),{state:L,view:B,container:z,setContainer:W}=W5({root:x,value:r,autoFocus:h,theme:d,height:f,minHeight:p,maxHeight:m,width:g,minWidth:y,maxWidth:v,basicSetup:S,placeholder:C,indentWithTab:A,editable:k,readOnly:O,selection:i,onChange:o,onStatistics:a,onCreateEditor:l,onUpdate:c,extensions:s,initialState:E});b.useImperativeHandle(e,()=>({editor:I.current,state:L,view:B}),[I,z,L,B]);var N=b.useCallback(F=>{I.current=F,W(F)},[W]);if(typeof r!="string")throw new Error("value must be typeof string but got "+typeof r);var R=typeof d=="string"?"cm-theme-"+d:"cm-theme";return u.jsx("div",Dc({ref:N,className:""+R+(t?" "+t:"")},P))});sb.displayName="CodeMirror";const U5=()=>{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:D.propertyName,color:"var(--dash-accent)"},{tag:D.string,color:"color-mix(in srgb, var(--dash-accent) 70%, var(--dash-text))"},{tag:D.number,color:"var(--dash-accent-hover)"},{tag:D.bool,color:"var(--dash-accent-hover)"},{tag:D.null,color:"var(--dash-text-muted)"},{tag:D.punctuation,color:"var(--dash-text-secondary)"},{tag:D.brace,color:"var(--dash-text-secondary)"},{tag:D.bracket,color:"var(--dash-text-secondary)"}]);return[n,kh(e)]},ob=({value:n,onChange:e,onCursorLineChange:t,height:r="100%",readOnly:i=!1})=>{const s=b.useMemo(()=>[I3(),_.lineWrapping,...U5()],[]),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 u.jsx("div",{className:"h-full [&_.cm-editor]:h-full [&_.cm-editor]:outline-none [&_.cm-focused]:outline-none",children:u.jsx(sb,{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}})})},K5=({value:n,onChange:e,disabled:t})=>u.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
|
|
182
|
-
text-dash-text placeholder-dash-text-muted
|
|
183
|
-
focus:outline-none focus:ring-2 focus:ring-dash-accent/50 focus:border-dash-accent
|
|
184
|
-
disabled:opacity-50 disabled:cursor-not-allowed
|
|
185
|
-
transition-colors`,placeholder:"Enter value..."}),G5=({value:n,onChange:e,schema:t,disabled:r})=>u.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
|
|
186
|
-
text-dash-text placeholder-dash-text-muted
|
|
187
|
-
focus:outline-none focus:ring-2 focus:ring-dash-accent/50 focus:border-dash-accent
|
|
188
|
-
disabled:opacity-50 disabled:cursor-not-allowed
|
|
189
|
-
transition-colors`}),q5=({value:n,onChange:e,disabled:t})=>{const r=n===!0;return u.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
|
|
190
|
-
focus:outline-none focus:ring-2 focus:ring-dash-accent/50
|
|
191
|
-
disabled:opacity-50 disabled:cursor-not-allowed
|
|
192
|
-
${r?"bg-dash-accent":"bg-dash-border"}`,children:u.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white shadow-sm transition-transform
|
|
193
|
-
${r?"translate-x-6":"translate-x-1"}`})})},Y5=({value:n,onChange:e,schema:t,disabled:r})=>{const i=t.enum||[];return u.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
|
|
194
|
-
text-dash-text
|
|
195
|
-
focus:outline-none focus:ring-2 focus:ring-dash-accent/50 focus:border-dash-accent
|
|
196
|
-
disabled:opacity-50 disabled:cursor-not-allowed
|
|
197
|
-
transition-colors appearance-none cursor-pointer`,children:[u.jsx("option",{value:"",children:"-- Select --"}),i.map(s=>u.jsx("option",{value:String(s),children:String(s)},String(s)))]})},J5=({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,d)=>d!==l);e(c.length>0?c:[])};return u.jsxs("div",{className:"space-y-2",children:[u.jsx("div",{className:"flex flex-wrap gap-1.5",children:r.map((l,c)=>u.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&&u.jsx("button",{type:"button",onClick:()=>a(c),className:"text-dash-text-muted hover:text-red-500 transition-colors",children:u.jsx("svg",{className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]},c))}),!t&&u.jsxs("div",{className:"flex gap-2",children:[u.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
|
|
198
|
-
text-dash-text placeholder-dash-text-muted
|
|
199
|
-
focus:outline-none focus:ring-1 focus:ring-dash-accent/50`}),u.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:"+"})]})]})},Q5=({value:n,onChange:e,disabled:t})=>{const[r,i]=b.useState(!1);return u.jsxs("div",{className:"relative",children:[u.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
|
|
200
|
-
text-dash-text placeholder-dash-text-muted
|
|
201
|
-
focus:outline-none focus:ring-2 focus:ring-dash-accent/50 focus:border-dash-accent
|
|
202
|
-
disabled:opacity-50 disabled:cursor-not-allowed
|
|
203
|
-
transition-colors`,placeholder:"Enter passphrase..."}),u.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?u.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.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"})}):u.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:[u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),u.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"})]})})]})},X5={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"},Z5=({source:n})=>{const{t:e}=ye(),t=()=>{switch(n){case"default":return e("default");case"project":return e("scopeProject");case"global":return e("scopeGlobal")}};return u.jsx("span",{className:`text-[9px] px-1.5 py-0.5 rounded font-bold uppercase tracking-wider ${X5[n]}`,children:t()})};function eC(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 tC=({fieldPath:n,label:e,description:t,schema:r,value:i,source:s,onChange:o,disabled:a})=>{const l=eC(r,n),c=()=>{const h={value:i,onChange:o,schema:r,disabled:a};switch(l){case"boolean":return u.jsx(q5,{...h});case"number":return u.jsx(G5,{...h});case"enum":return u.jsx(Y5,{...h});case"array":return u.jsx(J5,{...h});case"password":return u.jsx(Q5,{...h});case"object":return null;default:return u.jsx(K5,{...h})}};return l==="object"?null:u.jsx("div",{className:"py-3 border-b border-dash-border/50 last:border-b-0",children:u.jsxs("div",{className:"flex items-start justify-between gap-4",children:[u.jsxs("div",{className:"flex-1 min-w-0",children:[u.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[u.jsx("span",{className:"text-sm font-medium text-dash-text",children:e}),u.jsx(Z5,{source:s})]}),t&&u.jsx("p",{className:"text-xs text-dash-text-muted mb-2 leading-relaxed",children:t}),u.jsx("p",{className:"text-[10px] text-dash-text-muted/50 font-mono mb-2",children:n})]}),u.jsx("div",{className:l==="boolean"?"shrink-0":"w-1/2 max-w-xs",children:c()})]})})},nC=({id:n,title:e,defaultCollapsed:t=!1,children:r})=>{const[i,s]=b.useState(t);return u.jsxs("div",{className:"bg-dash-surface border border-dash-border rounded-lg overflow-hidden",children:[u.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:[u.jsx("h3",{className:"text-sm font-bold text-dash-text uppercase tracking-wider",children:e}),u.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:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),u.jsx("div",{id:`section-${n}`,className:`transition-all duration-200 ease-in-out ${i?"max-h-0 overflow-hidden":"max-h-[2000px]"}`,children:u.jsx("div",{className:"px-4 py-2",children:r})})]})};function rC(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 iC(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 ab=({schema:n,value:e,sources:t,sections:r,onChange:i,disabled:s})=>u.jsx("div",{className:"space-y-4",children:r.map((o,a)=>u.jsx(nC,{id:o.id,title:o.title,defaultCollapsed:o.defaultCollapsed??a>1,children:o.fields.map(l=>{const c=iC(n,l.path),h=rC(e,l.path),d=t[l.path]||"default";return u.jsx(tC,{fieldPath:l.path,label:l.label,description:l.description||c.description,schema:c,value:h,source:d,onChange:f=>i(l.path,f),disabled:s},l.path)})},o.id))}),sC=({components:n,isChecking:e,isUpdating:t,onCheckAll:r,onUpdateAll:i})=>{const{t:s}=ye(),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 u.jsx("div",{className:"bg-dash-bg border border-dash-border rounded-lg p-4 mb-4",children:u.jsxs("div",{className:"flex items-center justify-between gap-4",children:[u.jsxs("div",{className:"flex items-center gap-3",children:[o>0&&u.jsx("span",{className:"text-sm font-medium text-amber-500",children:s("updatesAvailable").replace("{count}",o.toString())}),a&&!e&&u.jsx("span",{className:"text-sm font-medium text-emerald-500",children:s("allUpToDate")}),e&&u.jsxs("span",{className:"text-sm text-dash-text-muted flex items-center gap-2",children:[u.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),s("checkingAll")]})]}),u.jsxs("div",{className:"flex items-center gap-2",children:[u.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&&u.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}=ye();return u.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:[u.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:[u.jsx("input",{type:"radio",name:"channel",value:"stable",checked:n==="stable",onChange:()=>e("stable"),disabled:t,className:"sr-only"}),r("channelStable")]}),u.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:[u.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}},lb=({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 u.jsx("span",{className:`
|
|
204
|
-
inline-block rounded-full ${i} ${r.color}
|
|
205
|
-
${r.pulse?"animate-pulse motion-reduce:animate-none":""}
|
|
206
|
-
`,role:"status","aria-label":e})},Lh=({isOpen:n,onClose:e,target:t,kitName:r,targetVersion:i,onComplete:s,mode:o="single",components:a=[]})=>{const{t:l}=ye(),[c,h]=b.useState("running"),[d,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 E=a[x];try{const P=E.id==="cli",I=new URLSearchParams({target:P?"cli":"kit"});P||I.set("kit",E.id);const L=new EventSource(`/api/system/update?${I}`);C.current=L,await new Promise((B,z)=>{L.onmessage=W=>{try{const N=JSON.parse(W.data);N.type==="phase"&&N.name&&f(R=>[...R,`[${E.name}] ${N.name}`]),N.type==="output"&&N.text&&m(R=>[...R,N.text]),N.type==="error"&&(h("error"),m(R=>[...R,`[ERROR ${E.name}] ${N.message||"Unknown error"}`]),L.close(),z()),N.type==="complete"&&(N.code===0?(L.close(),B()):(h("error"),L.close(),z()))}catch(N){console.error("Failed to parse SSE message:",N),L.close(),z(N)}},L.onerror=()=>{h("error"),m(W=>[...W,`[ERROR ${E.name}] Connection lost`]),L.close(),z()}})}catch(P){console.error(`Failed to update ${E.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 E=new EventSource(`/api/system/update?${x}`);return C.current=E,E.onmessage=P=>{try{const I=JSON.parse(P.data);I.type==="phase"&&I.name&&f(L=>[...L,I.name]),I.type==="output"&&I.text&&m(L=>[...L,I.text]),I.type==="error"&&(h("error"),m(L=>[...L,`[ERROR] ${I.message||"Unknown error"}`])),I.type==="complete"&&(h(I.code===0?"success":"error"),E.close(),I.code===0&&s())}catch(I){console.error("Failed to parse SSE message:",I)}},E.onerror=()=>{h("error"),m(P=>[...P,"[ERROR] Connection lost"]),E.close()},()=>{E.close()}}},[n,t,r,i,s,o,k]);const O=()=>{c!=="running"&&(h("running"),f([]),m([]),y(!1),S(0),e())};return n?u.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50",children:u.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:[u.jsx("div",{className:"px-6 py-4 border-b border-dash-border",children:u.jsx("h2",{className:"text-lg font-bold text-dash-text",children:l(c==="running"?"updating":c==="success"?"updateSuccess":"updateFailed")})}),u.jsxs("div",{className:"flex-1 overflow-y-auto p-6 space-y-4",children:[o==="batch"&&a.length>0&&u.jsxs("div",{className:"text-sm text-dash-text-secondary",children:[c==="running"&&u.jsxs("span",{children:["Updating ",v+1," of ",a.length,":"," ",a[v]?.name]}),c==="success"&&u.jsxs("span",{className:"text-emerald-500",children:["All ",a.length," components updated"]})]}),d.length>0&&u.jsx("div",{className:"space-y-2",children:d.map((x,E)=>u.jsxs("div",{className:"flex items-center gap-2 text-sm text-dash-text-secondary",children:[u.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-dash-accent"}),u.jsx("span",{children:x})]},`${x}-${E}`))}),c==="running"&&u.jsxs("div",{className:"flex items-center gap-2 text-sm text-dash-text-muted",children:[u.jsx("span",{className:"w-4 h-4 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),u.jsx("span",{children:l("updating")})]}),p.length>0&&u.jsxs("div",{children:[u.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&&u.jsxs("div",{className:"mt-2 bg-dash-bg border border-dash-border rounded p-3 max-h-64 overflow-y-auto",children:[u.jsx("pre",{className:"text-xs mono text-dash-text whitespace-pre-wrap",children:p.join(`
|
|
207
|
-
`)}),u.jsx("div",{ref:A})]})]})]}),u.jsx("div",{className:"px-6 py-4 border-t border-dash-border flex justify-end",children:u.jsx("button",{type:"button",onClick:O,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},cb=({target:n,kitName:e,currentVersion:t,latestVersion:r,onVersionSelect:i})=>{const{t:s}=ye(),[o,a]=b.useState([]),[l,c]=b.useState(!1),[h,d]=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=>{d(p),i(p)};return l?u.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5",children:[u.jsx("span",{className:"w-3 h-3 border-2 border-dash-text-muted border-t-transparent rounded-full animate-spin"}),s("loadingVersions")]}):u.jsx("select",{value:h,onChange:p=>f(p.target.value),className:`text-xs text-amber-500 hover:text-amber-600 font-medium transition-colors
|
|
208
|
-
bg-transparent border border-amber-500/30 rounded px-2 py-1
|
|
209
|
-
focus:outline-none focus:ring-2 focus:ring-amber-500/50
|
|
210
|
-
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 u.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}=ye(),[l,c]=b.useState("idle"),[h,d]=b.useState(null),[f,p]=b.useState(!1),[m,g]=b.useState(null),y=r??l,v=i??h,S=async()=>{const A=O=>{s||c(O)},k=O=>{s||d(O)};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 u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"bg-dash-bg border border-dash-border rounded-lg p-5",children:u.jsxs("div",{className:"flex items-start justify-between gap-4",children:[u.jsxs("div",{children:[u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx(lb,{status:y,ariaLabel:a(y==="up-to-date"?"upToDate":y==="update-available"?"updateAvailable":"checking")}),u.jsx("h3",{className:"text-base font-bold text-dash-text",children:a("cliCard")}),t==="beta"&&u.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-amber-500 text-white rounded",children:a("betaBadge")})]}),u.jsxs("div",{className:"flex items-center gap-4 mt-1 text-sm text-dash-text-secondary",children:[u.jsxs("span",{children:["v",n.replace(/^v/,"")]}),e&&u.jsx("span",{className:"text-dash-text-muted",children:new Date(e).toLocaleDateString()})]}),y==="update-available"&&v&&u.jsxs("div",{className:"mt-1 text-xs text-amber-500",children:["v",n.replace(/^v/,"")," → v",v.replace(/^v/,"")]})]}),u.jsx(cC,{status:y,currentVersion:n,latestVersion:v,onCheck:S,onUpdate:()=>p(!0),onVersionSelect:g,disabled:o})]})}),u.jsx(Lh,{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}=ye();return n==="checking"?u.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5",children:[u.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"?u.jsx("span",{className:"text-xs text-emerald-500 font-medium",children:a("upToDate")}):n==="update-available"&&t?u.jsx("div",{className:"flex items-center gap-2",children:u.jsx(cb,{target:"cli",currentVersion:e,latestVersion:t,onVersionSelect:l=>{s(l),i()}})}):u.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}=ye();return u.jsxs("div",{className:"bg-dash-bg border border-dash-border rounded-lg p-5",children:[u.jsx("h3",{className:"text-base font-bold text-dash-text mb-3",children:i("environment")}),u.jsxs("div",{className:"grid grid-cols-2 gap-x-6 gap-y-2 text-sm",children:[u.jsx(yo,{label:i("claudeConfigPath"),value:n,mono:!0}),u.jsx(yo,{label:i("osVersion"),value:r}),u.jsx(yo,{label:i("nodeVersion"),value:e,mono:!0}),t&&u.jsx(yo,{label:i("bunVersion"),value:t,mono:!0})]})]})},yo=({label:n,value:e,mono:t})=>u.jsxs("div",{children:[u.jsxs("span",{className:"text-dash-text-muted text-xs",children:[n,": "]}),u.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 Bf=({kitName:n,kit:e,channel:t="stable",externalStatus:r,externalLatestVersion:i,onStatusChange:s,disabled:o})=>{const{t:a}=ye(),[l,c]=b.useState("idle"),[h,d]=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)},E=P=>{s||d(P)};x("checking"),s&&s("checking",null);try{const I=await(await fetch(`/api/system/check-updates?target=kit&kit=${n}&channel=${t}`)).json();I.updateAvailable?(x("update-available"),E(I.latest),s&&s("update-available",I.latest)):(x("up-to-date"),s&&s("up-to-date",null))}catch{x("idle"),s&&s("idle",null)}},O=async()=>{window.location.reload()};return u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"bg-dash-bg border border-dash-border rounded-lg p-5 space-y-4",children:[u.jsxs("div",{className:"flex items-start justify-between gap-4",children:[u.jsxs("div",{children:[u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx(lb,{status:y,ariaLabel:a(y==="up-to-date"?"upToDate":y==="update-available"?"updateAvailable":"checking")}),u.jsxs("h3",{className:"text-base font-bold text-dash-text capitalize",children:[n," Kit"]}),t==="beta"&&u.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-amber-500 text-white rounded",children:a("betaBadge")})]}),u.jsxs("div",{className:"flex items-center gap-4 mt-1 text-sm text-dash-text-secondary",children:[u.jsxs("span",{children:["v",(e.version??"?").replace(/^v/,"")]}),e.installedAt&&u.jsx("span",{className:"text-dash-text-muted",children:new Date(e.installedAt).toLocaleDateString()})]}),y==="update-available"&&v&&u.jsxs("div",{className:"mt-1 text-xs text-amber-500",children:["v",(e.version??"?").replace(/^v/,"")," → v",v.replace(/^v/,"")]})]}),u.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&&u.jsx("div",{className:"grid grid-cols-3 gap-1.5",children:Object.entries(A).filter(([,x])=>x>0).map(([x,E])=>u.jsxs("div",{className:"flex items-center justify-between px-2 py-1 bg-dash-surface border border-dash-border rounded text-xs",children:[u.jsx("span",{className:"text-dash-text-secondary capitalize",children:x}),u.jsx("span",{className:"font-bold mono text-dash-text",children:E})]},x))}),S.length>0&&u.jsxs("div",{className:"flex items-center gap-4 text-xs text-dash-text-muted",children:[u.jsxs("span",{className:"flex items-center gap-1.5",children:[u.jsx("span",{className:"w-2 h-2 rounded-full bg-emerald-500"}),C.ck," ",a("ownershipCk")]}),C.user>0&&u.jsxs("span",{className:"flex items-center gap-1.5",children:[u.jsx("span",{className:"w-2 h-2 rounded-full bg-blue-500"}),C.user," ",a("ownershipUser")]})]})]}),u.jsx(Lh,{isOpen:f,onClose:()=>p(!1),target:"kit",kitName:n,targetVersion:m??v??void 0,onComplete:O})]})},fC=({status:n,currentVersion:e,latestVersion:t,kitName:r,onCheck:i,onUpdate:s,onVersionSelect:o,disabled:a})=>{const{t:l}=ye();return n==="checking"?u.jsxs("span",{className:"text-xs text-dash-text-muted flex items-center gap-1.5",children:[u.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"?u.jsx("span",{className:"text-xs text-emerald-500 font-medium",children:l("upToDate")}):n==="update-available"&&t?u.jsx("div",{className:"flex items-center gap-2",children:u.jsx(cb,{target:"kit",kitName:r,currentVersion:e,latestVersion:t,onVersionSelect:c=>{o(c),s()}})}):u.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")})},$f="claudekit-update-channel",pC=n=>/-(alpha|beta|rc|dev|next)/.test(n),mC=({metadata:n})=>{const{t:e}=ye(),[t,r]=b.useState(null),[i,s]=b.useState([]),[o,a]=b.useState(!1),[l,c]=b.useState(!1),[h,d]=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[I,L]of g){const B=L;P.push({id:I,type:"kit",status:"idle",currentVersion:B.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($f);P==="stable"||P==="beta"?p(P):t?.cliVersion&&p(pC(t.cliVersion)?"beta":"stable")},[t?.cliVersion]);const A=P=>{p(P),localStorage.setItem($f,P)},k=(P,I,L)=>{s(B=>B.map(z=>z.id===P?{...z,status:I,latestVersion:L}:z))},O=async()=>{a(!0);const P=i.map(async L=>{try{const B=L.type==="cli"?`target=cli&channel=${f}`:`target=kit&kit=${L.id}&channel=${f}`,W=await(await fetch(`/api/system/check-updates?${B}`)).json();return{id:L.id,status:W.updateAvailable?"update-available":"up-to-date",latestVersion:W.latest}}catch{return{id:L.id,status:"idle",latestVersion:null}}}),I=await Promise.all(P);s(L=>L.map(B=>{const z=I.find(W=>W.id===B.id);return z?{...B,status:z.status,latestVersion:z.latestVersion}:B})),a(!1)},x=()=>{d(!0)},E=()=>{window.location.reload()};return u.jsxs("div",{className:"space-y-4",children:[u.jsxs("div",{className:"flex items-center justify-between gap-4",children:[u.jsx(oC,{value:f,onChange:A}),i.length>0&&u.jsx(sC,{components:i,isChecking:o,isUpdating:l,onCheckAll:O,onUpdateAll:x})]}),u.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,I)=>k("cli",P,I),disabled:o||l,channel:f}),C?u.jsx(u.Fragment,{children:m&&g.length>0?g.map(([P,I])=>{const L=i.find(B=>B.id===P);return u.jsx(Bf,{kitName:P,kit:I,externalStatus:L?.status,externalLatestVersion:L?.latestVersion??null,onStatusChange:(B,z)=>k(P,B,z),disabled:o||l,channel:f},P)}):u.jsx(Bf,{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,I)=>k(y??"ClaudeKit",P,I),disabled:o||l,channel:f})}):u.jsx("div",{className:"bg-dash-bg border border-dash-border rounded-lg p-6 text-center opacity-60",children:u.jsx("p",{className:"text-sm text-dash-text-secondary",children:e("noKitInstalled")})}),t&&u.jsx(hC,{configPath:t.configPath,nodeVersion:t.nodeVersion,bunVersion:t.bunVersion,os:t.os}),u.jsx(Lh,{isOpen:h,onClose:()=>d(!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:E})]})};function hb({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 d=h.reduce((f,p)=>f+p,0);if(Math.abs(d-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 d=h.target.parentElement;if(!d)return;const p=d.getBoundingClientRect().width,m=h.clientX,g=[...r],y=S=>{const A=(S.clientX-m)/p*100,k=[...g],O=c,x=c+1;let E=g[O]+A,P=g[x]-A;E<t[O]&&(E=t[O],P=g[O]+g[x]-E),P<t[x]&&(P=t[x],E=g[O]+g[x]-P),k[O]=E,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 Rh="/api";async function Ff(n){const e=`${Rh}/ck-config`,t=await fetch(e);if(!t.ok)throw new Error(`Failed to fetch ck-config: ${t.status}`);return t.json()}async function gC(n){const e=await fetch(`${Rh}/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 ub(){const n=await fetch(`${Rh}/ck-config/schema`);if(!n.ok)throw new Error(`Failed to fetch schema: ${n.status}`);return n.json()}function bC(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}const yC=()=>{const{t:n,lang:e}=ye(),t=qt(),[r,i]=b.useState("{}"),[s,o]=b.useState(0),[a,l]=b.useState(null),[c,h]=b.useState(null),[d,f]=b.useState({}),[p,m]=b.useState({}),[g,y]=b.useState(!0),[v,S]=b.useState("idle"),[C,A]=b.useState(!1),[k,O]=b.useState("config"),[x,E]=b.useState({}),[P,I]=b.useState(null),{sizes:L,isDragging:B,startDrag:z}=hb({storageKey:"claudekit-global-config-panels",defaultSizes:[35,40,25],minSizes:[20,25,15]}),W=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]);b.useEffect(()=>{(async()=>{try{const[ae,ee,de]=await Promise.all([Ff(),ub(),Yx()]),fe=ae.config;f(fe),m(ae.sources),h(ee),i(JSON.stringify(fe,null,2)),E(de)}catch(ae){console.error("Failed to load data:",ae)}finally{y(!1)}})()},[]),b.useEffect(()=>{try{JSON.parse(r),l(null)}catch(Y){l(Y instanceof Error?Y.message:"Invalid JSON")}},[r]),b.useEffect(()=>{if(P==="json")try{const Y=JSON.parse(r);f(Y)}catch{}},[r,P]);const N=Qc(r,s),R=N?Xc[N]:null,F=b.useCallback(Y=>{I("json"),i(Y)},[]),G=b.useCallback((Y,ae)=>{I("form"),f(ee=>{const de=bC(ee,Y,ae);return i(JSON.stringify(de,null,2)),de}),m(ee=>({...ee,[Y]:"global"}))},[]),J=async()=>{if(!a){S("saving");try{const Y=JSON.parse(r);await gC({scope:"global",config:Y}),f(Y),S("saved"),setTimeout(()=>S("idle"),2e3)}catch{S("error"),setTimeout(()=>S("idle"),3e3)}}},se=async()=>{A(!1),y(!0);try{const Y=await Ff();f(Y.config),m(Y.sources),i(JSON.stringify(Y.config,null,2))}catch(Y){console.error("Failed to reset:",Y)}finally{y(!1)}};return u.jsxs("div",{className:"animate-in fade-in duration-300 w-full h-full flex flex-col transition-colors",children:[u.jsxs("div",{className:"flex items-center justify-between mb-3 shrink-0",children:[u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsx("button",{onClick:()=>t(-1),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:n("backToDashboard"),children:u.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:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}),u.jsx("h1",{className:"text-xl font-bold tracking-tight text-dash-text",children:n("globalConfig")}),u.jsx("span",{className:"text-xs text-dash-text-muted mono",children:"~/.claude/.ck.json"})]}),u.jsxs("div",{className:"flex items-center gap-2 relative",children:[C?u.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:[u.jsx("span",{className:"text-xs text-red-500 font-medium",children:n("confirmReset")}),u.jsx("button",{onClick:se,className:"px-2 py-0.5 rounded bg-red-500 text-white text-xs font-bold hover:bg-red-600 transition-colors",children:n("confirm")}),u.jsx("button",{onClick:()=>A(!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:n("cancel")})]}):u.jsx("button",{onClick:()=>A(!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:n("resetToDefault")}),u.jsx("button",{onClick:J,disabled:!!a||v==="saving",className:`px-3 py-1.5 rounded-lg text-xs font-bold transition-all tracking-widest uppercase ${a?"bg-dash-surface text-dash-text-muted cursor-not-allowed border border-dash-border":v==="saved"?"bg-green-500 text-white shadow-lg shadow-green-500/20":v==="error"?"bg-red-500 text-white":"bg-dash-accent text-dash-bg hover:bg-dash-accent-hover shadow-lg shadow-dash-accent/20"}`,children:n(v==="saving"?"saving":v==="saved"?"saved":v==="error"?"saveFailed":"saveChanges")})]})]}),u.jsxs("div",{className:"flex gap-2 mb-2 border-b border-dash-border shrink-0",children:[u.jsx("button",{onClick:()=>O("config"),className:`px-4 py-2 text-sm font-bold transition-colors relative ${k==="config"?"text-dash-accent border-b-2 border-dash-accent":"text-dash-text-muted hover:text-dash-text"}`,children:n("configTab")}),u.jsx("button",{onClick:()=>O("metadata"),className:`px-4 py-2 text-sm font-bold transition-colors relative ${k==="metadata"?"text-dash-accent border-b-2 border-dash-accent":"text-dash-text-muted hover:text-dash-text"}`,children:n("systemTab")})]}),u.jsxs("div",{className:"flex-1 flex min-h-0",children:[k==="config"&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{style:{width:`${L[0]}%`},className:"bg-dash-surface border border-dash-border rounded-xl overflow-hidden flex flex-col shadow-sm min-w-0",children:[u.jsx("div",{className:"p-3 border-b border-dash-border bg-dash-surface-hover/50 shrink-0",children:u.jsx("h3",{className:"text-xs font-bold text-dash-text-secondary uppercase tracking-widest",children:n("formTab")})}),u.jsx("div",{className:"flex-1 overflow-auto p-4",children:g?u.jsx("div",{className:"h-full flex items-center justify-center",children:u.jsx("div",{className:"animate-pulse text-dash-text-muted text-sm",children:n("loading")})}):c?u.jsx(ab,{schema:c,value:d,sources:p,sections:W,onChange:G}):null})]}),u.jsx(gi,{direction:"horizontal",isDragging:B,onMouseDown:Y=>z(0,Y)}),u.jsxs("div",{style:{width:`${L[1]}%`},className:"bg-dash-surface border border-dash-border rounded-xl overflow-hidden flex flex-col shadow-sm min-w-0",children:[u.jsx("div",{className:"p-3 border-b border-dash-border bg-dash-surface-hover/50 shrink-0",children:u.jsx("h3",{className:"text-xs font-bold text-dash-text-secondary uppercase tracking-widest",children:n("jsonTab")})}),u.jsx("div",{className:"flex-1 min-h-0 overflow-auto",children:g?u.jsx("div",{className:"h-full flex items-center justify-center",children:u.jsx("div",{className:"animate-pulse text-dash-text-muted text-sm",children:n("loading")})}):u.jsx(ob,{value:r,onChange:F,onCursorLineChange:o})}),u.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:[u.jsxs("div",{className:"flex gap-4",children:[u.jsx("span",{children:"UTF-8"}),u.jsx("span",{children:"JSON"}),u.jsxs("span",{children:["L:",s+1]})]}),u.jsx("div",{className:"flex items-center gap-2",children:a?u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-red-500"}),u.jsx("span",{className:"text-red-500 normal-case",children:a})]}):u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-dash-accent"}),n("syntaxValid")]})})]})]}),u.jsx(gi,{direction:"horizontal",isDragging:B,onMouseDown:Y=>z(1,Y)}),u.jsxs("div",{style:{width:`${L[2]}%`},className:"bg-dash-surface border border-dash-border rounded-xl flex flex-col shadow-sm overflow-hidden min-w-0",children:[u.jsx("div",{className:"p-3 border-b border-dash-border bg-dash-surface-hover/50 shrink-0",children:u.jsx("h3",{className:"text-xs font-bold text-dash-text-secondary uppercase tracking-widest",children:n("configurationHelp")})}),u.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:R?u.jsxs("div",{className:"space-y-5 animate-in fade-in duration-500",children:[u.jsxs("header",{children:[u.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[u.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:n("field")}),u.jsx("h2",{className:"text-base font-bold text-dash-text mono break-all",children:R.path})]}),u.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[u.jsx(Vf,{label:n("type"),value:R.type}),u.jsx(Vf,{label:n("default"),value:R.default})]})]}),u.jsxs("section",{children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:n("description")}),u.jsx("p",{className:"text-sm text-dash-text-secondary leading-relaxed italic",children:e==="vi"?R.descriptionVi:R.description})]}),R.validValues&&u.jsxs("section",{children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:n("validValues")}),u.jsx("div",{className:"flex flex-wrap gap-1.5",children:R.validValues.map(Y=>u.jsx("span",{className:"px-2 py-0.5 bg-dash-bg border border-dash-border rounded text-[11px] mono text-dash-text",children:Y},Y))})]}),R.effect&&u.jsxs("section",{className:"bg-dash-accent-subtle/30 p-3 rounded-lg border border-dash-accent/10",children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-accent uppercase tracking-widest mb-1",children:n("systemEffect")}),u.jsx("p",{className:"text-[12px] text-dash-text-secondary leading-normal",children:e==="vi"&&R.effectVi?R.effectVi:R.effect})]}),R.example&&u.jsxs("section",{children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:n("exampleUsage")}),u.jsx("div",{className:"bg-dash-bg p-3 rounded-lg border border-dash-border overflow-hidden",children:u.jsx("pre",{className:"text-[11px] mono text-dash-text-secondary whitespace-pre overflow-x-auto",children:R.example})})]})]}):u.jsxs("div",{className:"h-full flex flex-col items-center justify-center text-center opacity-40 space-y-4",children:[u.jsx("div",{className:"w-10 h-10 rounded-full bg-dash-bg border border-dash-border flex items-center justify-center text-lg",children:"💡"}),u.jsxs("div",{className:"max-w-[180px]",children:[u.jsx("p",{className:"text-sm font-bold text-dash-text mb-1 italic",children:n("knowledgeBase")}),u.jsx("p",{className:"text-xs text-dash-text-secondary",children:n("clickToSeeHelp")})]})]})}),R&&u.jsx("div",{className:"p-3 bg-dash-surface-hover/20 border-t border-dash-border shrink-0",children:u.jsxs("p",{className:"text-[10px] text-dash-text-muted font-medium flex items-center gap-1.5 italic",children:[u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.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"})}),n("extractedFrom")]})})]})]}),k==="metadata"&&u.jsx("div",{className:"flex-1 bg-dash-surface border border-dash-border rounded-xl overflow-hidden flex flex-col shadow-sm",children:u.jsx("div",{className:"flex-1 overflow-auto p-6",children:g?u.jsx("div",{className:"h-full flex items-center justify-center",children:u.jsx("div",{className:"animate-pulse text-dash-text-muted text-sm",children:n("loading")})}):u.jsx(mC,{metadata:x})})})]})]})},Vf=({label:n,value:e})=>u.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 bg-dash-bg border border-dash-border rounded-md",children:[u.jsxs("span",{className:"text-[9px] font-bold text-dash-text-muted uppercase",children:[n,":"]}),u.jsx("span",{className:"text-[10px] mono font-bold text-dash-text-secondary",children:e})]}),xC=({featureId:n,name:e,description:t,included:r})=>{const{t:i}=ye();return u.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:[u.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[r?u.jsx("svg",{className:"w-5 h-5 text-[var(--dash-accent)]",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}):u.jsx("svg",{className:"w-5 h-5 text-[var(--dash-text-muted)]",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})}),u.jsx("h4",{className:"font-medium text-[var(--dash-text)]",children:i(e)})]}),u.jsx("p",{className:"text-sm text-[var(--dash-text-muted)] leading-relaxed",children:i(t)})]})},vC=({selectedKit:n,onKitSelect:e,onInstall:t,installing:r})=>{const{t:i}=ye(),[s,o]=b.useState(1);return u.jsxs("div",{className:"space-y-6","data-testid":"install-wizard",children:[u.jsxs("div",{className:"flex items-center gap-4",children:[u.jsx(xl,{number:1,active:s===1,label:i("stepChooseKit")}),u.jsx("div",{className:"flex-1 h-px bg-[var(--dash-border)]"}),u.jsx(xl,{number:2,active:s===2,label:i("stepConfigure")}),u.jsx("div",{className:"flex-1 h-px bg-[var(--dash-border)]"}),u.jsx(xl,{number:3,active:s===3,label:i("stepInstall")})]}),u.jsxs("div",{className:"min-h-[200px]",children:[s===1&&u.jsx(wC,{onSelect:e,selected:n}),s===2&&n&&u.jsx(kC,{kit:n}),s===3&&u.jsx(SC,{installing:r})]}),u.jsxs("div",{className:"flex justify-between pt-4 border-t border-[var(--dash-border)]",children:[s>1?u.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")}):u.jsx("div",{}),s<3&&n&&u.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&&u.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")})]})]})},xl=({number:n,active:e,label:t})=>u.jsxs("div",{className:"flex items-center gap-2",children:[u.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}),u.jsx("span",{className:`text-sm font-medium ${e?"text-[var(--dash-text)]":"text-[var(--dash-text-muted)]"}`,children:t})]}),wC=({onSelect:n,selected:e})=>{const{t}=ye();return u.jsxs("div",{className:"space-y-4",children:[u.jsx("p",{className:"text-[var(--dash-text-muted)]",children:e?`Selected: ${e===Bt.ENGINEER?t("kitEngineerName"):t("kitMarketingName")}`:"Please select a kit above"}),e&&u.jsxs("button",{type:"button",onClick:()=>n(e===Bt.ENGINEER?Bt.MARKETING:Bt.ENGINEER),className:"text-sm text-[var(--dash-accent)] hover:underline",children:["Switch to ",e===Bt.ENGINEER?t("kitMarketingName"):t("kitEngineerName")]})]})},kC=()=>u.jsx("div",{className:"text-[var(--dash-text-muted)]",children:"Configuration preview placeholder"}),SC=({installing:n})=>u.jsx("div",{className:"text-[var(--dash-text-muted)]",children:n?"Installing...":"Ready to install"}),CC=({kit:n,onGetStarted:e})=>{const{t}=ye(),r=qt(),i=n===Bt.ENGINEER?"kitEngineerName":n===Bt.MARKETING?"kitMarketingName":"kitEngineerName";return u.jsxs("div",{className:"text-center py-12 space-y-6","data-testid":"success-screen",children:[u.jsx("div",{className:"w-16 h-16 mx-auto bg-green-100 rounded-full flex items-center justify-center",children:u.jsx("svg",{className:"w-10 h-10 text-green-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.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"})})}),u.jsx("h2",{className:"text-2xl font-bold text-[var(--dash-text)]",children:t("installSuccess")}),u.jsx("p",{className:"text-[var(--dash-text-muted)] max-w-md mx-auto",children:t("installSuccessDesc").replace("{kit}",t(i))}),u.jsxs("div",{className:"flex gap-4 justify-center pt-4",children:[u.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")}),u.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}],db={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 OC(n){const e=db[n];return e?jC.filter(t=>e.features.includes(t.id)):(console.warn(`Unknown kit type: ${n}`),[])}const PC=({kit:n,selected:e,onSelect:t,features:r})=>{const{t:i}=ye();return u.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:[u.jsx("h3",{className:`text-xl font-bold ${n.primaryColor}`,children:i(n.name)}),u.jsx("p",{className:"text-[var(--dash-text-muted)] mt-1",children:i(n.tagline)}),u.jsx("div",{className:"mt-4 space-y-2",children:r.slice(0,3).map(s=>u.jsx(xC,{featureId:s.id,name:s.name,description:s.description,included:!0},s.id))})]})},AC=()=>{const{t:n}=ye(),e=qt(),[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 u.jsx(CC,{kit:t,onGetStarted:()=>e("/")});const d=f=>f==="engineer"?Bt.ENGINEER:Bt.MARKETING;return u.jsxs("div",{className:"max-w-4xl mx-auto py-8 px-4",children:[u.jsxs("header",{className:"text-center mb-8",children:[u.jsx("h1",{className:"text-3xl font-bold text-[var(--dash-text)]",children:n("onboardingTitle")}),u.jsx("p",{className:"mt-2 text-[var(--dash-text-muted)]",children:n("onboardingSubtitle")})]}),u.jsx("section",{className:"grid md:grid-cols-2 gap-6 mb-8",children:Object.values(db).map(f=>{const p=d(f.id);return u.jsx(PC,{kit:f,selected:t===p,onSelect:()=>r(p),features:OC(f.id)},f.id)})}),l&&u.jsxs("div",{className:"mb-6 p-4 rounded-lg bg-red-100 border border-red-300 text-red-800",children:[u.jsx("p",{className:"font-medium",children:"Installation Error"}),u.jsx("p",{className:"text-sm mt-1",children:l}),u.jsx("button",{type:"button",onClick:()=>c(null),className:"mt-2 text-sm underline hover:no-underline",children:"Dismiss"})]}),t&&u.jsx(vC,{selectedKit:t,onKitSelect:r,onInstall:h,installing:i})]})};function MC(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}const NC=()=>{const{t:n,lang:e}=ye(),t=qt(),{projectId:r}=tm(),[i,s]=b.useState("{}"),[o,a]=b.useState(0),[l,c]=b.useState(null),[h,d]=b.useState(null),[f,p]=b.useState({}),[m,g]=b.useState({}),[y,v]=b.useState({}),[S,C]=b.useState(null),[A,k]=b.useState(!0),[O,x]=b.useState("idle"),[E,P]=b.useState(!1),[I,L]=b.useState(null),{sizes:B,isDragging:z,startDrag:W}=hb({storageKey:"claudekit-project-config-panels",defaultSizes:[35,40,25],minSizes:[20,25,15]}),N=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]);b.useEffect(()=>{if(!r)return;(async()=>{try{const[de,fe,je]=await Promise.all([Jx(r),ub(),hm()]),ot=je.find(Vr=>Vr.id===r);ot&&C(ot.path);const Xt=de.local||{};p(Xt),g(de.global||{}),d(fe),s(JSON.stringify(Xt,null,2));const Is={};for(const Vr of Object.keys(Xt))Is[Vr]="project";v(Is)}catch(de){console.error("Failed to load project config:",de)}finally{k(!1)}})()},[r]),b.useEffect(()=>{try{JSON.parse(i),c(null)}catch(ee){c(ee instanceof Error?ee.message:"Invalid JSON")}},[i]),b.useEffect(()=>{if(I==="json")try{const ee=JSON.parse(i);p(ee)}catch{}},[i,I]);const R=Qc(i,o),F=R?Xc[R]:null,G=ee=>{const de=ee.split(".");let fe=f,je=m;for(const ot of de)fe=fe?.[ot],je=je?.[ot];return fe!==void 0&&je!==void 0&&fe!==je},J=b.useCallback(ee=>{L("json"),s(ee)},[]),se=b.useCallback((ee,de)=>{L("form"),p(fe=>{const je=MC(fe,ee,de);return s(JSON.stringify(je,null,2)),je}),v(fe=>({...fe,[ee]:"project"}))},[]),Y=async()=>{if(!(l||!r)){x("saving");try{const ee=JSON.parse(i);await Qx(r,ee),p(ee),x("saved"),setTimeout(()=>x("idle"),2e3)}catch{x("error"),setTimeout(()=>x("idle"),3e3)}}},ae=async()=>{P(!1);const ee={};p(ee),s(JSON.stringify(ee,null,2))};return u.jsxs("div",{className:"animate-in fade-in duration-300 w-full h-full flex flex-col transition-colors",children:[u.jsxs("div",{className:"flex items-center justify-between mb-3 shrink-0",children:[u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsx("button",{onClick:()=>t(`/project/${r}`),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:n("backToDashboard"),children:u.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:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}),u.jsx("h1",{className:"text-xl font-bold tracking-tight text-dash-text",children:n("projectConfig")}),u.jsx("span",{className:"text-xs text-dash-text-muted mono",children:S?`${S}/.claude/.ck.json`:".claude/.ck.json"})]}),u.jsxs("div",{className:"flex items-center gap-2 relative",children:[E?u.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:[u.jsx("span",{className:"text-xs text-red-500 font-medium",children:n("confirmReset")}),u.jsx("button",{onClick:ae,className:"px-2 py-0.5 rounded bg-red-500 text-white text-xs font-bold hover:bg-red-600 transition-colors",children:n("confirm")}),u.jsx("button",{onClick:()=>P(!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:n("cancel")})]}):u.jsx("button",{onClick:()=>P(!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:n("resetToDefault")}),u.jsx("button",{onClick:Y,disabled:!!l||O==="saving",className:`px-3 py-1.5 rounded-lg text-xs font-bold transition-all tracking-widest uppercase ${l?"bg-dash-surface text-dash-text-muted cursor-not-allowed border border-dash-border":O==="saved"?"bg-green-500 text-white shadow-lg shadow-green-500/20":O==="error"?"bg-red-500 text-white":"bg-dash-accent text-dash-bg hover:bg-dash-accent-hover shadow-lg shadow-dash-accent/20"}`,children:n(O==="saving"?"saving":O==="saved"?"saved":O==="error"?"saveFailed":"saveChanges")})]})]}),u.jsxs("div",{className:"flex-1 flex min-h-0",children:[u.jsxs("div",{style:{width:`${B[0]}%`},className:"bg-dash-surface border border-dash-border rounded-xl overflow-hidden flex flex-col shadow-sm min-w-0",children:[u.jsx("div",{className:"p-3 border-b border-dash-border bg-dash-surface-hover/50 shrink-0",children:u.jsx("h3",{className:"text-xs font-bold text-dash-text-secondary uppercase tracking-widest",children:n("formTab")})}),u.jsx("div",{className:"flex-1 overflow-auto p-4",children:A?u.jsx("div",{className:"h-full flex items-center justify-center",children:u.jsx("div",{className:"animate-pulse text-dash-text-muted text-sm",children:n("loading")})}):h?u.jsx(ab,{schema:h,value:f,sources:y,sections:N,onChange:se}):null})]}),u.jsx(gi,{direction:"horizontal",isDragging:z,onMouseDown:ee=>W(0,ee)}),u.jsxs("div",{style:{width:`${B[1]}%`},className:"bg-dash-surface border border-dash-border rounded-xl overflow-hidden flex flex-col shadow-sm min-w-0",children:[u.jsx("div",{className:"p-3 border-b border-dash-border bg-dash-surface-hover/50 shrink-0",children:u.jsx("h3",{className:"text-xs font-bold text-dash-text-secondary uppercase tracking-widest",children:n("jsonTab")})}),u.jsx("div",{className:"flex-1 min-h-0 overflow-auto",children:A?u.jsx("div",{className:"h-full flex items-center justify-center",children:u.jsx("div",{className:"animate-pulse text-dash-text-muted text-sm",children:n("loading")})}):u.jsx(ob,{value:i,onChange:J,onCursorLineChange:a})}),u.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:[u.jsxs("div",{className:"flex gap-4",children:[u.jsx("span",{children:"UTF-8"}),u.jsx("span",{children:"JSON"}),u.jsxs("span",{children:["L:",o+1]})]}),u.jsx("div",{className:"flex items-center gap-2",children:l?u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-red-500"}),u.jsx("span",{className:"text-red-500 normal-case",children:l})]}):u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-dash-accent"}),n("syntaxValid")]})})]})]}),u.jsx(gi,{direction:"horizontal",isDragging:z,onMouseDown:ee=>W(1,ee)}),u.jsxs("div",{style:{width:`${B[2]}%`},className:"bg-dash-surface border border-dash-border rounded-xl flex flex-col shadow-sm overflow-hidden min-w-0",children:[u.jsx("div",{className:"p-3 border-b border-dash-border bg-dash-surface-hover/50 shrink-0",children:u.jsx("h3",{className:"text-xs font-bold text-dash-text-secondary uppercase tracking-widest",children:n("configurationHelp")})}),u.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:F?u.jsxs("div",{className:"space-y-5 animate-in fade-in duration-500",children:[u.jsxs("header",{children:[u.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[u.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:n("field")}),u.jsx("h2",{className:"text-base font-bold text-dash-text mono break-all",children:F.path}),R&&G(R)&&u.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")})]}),u.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[u.jsx(zf,{label:n("type"),value:F.type}),u.jsx(zf,{label:n("default"),value:F.default})]})]}),u.jsxs("section",{children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:n("description")}),u.jsx("p",{className:"text-sm text-dash-text-secondary leading-relaxed italic",children:e==="vi"?F.descriptionVi:F.description})]}),F.validValues&&u.jsxs("section",{children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:n("validValues")}),u.jsx("div",{className:"flex flex-wrap gap-1.5",children:F.validValues.map(ee=>u.jsx("span",{className:"px-2 py-0.5 bg-dash-bg border border-dash-border rounded text-[11px] mono text-dash-text",children:ee},ee))})]}),F.effect&&u.jsxs("section",{className:"bg-dash-accent-subtle/30 p-3 rounded-lg border border-dash-accent/10",children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-accent uppercase tracking-widest mb-1",children:n("systemEffect")}),u.jsx("p",{className:"text-[12px] text-dash-text-secondary leading-normal",children:e==="vi"&&F.effectVi?F.effectVi:F.effect})]}),F.example&&u.jsxs("section",{children:[u.jsx("h4",{className:"text-[10px] font-bold text-dash-text-muted uppercase tracking-widest mb-2",children:n("exampleUsage")}),u.jsx("div",{className:"bg-dash-bg p-3 rounded-lg border border-dash-border overflow-hidden",children:u.jsx("pre",{className:"text-[11px] mono text-dash-text-secondary whitespace-pre overflow-x-auto",children:F.example})})]}),u.jsxs("section",{className:"bg-blue-500/5 p-3 rounded-lg border border-blue-500/20",children:[u.jsx("h4",{className:"text-[10px] font-bold text-blue-500 uppercase tracking-widest mb-1",children:n("inheritedFromGlobal")}),u.jsxs("p",{className:"text-[12px] text-dash-text-secondary leading-normal",children:[n("viewGlobalConfig")," ",u.jsx("button",{onClick:()=>t("/config/global"),className:"text-dash-accent hover:underline font-medium",children:n("globalConfig")})]})]})]}):u.jsxs("div",{className:"h-full flex flex-col items-center justify-center text-center opacity-40 space-y-4",children:[u.jsx("div",{className:"w-10 h-10 rounded-full bg-dash-bg border border-dash-border flex items-center justify-center text-lg",children:"💡"}),u.jsxs("div",{className:"max-w-[180px]",children:[u.jsx("p",{className:"text-sm font-bold text-dash-text mb-1 italic",children:n("knowledgeBase")}),u.jsx("p",{className:"text-xs text-dash-text-secondary",children:n("clickToSeeHelp")})]})]})}),F&&u.jsx("div",{className:"p-3 bg-dash-surface-hover/20 border-t border-dash-border shrink-0",children:u.jsxs("p",{className:"text-[10px] text-dash-text-muted font-medium flex items-center gap-1.5 italic",children:[u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.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"})}),n("extractedFrom")]})})]})]})]})},zf=({label:n,value:e})=>u.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 bg-dash-bg border border-dash-border rounded-md",children:[u.jsxs("span",{className:"text-[9px] font-bold text-dash-text-muted uppercase",children:[n,":"]}),u.jsx("span",{className:"text-[10px] mono font-bold text-dash-text-secondary",children:e})]}),DC=({project:n})=>{const{t:e}=ye(),t=qt(),{skills:r,loading:i}=tv(),{sessions:s,loading:o}=nv(n.id),a=async c=>{try{await Ux(c,n.path)}catch(h){alert(`${e("actionFailed")}: ${h instanceof Error?h.message:c}`)}},l=r.filter(c=>n.skills.includes(c.id));return u.jsxs("div",{className:"animate-in fade-in slide-in-from-bottom-2 duration-500 transition-colors flex flex-col h-full",children:[u.jsx("section",{className:"mb-6 shrink-0",children:u.jsxs("div",{className:"flex flex-col md:flex-row md:items-end justify-between gap-4",children:[u.jsxs("div",{children:[u.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[u.jsx("h1",{className:"text-3xl font-bold tracking-tight text-dash-text",children:n.name}),u.jsx(EC,{status:n.health})]}),u.jsxs("p",{className:"text-dash-text-secondary mono text-sm flex items-center gap-2 italic",children:[u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.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]})]}),u.jsx("div",{className:"flex items-center gap-3",children:u.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")})})]})}),u.jsxs("section",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 mb-6 shrink-0",children:[u.jsx(xo,{icon:"📟",label:e("terminal"),sub:e("terminalSub"),onClick:()=>a("terminal")}),u.jsx(xo,{icon:"💻",label:e("editor"),sub:e("editorSub"),onClick:()=>a("editor")}),u.jsx(xo,{icon:"🤖",label:e("launch"),sub:e("launchSub"),highlight:!0,onClick:()=>a("launch")}),u.jsx(xo,{icon:"⚙️",label:e("config"),sub:e("configSub"),onClick:()=>t(`/config/project/${n.id}`)})]}),u.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6 flex-1 min-h-0",children:[u.jsx("div",{className:"lg:col-span-2 flex flex-col gap-6 min-h-0",children:u.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:[u.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:u.jsx("h3",{className:"text-sm font-bold text-dash-text-secondary uppercase tracking-widest",children:e("recentSessions")})}),u.jsx("div",{className:"divide-y divide-dash-border overflow-y-auto flex-1",children:o?u.jsx("div",{className:"p-4 text-center text-dash-text-muted animate-pulse",children:e("loadingSessions")}):s.length===0?u.jsx("div",{className:"p-4 text-center text-dash-text-muted",children:e("noSessionsFound")}):s.map(c=>u.jsxs("div",{className:"p-4 hover:bg-dash-surface-hover transition-colors group cursor-pointer",children:[u.jsxs("div",{className:"flex items-center justify-between mb-1",children:[u.jsx("span",{className:"text-xs font-bold text-dash-accent",children:c.timestamp}),u.jsx("span",{className:"text-[10px] text-dash-text-muted font-medium group-hover:text-dash-text-secondary transition-colors",children:c.duration})]}),u.jsx("p",{className:"text-sm text-dash-text-secondary leading-relaxed truncate",children:c.summary})]},c.id))})]})}),u.jsxs("div",{className:"flex flex-col gap-6 min-h-0",children:[u.jsxs("div",{className:"bg-dash-surface border border-dash-border rounded-xl p-6 shadow-sm shrink-0",children:[u.jsxs("h3",{className:"text-sm font-bold text-dash-text-secondary uppercase tracking-widest mb-4 flex items-center gap-2",children:[e("configuration"),u.jsx("span",{className:"text-[10px] font-normal text-dash-text-muted normal-case",children:e("globalSettings")})]}),u.jsxs("div",{className:"space-y-4",children:[u.jsx(vo,{label:e("activeKit"),value:n.kitType}),u.jsx(vo,{label:e("aiModel"),value:n.model}),u.jsx(vo,{label:e("hooks"),value:`${n.activeHooks} ${e("active")}`}),u.jsx(vo,{label:e("mcpServers"),value:`${n.mcpServers} ${e("connected")}`})]}),u.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")})]}),u.jsxs("div",{className:"bg-dash-surface border border-dash-border rounded-xl shadow-sm flex flex-col flex-1 min-h-0",children:[u.jsx("div",{className:"p-4 pb-2 border-b border-dash-border shrink-0",children:u.jsxs("h3",{className:"text-sm font-bold text-dash-text-secondary uppercase tracking-widest flex items-center justify-between",children:[e("globalSkills"),u.jsx("span",{className:"text-[10px] bg-dash-accent-subtle text-dash-accent px-1.5 py-0.5 rounded-full",children:i?"...":r.length})]})}),u.jsx("div",{className:"overflow-y-auto flex-1 px-4 py-2 space-y-2",children:i?u.jsx("div",{className:"text-center text-dash-text-muted animate-pulse py-4",children:e("loadingSkills")}):(l.length>0?l:r).map(c=>u.jsxs("div",{className:"flex flex-col gap-0.5 border-l-2 border-dash-accent/20 pl-3 py-1",children:[u.jsx("span",{className:"text-sm font-semibold text-dash-text",children:c.name}),u.jsx("p",{className:"text-[10px] text-dash-text-muted leading-tight line-clamp-1",children:c.description||e("noDescription")})]},c.id))}),u.jsx("div",{className:"p-4 pt-2 border-t border-dash-border shrink-0",children:u.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")," →"]})})]})]})]})]})},EC=({status:n})=>{const e={[gn.HEALTHY]:"bg-dash-accent-subtle text-dash-accent border-dash-accent/20",[gn.WARNING]:"bg-orange-500/10 text-orange-600 border-orange-500/20",[gn.ERROR]:"bg-red-500/10 text-red-600 border-red-500/20",[gn.LOADING]:"bg-dash-border/20 text-dash-text-muted border-dash-border",[gn.UNKNOWN]:"bg-dash-border/20 text-dash-text-muted border-dash-border"};return u.jsx("span",{className:`px-2 py-0.5 rounded-full text-[10px] font-bold border uppercase tracking-widest ${e[n]}`,children:n})},xo=({icon:n,label:e,sub:t,highlight:r,onClick:i})=>u.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:[u.jsx("span",{className:"text-2xl mb-1 group-hover:scale-110 transition-transform",children:n}),u.jsx("span",{className:"text-sm font-bold text-dash-text",children:e}),u.jsx("span",{className:"text-[10px] text-dash-text-muted font-medium truncate italic",children:t})]}),vo=({label:n,value:e})=>u.jsxs("div",{className:"flex items-center justify-between text-xs py-1.5 border-b border-dash-border/50 last:border-0",children:[u.jsx("span",{className:"text-dash-text-muted font-medium",children:n}),u.jsx("span",{className:"text-dash-text font-bold mono uppercase text-[10px] tracking-tight",children:e})]}),TC=()=>{const{t:n}=ye(),{project:e}=em();return e?u.jsx(DC,{project:e}):u.jsxs("div",{className:"flex flex-col items-center justify-center h-full space-y-4 opacity-50",children:[u.jsx("div",{className:"w-16 h-16 rounded-full bg-dash-surface border border-dash-border flex items-center justify-center",children:u.jsx("span",{className:"text-2xl text-dash-text-muted",children:"📂"})}),u.jsx("p",{className:"text-lg text-dash-text-secondary font-bold",children:n("selectProject")})]})},LC={engineer:"#F7A072",marketing:"#4A9BD9"},Ih=({kit:n})=>{const e=LC[n]||"#6B6560",t=n.charAt(0).toUpperCase()+n.slice(1);return u.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})},Bh=({label:n})=>u.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}=ye(),s=e.filter(d=>d.skillName===n.id),o=s.length>0,a=t.filter(d=>d.detected),l=new Map(s.map(d=>[d.agent,d])),c=a.slice(0,3),h=zt[n.category]||zt.General;return u.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:[u.jsxs("div",{className:"flex items-start justify-between gap-2",children:[u.jsxs("div",{className:"min-w-0 flex-1",children:[u.jsx("div",{className:"text-sm font-semibold text-dash-text truncate",children:n.name}),(n.kit||n.isCustomized)&&u.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[n.kit&&u.jsx(Ih,{kit:n.kit}),n.isCustomized&&u.jsx(Bh,{label:i("customizedBadge")})]})]}),u.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})]}),u.jsx("p",{className:"text-xs text-dash-text-muted leading-relaxed line-clamp-2 min-h-[2.5rem]",children:n.description||i("noDescription")}),u.jsxs("div",{className:"flex items-center justify-between mt-auto pt-2",children:[u.jsx("div",{className:"flex gap-0.5",children:c.map(d=>{const f=l.get(d.name),p=d.displayName.charAt(0).toUpperCase();return u.jsx("div",{title:`${d.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},d.name)})}),u.jsx("button",{type:"button",onClick:d=>{d.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}},vl,BC=b.createContext({appearance:"light",setAppearance:function(){},isDarkMode:!1,themeMode:"light",setThemeMode:function(){},browserPrefers:(vl=IC("dark"))!==null&&vl!==void 0&&vl.matches?"dark":"light"}),$C=function(){return b.useContext(BC)};const fb=(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)},VC=(n,e)=>fb(n,e)==="row",ir=n=>typeof n=="number"?`${n}px`:n,zC=({visible:n,flex:e,gap:t,direction:r,horizontal:i,align:s,justify:o,distribution:a,height:l,width:c,padding:h,paddingInline:d,paddingBlock:f,prefixCls:p,as:m="div",className:g,style:y,children:v,wrap:S,ref:C,...A})=>{const k=o||a,x=VC(r,i)&&!c&&FC(k)?"100%":ir(c),E={...e!==void 0?{"--lobe-flex":String(e)}:{},...r||i?{"--lobe-flex-direction":fb(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":ir(l)}:{},...h!==void 0?{"--lobe-flex-padding":ir(h)}:{},...d!==void 0?{"--lobe-flex-padding-inline":ir(d)}:{},...f!==void 0?{"--lobe-flex-padding-block":ir(f)}:{},...t!==void 0?{"--lobe-flex-gap":ir(t)}:{},...y},P="lobe-flex",I=[P,n===!1?`${P}--hidden`:void 0,p?`${p}-flex`:void 0,g].filter(Boolean).join(" ");return u.jsx(m,{ref:C,...A,className:I,style:E,children:v})};var pb=b.memo(zC);const HC=({children:n,ref:e,...t})=>u.jsx(pb,{...t,align:"center",justify:"center",ref:e,children:n});var WC=HC;const _C=/\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(_C)??[])}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 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 qC=["shape","color","background","size","style","iconMultiple","Icon","iconStyle","iconClassName"];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 wo(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){YC(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 YC(n,e,t){return e=JC(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function JC(n){var e=QC(n,"string");return Bi(e)=="symbol"?e:String(e)}function QC(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 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 Dn=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,d=n.iconStyle,f=n.iconClassName,p=XC(n,qC),m=$C(),g=m.isDarkMode;return u.jsx(WC,wo(wo({flex:"none",style:wo({background:s,borderRadius:t==="circle"?"50%":Math.floor(o*.1),boxShadow:GC(g,s),color:i,height:o,width:o},a)},p),{},{children:h&&u.jsx(h,{className:f,color:i,size:o,style:wo({transform:"scale(".concat(c,")")},d)})}))});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 e6=["Icon","style","Text","color","size","spaceMultiple","textMultiple","extra","extraStyle","showText","showLogo","extraClassName","iconProps","inverse"];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 un(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){t6(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 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 $i(e)=="symbol"?e:String(e)}function r6(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 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 En=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,d=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&&u.jsx(e,un(un({size:o},S),{},{style:un(C?{marginLeft:o*l}:{marginRight:o*l},S?.style)})),O=m&&r&&u.jsx(r,{size:o*h});return u.jsxs(pb,un(un({align:"center",flex:"none",horizontal:!0,justify:"flex-start",style:un({color:i},t)},A),{},{children:[C?u.jsxs(u.Fragment,{children:[O,k]}):u.jsxs(u.Fragment,{children:[k,O]}),d&&u.jsx("span",{className:v,style:un({fontSize:o*h*.95,lineHeight:1},f),children:d})]}))}),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])},Lr="Claude",a6=.8,l6=.1,mb="#D97757",c6=mb,h6="#fff",u6=.75;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)}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 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){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 Fi(e)=="symbol"?e:String(e)}function m6(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 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 $h=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=g6(n,d6);return u.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:[u.jsx("title",{children:Lr}),u.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 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)}function Uf(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?Uf(Object(t),!0).forEach(function(r){x6(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Uf(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 Vi(e)=="symbol"?e:String(e)}function w6(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 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 u.jsx(Dn,y6({Icon:$h,"aria-label":Lr,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 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 kl(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){j6(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 j6(n,e,t){return e=O6(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function O6(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 gb=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=A6(n,C6);return u.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:[u.jsx("title",{children:Lr}),u.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 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 N6=["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){D6(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 D6(n,e,t){return e=E6(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function E6(n){var e=T6(n,"string");return Hi(e)=="symbol"?e:String(e)}function T6(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 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 bb=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=L6(n,N6);return u.jsxs("svg",Sl(Sl({fill:"currentColor",fillRule:"nonzero",height:t,style:Sl({flex:"none",lineHeight:1},r),viewBox:"0 0 97 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Lr}),u.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 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 I6=["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 B6(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){$6(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 $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=V6(n,"string");return Wi(e)=="symbol"?e:String(e)}function V6(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 z6(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 W6=b.memo(function(n){var e=n.type,t=e===void 0?"mono":e,r=z6(n,I6),i=t==="color"?gb:$h;return u.jsx(En,B6({Icon:i,Text:bb,"aria-label":Lr,spaceMultiple:l6,textMultiple:a6},r))}),er=$h;er.Color=gb;er.Text=bb;er.Combine=W6;er.Avatar=S6;er.colorPrimary=mb;er.title=Lr;var Ns="OpenAI",_6=.75,U6=.1,yb="#000",xb="#19C37D",vb="#AB68FF",wb="#F86AA4",Fh="#F9C322",kb="#0099FF",Sb="#0000FE",K6=yb,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 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 Cl(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){J6(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 J6(n,e,t){return e=Q6(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Q6(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=ej(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 ej(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=Z6(n,Y6);return u.jsxs("svg",Cl(Cl({fill:"currentColor",fillRule:"evenodd",height:t,style:Cl({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Ns}),u.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",tj=.8,nj=.2,Cb="#fff",rj=Cb,ij="#fff",sj=.8;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)}var oj=["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 jl(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){aj(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 aj(n,e,t){return e=lj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function lj(n){var e=cj(n,"string");return Ui(e)=="symbol"?e:String(e)}function cj(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 hj(n,e){return pj(n)||fj(n,e)||dj(n,e)||uj()}function uj(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
211
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function dj(n,e){if(n){if(typeof n=="string")return Qf(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 Qf(n,e)}}function Qf(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 fj(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 pj(n){if(Array.isArray(n))return n}function mj(n,e){if(n==null)return{};var t=gj(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 gj(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=mj(n,oj),s=o6(Qn,3),o=hj(s,3),a=o[0],l=o[1],c=o[2];return u.jsxs("svg",jl(jl({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:[u.jsx("title",{children:Qn}),u.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"}),u.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}),u.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}),u.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}),u.jsxs("defs",{children:[u.jsxs("linearGradient",{gradientUnits:"userSpaceOnUse",id:a.id,x1:"7",x2:"11",y1:"15.5",y2:"12",children:[u.jsx("stop",{stopColor:"#08B962"}),u.jsx("stop",{offset:"1",stopColor:"#08B962",stopOpacity:"0"})]}),u.jsxs("linearGradient",{gradientUnits:"userSpaceOnUse",id:l.id,x1:"8",x2:"11.5",y1:"5.5",y2:"11",children:[u.jsx("stop",{stopColor:"#F94543"}),u.jsx("stop",{offset:"1",stopColor:"#F94543",stopOpacity:"0"})]}),u.jsxs("linearGradient",{gradientUnits:"userSpaceOnUse",id:c.id,x1:"3.5",x2:"17.5",y1:"13.5",y2:"12",children:[u.jsx("stop",{stopColor:"#FABC12"}),u.jsx("stop",{offset:".46",stopColor:"#FABC12",stopOpacity:"0"})]})]})]}))});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)}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 bj(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){yj(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 yj(n,e,t){return e=xj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function xj(n){var e=vj(n,"string");return Ki(e)=="symbol"?e:String(e)}function vj(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 wj(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var kj=b.memo(function(n){var e=Object.assign({},(wj(n),n));return u.jsx(Dn,bj({Icon:zh,"aria-label":Qn,background:rj,color:ij,iconMultiple:sj},e))});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 Sj=["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 Ol(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){Cj(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 Cj(n,e,t){return e=jj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function jj(n){var e=Oj(n,"string");return Gi(e)=="symbol"?e:String(e)}function Oj(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 Pj(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 jb=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=Pj(n,Sj);return u.jsxs("svg",Ol(Ol({fill:"currentColor",fillRule:"evenodd",height:t,style:Ol({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Qn}),u.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 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 Mj=["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 Pl(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){Nj(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 Nj(n,e,t){return e=Dj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Dj(n){var e=Ej(n,"string");return qi(e)=="symbol"?e:String(e)}function Ej(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 Tj(n,e){if(n==null)return{};var t=Lj(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 Lj(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 Ob=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=Tj(n,Mj);return u.jsxs("svg",Pl(Pl({fill:"currentColor",fillRule:"evenodd",height:t,style:Pl({flex:"none",lineHeight:1},r),viewBox:"0 0 98 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Qn}),u.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 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 Rj=["type"];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 Ij(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){Bj(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 Bj(n,e,t){return e=$j(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function $j(n){var e=Fj(n,"string");return Yi(e)=="symbol"?e:String(e)}function Fj(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 Vj(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 Hj=b.memo(function(n){var e=n.type,t=e===void 0?"mono":e,r=Vj(n,Rj),i=t==="color"?zh:jb;return u.jsx(En,Ij({Icon:i,Text:Ob,"aria-label":Qn,spaceMultiple:nj,textMultiple:tj},r))}),tr=jb;tr.Color=zh;tr.Text=Ob;tr.Combine=Hj;tr.Avatar=kj;tr.colorPrimary=Cb;tr.title=Qn;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 Wj=["type"];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 _j(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){Uj(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 Uj(n,e,t){return e=Kj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Kj(n){var e=Gj(n,"string");return Ji(e)=="symbol"?e:String(e)}function Gj(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 qj(n,e){if(n==null)return{};var t=Yj(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 Yj(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 Jj=b.memo(function(n){var e=n.type,t=e===void 0?"normal":e,r=qj(n,Wj),i=b.useMemo(function(){switch(t){case"gpt3":return xb;case"gpt4":return vb;case"gpt5":return wb;case"o3":case"o1":return Fh;case"oss":return kb;case"platform":return Sb;default:return K6}},[t]);return u.jsx(Dn,_j({Icon:Vh,"aria-label":Ns,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 Qj=["size","style"];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 Al(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){Xj(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 Xj(n,e,t){return e=Zj(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Zj(n){var e=eO(n,"string");return Qi(e)=="symbol"?e:String(e)}function eO(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 tO(n,e){if(n==null)return{};var t=nO(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 nO(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 Pb=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=tO(n,Qj);return u.jsxs("svg",Al(Al({fill:"currentColor",fillRule:"evenodd",height:t,style:Al({flex:"none",lineHeight:1},r),viewBox:"0 0 84 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Ns}),u.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 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 rO=["extraStyle"];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 sp(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){iO(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 iO(n,e,t){return e=sO(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function sO(n){var e=oO(n,"string");return Xi(e)=="symbol"?e:String(e)}function oO(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 aO(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 cO=b.memo(function(n){var e=n.extraStyle,t=aO(n,rO);return u.jsx(En,sp({Icon:Vh,Text:Pb,"aria-label":Ns,extraStyle:sp({fontWeight:600},e),spaceMultiple:U6,textMultiple:_6},t))}),ft=Vh;ft.Text=Pb;ft.Combine=cO;ft.Avatar=Jj;ft.colorPrimary=yb;ft.colorGpt3=xb;ft.colorGpt4=vb;ft.colorGpt5=wb;ft.colorO1=Fh;ft.colorO3=Fh;ft.colorOss=kb;ft.colorPlatform=Sb;ft.title=Ns;var Ds="GithubCopilot",hO=.75,uO=.3,Ab="#000",dO=Ab,fO="#fff",pO=.75;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 mO=["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){gO(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 gO(n,e,t){return e=bO(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function bO(n){var e=yO(n,"string");return Zi(e)=="symbol"?e:String(e)}function yO(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 xO(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 Hh=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=xO(n,mO);return u.jsxs("svg",Ml(Ml({fill:"currentColor",fillRule:"evenodd",height:t,style:Ml({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Ds}),u.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 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)}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 wO(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){kO(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 kO(n,e,t){return e=SO(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function SO(n){var e=CO(n,"string");return es(e)=="symbol"?e:String(e)}function CO(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 jO(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var OO=b.memo(function(n){var e=Object.assign({},(jO(n),n));return u.jsx(Dn,wO({Icon:Hh,"aria-label":Ds,background:dO,color:fO,iconMultiple:pO},e))});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)}var PO=["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 Nl(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){AO(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 AO(n,e,t){return e=MO(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function MO(n){var e=NO(n,"string");return ts(e)=="symbol"?e:String(e)}function NO(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 DO(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 Mb=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=DO(n,PO);return u.jsxs("svg",Nl(Nl({fill:"currentColor",fillRule:"evenodd",height:t,style:Nl({flex:"none",lineHeight:1},r),viewBox:"0 0 154 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Ds}),u.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 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)}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 TO(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){LO(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 LO(n,e,t){return e=RO(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function RO(n){var e=IO(n,"string");return ns(e)=="symbol"?e:String(e)}function IO(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 BO(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var $O=b.memo(function(n){var e=Object.assign({},(BO(n),n));return u.jsx(En,TO({Icon:Hh,Text:Mb,"aria-label":Ds,spaceMultiple:uO,textMultiple:hO},e))}),Rr=Hh;Rr.Text=Mb;Rr.Combine=$O;Rr.Avatar=OO;Rr.colorPrimary=Ab;Rr.title=Ds;var Es="Cline",FO=.7,VO=.2,Nb="#323B43",zO=Nb,HO="#fff",WO=.6;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)}var _O=["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 Dl(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){UO(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 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 rs(e)=="symbol"?e:String(e)}function GO(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 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 Wh=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=qO(n,_O);return u.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:[u.jsx("title",{children:Es}),u.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"}),u.jsx("path",{d:"M12.054 5.558a2.779 2.779 0 100-5.558 2.779 2.779 0 000 5.558z"})]}))});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)}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 JO(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){QO(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 QO(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=ZO(n,"string");return is(e)=="symbol"?e:String(e)}function ZO(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 e7(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var t7=b.memo(function(n){var e=Object.assign({},(e7(n),n));return u.jsx(Dn,JO({Icon:Wh,"aria-label":Es,background:zO,color:HO,iconMultiple:WO},e))});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)}var n7=["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 El(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){r7(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 r7(n,e,t){return e=i7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function i7(n){var e=s7(n,"string");return ss(e)=="symbol"?e:String(e)}function s7(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 o7(n,e){if(n==null)return{};var t=a7(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 a7(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 Db=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=o7(n,n7);return u.jsxs("svg",El(El({fill:"currentColor",fillRule:"evenodd",height:t,style:El({flex:"none",lineHeight:1},r),viewBox:"0 0 88 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Es}),u.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 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)}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 l7(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){c7(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 c7(n,e,t){return e=h7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function h7(n){var e=u7(n,"string");return os(e)=="symbol"?e:String(e)}function u7(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 d7(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var f7=b.memo(function(n){var e=Object.assign({},(d7(n),n));return u.jsx(En,l7({Icon:Wh,Text:Db,"aria-label":Es,iconProps:{shape:"square"},spaceMultiple:VO,textMultiple:FO},e))}),Ir=Wh;Ir.Text=Db;Ir.Combine=f7;Ir.Avatar=t7;Ir.colorPrimary=Nb;Ir.title=Es;var Ts="Cursor",p7=.7,m7=.1,Eb="#000",g7=Eb,b7="#fff",y7=.6;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)}var x7=["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 Tl(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){v7(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 v7(n,e,t){return e=w7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function w7(n){var e=k7(n,"string");return as(e)=="symbol"?e:String(e)}function k7(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 S7(n,e){if(n==null)return{};var t=C7(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 C7(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=S7(n,x7);return u.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:[u.jsx("title",{children:Ts}),u.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 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)}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 j7(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){O7(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 O7(n,e,t){return e=P7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function P7(n){var e=A7(n,"string");return ls(e)=="symbol"?e:String(e)}function A7(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 M7(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var N7=b.memo(function(n){var e=Object.assign({},(M7(n),n));return u.jsx(Dn,j7({Icon:_h,"aria-label":Ts,background:g7,color:b7,iconMultiple:y7},e))});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)}var D7=["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){E7(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 E7(n,e,t){return e=T7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function T7(n){var e=L7(n,"string");return cs(e)=="symbol"?e:String(e)}function L7(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 R7(n,e){if(n==null)return{};var t=I7(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 I7(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 Tb=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=R7(n,D7);return u.jsxs("svg",Ll(Ll({fill:"currentColor",fillRule:"evenodd",height:t,style:Ll({flex:"none",lineHeight:1},r),viewBox:"0 0 123 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Ts}),u.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 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)}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 B7(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){$7(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 $7(n,e,t){return e=F7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function F7(n){var e=V7(n,"string");return hs(e)=="symbol"?e:String(e)}function V7(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 z7(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var H7=b.memo(function(n){var e=Object.assign({},(z7(n),n));return u.jsx(En,B7({Icon:_h,Text:Tb,"aria-label":Ts,spaceMultiple:m7,textMultiple:p7},e))}),Br=_h;Br.Text=Tb;Br.Combine=H7;Br.Avatar=N7;Br.colorPrimary=Eb;Br.title=Ts;var Ls="Goose",W7=.7,_7=.2,Lb="#fff",U7=Lb,K7="#000",G7=.65;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)}var q7=["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){Y7(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 Y7(n,e,t){return e=J7(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function J7(n){var e=Q7(n,"string");return us(e)=="symbol"?e:String(e)}function Q7(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 X7(n,e){if(n==null)return{};var t=Z7(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 Z7(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 Uh=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=X7(n,q7);return u.jsxs("svg",Rl(Rl({fill:"currentColor",fillRule:"evenodd",height:t,style:Rl({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Ls}),u.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 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)}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 e8(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){t8(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 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 ds(e)=="symbol"?e:String(e)}function r8(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 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 u.jsx(Dn,e8({Icon:Uh,"aria-label":Ls,background:U7,color:K7,iconMultiple:G7},e))});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)}var o8=["size","style"];function vp(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 Il(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?vp(Object(t),!0).forEach(function(r){a8(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):vp(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 fs(e)=="symbol"?e:String(e)}function c8(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 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 Rb=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=h8(n,o8);return u.jsxs("svg",Il(Il({fill:"currentColor",fillRule:"evenodd",height:t,style:Il({flex:"none",lineHeight:1},r),viewBox:"0 0 87 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Ls}),u.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 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)}function wp(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?wp(Object(t),!0).forEach(function(r){f8(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):wp(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 ps(e)=="symbol"?e:String(e)}function m8(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 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 u.jsx(En,d8({Icon:Uh,Text:Rb,"aria-label":Ls,iconProps:{shape:"square"},spaceMultiple:_7,textMultiple:W7},e))}),$r=Uh;$r.Text=Rb;$r.Combine=b8;$r.Avatar=s8;$r.colorPrimary=Lb;$r.title=Ls;var Rs="Windsurf",y8=.7,x8=.2,Ib="#fff",v8=Ib,w8="#000",k8=.75;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)}var S8=["size","style"];function kp(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 Bl(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?kp(Object(t),!0).forEach(function(r){C8(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):kp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function C8(n,e,t){return e=j8(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function j8(n){var e=O8(n,"string");return ms(e)=="symbol"?e:String(e)}function O8(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 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 Kh=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=P8(n,S8);return u.jsxs("svg",Bl(Bl({fill:"currentColor",fillRule:"evenodd",height:t,style:Bl({flex:"none",lineHeight:1},r),viewBox:"0 0 24 24",width:t,xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Rs}),u.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 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)}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 M8(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){N8(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 N8(n,e,t){return e=D8(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function D8(n){var e=E8(n,"string");return gs(e)=="symbol"?e:String(e)}function E8(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 T8(n){if(n==null)throw new TypeError("Cannot destructure "+n)}var L8=b.memo(function(n){var e=Object.assign({},(T8(n),n));return u.jsx(Dn,M8({Icon:Kh,"aria-label":Rs,background:v8,color:w8,iconMultiple:k8},e))});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)}var R8=["size","style"];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 $l(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){I8(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 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 bs(e)=="symbol"?e:String(e)}function $8(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 F8(n,e){if(n==null)return{};var t=V8(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 V8(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 Bb=b.memo(function(n){var e=n.size,t=e===void 0?"1em":e,r=n.style,i=F8(n,R8);return u.jsxs("svg",$l($l({fill:"currentColor",fillRule:"evenodd",height:t,style:$l({flex:"none",lineHeight:1},r),viewBox:"0 0 111 24",xmlns:"http://www.w3.org/2000/svg"},i),{},{children:[u.jsx("title",{children:Rs}),u.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 ys(n){"@babel/helpers - typeof";return ys=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},ys(n)}function jp(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 z8(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?jp(Object(t),!0).forEach(function(r){H8(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):jp(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function H8(n,e,t){return e=W8(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function W8(n){var e=_8(n,"string");return ys(e)=="symbol"?e:String(e)}function _8(n,e){if(ys(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(ys(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 u.jsx(En,z8({Icon:Kh,Text:Bb,"aria-label":Rs,iconProps:{shape:"square"},spaceMultiple:x8,textMultiple:y8},e))}),Fr=Kh;Fr.Text=Bb;Fr.Combine=K8;Fr.Avatar=L8;Fr.colorPrimary=Ib;Fr.title=Rs;const G8={"claude-code":er.Avatar,cursor:Br.Avatar,codex:ft.Avatar,"gemini-cli":tr.Avatar,goose:$r.Avatar,"github-copilot":Rr.Avatar,windsurf:Fr.Avatar,cline:Ir.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 Fc=({agentName:n,displayName:e,size:t=20})=>{const r=G8[n];if(r)return u.jsx(r,{size:t});const i=q8[n];return i?u.jsx("img",{src:i,alt:e,className:"rounded object-contain",style:{width:t,height:t}}):u.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)})},J8=({skill:n,installations:e,agents:t,onClose:r,onInstall:i,onUninstall:s})=>{const{t:o}=ye(),[a,l]=b.useState(!0),[c,h]=b.useState(!1),[d,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=O=>{O.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(O){f(O instanceof Error?O.message:"Installation failed")}finally{h(!1)}},C=async k=>{try{h(!0),f(null),await s(n.id,k)}catch(O){f(O instanceof Error?O.message:"Uninstall failed")}finally{h(!1)}},A=async()=>{const k=g.filter(O=>!m.has(O.name)&&O.name!==n.sourceAgent);if(k.length!==0)try{h(!0),f(null),await i(n.id,k.map(O=>O.name),a)}catch(O){f(O instanceof Error?O.message:"Installation failed")}finally{h(!1)}};return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"fixed inset-0 bg-black/50 z-40",onClick:r,style:{pointerEvents:"auto"}}),u.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:[u.jsx("div",{className:"px-6 py-5 border-b border-dash-border",children:u.jsxs("div",{className:"flex items-start justify-between",children:[u.jsxs("div",{className:"flex-1",children:[u.jsx("h2",{className:"text-xl font-bold text-dash-text",children:n.name}),u.jsxs("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[u.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&&u.jsx(Ih,{kit:n.kit}),n.isCustomized&&u.jsx(Bh,{label:o("customizedBadge")}),n.version&&u.jsx("span",{className:"text-[11px] text-dash-text-muted",children:o("versionLabel").replace("{version}",n.version.replace(/^v/,""))})]})]}),u.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:u.jsxs("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:[u.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18",strokeWidth:2}),u.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18",strokeWidth:2})]})})]})}),u.jsxs("div",{className:"flex-1 overflow-y-auto px-6 py-5 space-y-6",children:[u.jsxs("div",{children:[u.jsx("h3",{className:"text-[11px] font-bold uppercase tracking-wide text-dash-text-muted mb-2.5",children:o("description")}),u.jsx("p",{className:"text-sm text-dash-text-secondary leading-relaxed",children:n.description||o("noDescription")})]}),(n.kit||n.installedVersion||n.installedAt)&&u.jsxs("div",{children:[u.jsx("h3",{className:"text-[11px] font-bold uppercase tracking-wide text-dash-text-muted mb-2.5",children:o("skillMetadata")}),u.jsxs("div",{className:"grid grid-cols-2 gap-x-4 gap-y-2 text-sm",children:[n.kit&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"text-dash-text-muted",children:o("kitLabel")}),u.jsx("span",{className:"text-dash-text",children:n.kit==="engineer"?o("kitBadgeEngineer"):n.kit==="marketing"?o("kitBadgeMarketing"):n.kit})]}),n.installedVersion&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"text-dash-text-muted",children:o("installedVersionLabel")}),u.jsx("span",{className:"text-dash-text font-mono text-xs",children:n.installedVersion.replace(/^v/,"")})]}),n.installedAt&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"text-dash-text-muted",children:o("installedAtLabel")}),u.jsx("span",{className:"text-dash-text text-xs",children:new Date(n.installedAt).toLocaleDateString()})]}),n.sourceTimestamp&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"text-dash-text-muted",children:o("sourceTimestampLabel")}),u.jsx("span",{className:"text-dash-text text-xs",children:new Date(n.sourceTimestamp).toLocaleDateString()})]})]})]}),u.jsxs("div",{children:[u.jsxs("div",{className:"flex items-center justify-between mb-3",children:[u.jsx("h3",{className:"text-[11px] font-bold uppercase tracking-wide text-dash-text-muted",children:o("scopeLabel")}),u.jsxs("div",{className:"flex bg-dash-bg border border-dash-border rounded-lg overflow-hidden",children:[u.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")}),u.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")})]})]}),d&&u.jsx("div",{className:"mb-3 px-3 py-2 bg-red-500/10 border border-red-500/20 rounded-lg",children:u.jsx("p",{className:"text-xs text-red-500",children:d})}),u.jsx("div",{className:"space-y-1.5",children:g.map(k=>{const O=m.get(k.name),x=!!O,E=n.sourceAgent===k.name;return u.jsxs("div",{className:"flex items-center justify-between px-3 py-2.5 bg-dash-bg rounded-lg",children:[u.jsxs("div",{className:"flex items-center gap-2.5",children:[u.jsx(Fc,{agentName:k.name,displayName:k.displayName,size:20}),u.jsxs("div",{children:[u.jsx("div",{className:"text-sm font-medium text-dash-text",children:k.displayName}),u.jsx("div",{className:"text-[11px] text-dash-text-muted",children:E?o("skillSource"):`${o("detected")} — ${x?`${o("agentInstalled")} (${O.isGlobal?o("scopeGlobal").toLowerCase():o("scopeProject").toLowerCase()})`:o("agentNotInstalled")}`})]})]}),E?u.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")}):u.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&&u.jsx("div",{className:"space-y-1.5 mt-1.5 opacity-50",children:y.map(k=>u.jsxs("div",{className:"flex items-center justify-between px-3 py-2.5 bg-dash-bg rounded-lg",children:[u.jsxs("div",{className:"flex items-center gap-2.5",children:[u.jsx(Fc,{agentName:k.name,displayName:k.displayName,size:20}),u.jsxs("div",{children:[u.jsx("div",{className:"text-sm font-medium text-dash-text",children:k.displayName}),u.jsx("div",{className:"text-[11px] text-dash-text-muted",children:o("notDetected")})]})]}),u.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))})]})]}),u.jsxs("div",{className:"px-6 py-4 border-t border-dash-border flex gap-3",children:[u.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")}),u.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")})]})]})]})},Q8=({skill:n,installations:e,agents:t,onClick:r})=>{const{t:i}=ye(),s=e.filter(d=>d.skillName===n.id),o=s.length>0,a=t.filter(d=>d.detected),l=new Map(s.map(d=>[d.agent,d])),c=a.slice(0,3),h=Math.max(0,a.length-3);return u.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:[u.jsxs("div",{className:"min-w-0",children:[u.jsxs("div",{className:"flex items-center gap-1.5",children:[u.jsx("span",{className:"text-sm font-semibold text-dash-text truncate",children:n.name}),n.kit&&u.jsx(Ih,{kit:n.kit}),n.isCustomized&&u.jsx(Bh,{label:i("customizedBadge")})]}),u.jsx("div",{className:"text-xs text-dash-text-muted truncate max-w-xs mt-0.5",children:n.description||i("noDescription")})]}),u.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-medium",children:[u.jsx("div",{className:"w-1.5 h-1.5 rounded-full",style:{background:zt[n.category]||zt.General}}),u.jsx("span",{className:"text-dash-text-secondary",children:n.category})]}),u.jsxs("div",{className:"flex items-center gap-1",children:[c.map(d=>{const f=l.get(d.name);return u.jsx("div",{title:`${d.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:u.jsx(Fc,{agentName:d.name,displayName:d.displayName,size:14})},d.name)}),h>0&&u.jsxs("span",{className:"text-[10px] text-dash-text-muted ml-0.5",children:["+",h]})]}),u.jsx("div",{className:"flex justify-end",children:u.jsx("button",{type:"button",onClick:d=>{d.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}=ye(),[e,t]=b.useState([]),[r,i]=b.useState([]),[s,o]=b.useState([]),[a,l]=b.useState(!0),[c,h]=b.useState(!1),[d,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,O]=b.useState(null),x=b.useCallback(async(N=!1)=>{try{N?h(!0):l(!0),f(null);const[R,F,G]=await Promise.all([um(),Xx(),Zx()]);t(R),i(F.installations),o(G.agents)}catch(R){f(R instanceof Error?R.message:"Failed to load skills")}finally{l(!1),h(!1)}},[]);b.useEffect(()=>{x()},[x]);const E=b.useMemo(()=>e.map(N=>({...N,name:N.id,category:Vx[N.id]||N.category})),[e]),P=b.useCallback(async(N,R,F)=>{const J=(await Bu(N,R,F)).results.filter(se=>!se.success);if(J.length>0)throw new Error(`Failed for: ${J.map(se=>se.agent).join(", ")}`);await x(!0)},[x]),I=b.useCallback(async(N,R)=>{await ev(N,[R]),await x(!0)},[x]),L=b.useMemo(()=>{let N=E;if(v.trim()){const F=v.toLowerCase();N=N.filter(G=>G.name.toLowerCase().includes(F)||G.description?.toLowerCase().includes(F)||G.category.toLowerCase().includes(F))}C!=="all"&&(N=N.filter(F=>F.category===C));const R=[...N];return g==="a-z"?R.sort((F,G)=>F.name.localeCompare(G.name)):g==="category"?R.sort((F,G)=>{const J=F.category.localeCompare(G.category);return J!==0?J:F.name.localeCompare(G.name)}):g==="installed-first"&&R.sort((F,G)=>{const J=r.some(Y=>Y.skillName===F.name),se=r.some(Y=>Y.skillName===G.name);return J===se?F.name.localeCompare(G.name):J?-1:1}),R},[E,v,C,g,r]),B=b.useMemo(()=>{if(p!=="list")return{};const N={};for(const F of L)N[F.category]||(N[F.category]=[]),N[F.category].push(F);const R={};for(const F of Ks)N[F]&&(R[F]=N[F]);for(const F of Object.keys(N))Ks.includes(F)||(R[F]=N[F]);return R},[L,p]),z=b.useMemo(()=>{const N={all:E.length};for(const R of E)N[R.category]=(N[R.category]||0)+1;return N},[E]),W=b.useMemo(()=>{const N=new Set(r.map(F=>F.skillName)).size,R=s.filter(F=>F.detected).length;return{available:e.length,installed:N,agents:R}},[e,r,s]);return b.useEffect(()=>{const N=R=>{R.key==="/"&&document.activeElement?.tagName!=="INPUT"&&(R.preventDefault(),document.getElementById("skills-search")?.focus())};return document.addEventListener("keydown",N),()=>document.removeEventListener("keydown",N)},[]),a?u.jsx("div",{className:"flex items-center justify-center h-full",children:u.jsxs("div",{className:"text-center",children:[u.jsx("div",{className:"w-8 h-8 border-4 border-dash-accent border-t-transparent rounded-full animate-spin mx-auto mb-3"}),u.jsx("p",{className:"text-dash-text-muted",children:n("loadingSkills")})]})}):d?u.jsx("div",{className:"flex items-center justify-center h-full",children:u.jsxs("div",{className:"text-center max-w-md",children:[u.jsx("p",{className:"text-red-500 mb-3",children:d}),u.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")})]})}):u.jsxs("div",{className:"h-full flex flex-col",children:[u.jsx("div",{className:"border-b border-dash-border bg-dash-surface px-8 py-5",children:u.jsxs("div",{className:"flex items-center justify-between",children:[u.jsxs("div",{children:[u.jsx("h1",{className:"text-xl font-bold text-dash-text",children:n("skillsTitle")}),u.jsx("p",{className:"text-sm text-dash-text-muted mt-0.5",children:n("skillsSubtitle")})]}),u.jsxs("div",{className:"flex items-center gap-6",children:[u.jsxs("div",{className:"text-center",children:[u.jsx("div",{className:"text-xl font-bold text-dash-accent",children:W.available}),u.jsx("div",{className:"text-[11px] text-dash-text-muted uppercase tracking-wide",children:n("availableCount")})]}),u.jsxs("div",{className:"text-center",children:[u.jsx("div",{className:"text-xl font-bold text-dash-accent",children:W.installed}),u.jsx("div",{className:"text-[11px] text-dash-text-muted uppercase tracking-wide",children:n("installedCount")})]}),u.jsxs("div",{className:"text-center",children:[u.jsx("div",{className:"text-xl font-bold text-dash-accent",children:W.agents}),u.jsx("div",{className:"text-[11px] text-dash-text-muted uppercase tracking-wide",children:n("agentsCount")})]})]})]})}),u.jsxs("div",{className:"border-b border-dash-border bg-dash-surface px-8 py-3 space-y-2.5",children:[u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsxs("div",{className:"relative flex-1",children:[u.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:[u.jsx("circle",{cx:"11",cy:"11",r:"8"}),u.jsx("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),u.jsx("input",{id:"skills-search",type:"text",value:v,onChange:N=>S(N.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"}),u.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")})]}),u.jsx("button",{type:"button",onClick:async()=>{const N=s.filter(R=>R.detected);if(N.length===0){f(n("noAgentsDetected"));return}try{h(!0),f(null),await Promise.all(e.map(R=>Bu(R.name,N.map(F=>F.name),!0))),await x(!0)}catch(R){f(R instanceof Error?R.message:n("bulkInstallFailed"))}finally{h(!1)}},disabled:a||c||s.filter(N=>N.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")}),u.jsxs("select",{value:g,onChange:N=>y(N.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:[u.jsx("option",{value:"a-z",children:n("sortAZ")}),u.jsx("option",{value:"category",children:n("sortCategory")}),u.jsx("option",{value:"installed-first",children:n("sortInstalledFirst")})]}),u.jsxs("div",{className:"flex bg-dash-bg border border-dash-border rounded-md overflow-hidden",children:[u.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:u.jsxs("svg",{className:"w-3.5 h-3.5 stroke-current",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,children:[u.jsx("line",{x1:"8",y1:"6",x2:"21",y2:"6"}),u.jsx("line",{x1:"8",y1:"12",x2:"21",y2:"12"}),u.jsx("line",{x1:"8",y1:"18",x2:"21",y2:"18"}),u.jsx("line",{x1:"3",y1:"6",x2:"3.01",y2:"6"}),u.jsx("line",{x1:"3",y1:"12",x2:"3.01",y2:"12"}),u.jsx("line",{x1:"3",y1:"18",x2:"3.01",y2:"18"})]})}),u.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:u.jsxs("svg",{className:"w-3.5 h-3.5 stroke-current",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,children:[u.jsx("rect",{x:"3",y:"3",width:"7",height:"7"}),u.jsx("rect",{x:"14",y:"3",width:"7",height:"7"}),u.jsx("rect",{x:"3",y:"14",width:"7",height:"7"}),u.jsx("rect",{x:"14",y:"14",width:"7",height:"7"})]})})]})]}),u.jsx("div",{className:"flex gap-1.5 overflow-x-auto pb-0.5",style:{scrollbarWidth:"none"},children:["all",...Array.from(new Set(E.map(N=>N.category))).sort((N,R)=>{const F=Ks.indexOf(N),G=Ks.indexOf(R);return F===-1&&G===-1?N.localeCompare(R):F===-1?1:G===-1?-1:F-G})].map(N=>u.jsxs("button",{type:"button",onClick:()=>A(N),className:`px-3 py-1 text-xs font-medium rounded-full border transition-all whitespace-nowrap shrink-0 ${C===N?"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:[N==="all"?n("categoryAll"):N,u.jsx("span",{className:"opacity-60 ml-1 text-[10px]",children:z[N]||0})]},N))})]}),u.jsx("div",{className:"flex-1 overflow-y-auto px-8 py-6",children:L.length===0?u.jsx("div",{className:"text-center py-12",children:u.jsx("p",{className:"text-dash-text-muted",children:n("noSkillsFound")})}):p==="list"?u.jsx("div",{className:"space-y-6",children:Object.entries(B).map(([N,R])=>u.jsxs("div",{children:[u.jsxs("div",{className:"flex items-center gap-2.5 mb-3",children:[u.jsx("div",{className:"w-2 h-2 rounded-full",style:{background:zt[N]||zt.General}}),u.jsx("h2",{className:"text-[13px] font-semibold uppercase tracking-wide",style:{color:zt[N]||zt.General},children:N}),u.jsx("span",{className:"text-[11px] text-dash-text-muted ml-auto",children:n("skillsCountLabel").replace("{count}",String(R.length))}),u.jsx("div",{className:"flex-1 h-px bg-dash-border ml-3"})]}),u.jsx("div",{className:"space-y-0.5",children:R.map(F=>u.jsx(Q8,{skill:F,installations:r,agents:s,onClick:()=>O(F)},F.id))})]},N))}):u.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3",children:L.map(N=>u.jsx(RC,{skill:N,installations:r,agents:s,onClick:()=>O(N)},N.id))})}),k&&u.jsx(J8,{skill:k,installations:r,agents:s,onClose:()=>O(null),onInstall:P,onUninstall:I})]})},Z8=Sx([{path:"/",element:u.jsx(sv,{}),children:[{index:!0,element:u.jsx(_l,{to:"/config/global",replace:!0})},{path:"config/global",element:u.jsx(yC,{})},{path:"config/project/:projectId",element:u.jsx(NC,{})},{path:"project/:projectId",element:u.jsx(TC,{})},{path:"project/:projectId/config",element:u.jsx(av,{})},{path:"onboarding",element:u.jsx(AC,{})},{path:"skills",element:u.jsx(X8,{})},{path:"*",element:u.jsx(_l,{to:"/",replace:!0})}]}]),$b=document.getElementById("root");if(!$b)throw document.body.innerHTML='<div style="padding:20px;color:red;">Fatal: Root element not found</div>',new Error("Root element #root not found");Fl.createRoot($b).render(u.jsx(i1.StrictMode,{children:u.jsx($x,{children:u.jsx(Fx,{children:u.jsx(Rx,{router:Z8})})})}));
|