diff --git a/.gitignore b/.gitignore index 786b546..51b8284 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ node_modules/ apps/web/dist/ packages/sdk-ts/dist/ dist/ +!apps/api/internal/webassets/dist/ +!apps/api/internal/webassets/dist/** data/ coverage.out coverage.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e91167..28c7f5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,14 @@ ## Unreleased +- Added a public product website at the web root while keeping the chat app at + `/app` locally and on `app.clickclack.chat` when served from that host. - Added an agent-friendly ClickClack client mode to the Go binary with `login`, `logout`, `whoami`, `status`, workspace/channel listing, message send/list, and thread open/reply commands. - Scoped stored CLI credentials and workspace/channel defaults to the saved server URL, with `--user` / `CLICKCLACK_USER_ID` taking precedence over stored bearer tokens unless `--token` is explicitly supplied. -- Documented the `clickclack.chat` product domain, `docs.clickclack.chat` - docs domain, and recommended bearer-token auth flow for hosted agents. +- Documented the `clickclack.chat` product domain, `app.clickclack.chat` app + domain, `docs.clickclack.chat` docs domain, and recommended bearer-token auth + flow for hosted agents. diff --git a/README.md b/README.md index cac6a4f..1735531 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,9 @@ go run ./apps/api/cmd/clickclack serve ## Documentation -Product domain: **[clickclack.chat](https://clickclack.chat)**. Docs domain: +Product domain: **[clickclack.chat](https://clickclack.chat)**. App domain: +**[app.clickclack.chat](https://app.clickclack.chat)**, with `/app` as the +local path. Docs domain: **[docs.clickclack.chat](https://docs.clickclack.chat)**, built from `docs/` by `pnpm docs:site`. The [docs/](docs/) tree is organised so each file has a short `read_when` hint at the top — open the one that matches your change. @@ -74,8 +76,9 @@ go run ./apps/api/cmd/clickclack serve # http://localhost:8080 ``` The dev fallback boots a default user, workspace, and channel so the SPA -loads into something useful on first hit. Disable it with -`--dev-bootstrap=false` for anything that isn't a local checkout. +loads into something useful at `/app`. The root path is the public product +website. Disable it with `--dev-bootstrap=false` for anything that isn't a +local checkout. ### Two-process dev loop diff --git a/apps/api/internal/webassets/dist/assets/index-4rv34_La.js b/apps/api/internal/webassets/dist/assets/index-4rv34_La.js deleted file mode 100644 index e7c05bc..0000000 --- a/apps/api/internal/webassets/dist/assets/index-4rv34_La.js +++ /dev/null @@ -1,61 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&i(a)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();const ma=!1;var cs=Array.isArray,_a=Array.prototype.indexOf,hn=Array.prototype.includes,Rr=Array.from,va=Object.defineProperty,Gn=Object.getOwnPropertyDescriptor,us=Object.getOwnPropertyDescriptors,ba=Object.prototype,ka=Array.prototype,fi=Object.getPrototypeOf,Li=Object.isExtensible;const wa=()=>{};function ya(e){return e()}function Xr(e){for(var t=0;t{e=i,t=r});return{promise:n,resolve:e,reject:t}}const pe=2,Yn=4,Xn=8,ps=1<<24,Je=16,We=32,yt=64,Qr=128,Ce=512,te=1024,ue=2048,qe=4096,_e=8192,Ne=16384,Ht=32768,Ci=1<<25,dn=65536,Kr=1<<17,hs=1<<18,Gt=1<<19,ds=1<<20,Ke=1<<25,$t=65536,yr=1<<21,Zn=1<<22,bt=1<<23,Wn=Symbol("$state"),at=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"};function gs(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function xa(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ta(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Ea(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Sa(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Aa(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Ra(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ia(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Oa(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Da(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function La(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Ca=1,Na=2,ms=4,Ma=8,Pa=16,za=1,$a=2,le=Symbol(),_s="http://www.w3.org/1999/xhtml",Fa="http://www.w3.org/2000/svg",Ua="http://www.w3.org/1998/Math/MathML";function Ba(){console.warn("https://svelte.dev/e/derived_inert")}function Ha(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function vs(e){return e===this.v}function Ga(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function bs(e){return!Ga(e,this.v)}let Qn=!1,Wa=!1;function qa(){Qn=!0}let G=null;function gn(e){G=e}function ks(e,t=!1,n){G={p:G,i:!1,c:null,e:null,s:e,x:null,r:L,l:Qn&&!t?{s:null,u:null,$:[]}:null}}function ws(e){var t=G,n=t.e;if(n!==null){t.e=null;for(var i of n)Hs(i)}return t.i=!0,G=t.p,{}}function Kn(){return!Qn||G!==null&&G.l===null}let Ct=[];function ys(){var e=Ct;Ct=[],Xr(e)}function kt(e){if(Ct.length===0&&!qn){var t=Ct;queueMicrotask(()=>{t===Ct&&ys()})}Ct.push(e)}function ja(){for(;Ct.length>0;)ys()}function xs(e){var t=L;if(t===null)return P.f|=bt,e;if((t.f&Ht)===0&&(t.f&Yn)===0)throw e;_t(e,t)}function _t(e,t){for(;t!==null;){if((t.f&Qr)!==0){if((t.f&Ht)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Ya=-7169;function Q(e,t){e.f=e.f&Ya|t}function pi(e){(e.f&Ce)!==0||e.deps===null?Q(e,te):Q(e,qe)}function Ts(e){if(e!==null)for(const t of e)(t.f&pe)===0||(t.f&$t)===0||(t.f^=$t,Ts(t.deps))}function Es(e,t,n){(e.f&ue)!==0?t.add(e):(e.f&qe)!==0&&n.add(e),Ts(e.deps),Q(e,te)}const Dt=new Set;let O=null,He=null,Jr=null,qn=!1,Fr=!1,pn=null,kr=null;var Ni=0;let Za=1;class xt{id=Za++;current=new Map;previous=new Map;#n=new Set;#o=new Set;#e=new Set;#i=new Map;#r=new Map;#s=null;#t=[];#a=[];#c=new Set;#u=new Set;#l=new Map;#p=new Set;is_fork=!1;#d=!1;#h=new Set;#f(){return this.is_fork||this.#r.size>0}#_(){for(const i of this.#h)for(const r of i.#r.keys()){for(var t=!1,n=r;n.parent!==null;){if(this.#l.has(n)){t=!0;break}n=n.parent}if(!t)return!0}return!1}skip_effect(t){this.#l.has(t)||this.#l.set(t,{d:[],m:[]}),this.#p.delete(t)}unskip_effect(t,n=i=>this.schedule(i)){var i=this.#l.get(t);if(i){this.#l.delete(t);for(var r of i.d)Q(r,ue),n(r);for(r of i.m)Q(r,qe),n(r)}this.#p.add(t)}#g(){if(Ni++>1e3&&(Dt.delete(this),Xa()),!this.#f()){for(const o of this.#c)this.#u.delete(o),Q(o,ue),this.schedule(o);for(const o of this.#u)Q(o,qe),this.schedule(o)}const t=this.#t;this.#t=[],this.apply();var n=pn=[],i=[],r=kr=[];for(const o of t)try{this.#v(o,n,i)}catch(l){throw Rs(o),l}if(O=null,r.length>0){var s=xt.ensure();for(const o of r)s.schedule(o)}if(pn=null,kr=null,this.#f()||this.#_()){this.#m(i),this.#m(n);for(const[o,l]of this.#l)As(o,l)}else{this.#i.size===0&&Dt.delete(this),this.#c.clear(),this.#u.clear();for(const o of this.#n)o(this);this.#n.clear(),Mi(i),Mi(n),this.#s?.resolve()}var a=O;if(this.#t.length>0){const o=a??=this;o.#t.push(...this.#t.filter(l=>!o.#t.includes(l)))}a!==null&&(Dt.add(a),a.#g())}#v(t,n,i){t.f^=te;for(var r=t.first;r!==null;){var s=r.f,a=(s&(We|yt))!==0,o=a&&(s&te)!==0,l=o||(s&_e)!==0||this.#l.has(r);if(!l&&r.fn!==null){a?r.f^=te:(s&Yn)!==0?n.push(r):_n(r)&&((s&Je)!==0&&this.#u.add(r),Ut(r));var f=r.first;if(f!==null){r=f;continue}}for(;r!==null;){var u=r.next;if(u!==null){r=u;break}r=r.parent}}}#m(t){for(var n=0;n!this.current.has(h));if(r.length===0)t&&u.discard();else if(n.length>0){if(t)for(const h of this.#p)u.unskip_effect(h,d=>{(d.f&(Je|Zn))!==0?u.schedule(d):u.#m([d])});u.activate();var s=new Set,a=new Map;for(var o of n)Ss(o,r,s,a);a=new Map;var l=[...u.current.keys()].filter(h=>this.current.has(h)?this.current.get(h)[0]!==h:!0);for(const h of this.#a)(h.f&(Ne|_e|Kr))===0&&hi(h,l,a)&&((h.f&(Zn|Je))!==0?(Q(h,ue),u.schedule(h)):u.#c.add(h));if(u.#t.length>0){u.apply();for(var f of u.#t)u.#v(f,[],[]);u.#t=[]}u.deactivate()}}for(const u of Dt)u.#h.has(this)&&(u.#h.delete(this),u.#h.size===0&&!u.#f()&&(u.activate(),u.#g()))}increment(t,n){let i=this.#i.get(n)??0;if(this.#i.set(n,i+1),t){let r=this.#r.get(n)??0;this.#r.set(n,r+1)}}decrement(t,n,i){let r=this.#i.get(n)??0;if(r===1?this.#i.delete(n):this.#i.set(n,r-1),t){let s=this.#r.get(n)??0;s===1?this.#r.delete(n):this.#r.set(n,s-1)}this.#d||i||(this.#d=!0,kt(()=>{this.#d=!1,this.flush()}))}transfer_effects(t,n){for(const i of t)this.#c.add(i);for(const i of n)this.#u.add(i);t.clear(),n.clear()}oncommit(t){this.#n.add(t)}ondiscard(t){this.#o.add(t)}on_fork_commit(t){this.#e.add(t)}run_fork_commit_callbacks(){for(const t of this.#e)t(this);this.#e.clear()}settled(){return(this.#s??=fs()).promise}static ensure(){if(O===null){const t=O=new xt;Fr||(Dt.add(O),qn||kt(()=>{O===t&&t.flush()}))}return O}apply(){{He=null;return}}schedule(t){if(Jr=t,t.b?.is_pending&&(t.f&(Yn|Xn|ps))!==0&&(t.f&Ht)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var i=n.f;if(pn!==null&&n===L&&(P===null||(P.f&pe)===0))return;if((i&(yt|We))!==0){if((i&te)===0)return;n.f^=te}}this.#t.push(n)}}function Va(e){var t=qn;qn=!0;try{for(var n;;){if(ja(),O===null)return n;O.flush()}}finally{qn=t}}function Xa(){try{Ra()}catch(e){_t(e,Jr)}}let st=null;function Mi(e){var t=e.length;if(t!==0){for(var n=0;n0)){Mt.clear();for(const r of st){if((r.f&(Ne|_e))!==0)continue;const s=[r];let a=r.parent;for(;a!==null;)st.has(a)&&(st.delete(a),s.push(a)),a=a.parent;for(let o=s.length-1;o>=0;o--){const l=s[o];(l.f&(Ne|_e))===0&&Ut(l)}}st.clear()}}st=null}}function Ss(e,t,n,i){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const r of e.reactions){const s=r.f;(s&pe)!==0?Ss(r,t,n,i):(s&(Zn|Je))!==0&&(s&ue)===0&&hi(r,t,i)&&(Q(r,ue),di(r))}}function hi(e,t,n){const i=n.get(e);if(i!==void 0)return i;if(e.deps!==null)for(const r of e.deps){if(hn.call(t,r))return!0;if((r.f&pe)!==0&&hi(r,t,n))return n.set(r,!0),!0}return n.set(e,!1),!1}function di(e){O.schedule(e)}function As(e,t){if(!((e.f&We)!==0&&(e.f&te)!==0)){(e.f&ue)!==0?t.d.push(e):(e.f&qe)!==0&&t.m.push(e),Q(e,te);for(var n=e.first;n!==null;)As(n,t),n=n.next}}function Rs(e){Q(e,te);for(var t=e.first;t!==null;)Rs(t),t=t.next}function Qa(e){let t=0,n=Ft(0),i;return()=>{_i()&&(p(n),Or(()=>(t===0&&(i=$(()=>e(()=>jn(n)))),t+=1,()=>{kt(()=>{t-=1,t===0&&(i?.(),i=void 0,jn(n))})})))}}var Ka=dn|Gt;function Ja(e,t,n,i){new el(e,t,n,i)}class el{parent;is_pending=!1;transform_error;#n;#o=null;#e;#i;#r;#s=null;#t=null;#a=null;#c=null;#u=0;#l=0;#p=!1;#d=new Set;#h=new Set;#f=null;#_=Qa(()=>(this.#f=Ft(this.#u),()=>{this.#f=null}));constructor(t,n,i,r){this.#n=t,this.#e=n,this.#i=s=>{var a=L;a.b=this,a.f|=Qr,i(s)},this.parent=L.b,this.transform_error=r??this.parent?.transform_error??(s=>s),this.#r=Dr(()=>{this.#b()},Ka)}#g(){try{this.#s=Le(()=>this.#i(this.#n))}catch(t){this.error(t)}}#v(t){const n=this.#e.failed;n&&(this.#a=Le(()=>{n(this.#n,()=>t,()=>()=>{})}))}#m(){const t=this.#e.pending;t&&(this.is_pending=!0,this.#t=Le(()=>t(this.#n)),kt(()=>{var n=this.#c=document.createDocumentFragment(),i=wt();n.append(i),this.#s=this.#w(()=>Le(()=>this.#i(i))),this.#l===0&&(this.#n.before(n),this.#c=null,Pt(this.#t,()=>{this.#t=null}),this.#k(O))}))}#b(){try{if(this.is_pending=this.has_pending_snippet(),this.#l=0,this.#u=0,this.#s=Le(()=>{this.#i(this.#n)}),this.#l>0){var t=this.#c=document.createDocumentFragment();ki(this.#s,t);const n=this.#e.pending;this.#t=Le(()=>n(this.#n))}else this.#k(O)}catch(n){this.error(n)}}#k(t){this.is_pending=!1,t.transfer_effects(this.#d,this.#h)}defer_effect(t){Es(t,this.#d,this.#h)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#e.pending}#w(t){var n=L,i=P,r=G;ze(this.#r),Pe(this.#r),gn(this.#r.ctx);try{return xt.ensure(),t()}catch(s){return xs(s),null}finally{ze(n),Pe(i),gn(r)}}#y(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#y(t,n);return}this.#l+=t,this.#l===0&&(this.#k(n),this.#t&&Pt(this.#t,()=>{this.#t=null}),this.#c&&(this.#n.before(this.#c),this.#c=null))}update_pending_count(t,n){this.#y(t,n),this.#u+=t,!(!this.#f||this.#p)&&(this.#p=!0,kt(()=>{this.#p=!1,this.#f&&mn(this.#f,this.#u)}))}get_effect_pending(){return this.#_(),p(this.#f)}error(t){if(!this.#e.onerror&&!this.#e.failed)throw t;O?.is_fork?(this.#s&&O.skip_effect(this.#s),this.#t&&O.skip_effect(this.#t),this.#a&&O.skip_effect(this.#a),O.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#s&&(Te(this.#s),this.#s=null),this.#t&&(Te(this.#t),this.#t=null),this.#a&&(Te(this.#a),this.#a=null);var n=this.#e.onerror;let i=this.#e.failed;var r=!1,s=!1;const a=()=>{if(r){Ha();return}r=!0,s&&La(),this.#a!==null&&Pt(this.#a,()=>{this.#a=null}),this.#w(()=>{this.#b()})},o=l=>{try{s=!0,n?.(l,a),s=!1}catch(f){_t(f,this.#r&&this.#r.parent)}i&&(this.#a=this.#w(()=>{try{return Le(()=>{var f=L;f.b=this,f.f|=Qr,i(this.#n,()=>l,()=>a)})}catch(f){return _t(f,this.#r.parent),null}}))};kt(()=>{var l;try{l=this.transform_error(t)}catch(f){_t(f,this.#r&&this.#r.parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(o,f=>_t(f,this.#r&&this.#r.parent)):o(l)})}}function tl(e,t,n,i){const r=Kn()?gi:Os;var s=e.filter(d=>!d.settled);if(n.length===0&&s.length===0){i(t.map(r));return}var a=L,o=nl(),l=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(d=>d.promise)):null;function f(d){o();try{i(d)}catch(v){(a.f&Ne)===0&&_t(v,a)}xr()}if(n.length===0){l.then(()=>f(t.map(r)));return}var u=Is();function h(){Promise.all(n.map(d=>rl(d))).then(d=>f([...t.map(r),...d])).catch(d=>_t(d,a)).finally(()=>u())}l?l.then(()=>{o(),h(),xr()}):h()}function nl(){var e=L,t=P,n=G,i=O;return function(s=!0){ze(e),Pe(t),gn(n),s&&(e.f&Ne)===0&&(i?.activate(),i?.apply())}}function xr(e=!0){ze(null),Pe(null),gn(null),e&&O?.deactivate()}function Is(){var e=L,t=e.b,n=O,i=t.is_rendered();return t.update_pending_count(1,n),n.increment(i,e),(r=!1)=>{t.update_pending_count(-1,n),n.decrement(i,e,r)}}function gi(e){var t=pe|ue;return L!==null&&(L.f|=Gt),{ctx:G,deps:null,effects:null,equals:vs,f:t,fn:e,reactions:null,rv:0,v:le,wv:0,parent:L,ac:null}}function rl(e,t,n){let i=L;i===null&&xa();var r=void 0,s=Ft(le),a=!P,o=new Map;return ml(()=>{var l=L,f=fs();r=f.promise;try{Promise.resolve(e()).then(f.resolve,f.reject).finally(xr)}catch(v){f.reject(v),xr()}var u=O;if(a){if((l.f&Ht)!==0)var h=Is();if(i.b.is_rendered())o.get(u)?.reject(at),o.delete(u);else{for(const v of o.values())v.reject(at);o.clear()}o.set(u,f)}const d=(v,_=void 0)=>{if(h){var T=_===at;h(T)}if(!(_===at||(l.f&Ne)!==0)){if(u.activate(),_)s.f|=bt,mn(s,_);else{(s.f&bt)!==0&&(s.f^=bt),mn(s,v);for(const[b,S]of o){if(o.delete(b),b===u)break;S.reject(at)}}u.deactivate()}};f.promise.then(d,v=>d(null,v||"unknown"))}),Bs(()=>{for(const l of o.values())l.reject(at)}),new Promise(l=>{function f(u){function h(){u===r?l(s):f(r)}u.then(h,h)}f(r)})}function Os(e){const t=gi(e);return t.equals=bs,t}function il(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n0&&!Cs&&al()}return t}function al(){Cs=!1;for(const e of ei)(e.f&te)!==0&&Q(e,qe),_n(e)&&Ut(e);ei.clear()}function jn(e){y(e,e.v+1)}function Ns(e,t,n){var i=e.reactions;if(i!==null)for(var r=Kn(),s=i.length,a=0;a{if(zt===s)return o();var l=P,f=zt;Pe(null),Fi(s);var u=o();return Pe(l),Fi(f),u};return i&&n.set("length",gt(e.length)),new Proxy(e,{defineProperty(o,l,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&Ia();var u=n.get(l);return u===void 0?a(()=>{var h=gt(f.value);return n.set(l,h),h}):y(u,f.value,!0),!0},deleteProperty(o,l){var f=n.get(l);if(f===void 0){if(l in o){const u=a(()=>gt(le));n.set(l,u),jn(r)}}else y(f,le),jn(r);return!0},get(o,l,f){if(l===Wn)return e;var u=n.get(l),h=l in o;if(u===void 0&&(!h||Gn(o,l)?.writable)&&(u=a(()=>{var v=$n(h?o[l]:le),_=gt(v);return _}),n.set(l,u)),u!==void 0){var d=p(u);return d===le?void 0:d}return Reflect.get(o,l,f)},getOwnPropertyDescriptor(o,l){var f=Reflect.getOwnPropertyDescriptor(o,l);if(f&&"value"in f){var u=n.get(l);u&&(f.value=p(u))}else if(f===void 0){var h=n.get(l),d=h?.v;if(h!==void 0&&d!==le)return{enumerable:!0,configurable:!0,value:d,writable:!0}}return f},has(o,l){if(l===Wn)return!0;var f=n.get(l),u=f!==void 0&&f.v!==le||Reflect.has(o,l);if(f!==void 0||L!==null&&(!u||Gn(o,l)?.writable)){f===void 0&&(f=a(()=>{var d=u?$n(o[l]):le,v=gt(d);return v}),n.set(l,f));var h=p(f);if(h===le)return!1}return u},set(o,l,f,u){var h=n.get(l),d=l in o;if(i&&l==="length")for(var v=f;vgt(le)),n.set(v+"",_))}if(h===void 0)(!d||Gn(o,l)?.writable)&&(h=a(()=>gt(void 0)),y(h,$n(f)),n.set(l,h));else{d=h.v!==le;var T=a(()=>$n(f));y(h,T)}var b=Reflect.getOwnPropertyDescriptor(o,l);if(b?.set&&b.set.call(u,f),!d){if(i&&typeof l=="string"){var S=n.get("length"),U=Number(l);Number.isInteger(U)&&U>=S.v&&y(S,U+1)}jn(r)}return!0},ownKeys(o){p(r);var l=Reflect.ownKeys(o).filter(h=>{var d=n.get(h);return d===void 0||d.v!==le});for(var[f,u]of n)u.v!==le&&!(f in o)&&l.push(f);return l},setPrototypeOf(){Oa()}})}var Pi,Ms,Ps,zs;function ll(){if(Pi===void 0){Pi=window,Ms=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Ps=Gn(t,"firstChild").get,zs=Gn(t,"nextSibling").get,Li(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Li(n)&&(n.__t=void 0)}}function wt(e=""){return document.createTextNode(e)}function vt(e){return Ps.call(e)}function Jn(e){return zs.call(e)}function E(e,t){return vt(e)}function ol(e,t=!1){{var n=vt(e);return n instanceof Comment&&n.data===""?Jn(n):n}}function I(e,t=1,n=!1){let i=e;for(;t--;)i=Jn(i);return i}function cl(e){e.textContent=""}function $s(){return!1}function Fs(e,t,n){return document.createElementNS(t??_s,e,void 0)}let zi=!1;function ul(){zi||(zi=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Ir(e){var t=P,n=L;Pe(null),ze(null);try{return e()}finally{Pe(t),ze(n)}}function fl(e,t,n,i=n){e.addEventListener(t,()=>Ir(n));const r=e.__on_r;r?e.__on_r=()=>{r(),i(!0)}:e.__on_r=()=>i(!0),ul()}function Us(e){L===null&&(P===null&&Aa(),Sa()),Tt&&Ea()}function pl(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function lt(e,t){var n=L;n!==null&&(n.f&_e)!==0&&(e|=_e);var i={ctx:G,deps:null,nodes:null,f:e|ue|Ce,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};O?.register_created_effect(i);var r=i;if((e&Yn)!==0)pn!==null?pn.push(i):xt.ensure().schedule(i);else if(t!==null){try{Ut(i)}catch(a){throw Te(i),a}r.deps===null&&r.teardown===null&&r.nodes===null&&r.first===r.last&&(r.f&Gt)===0&&(r=r.first,(e&Je)!==0&&(e&dn)!==0&&r!==null&&(r.f|=dn))}if(r!==null&&(r.parent=n,n!==null&&pl(r,n),P!==null&&(P.f&pe)!==0&&(e&yt)===0)){var s=P;(s.effects??=[]).push(r)}return i}function _i(){return P!==null&&!Ge}function Bs(e){const t=lt(Xn,null);return Q(t,te),t.teardown=e,t}function ti(e){Us();var t=L.f,n=!P&&(t&We)!==0&&(t&Ht)===0;if(n){var i=G;(i.e??=[]).push(e)}else return Hs(e)}function Hs(e){return lt(Yn|ds,e)}function hl(e){return Us(),lt(Xn|ds,e)}function dl(e){xt.ensure();const t=lt(yt|Gt,e);return(n={})=>new Promise(i=>{n.outro?Pt(t,()=>{Te(t),i(void 0)}):(Te(t),i(void 0))})}function Ur(e,t){var n=G,i={effect:null,ran:!1,deps:e};n.l.$.push(i),i.effect=Or(()=>{if(e(),!i.ran){i.ran=!0;var r=L;try{ze(r.parent),$(t)}finally{ze(r)}}})}function gl(){var e=G;Or(()=>{for(var t of e.l.$){t.deps();var n=t.effect;(n.f&te)!==0&&n.deps!==null&&Q(n,qe),_n(n)&&Ut(n),t.ran=!1}})}function ml(e){return lt(Zn|Gt,e)}function Or(e,t=0){return lt(Xn|t,e)}function Xe(e,t=[],n=[],i=[]){tl(i,t,n,r=>{lt(Xn,()=>e(...r.map(p)))})}function Dr(e,t=0){var n=lt(Je|t,e);return n}function Le(e){return lt(We|Gt,e)}function Gs(e){var t=e.teardown;if(t!==null){const n=Tt,i=P;$i(!0),Pe(null);try{t.call(null)}finally{$i(n),Pe(i)}}}function vi(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const r=n.ac;r!==null&&Ir(()=>{r.abort(at)});var i=n.next;(n.f&yt)!==0?n.parent=null:Te(n,t),n=i}}function _l(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&We)===0&&Te(t),t=n}}function Te(e,t=!0){var n=!1;(t||(e.f&hs)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Ws(e.nodes.start,e.nodes.end),n=!0),Q(e,Ci),vi(e,t&&!n),Vn(e,0);var i=e.nodes&&e.nodes.t;if(i!==null)for(const s of i)s.stop();Gs(e),e.f^=Ci,e.f|=Ne;var r=e.parent;r!==null&&r.first!==null&&qs(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Ws(e,t){for(;e!==null;){var n=e===t?null:Jn(e);e.remove(),e=n}}function qs(e){var t=e.parent,n=e.prev,i=e.next;n!==null&&(n.next=i),i!==null&&(i.prev=n),t!==null&&(t.first===e&&(t.first=i),t.last===e&&(t.last=n))}function Pt(e,t,n=!0){var i=[];js(e,i,!0);var r=()=>{n&&Te(e),t&&t()},s=i.length;if(s>0){var a=()=>--s||r();for(var o of i)o.out(a)}else r()}function js(e,t,n){if((e.f&_e)===0){e.f^=_e;var i=e.nodes&&e.nodes.t;if(i!==null)for(const o of i)(o.is_global||n)&&t.push(o);for(var r=e.first;r!==null;){var s=r.next;if((r.f&yt)===0){var a=(r.f&dn)!==0||(r.f&We)!==0&&(e.f&Je)!==0;js(r,t,a?n:!1)}r=s}}}function bi(e){Ys(e,!0)}function Ys(e,t){if((e.f&_e)!==0){e.f^=_e,(e.f&te)===0&&(Q(e,ue),xt.ensure().schedule(e));for(var n=e.first;n!==null;){var i=n.next,r=(n.f&dn)!==0||(n.f&We)!==0;Ys(n,r?t:!1),n=i}var s=e.nodes&&e.nodes.t;if(s!==null)for(const a of s)(a.is_global||t)&&a.in()}}function ki(e,t){if(e.nodes)for(var n=e.nodes.start,i=e.nodes.end;n!==null;){var r=n===i?null:Jn(n);t.append(n),n=r}}let wr=!1,Tt=!1;function $i(e){Tt=e}let P=null,Ge=!1;function Pe(e){P=e}let L=null;function ze(e){L=e}let Me=null;function vl(e){P!==null&&(Me===null?Me=[e]:Me.push(e))}let xe=null,Ie=0,De=null;function bl(e){De=e}let Zs=1,Nt=0,zt=Nt;function Fi(e){zt=e}function Vs(){return++Zs}function _n(e){var t=e.f;if((t&ue)!==0)return!0;if(t&pe&&(e.f&=~$t),(t&qe)!==0){for(var n=e.deps,i=n.length,r=0;re.wv)return!0}(t&Ce)!==0&&He===null&&Q(e,te)}return!1}function Xs(e,t,n=!0){var i=e.reactions;if(i!==null&&!(Me!==null&&hn.call(Me,e)))for(var r=0;r{e.ac.abort(at)}),e.ac=null);try{e.f|=yr;var u=e.fn,h=u();e.f|=Ht;var d=e.deps,v=O?.is_fork;if(xe!==null){var _;if(v||Vn(e,Ie),d!==null&&Ie>0)for(d.length=Ie+xe.length,_=0;_n?.call(this,s))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?kt(()=>{t.addEventListener(e,r,i)}):t.addEventListener(e,r,i),r}function rn(e,t,n,i,r){var s={capture:i,passive:r},a=Tl(e,t,n,s);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Bs(()=>{t.removeEventListener(e,a,s)})}function it(e,t,n){(t[Fn]??={})[e]=n}function El(e){for(var t=0;t{throw b});throw d}}finally{e[Fn]=t,delete e.currentTarget,Pe(u),ze(h)}}}const Sl=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Al(e){return Sl?.createHTML(e)??e}function Rl(e){var t=Fs("template");return t.innerHTML=Al(e.replaceAll("","")),t.content}function Tr(e,t){var n=L;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function Oe(e,t){var n=(t&za)!==0,i=(t&$a)!==0,r,s=!e.startsWith("");return()=>{r===void 0&&(r=Rl(s?e:""+e),n||(r=vt(r)));var a=i||Ms?document.importNode(r,!0):r.cloneNode(!0);if(n){var o=vt(a),l=a.lastChild;Tr(o,l)}else Tr(a,a);return a}}function Re(e,t){e!==null&&e.before(t)}function oe(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function Il(e,t){return Ol(e,t)}const dr=new Map;function Ol(e,{target:t,anchor:n,props:i={},events:r,context:s,intro:a=!0,transformError:o}){ll();var l=void 0,f=dl(()=>{var u=n??t.appendChild(wt());Ja(u,{pending:()=>{}},v=>{ks({});var _=G;s&&(_.c=s),r&&(i.$$events=r),l=e(v,i)||{},ws()},o);var h=new Set,d=v=>{for(var _=0;_{for(var v of h)for(const b of[t,document]){var _=dr.get(b),T=_.get(v);--T==0?(b.removeEventListener(v,ii),_.delete(v),_.size===0&&dr.delete(b)):_.set(v,T)}ri.delete(d),u!==n&&u.parentNode?.removeChild(u)}});return Dl.set(l,f),l}let Dl=new WeakMap;class Ll{anchor;#n=new Map;#o=new Map;#e=new Map;#i=new Set;#r=!0;constructor(t,n=!0){this.anchor=t,this.#r=n}#s=t=>{if(this.#n.has(t)){var n=this.#n.get(t),i=this.#o.get(n);if(i)bi(i),this.#i.delete(n);else{var r=this.#e.get(n);r&&(this.#o.set(n,r.effect),this.#e.delete(n),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),i=r.effect)}for(const[s,a]of this.#n){if(this.#n.delete(s),s===t)break;const o=this.#e.get(a);o&&(Te(o.effect),this.#e.delete(a))}for(const[s,a]of this.#o){if(s===n||this.#i.has(s))continue;const o=()=>{if(Array.from(this.#n.values()).includes(s)){var f=document.createDocumentFragment();ki(a,f),f.append(wt()),this.#e.set(s,{effect:a,fragment:f})}else Te(a);this.#i.delete(s),this.#o.delete(s)};this.#r||!i?(this.#i.add(s),Pt(a,o,!1)):o()}}};#t=t=>{this.#n.delete(t);const n=Array.from(this.#n.values());for(const[i,r]of this.#e)n.includes(i)||(Te(r.effect),this.#e.delete(i))};ensure(t,n){var i=O,r=$s();if(n&&!this.#o.has(t)&&!this.#e.has(t))if(r){var s=document.createDocumentFragment(),a=wt();s.append(a),this.#e.set(t,{effect:Le(()=>n(a)),fragment:s})}else this.#o.set(t,Le(()=>n(this.anchor)));if(this.#n.set(i,t),r){for(const[o,l]of this.#o)o===t?i.unskip_effect(l):i.skip_effect(l);for(const[o,l]of this.#e)o===t?i.unskip_effect(l.effect):i.skip_effect(l.effect);i.oncommit(this.#s),i.ondiscard(this.#t)}else this.#s(i)}}function gr(e,t,n=!1){var i=new Ll(e),r=n?dn:0;function s(a,o){i.ensure(a,o)}Dr(()=>{var a=!1;t((o,l=0)=>{a=!0,s(l,o)}),a||s(-1,null)},r)}function Br(e,t){return t}function Cl(e,t,n){for(var i=[],r=t.length,s,a=t.length,o=0;o{if(s){if(s.pending.delete(h),s.done.add(h),s.pending.size===0){var d=e.outrogroups;si(e,Rr(s.done)),d.delete(s),d.size===0&&(e.outrogroups=null)}}else a-=1},!1)}if(a===0){var l=i.length===0&&n!==null;if(l){var f=n,u=f.parentNode;cl(u),u.append(f),e.items.clear()}si(e,t,!l)}else s={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(s)}function si(e,t,n=!0){var i;if(e.pending.size>0){i=new Set;for(const a of e.pending.values())for(const o of a)i.add(e.items.get(o).e)}for(var r=0;r{var N=n();return cs(N)?N:N==null?[]:Rr(N)}),d,v=new Map,_=!0;function T(N){(U.effect.f&Ne)===0&&(U.pending.delete(N),U.fallback=u,Nl(U,d,a,t,i),u!==null&&(d.length===0?(u.f&Ke)===0?bi(u):(u.f^=Ke,Un(u,null,a)):Pt(u,()=>{u=null})))}function b(N){U.pending.delete(N)}var S=Dr(()=>{d=p(h);for(var N=d.length,D=new Set,H=O,W=$s(),q=0;qs(a)):(u=Le(()=>s(Bi??=wt())),u.f|=Ke)),N>D.size&&Ta(),!_)if(v.set(H,D),W){for(const[re,ot]of o)D.has(re)||H.skip_effect(ot.e);H.oncommit(T),H.ondiscard(b)}else T(H);p(h)}),U={effect:S,items:o,pending:v,outrogroups:null,fallback:u};_=!1}function On(e){for(;e!==null&&(e.f&We)===0;)e=e.next;return e}function Nl(e,t,n,i,r){var s=(i&Ma)!==0,a=t.length,o=e.items,l=On(e.effect.first),f,u=null,h,d=[],v=[],_,T,b,S;if(s)for(S=0;S0){var ae=(i&ms)!==0&&a===0?n:null;if(s){for(S=0;S{if(h!==void 0)for(b of h)b.nodes?.a?.apply()})}function Ml(e,t,n,i,r,s,a,o){var l=(a&Ca)!==0?(a&Pa)===0?B(n,!1,!1):Ft(n):null,f=(a&Na)!==0?Ft(r):null;return{v:l,i:f,e:Le(()=>(s(t,l??n,f??r,o),()=>{e.delete(i)}))}}function Un(e,t,n){if(e.nodes)for(var i=e.nodes.start,r=e.nodes.end,s=t&&(t.f&Ke)===0?t.nodes.start:n;i!==null;){var a=Jn(i);if(s.before(i),i===r)return;i=a}}function mt(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Hr(e,t,n=!1,i=!1,r=!1,s=!1){var a=e,o="";if(n)var l=e;Xe(()=>{var f=L;if(o!==(o=t()??"")){if(n){f.nodes=null,l.innerHTML=o,o!==""&&Tr(vt(l),l.lastChild);return}if(f.nodes!==null&&(Ws(f.nodes.start,f.nodes.end),f.nodes=null),o!==""){var u=i?Fa:r?Ua:void 0,h=Fs(i?"svg":r?"math":"template",u);h.innerHTML=o;var d=i||r?h:h.content;if(Tr(vt(d),d.lastChild),i||r)for(;vt(d);)a.before(vt(d));else a.before(d)}}})}function Pl(e,t){var n;n=document.head.appendChild(wt()),Dr(()=>t(n),hs|Gt)}const Hi=[...` -\r\f \v\uFEFF`];function zl(e,t,n){var i=e==null?"":""+e;if(n){for(var r of Object.keys(n))if(n[r])i=i?i+" "+r:r;else if(i.length)for(var s=r.length,a=0;(a=i.indexOf(r,a))>=0;){var o=a+s;(a===0||Hi.includes(i[a-1]))&&(o===i.length||Hi.includes(i[o]))?i=(a===0?"":i.substring(0,a))+i.substring(o+1):a=o}}return i===""?null:i}function Dn(e,t,n,i,r,s){var a=e.__className;if(a!==n||a===void 0){var o=zl(n,i,s);o==null?e.removeAttribute("class"):e.className=o,e.__className=n}else if(s&&r!==s)for(var l in s){var f=!!s[l];(r==null||f!==!!r[l])&&e.classList.toggle(l,f)}return s}const $l=Symbol("is custom element"),Fl=Symbol("is html");function Ul(e,t,n,i){var r=Bl(e);r[t]!==(r[t]=n)&&(n==null?e.removeAttribute(t):typeof n!="string"&&Hl(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Bl(e){return e.__attributes??={[$l]:e.nodeName.includes("-"),[Fl]:e.namespaceURI===_s}}var Gi=new Map;function Hl(e){var t=e.getAttribute("is")||e.nodeName,n=Gi.get(t);if(n)return n;Gi.set(t,n=[]);for(var i,r=e,s=Element.prototype;s!==r;){i=us(r);for(var a in i)i[a].set&&n.push(a);r=fi(r)}return n}function an(e,t,n=t){var i=new WeakSet;fl(e,"input",async r=>{var s=r?e.defaultValue:e.value;if(s=Gr(e)?Wr(s):s,n(s),O!==null&&i.add(O),await wl(),s!==(s=t())){var a=e.selectionStart,o=e.selectionEnd,l=e.value.length;if(e.value=s??"",o!==null){var f=e.value.length;a===o&&o===l&&f>l?(e.selectionStart=f,e.selectionEnd=f):(e.selectionStart=a,e.selectionEnd=Math.min(o,f))}}}),$(t)==null&&e.value&&(n(Gr(e)?Wr(e.value):e.value),O!==null&&i.add(O)),Or(()=>{var r=t();if(e===document.activeElement){var s=O;if(i.has(s))return}Gr(e)&&r===Wr(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function Gr(e){var t=e.type;return t==="number"||t==="range"}function Wr(e){return e===""?null:+e}function Gl(e=!1){const t=G,n=t.l.u;if(!n)return;let i=()=>cn(t.s);if(e){let r=0,s={};const a=gi(()=>{let o=!1;const l=t.s;for(const f in l)l[f]!==s[f]&&(s[f]=l[f],o=!0);return o&&r++,r});i=()=>p(a)}n.b.length&&hl(()=>{Wi(t,i),Xr(n.b)}),ti(()=>{const r=$(()=>n.m.map(ya));return()=>{for(const s of r)typeof s=="function"&&s()}}),n.a.length&&ti(()=>{Wi(t,i),Xr(n.a)})}function Wi(e,t){if(e.l.s)for(const n of e.l.s)p(n);t()}function ta(e){G===null&&gs(),Qn&&G.l!==null?ql(G).m.push(e):ti(()=>{const t=$(e);if(typeof t=="function")return t})}function Wl(e){G===null&&gs(),ta(()=>()=>$(e))}function ql(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const jl="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(jl);qa();async function de(e,t={}){const n=new Headers(t.headers);n.set("Accept","application/json"),t.body&&!(t.body instanceof FormData)&&n.set("Content-Type","application/json");const i=await fetch(e,{...t,headers:n});if(!i.ok)throw new Error(await i.text());return i.json()}const{entries:na,setPrototypeOf:qi,isFrozen:Yl,getPrototypeOf:Zl,getOwnPropertyDescriptor:Vl}=Object;let{freeze:ve,seal:$e,create:un}=Object,{apply:ai,construct:li}=typeof Reflect<"u"&&Reflect;ve||(ve=function(t){return t});$e||($e=function(t){return t});ai||(ai=function(t,n){for(var i=arguments.length,r=new Array(i>2?i-2:0),s=2;s1?n-1:0),r=1;r"u"?null:ne(BigInt.prototype.toString),Xi=typeof Symbol>"u"?null:ne(Symbol.prototype.toString),X=ne(Object.prototype.hasOwnProperty),Nn=ne(Object.prototype.toString),ce=ne(RegExp.prototype.test),mr=to(TypeError);function ne(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r2&&arguments[2]!==void 0?arguments[2]:Bn;if(qi&&qi(e,null),!ge(t))return e;let i=t.length;for(;i--;){let r=t[i];if(typeof r=="string"){const s=n(r);s!==r&&(Yl(t)||(t[i]=s),r=s)}e[r]=!0}return e}function no(e){for(let t=0;t/gm),co=$e(/\$\{[\w\W]*/gm),uo=$e(/^data-[\-\w.\u00B7-\uFFFF]+$/),fo=$e(/^aria-[\-\w]+$/),ra=$e(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),po=$e(/^(?:\w+script|data):/i),ho=$e(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ia=$e(/^html$/i),go=$e(/^[a-z][.\w]*(-[.\w]+)+$/i);var ts=Object.freeze({__proto__:null,ARIA_ATTR:fo,ATTR_WHITESPACE:ho,CUSTOM_ELEMENT:go,DATA_ATTR:uo,DOCTYPE_NAME:ia,ERB_EXPR:oo,IS_ALLOWED_URI:ra,IS_SCRIPT_OR_DATA:po,MUSTACHE_EXPR:lo,TMPLIT_EXPR:co});const Mn={element:1,text:3,progressingInstruction:7,comment:8,document:9},mo=function(){return typeof window>"u"?null:window},_o=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null;const r="data-tt-policy-suffix";n&&n.hasAttribute(r)&&(i=n.getAttribute(r));const s="dompurify"+(i?"#"+i:"");try{return t.createPolicy(s,{createHTML(a){return a},createScriptURL(a){return a}})}catch{return console.warn("TrustedTypes policy "+s+" could not be created."),null}},ns=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function sa(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:mo();const t=x=>sa(x);if(t.version="3.4.2",t.removed=[],!e||!e.document||e.document.nodeType!==Mn.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e;const i=n,r=i.currentScript,{DocumentFragment:s,HTMLTemplateElement:a,Node:o,Element:l,NodeFilter:f,NamedNodeMap:u=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:h,DOMParser:d,trustedTypes:v}=e,_=l.prototype,T=fn(_,"cloneNode"),b=fn(_,"remove"),S=fn(_,"nextSibling"),U=fn(_,"childNodes"),N=fn(_,"parentNode");if(typeof a=="function"){const x=n.createElement("template");x.content&&x.content.ownerDocument&&(n=x.content.ownerDocument)}let D,H="";const{implementation:W,createNodeIterator:q,createDocumentFragment:be,getElementsByTagName:ae}=n,{importNode:Z}=i;let re=ns();t.isSupported=typeof na=="function"&&typeof N=="function"&&W&&W.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:ot,ERB_EXPR:qt,TMPLIT_EXPR:et,DATA_ATTR:Nr,ARIA_ATTR:je,IS_SCRIPT_OR_DATA:tr,ATTR_WHITESPACE:bn,CUSTOM_ELEMENT:nr}=ts;let{IS_ALLOWED_URI:rr}=ts,K=null;const kn=R({},[...Qi,...jr,...Yr,...Zr,...Ki]);let ie=null;const Et=R({},[...Ji,...Vr,...es,..._r]);let j=Object.seal(un(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ct=null,St=null;const Fe=Object.seal(un(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let ir=!0,wn=!0,sr=!1,yn=!0,Ye=!1,ut=!0,tt=!1,jt=!1,Yt=!1,nt=!1,Zt=!1,Vt=!1,xn=!0,Tn=!1;const ar="user-content-";let Xt=!0,ft=!1,rt={},Ee=null;const En=R({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let lr=null;const or=R({},["audio","video","img","source","image","track"]);let At=null;const cr=R({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Rt="http://www.w3.org/1998/Math/MathML",Qt="http://www.w3.org/2000/svg",Se="http://www.w3.org/1999/xhtml";let pt=Se,Kt=!1,Jt=null;const Mr=R({},[Rt,Qt,Se],qr);let Sn=R({},["mi","mo","mn","ms","mtext"]),en=R({},["annotation-xml"]);const ur=R({},["title","style","font","a","script"]);let It=null;const fr=["application/xhtml+xml","text/html"],Pr="text/html";let V=null,ht=null;const zr=n.createElement("form"),An=function(c){return c instanceof RegExp||c instanceof Function},tn=function(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(ht&&ht===c)return;(!c||typeof c!="object")&&(c={}),c=ye(c),It=fr.indexOf(c.PARSER_MEDIA_TYPE)===-1?Pr:c.PARSER_MEDIA_TYPE,V=It==="application/xhtml+xml"?qr:Bn,K=X(c,"ALLOWED_TAGS")&&ge(c.ALLOWED_TAGS)?R({},c.ALLOWED_TAGS,V):kn,ie=X(c,"ALLOWED_ATTR")&&ge(c.ALLOWED_ATTR)?R({},c.ALLOWED_ATTR,V):Et,Jt=X(c,"ALLOWED_NAMESPACES")&&ge(c.ALLOWED_NAMESPACES)?R({},c.ALLOWED_NAMESPACES,qr):Mr,At=X(c,"ADD_URI_SAFE_ATTR")&&ge(c.ADD_URI_SAFE_ATTR)?R(ye(cr),c.ADD_URI_SAFE_ATTR,V):cr,lr=X(c,"ADD_DATA_URI_TAGS")&&ge(c.ADD_DATA_URI_TAGS)?R(ye(or),c.ADD_DATA_URI_TAGS,V):or,Ee=X(c,"FORBID_CONTENTS")&&ge(c.FORBID_CONTENTS)?R({},c.FORBID_CONTENTS,V):En,ct=X(c,"FORBID_TAGS")&&ge(c.FORBID_TAGS)?R({},c.FORBID_TAGS,V):ye({}),St=X(c,"FORBID_ATTR")&&ge(c.FORBID_ATTR)?R({},c.FORBID_ATTR,V):ye({}),rt=X(c,"USE_PROFILES")?c.USE_PROFILES&&typeof c.USE_PROFILES=="object"?ye(c.USE_PROFILES):c.USE_PROFILES:!1,ir=c.ALLOW_ARIA_ATTR!==!1,wn=c.ALLOW_DATA_ATTR!==!1,sr=c.ALLOW_UNKNOWN_PROTOCOLS||!1,yn=c.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ye=c.SAFE_FOR_TEMPLATES||!1,ut=c.SAFE_FOR_XML!==!1,tt=c.WHOLE_DOCUMENT||!1,nt=c.RETURN_DOM||!1,Zt=c.RETURN_DOM_FRAGMENT||!1,Vt=c.RETURN_TRUSTED_TYPE||!1,Yt=c.FORCE_BODY||!1,xn=c.SANITIZE_DOM!==!1,Tn=c.SANITIZE_NAMED_PROPS||!1,Xt=c.KEEP_CONTENT!==!1,ft=c.IN_PLACE||!1,rr=io(c.ALLOWED_URI_REGEXP)?c.ALLOWED_URI_REGEXP:ra,pt=typeof c.NAMESPACE=="string"?c.NAMESPACE:Se,Sn=X(c,"MATHML_TEXT_INTEGRATION_POINTS")&&c.MATHML_TEXT_INTEGRATION_POINTS&&typeof c.MATHML_TEXT_INTEGRATION_POINTS=="object"?ye(c.MATHML_TEXT_INTEGRATION_POINTS):R({},["mi","mo","mn","ms","mtext"]),en=X(c,"HTML_INTEGRATION_POINTS")&&c.HTML_INTEGRATION_POINTS&&typeof c.HTML_INTEGRATION_POINTS=="object"?ye(c.HTML_INTEGRATION_POINTS):R({},["annotation-xml"]);const m=X(c,"CUSTOM_ELEMENT_HANDLING")&&c.CUSTOM_ELEMENT_HANDLING&&typeof c.CUSTOM_ELEMENT_HANDLING=="object"?ye(c.CUSTOM_ELEMENT_HANDLING):un(null);if(j=un(null),X(m,"tagNameCheck")&&An(m.tagNameCheck)&&(j.tagNameCheck=m.tagNameCheck),X(m,"attributeNameCheck")&&An(m.attributeNameCheck)&&(j.attributeNameCheck=m.attributeNameCheck),X(m,"allowCustomizedBuiltInElements")&&typeof m.allowCustomizedBuiltInElements=="boolean"&&(j.allowCustomizedBuiltInElements=m.allowCustomizedBuiltInElements),Ye&&(wn=!1),Zt&&(nt=!0),rt&&(K=R({},Ki),ie=un(null),rt.html===!0&&(R(K,Qi),R(ie,Ji)),rt.svg===!0&&(R(K,jr),R(ie,Vr),R(ie,_r)),rt.svgFilters===!0&&(R(K,Yr),R(ie,Vr),R(ie,_r)),rt.mathMl===!0&&(R(K,Zr),R(ie,es),R(ie,_r))),Fe.tagCheck=null,Fe.attributeCheck=null,X(c,"ADD_TAGS")&&(typeof c.ADD_TAGS=="function"?Fe.tagCheck=c.ADD_TAGS:ge(c.ADD_TAGS)&&(K===kn&&(K=ye(K)),R(K,c.ADD_TAGS,V))),X(c,"ADD_ATTR")&&(typeof c.ADD_ATTR=="function"?Fe.attributeCheck=c.ADD_ATTR:ge(c.ADD_ATTR)&&(ie===Et&&(ie=ye(ie)),R(ie,c.ADD_ATTR,V))),X(c,"ADD_URI_SAFE_ATTR")&&ge(c.ADD_URI_SAFE_ATTR)&&R(At,c.ADD_URI_SAFE_ATTR,V),X(c,"FORBID_CONTENTS")&&ge(c.FORBID_CONTENTS)&&(Ee===En&&(Ee=ye(Ee)),R(Ee,c.FORBID_CONTENTS,V)),X(c,"ADD_FORBID_CONTENTS")&&ge(c.ADD_FORBID_CONTENTS)&&(Ee===En&&(Ee=ye(Ee)),R(Ee,c.ADD_FORBID_CONTENTS,V)),Xt&&(K["#text"]=!0),tt&&R(K,["html","head","body"]),K.table&&(R(K,["tbody"]),delete ct.tbody),c.TRUSTED_TYPES_POLICY){if(typeof c.TRUSTED_TYPES_POLICY.createHTML!="function")throw mr('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof c.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw mr('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');D=c.TRUSTED_TYPES_POLICY,H=D.createHTML("")}else D===void 0&&(D=_o(v,r)),D!==null&&typeof H=="string"&&(H=D.createHTML(""));ve&&ve(c),ht=c},pr=R({},[...jr,...Yr,...so]),hr=R({},[...Zr,...ao]),$r=function(c){let m=N(c);(!m||!m.tagName)&&(m={namespaceURI:pt,tagName:"template"});const w=Bn(c.tagName),z=Bn(m.tagName);return Jt[c.namespaceURI]?c.namespaceURI===Qt?m.namespaceURI===Se?w==="svg":m.namespaceURI===Rt?w==="svg"&&(z==="annotation-xml"||Sn[z]):!!pr[w]:c.namespaceURI===Rt?m.namespaceURI===Se?w==="math":m.namespaceURI===Qt?w==="math"&&en[z]:!!hr[w]:c.namespaceURI===Se?m.namespaceURI===Qt&&!en[z]||m.namespaceURI===Rt&&!Sn[z]?!1:!hr[w]&&(ur[w]||!pr[w]):!!(It==="application/xhtml+xml"&&Jt[c.namespaceURI]):!1},g=function(c){Cn(t.removed,{element:c});try{N(c).removeChild(c)}catch{b(c)}},k=function(c,m){try{Cn(t.removed,{attribute:m.getAttributeNode(c),from:m})}catch{Cn(t.removed,{attribute:null,from:m})}if(m.removeAttribute(c),c==="is")if(nt||Zt)try{g(m)}catch{}else try{m.setAttribute(c,"")}catch{}},A=function(c){let m=null,w=null;if(Yt)c=""+c;else{const Y=Yi(c,/^[\r\n\t ]+/);w=Y&&Y[0]}It==="application/xhtml+xml"&&pt===Se&&(c=''+c+"");const z=D?D.createHTML(c):c;if(pt===Se)try{m=new d().parseFromString(z,It)}catch{}if(!m||!m.documentElement){m=W.createDocument(pt,"template",null);try{m.documentElement.innerHTML=Kt?H:z}catch{}}const se=m.body||m.documentElement;return c&&w&&se.insertBefore(n.createTextNode(w),se.childNodes[0]||null),pt===Se?ae.call(m,tt?"html":"body")[0]:tt?m.documentElement:se},C=function(c){return q.call(c.ownerDocument||c,c,f.SHOW_ELEMENT|f.SHOW_COMMENT|f.SHOW_TEXT|f.SHOW_PROCESSING_INSTRUCTION|f.SHOW_CDATA_SECTION,null)},J=function(c){return c instanceof h&&(typeof c.nodeName!="string"||typeof c.textContent!="string"||typeof c.removeChild!="function"||!(c.attributes instanceof u)||typeof c.removeAttribute!="function"||typeof c.setAttribute!="function"||typeof c.namespaceURI!="string"||typeof c.insertBefore!="function"||typeof c.hasChildNodes!="function")},ke=function(c){return typeof o=="function"&&c instanceof o};function he(x,c,m){Ln(x,w=>{w.call(t,c,m,ht)})}const Ze=function(c){let m=null;if(he(re.beforeSanitizeElements,c,null),J(c))return g(c),!0;const w=V(c.nodeName);if(he(re.uponSanitizeElement,c,{tagName:w,allowedTags:K}),ut&&c.hasChildNodes()&&!ke(c.firstElementChild)&&ce(/<[/\w!]/g,c.innerHTML)&&ce(/<[/\w!]/g,c.textContent)||ut&&c.namespaceURI===Se&&w==="style"&&ke(c.firstElementChild)||c.nodeType===Mn.progressingInstruction||ut&&c.nodeType===Mn.comment&&ce(/<[/\w]/g,c.data))return g(c),!0;if(ct[w]||!(Fe.tagCheck instanceof Function&&Fe.tagCheck(w))&&!K[w]){if(!ct[w]&&nn(w)&&(j.tagNameCheck instanceof RegExp&&ce(j.tagNameCheck,w)||j.tagNameCheck instanceof Function&&j.tagNameCheck(w)))return!1;if(Xt&&!Ee[w]){const z=N(c)||c.parentNode,se=U(c)||c.childNodes;if(se&&z){const Y=se.length;for(let fe=Y-1;fe>=0;--fe){const we=T(se[fe],!0);z.insertBefore(we,S(c))}}}return g(c),!0}return c instanceof l&&!$r(c)||(w==="noscript"||w==="noembed"||w==="noframes")&&ce(/<\/no(script|embed|frames)/i,c.innerHTML)?(g(c),!0):(Ye&&c.nodeType===Mn.text&&(m=c.textContent,Ln([ot,qt,et],z=>{m=ln(m,z," ")}),c.textContent!==m&&(Cn(t.removed,{element:c.cloneNode()}),c.textContent=m)),he(re.afterSanitizeElements,c,null),!1)},Ve=function(c,m,w){if(St[m]||xn&&(m==="id"||m==="name")&&(w in n||w in zr))return!1;const z=ie[m]||Fe.attributeCheck instanceof Function&&Fe.attributeCheck(m,c);if(!(wn&&!St[m]&&ce(Nr,m))){if(!(ir&&ce(je,m))){if(!z||St[m]){if(!(nn(c)&&(j.tagNameCheck instanceof RegExp&&ce(j.tagNameCheck,c)||j.tagNameCheck instanceof Function&&j.tagNameCheck(c))&&(j.attributeNameCheck instanceof RegExp&&ce(j.attributeNameCheck,m)||j.attributeNameCheck instanceof Function&&j.attributeNameCheck(m,c))||m==="is"&&j.allowCustomizedBuiltInElements&&(j.tagNameCheck instanceof RegExp&&ce(j.tagNameCheck,w)||j.tagNameCheck instanceof Function&&j.tagNameCheck(w))))return!1}else if(!At[m]){if(!ce(rr,ln(w,bn,""))){if(!((m==="src"||m==="xlink:href"||m==="href")&&c!=="script"&&Zi(w,"data:")===0&&lr[c])){if(!(sr&&!ce(tr,ln(w,bn,"")))){if(w)return!1}}}}}}return!0},Rn=R({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),nn=function(c){return!Rn[Bn(c)]&&ce(nr,c)},Ot=function(c){he(re.beforeSanitizeAttributes,c,null);const{attributes:m}=c;if(!m||J(c))return;const w={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ie,forceKeepAttr:void 0};let z=m.length;for(;z--;){const se=m[z],{name:Y,namespaceURI:fe,value:we}=se,Ae=V(Y),In=we;let ee=Y==="value"?In:Kl(In);if(w.attrName=Ae,w.attrValue=ee,w.keepAttr=!0,w.forceKeepAttr=void 0,he(re.uponSanitizeAttribute,c,w),ee=w.attrValue,Tn&&(Ae==="id"||Ae==="name")&&Zi(ee,ar)!==0&&(k(Y,c),ee=ar+ee),ut&&ce(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,ee)){k(Y,c);continue}if(Ae==="attributename"&&Yi(ee,"href")){k(Y,c);continue}if(w.forceKeepAttr)continue;if(!w.keepAttr){k(Y,c);continue}if(!yn&&ce(/\/>/i,ee)){k(Y,c);continue}Ye&&Ln([ot,qt,et],Di=>{ee=ln(ee,Di," ")});const Oi=V(c.nodeName);if(!Ve(Oi,Ae,ee)){k(Y,c);continue}if(D&&typeof v=="object"&&typeof v.getAttributeType=="function"&&!fe)switch(v.getAttributeType(Oi,Ae)){case"TrustedHTML":{ee=D.createHTML(ee);break}case"TrustedScriptURL":{ee=D.createScriptURL(ee);break}}if(ee!==In)try{fe?c.setAttributeNS(fe,Y,ee):c.setAttribute(Y,ee),J(c)?g(c):ji(t.removed)}catch{k(Y,c)}}he(re.afterSanitizeAttributes,c,null)},dt=function(c){let m=null;const w=C(c);for(he(re.beforeSanitizeShadowDOM,c,null);m=w.nextNode();)he(re.uponSanitizeShadowNode,m,null),Ze(m),Ot(m),m.content instanceof s&&dt(m.content);he(re.afterSanitizeShadowDOM,c,null)};return t.sanitize=function(x){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=null,w=null,z=null,se=null;if(Kt=!x,Kt&&(x=""),typeof x!="string"&&!ke(x)&&(x=ro(x),typeof x!="string"))throw mr("dirty is not a string, aborting");if(!t.isSupported)return x;if(jt||tn(c),t.removed=[],typeof x=="string"&&(ft=!1),ft){const we=x.nodeName;if(typeof we=="string"){const Ae=V(we);if(!K[Ae]||ct[Ae])throw mr("root node is forbidden and cannot be sanitized in-place")}}else if(x instanceof o)m=A(""),w=m.ownerDocument.importNode(x,!0),w.nodeType===Mn.element&&w.nodeName==="BODY"||w.nodeName==="HTML"?m=w:m.appendChild(w);else{if(!nt&&!Ye&&!tt&&x.indexOf("<")===-1)return D&&Vt?D.createHTML(x):x;if(m=A(x),!m)return nt?null:Vt?H:""}m&&Yt&&g(m.firstChild);const Y=C(ft?x:m);for(;z=Y.nextNode();)Ze(z),Ot(z),z.content instanceof s&&dt(z.content);if(ft)return x;if(nt){if(Ye){m.normalize();let we=m.innerHTML;Ln([ot,qt,et],Ae=>{we=ln(we,Ae," ")}),m.innerHTML=we}if(Zt)for(se=be.call(m.ownerDocument);m.firstChild;)se.appendChild(m.firstChild);else se=m;return(ie.shadowroot||ie.shadowrootmode)&&(se=Z.call(i,se,!0)),se}let fe=tt?m.outerHTML:m.innerHTML;return tt&&K["!doctype"]&&m.ownerDocument&&m.ownerDocument.doctype&&m.ownerDocument.doctype.name&&ce(ia,m.ownerDocument.doctype.name)&&(fe=" -`+fe),Ye&&Ln([ot,qt,et],we=>{fe=ln(fe,we," ")}),D&&Vt?D.createHTML(fe):fe},t.setConfig=function(){let x=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};tn(x),jt=!0},t.clearConfig=function(){ht=null,jt=!1},t.isValidAttribute=function(x,c,m){ht||tn({});const w=V(x),z=V(c);return Ve(w,z,m)},t.addHook=function(x,c){typeof c=="function"&&Cn(re[x],c)},t.removeHook=function(x,c){if(c!==void 0){const m=Xl(re[x],c);return m===-1?void 0:Ql(re[x],m,1)[0]}return ji(re[x])},t.removeHooks=function(x){re[x]=[]},t.removeAllHooks=function(){re=ns()},t}var vo=sa();function wi(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Wt=wi();function aa(e){Wt=e}var Lt={exec:()=>null};function M(e,t=""){let n=typeof e=="string"?e:e.source,i={replace:(r,s)=>{let a=typeof s=="string"?s:s.source;return a=a.replace(me.caret,"$1"),n=n.replace(r,a),i},getRegex:()=>new RegExp(n,t)};return i}var bo=(()=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},ko=/^(?:[ \t]*(?:\n|$))+/,wo=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,yo=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,er=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,xo=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,yi=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,la=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,oa=M(la).replace(/bull/g,yi).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),To=M(la).replace(/bull/g,yi).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),xi=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Eo=/^[^\n]+/,Ti=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,So=M(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ti).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ao=M(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,yi).getRegex(),Lr="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ei=/|$))/,Ro=M("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Ei).replace("tag",Lr).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ca=M(xi).replace("hr",er).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Lr).getRegex(),Io=M(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ca).getRegex(),Si={blockquote:Io,code:wo,def:So,fences:yo,heading:xo,hr:er,html:Ro,lheading:oa,list:Ao,newline:ko,paragraph:ca,table:Lt,text:Eo},rs=M("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",er).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Lr).getRegex(),Oo={...Si,lheading:To,table:rs,paragraph:M(xi).replace("hr",er).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",rs).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Lr).getRegex()},Do={...Si,html:M(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ei).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Lt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:M(xi).replace("hr",er).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",oa).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Lo=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Co=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ua=/^( {2,}|\\)\n(?!\s*$)/,No=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",bo?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),pa=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Fo=M(pa,"u").replace(/punct/g,vn).getRegex(),Uo=M(pa,"u").replace(/punct/g,fa).getRegex(),ha="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Bo=M(ha,"gu").replace(/notPunctSpace/g,Ai).replace(/punctSpace/g,Cr).replace(/punct/g,vn).getRegex(),Ho=M(ha,"gu").replace(/notPunctSpace/g,zo).replace(/punctSpace/g,Po).replace(/punct/g,fa).getRegex(),Go=M("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Ai).replace(/punctSpace/g,Cr).replace(/punct/g,vn).getRegex(),Wo=M(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,vn).getRegex(),qo="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",jo=M(qo,"gu").replace(/notPunctSpace/g,Ai).replace(/punctSpace/g,Cr).replace(/punct/g,vn).getRegex(),Yo=M(/\\(punct)/,"gu").replace(/punct/g,vn).getRegex(),Zo=M(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Vo=M(Ei).replace("(?:-->|$)","-->").getRegex(),Xo=M("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",Vo).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Er=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Qo=M(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Er).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),da=M(/^!?\[(label)\]\[(ref)\]/).replace("label",Er).replace("ref",Ti).getRegex(),ga=M(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ti).getRegex(),Ko=M("reflink|nolink(?!\\()","g").replace("reflink",da).replace("nolink",ga).getRegex(),is=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Ri={_backpedal:Lt,anyPunctuation:Yo,autolink:Zo,blockSkip:$o,br:ua,code:Co,del:Lt,delLDelim:Lt,delRDelim:Lt,emStrongLDelim:Fo,emStrongRDelimAst:Bo,emStrongRDelimUnd:Go,escape:Lo,link:Qo,nolink:ga,punctuation:Mo,reflink:da,reflinkSearch:Ko,tag:Xo,text:No,url:Lt},Jo={...Ri,link:M(/^!?\[(label)\]\((.*?)\)/).replace("label",Er).getRegex(),reflink:M(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Er).getRegex()},oi={...Ri,emStrongRDelimAst:Ho,emStrongLDelim:Uo,delLDelim:Wo,delRDelim:jo,url:M(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",is).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:M(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},ss=e=>tc[e];function Qe(e,t){if(t){if(me.escapeTest.test(e))return e.replace(me.escapeReplace,ss)}else if(me.escapeTestNoEncode.test(e))return e.replace(me.escapeReplaceNoEncode,ss);return e}function as(e){try{e=encodeURI(e).replace(me.percentDecode,"%")}catch{return null}return e}function ls(e,t){let n=e.replace(me.findPipe,(s,a,o)=>{let l=!1,f=a;for(;--f>=0&&o[f]==="\\";)l=!l;return l?"|":" |"}),i=n.split(me.splitPipe),r=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),t)if(i.length>t)i.splice(t);else for(;i.length0?-2:-1}function rc(e,t=0){let n=t,i="";for(let r of e)if(r===" "){let s=4-n%4;i+=" ".repeat(s),n+=s}else i+=r,n++;return i}function os(e,t,n,i,r){let s=t.href,a=t.title||null,o=e[1].replace(r.other.outputLinkReplace,"$1");i.state.inLink=!0;let l={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:s,title:a,text:o,tokens:i.inlineTokens(o)};return i.state.inLink=!1,l}function ic(e,t,n){let i=e.match(n.other.indentCodeCompensation);if(i===null)return t;let r=i[1];return t.split(` -`).map(s=>{let a=s.match(n.other.beginningSpace);if(a===null)return s;let[o]=a;return o.length>=r.length?s.slice(r.length):s}).join(` -`)}var Sr=class{options;rules;lexer;constructor(e){this.options=e||Wt}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:zn(n,` -`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],i=ic(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:i}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let i=zn(n,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(n=i.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:zn(t[0],` -`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=zn(t[0],` -`).split(` -`),i="",r="",s=[];for(;n.length>0;){let a=!1,o=[],l;for(l=0;l1,r={type:"list",raw:"",ordered:i,start:i?+n.slice(0,-1):"",loose:!1,items:[]};n=i?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=i?n:"[*+-]");let s=this.rules.other.listItemRegex(n),a=!1;for(;e;){let l=!1,f="",u="";if(!(t=s.exec(e))||this.rules.block.hr.test(e))break;f=t[0],e=e.substring(f.length);let h=rc(t[2].split(` -`,1)[0],t[1].length),d=e.split(` -`,1)[0],v=!h.trim(),_=0;if(this.options.pedantic?(_=2,u=h.trimStart()):v?_=t[1].length+1:(_=h.search(this.rules.other.nonSpaceChar),_=_>4?1:_,u=h.slice(_),_+=t[1].length),v&&this.rules.other.blankLine.test(d)&&(f+=d+` -`,e=e.substring(d.length+1),l=!0),!l){let T=this.rules.other.nextBulletRegex(_),b=this.rules.other.hrRegex(_),S=this.rules.other.fencesBeginRegex(_),U=this.rules.other.headingBeginRegex(_),N=this.rules.other.htmlBeginRegex(_),D=this.rules.other.blockquoteBeginRegex(_);for(;e;){let H=e.split(` -`,1)[0],W;if(d=H,this.options.pedantic?(d=d.replace(this.rules.other.listReplaceNesting," "),W=d):W=d.replace(this.rules.other.tabCharGlobal," "),S.test(d)||U.test(d)||N.test(d)||D.test(d)||T.test(d)||b.test(d))break;if(W.search(this.rules.other.nonSpaceChar)>=_||!d.trim())u+=` -`+W.slice(_);else{if(v||h.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||S.test(h)||U.test(h)||b.test(h))break;u+=` -`+d}v=!d.trim(),f+=H+` -`,e=e.substring(H.length+1),h=W.slice(_)}}r.loose||(a?r.loose=!0:this.rules.other.doubleBlankLine.test(f)&&(a=!0)),r.items.push({type:"list_item",raw:f,task:!!this.options.gfm&&this.rules.other.listIsTask.test(u),loose:!1,text:u,tokens:[]}),r.raw+=f}let o=r.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let l of r.items){if(this.lexer.state.top=!1,l.tokens=this.lexer.blockTokens(l.text,[]),l.task){if(l.text=l.text.replace(this.rules.other.listReplaceTask,""),l.tokens[0]?.type==="text"||l.tokens[0]?.type==="paragraph"){l.tokens[0].raw=l.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),l.tokens[0].text=l.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let u=this.lexer.inlineQueue.length-1;u>=0;u--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[u].src)){this.lexer.inlineQueue[u].src=this.lexer.inlineQueue[u].src.replace(this.rules.other.listReplaceTask,"");break}}let f=this.rules.other.listTaskCheckbox.exec(l.raw);if(f){let u={type:"checkbox",raw:f[0]+" ",checked:f[0]!=="[ ]"};l.checked=u.checked,r.loose?l.tokens[0]&&["paragraph","text"].includes(l.tokens[0].type)&&"tokens"in l.tokens[0]&&l.tokens[0].tokens?(l.tokens[0].raw=u.raw+l.tokens[0].raw,l.tokens[0].text=u.raw+l.tokens[0].text,l.tokens[0].tokens.unshift(u)):l.tokens.unshift({type:"paragraph",raw:u.raw,text:u.raw,tokens:[u]}):l.tokens.unshift(u)}}if(!r.loose){let f=l.tokens.filter(h=>h.type==="space"),u=f.length>0&&f.some(h=>this.rules.other.anyLine.test(h.raw));r.loose=u}}if(r.loose)for(let l of r.items){l.loose=!0;for(let f of l.tokens)f.type==="text"&&(f.type="paragraph")}return r}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),i=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:t[0],href:i,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=ls(t[1]),i=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),r=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(` -`):[],s={type:"table",raw:t[0],header:[],align:[],rows:[]};if(n.length===i.length){for(let a of i)this.rules.other.tableAlignRight.test(a)?s.align.push("right"):this.rules.other.tableAlignCenter.test(a)?s.align.push("center"):this.rules.other.tableAlignLeft.test(a)?s.align.push("left"):s.align.push(null);for(let a=0;a({text:o,tokens:this.lexer.inline(o),header:!1,align:s.align[l]})));return s}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===` -`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=zn(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=nc(t[2],"()");if(s===-2)return;if(s>-1){let a=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,a).trim(),t[3]=""}}let i=t[2],r="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(i);s&&(i=s[1],r=s[3])}else r=t[3]?t[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?i=i.slice(1):i=i.slice(1,-1)),os(t,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let i=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),r=t[i.toLowerCase()];if(!r){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return os(n,r,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let i=this.rules.inline.emStrongLDelim.exec(e);if(!(!i||!i[1]&&!i[2]&&!i[3]&&!i[4]||i[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(i[1]||i[3])||!n||this.rules.inline.punctuation.exec(n))){let r=[...i[0]].length-1,s,a,o=r,l=0,f=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(f.lastIndex=0,t=t.slice(-1*e.length+r);(i=f.exec(t))!==null;){if(s=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!s)continue;if(a=[...s].length,i[3]||i[4]){o+=a;continue}else if((i[5]||i[6])&&r%3&&!((r+a)%3)){l+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+l);let u=[...i[0]][0].length,h=e.slice(0,r+i.index+u+a);if(Math.min(r,a)%2){let v=h.slice(1,-1);return{type:"em",raw:h,text:v,tokens:this.lexer.inlineTokens(v)}}let d=h.slice(2,-2);return{type:"strong",raw:h,text:d,tokens:this.lexer.inlineTokens(d)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return i&&r&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let i=this.rules.inline.delLDelim.exec(e);if(i&&(!i[1]||!n||this.rules.inline.punctuation.exec(n))){let r=[...i[0]].length-1,s,a,o=r,l=this.rules.inline.delRDelim;for(l.lastIndex=0,t=t.slice(-1*e.length+r);(i=l.exec(t))!==null;){if(s=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!s||(a=[...s].length,a!==r))continue;if(i[3]||i[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let f=[...i[0]][0].length,u=e.slice(0,r+i.index+f+a),h=u.slice(r,-r);return{type:"del",raw:u,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,i;return t[2]==="@"?(n=t[1],i="mailto:"+n):(n=t[1],i=n),{type:"link",raw:t[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,i;if(t[2]==="@")n=t[0],i="mailto:"+n;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(r!==t[0]);n=t[0],t[1]==="www."?i="http://"+t[0]:i=t[0]}return{type:"link",raw:t[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},Ue=class ci{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Wt,this.options.tokenizer=this.options.tokenizer||new Sr,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:me,block:vr.normal,inline:Pn.normal};this.options.pedantic?(n.block=vr.pedantic,n.inline=Pn.pedantic):this.options.gfm&&(n.block=vr.gfm,this.options.breaks?n.inline=Pn.breaks:n.inline=Pn.gfm),this.tokenizer.rules=n}static get rules(){return{block:vr,inline:Pn}}static lex(t,n){return new ci(n).lex(t)}static lexInline(t,n){return new ci(n).inlineTokens(t)}lex(t){t=t.replace(me.carriageReturn,` -`),this.blockTokens(t,this.tokens);for(let n=0;n(r=a.call({lexer:this},t,n))?(t=t.substring(r.raw.length),n.push(r),!0):!1))continue;if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length);let a=n.at(-1);r.raw.length===1&&a!==void 0?a.raw+=` -`:n.push(r);continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length);let a=n.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=(a.raw.endsWith(` -`)?"":` -`)+r.raw,a.text+=` -`+r.text,this.inlineQueue.at(-1).src=a.text):n.push(r);continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length);let a=n.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=(a.raw.endsWith(` -`)?"":` -`)+r.raw,a.text+=` -`+r.raw,this.inlineQueue.at(-1).src=a.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},n.push(r));continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length),n.push(r);continue}let s=t;if(this.options.extensions?.startBlock){let a=1/0,o=t.slice(1),l;this.options.extensions.startBlock.forEach(f=>{l=f.call({lexer:this},o),typeof l=="number"&&l>=0&&(a=Math.min(a,l))}),a<1/0&&a>=0&&(s=t.substring(0,a+1))}if(this.state.top&&(r=this.tokenizer.paragraph(s))){let a=n.at(-1);i&&a?.type==="paragraph"?(a.raw+=(a.raw.endsWith(` -`)?"":` -`)+r.raw,a.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):n.push(r),i=s.length!==t.length,t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length);let a=n.at(-1);a?.type==="text"?(a.raw+=(a.raw.endsWith(` -`)?"":` -`)+r.raw,a.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):n.push(r);continue}if(t){let a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let i=t,r=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(i))!==null;)l.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(i))!==null;)i=i.slice(0,r.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(i))!==null;)s=r[2]?r[2].length:0,i=i.slice(0,r.index+s)+"["+"a".repeat(r[0].length-s-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);i=this.options.hooks?.emStrongMask?.call({lexer:this},i)??i;let a=!1,o="";for(;t;){a||(o=""),a=!1;let l;if(this.options.extensions?.inline?.some(u=>(l=u.call({lexer:this},t,n))?(t=t.substring(l.raw.length),n.push(l),!0):!1))continue;if(l=this.tokenizer.escape(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.tag(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.link(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(l.raw.length);let u=n.at(-1);l.type==="text"&&u?.type==="text"?(u.raw+=l.raw,u.text+=l.text):n.push(l);continue}if(l=this.tokenizer.emStrong(t,i,o)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.codespan(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.br(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.del(t,i,o)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.autolink(t)){t=t.substring(l.raw.length),n.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(t))){t=t.substring(l.raw.length),n.push(l);continue}let f=t;if(this.options.extensions?.startInline){let u=1/0,h=t.slice(1),d;this.options.extensions.startInline.forEach(v=>{d=v.call({lexer:this},h),typeof d=="number"&&d>=0&&(u=Math.min(u,d))}),u<1/0&&u>=0&&(f=t.substring(0,u+1))}if(l=this.tokenizer.inlineText(f)){t=t.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(o=l.raw.slice(-1)),a=!0;let u=n.at(-1);u?.type==="text"?(u.raw+=l.raw,u.text+=l.text):n.push(l);continue}if(t){let u="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return n}},Ar=class{options;parser;constructor(e){this.options=e||Wt}space(e){return""}code({text:e,lang:t,escaped:n}){let i=(t||"").match(me.notSpaceStart)?.[0],r=e.replace(me.endingNewline,"")+` -`;return i?'
'+(n?r:Qe(r,!0))+`
-`:"
"+(n?r:Qe(r,!0))+`
-`}blockquote({tokens:e}){return`
-${this.parser.parse(e)}
-`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)} -`}hr(e){return`
-`}list(e){let t=e.ordered,n=e.start,i="";for(let a=0;a -`+i+" -`}listitem(e){return`
  • ${this.parser.parse(e.tokens)}
  • -`}checkbox({checked:e}){return" '}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    -`}table(e){let t="",n="";for(let r=0;r${i}`),` - -`+t+` -`+i+`
    -`}tablerow({text:e}){return` -${e} -`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+` -`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${Qe(e,!0)}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){let i=this.parser.parseInline(n),r=as(e);if(r===null)return i;e=r;let s='
    ",s}image({href:e,title:t,text:n,tokens:i}){i&&(n=this.parser.parseInline(i,this.parser.textRenderer));let r=as(e);if(r===null)return Qe(n);e=r;let s=`${Qe(n)}{let a=r[s].flat(1/0);n=n.concat(this.walkTokens(a,t))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let s=t.renderers[r.name];s?t.renderers[r.name]=function(...a){let o=r.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:t.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[r.level];s?s.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level==="block"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level==="inline"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),i.extensions=t),n.renderer){let r=this.defaults.renderer||new Ar(this.defaults);for(let s in n.renderer){if(!(s in r))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let a=s,o=n.renderer[a],l=r[a];r[a]=(...f)=>{let u=o.apply(r,f);return u===!1&&(u=l.apply(r,f)),u||""}}i.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new Sr(this.defaults);for(let s in n.tokenizer){if(!(s in r))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let a=s,o=n.tokenizer[a],l=r[a];r[a]=(...f)=>{let u=o.apply(r,f);return u===!1&&(u=l.apply(r,f)),u}}i.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new Hn;for(let s in n.hooks){if(!(s in r))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let a=s,o=n.hooks[a],l=r[a];Hn.passThroughHooks.has(s)?r[a]=f=>{if(this.defaults.async&&Hn.passThroughHooksRespectAsync.has(s))return(async()=>{let h=await o.call(r,f);return l.call(r,h)})();let u=o.call(r,f);return l.call(r,u)}:r[a]=(...f)=>{if(this.defaults.async)return(async()=>{let h=await o.apply(r,f);return h===!1&&(h=await l.apply(r,f)),h})();let u=o.apply(r,f);return u===!1&&(u=l.apply(r,f)),u}}i.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,s=n.walkTokens;i.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),r&&(o=o.concat(r.call(this,a))),o}}this.defaults={...this.defaults,...i}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Ue.lex(e,t??this.defaults)}parser(e,t){return Be.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let i={...n},r={...this.defaults,...i},s=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&i.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(r.hooks&&(r.hooks.options=r,r.hooks.block=e),r.async)return(async()=>{let a=r.hooks?await r.hooks.preprocess(t):t,o=await(r.hooks?await r.hooks.provideLexer(e):e?Ue.lex:Ue.lexInline)(a,r),l=r.hooks?await r.hooks.processAllTokens(o):o;r.walkTokens&&await Promise.all(this.walkTokens(l,r.walkTokens));let f=await(r.hooks?await r.hooks.provideParser(e):e?Be.parse:Be.parseInline)(l,r);return r.hooks?await r.hooks.postprocess(f):f})().catch(s);try{r.hooks&&(t=r.hooks.preprocess(t));let a=(r.hooks?r.hooks.provideLexer(e):e?Ue.lex:Ue.lexInline)(t,r);r.hooks&&(a=r.hooks.processAllTokens(a)),r.walkTokens&&this.walkTokens(a,r.walkTokens);let o=(r.hooks?r.hooks.provideParser(e):e?Be.parse:Be.parseInline)(a,r);return r.hooks&&(o=r.hooks.postprocess(o)),o}catch(a){return s(a)}}}onError(e,t){return n=>{if(n.message+=` -Please report this to https://github.com/markedjs/marked.`,e){let i="

    An error occurred:

    "+Qe(n.message+"",!0)+"
    ";return t?Promise.resolve(i):i}if(t)return Promise.reject(n);throw n}}},Bt=new sc;function F(e,t){return Bt.parse(e,t)}F.options=F.setOptions=function(e){return Bt.setOptions(e),F.defaults=Bt.defaults,aa(F.defaults),F};F.getDefaults=wi;F.defaults=Wt;F.use=function(...e){return Bt.use(...e),F.defaults=Bt.defaults,aa(F.defaults),F};F.walkTokens=function(e,t){return Bt.walkTokens(e,t)};F.parseInline=Bt.parseInline;F.Parser=Be;F.parser=Be.parse;F.Renderer=Ar;F.TextRenderer=Ii;F.Lexer=Ue;F.lexer=Ue.lex;F.Tokenizer=Sr;F.Hooks=Hn;F.parse=F;F.options;F.setOptions;F.use;F.walkTokens;F.parseInline;Be.parse;Ue.lex;function on(e){return vo.sanitize(F.parse(e,{async:!1}))}function br(e){return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"}).format(new Date(e))}var ac=Oe(''),lc=Oe(""),oc=Oe(""),cc=Oe(""),uc=Oe(""),fc=Oe('
    '),pc=Oe('
    Quiet tide. Start with Markdown. Threads open from any root message.
    '),hc=Oe('
    '),dc=Oe(' '),gc=Oe('
    '),mc=Oe('

    Thread

    ',1),_c=Oe('
    No thread open Pick a message to keep the side conversation tidy.
    '),vc=Oe('

    ');function bc(e,t){ks(t,!1);const n=B(),i=B(),r=B();let s=B(null),a=B([]),o=B([]),l=B([]),f=B([]),u=B([]),h=B(""),d=B(""),v=B(""),_=B(null),T=B(null),b=B(""),S=B(""),U=B(""),N=B(""),D=B(""),H=B(""),W=B([]),q=B(null),be=B("loading"),ae=B(null),Z;ta(()=>{re()}),Wl(()=>{p(ae)?.close(),Z&&window.clearTimeout(Z)});async function re(){try{const g=await de("/api/me");y(s,g.user),await ot(),y(be,"ready")}catch(g){y(be,g instanceof Error?g.message:"Could not load ClickClack")}}async function ot(){const g=await de("/api/workspaces");y(a,g.workspaces),y(h,p(h)||p(a)[0]?.id||""),await et(),await kn(),Et()}async function qt(){if(!p(U).trim())return;const g=await de("/api/workspaces",{method:"POST",body:JSON.stringify({name:p(U)})});y(U,""),y(a,[...p(a),g.workspace]),y(h,g.workspace.id),await et(),await kn(),Et()}async function et(){if(!p(h))return;const g=await de(`/api/workspaces/${p(h)}/channels`);y(o,g.channels),y(d,p(o).find(k=>k.id===p(d))?.id||p(o)[0]?.id||""),y(_,null),y(u,[]),await je()}async function Nr(){if(!p(h)||!p(N).trim())return;const g=await de(`/api/workspaces/${p(h)}/channels`,{method:"POST",body:JSON.stringify({name:p(N),kind:"public"})});y(N,""),y(o,[...p(o),g.channel]),y(d,g.channel.id),await je()}async function je(){if(p(v)){const k=await de(`/api/dms/${p(v)}/messages`);y(f,k.messages);return}if(!p(d)){y(f,[]);return}const g=await de(`/api/channels/${p(d)}/messages`);y(f,g.messages)}async function tr(){const g=p(b).trim();if(!g||!p(d)&&!p(v))return;y(b,"");const k=p(v)?`/api/dms/${p(v)}/messages`:`/api/channels/${p(d)}/messages`,A=await de(k,{method:"POST",body:JSON.stringify({body:g})});p(q)&&(await de(`/api/messages/${A.message.id}/attachments`,{method:"POST",body:JSON.stringify({upload_id:p(q).id})}),y(q,null)),p(f).some(C=>C.id===A.message.id)||y(f,[...p(f),A.message])}async function bn(g){y(_,g);const k=await de(`/api/messages/${g.id}/thread`);y(_,k.root),y(u,k.replies),y(T,k.thread_state)}async function nr(){const g=p(S).trim();if(!g||!p(_))return;y(S,"");const k=await de(`/api/messages/${p(_).id}/thread/replies`,{method:"POST",body:JSON.stringify({body:g})});p(u).some(A=>A.id===k.message.id)||y(u,[...p(u),k.message]),y(T,k.thread_state)}async function rr(){if(!p(h)||!p(H).trim()){y(W,[]);return}const g=await de(`/api/search?workspace_id=${encodeURIComponent(p(h))}&q=${encodeURIComponent(p(H).trim())}`);y(W,g.results)}async function K(g){const k=g.currentTarget,A=k.files?.[0];if(!A||!p(h))return;const C=new FormData;C.set("workspace_id",p(h)),C.set("file",A);const J=await de("/api/uploads",{method:"POST",body:C});y(q,J.upload),k.value=""}async function kn(){if(!p(h))return;const g=await de(`/api/dms?workspace_id=${p(h)}`);y(l,g.conversations)}async function ie(){if(!p(h)||!p(D).trim())return;const g=await de("/api/dms",{method:"POST",body:JSON.stringify({workspace_id:p(h),member_ids:[p(D).trim()]})});y(D,""),y(l,[...p(l),g.conversation]),y(v,g.conversation.id),y(d,""),y(_,null),await je()}function Et(){if(p(ae)?.close(),!p(h))return;const g=localStorage.getItem(`clickclack:${p(h)}:cursor`)||"",k=new URL("/api/realtime/ws",window.location.href);k.protocol=window.location.protocol==="https:"?"wss:":"ws:",k.searchParams.set("workspace_id",p(h)),g&&k.searchParams.set("after_cursor",g),y(ae,new WebSocket(k)),p(ae).addEventListener("message",A=>{const C=JSON.parse(String(A.data));C.cursor&&localStorage.setItem(`clickclack:${p(h)}:cursor`,C.cursor),j(C)}),p(ae).addEventListener("close",()=>{Z=window.setTimeout(Et,1200)})}async function j(g){if((g.type==="channel.created"||g.type==="channel.updated")&&g.workspace_id===p(h)){await et();return}(g.channel_id===p(d)||g.payload.direct_conversation_id===p(v))&&(g.type==="message.created"||g.type==="message.updated"||g.type==="message.deleted")&&await je();const k=g.payload.root_message_id||g.payload.message_id;p(_)&&k===p(_).id&&await bn(p(_))}Ur(()=>(p(a),p(h)),()=>{y(n,p(a).find(g=>g.id===p(h)))}),Ur(()=>(p(o),p(d)),()=>{y(i,p(o).find(g=>g.id===p(d)))}),Ur(()=>(p(l),p(v)),()=>{y(r,p(l).find(g=>g.id===p(v)))}),gl(),Gl();var ct=vc();Pl("1n46o8q",g=>{var k=ac();Re(g,k)});var St=E(ct),Fe=E(St),ir=I(E(Fe),2),wn=I(E(ir),2),sr=E(wn),yn=I(Fe,2),Ye=I(E(yn),2);sn(Ye,5,()=>p(a),Br,(g,k)=>{var A=lc();let C;var J=E(A);Xe(()=>{C=Dn(A,1,"",null,C,{active:p(k).id===p(h)}),oe(J,(p(k),$(()=>p(k).name)))}),it("click",A,async()=>{y(h,p(k).id),await et(),Et()}),Re(g,A)});var ut=I(Ye,2),tt=E(ut),jt=I(yn,2),Yt=I(E(jt),2);sn(Yt,5,()=>p(o),Br,(g,k)=>{var A=oc();let C;var J=I(E(A),1,!0);Xe(()=>{C=Dn(A,1,"",null,C,{active:p(k).id===p(d)}),oe(J,(p(k),$(()=>p(k).name)))}),it("click",A,async()=>{y(d,p(k).id),y(_,null),await je()}),Re(g,A)});var nt=I(Yt,2),Zt=E(nt),Vt=I(jt,2),xn=I(E(Vt),2);sn(xn,5,()=>p(l),Br,(g,k)=>{var A=cc();let C;var J=I(E(A),1,!0);Xe(ke=>{C=Dn(A,1,"",null,C,{active:p(k).id===p(v)}),oe(J,ke)},[()=>(p(k),$(()=>p(k).members.map(ke=>ke.display_name).join(", ")))]),it("click",A,async()=>{y(v,p(k).id),y(d,""),y(_,null),await je()}),Re(g,A)});var Tn=I(xn,2),ar=E(Tn),Xt=I(St,2),ft=E(Xt),rt=E(ft),Ee=E(rt),En=E(Ee),lr=I(Ee,2),or=E(lr),At=I(rt,2),cr=E(At),Rt=I(At,2),Qt=E(Rt),Se=I(ft,2);{var pt=g=>{var k=fc();sn(k,5,()=>p(W),A=>A.message.id,(A,C)=>{var J=uc(),ke=E(J),he=E(ke),Ze=I(ke,2),Ve=E(Ze);Xe(()=>{oe(he,(p(C),$(()=>p(C).message.author?.display_name||"Local User"))),oe(Ve,(p(C),$(()=>p(C).message.body)))}),it("click",J,async()=>{y(W,[]),p(C).message.channel_id&&(y(d,p(C).message.channel_id),y(v,""),await je()),p(C).message.direct_conversation_id&&(y(v,p(C).message.direct_conversation_id),y(d,""),await je())}),Re(A,J)}),Re(g,k)};gr(Se,g=>{p(W),$(()=>p(W).length>0)&&g(pt)})}var Kt=I(Se,2),Jt=E(Kt);{var Mr=g=>{var k=pc();Re(g,k)};gr(Jt,g=>{p(f),$(()=>p(f).length===0)&&g(Mr)})}var Sn=I(Jt,2);sn(Sn,1,()=>p(f),g=>g.id,(g,k)=>{var A=hc();let C;var J=E(A),ke=E(J),he=I(J,2),Ze=E(he),Ve=E(Ze),Rn=E(Ve),nn=I(Ve,2),Ot=E(nn),dt=I(Ze,2);Hr(dt,()=>(cn(on),p(k),$(()=>on(p(k).body))),!0);var x=I(dt,2);Xe((c,m)=>{C=Dn(A,1,"message",null,C,{selected:p(_)?.id===p(k).id}),oe(ke,c),oe(Rn,(p(k),$(()=>p(k).author?.display_name||"Local User"))),oe(Ot,m)},[()=>(p(k),$(()=>p(k).author?.display_name?.slice(0,1)||"c")),()=>(cn(br),p(k),$(()=>br(p(k).created_at)))]),it("click",x,()=>bn(p(k))),Re(g,A)});var en=I(Kt,2),ur=E(en),It=I(ur,2),fr=E(It),Pr=E(fr),V=I(fr,2);{var ht=g=>{var k=dc(),A=E(k);Xe(()=>oe(A,(p(q),$(()=>p(q).filename)))),Re(g,k)};gr(V,g=>{p(q)&&g(ht)})}var zr=I(V,2),An=I(Xt,2);let tn;var pr=E(An);{var hr=g=>{var k=mc(),A=ol(k),C=E(A),J=I(E(C),2),ke=E(J),he=I(C,2),Ze=I(A,2),Ve=E(Ze),Rn=E(Ve),nn=I(Ve,2);Hr(nn,()=>(cn(on),p(_),$(()=>on(p(_).body))),!0);var Ot=I(Ze,2);sn(Ot,5,()=>p(u),m=>m.id,(m,w)=>{var z=gc(),se=E(z),Y=E(se),fe=E(Y),we=I(Y,2),Ae=E(we),In=I(se,2);Hr(In,()=>(cn(on),p(w),$(()=>on(p(w).body))),!0),Xe(ee=>{oe(fe,(p(w),$(()=>p(w).author?.display_name||"Local User"))),oe(Ae,ee)},[()=>(cn(br),p(w),$(()=>br(p(w).created_at)))]),Re(m,z)});var dt=I(Ot,2),x=E(dt),c=I(x,2);Xe(()=>{oe(ke,`${p(T),p(u),$(()=>p(T)?.reply_count||p(u).length)??""} replies`),oe(Rn,(p(_),$(()=>p(_).author?.display_name||"Local User")))}),it("click",he,()=>{y(_,null),y(u,[])}),rn("submit",dt,m=>{m.preventDefault(),nr()}),an(x,()=>p(S),m=>y(S,m)),it("click",c,()=>{nr()}),Re(g,k)},$r=g=>{var k=_c();Re(g,k)};gr(pr,g=>{p(_)?g(hr):g($r,-1)})}Xe(g=>{oe(sr,(p(s),$(()=>p(s)?.display_name||"local"))),oe(En,(p(n),$(()=>p(n)?.name||"Workspace"))),oe(or,g),Ul(Rt,"data-state",(p(ae),$(()=>p(ae)?.readyState===WebSocket.OPEN?"live":"idle"))),oe(Qt,(p(ae),p(be),$(()=>p(ae)?.readyState===WebSocket.OPEN?"live":p(be)))),tn=Dn(An,1,"thread",null,tn,{open:p(_)})},[()=>(p(r),p(i),$(()=>p(r)?"@"+p(r).members.map(g=>g.display_name).join(", "):"#"+(p(i)?.name||"general")))]),rn("submit",ut,g=>{g.preventDefault(),qt()}),an(tt,()=>p(U),g=>y(U,g)),rn("submit",nt,g=>{g.preventDefault(),Nr()}),an(Zt,()=>p(N),g=>y(N,g)),rn("submit",Tn,g=>{g.preventDefault(),ie()}),an(ar,()=>p(D),g=>y(D,g)),rn("submit",At,g=>{g.preventDefault(),rr()}),an(cr,()=>p(H),g=>y(H,g)),rn("submit",en,g=>{g.preventDefault(),tr()}),an(ur,()=>p(b),g=>y(b,g)),it("change",Pr,K),it("click",zr,()=>{tr()}),Re(e,ct),ws()}El(["click","change"]);Il(bc,{target:document.getElementById("app")}); diff --git a/apps/api/internal/webassets/dist/assets/index-CljoeKn6.css b/apps/api/internal/webassets/dist/assets/index-CljoeKn6.css new file mode 100644 index 0000000..06b1f00 --- /dev/null +++ b/apps/api/internal/webassets/dist/assets/index-CljoeKn6.css @@ -0,0 +1 @@ +.product-site{min-height:100vh;background:#f7f3ea;color:#151716;font-family:Avenir Next,Segoe UI,ui-sans-serif,system-ui,sans-serif}.product-site a{color:inherit;text-decoration:none}.hero{position:relative;display:grid;min-height:clamp(680px,92vh,920px);overflow:hidden;isolation:isolate;background:linear-gradient(90deg,#0c1f23c7,#0c1f232e 62%,#0c1f23b3),#103033;color:#fff8ee}.hero:after{position:absolute;inset:auto 0 0;height:22vh;min-height:130px;background:linear-gradient(0deg,#f7f3ea 8%,#f7f3ea00);content:"";z-index:-1}.hero:before{position:absolute;inset:0 38% 0 0;background:linear-gradient(90deg,#081c1efa,#081c1e00);content:"";z-index:-1}.hero-bg{position:absolute;inset:0 0 0 clamp(260px,28vw,460px);display:grid;grid-template-columns:92px minmax(360px,1fr) minmax(260px,28vw);gap:18px;padding:102px clamp(18px,5vw,70px) 80px;opacity:.36;z-index:-2}.workspace-rail,.timeline-preview,.thread-preview{border:1px solid rgba(255,248,238,.24);background:#fff8ee1f;box-shadow:0 28px 90px #0000003d;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.workspace-rail{display:grid;align-content:start;gap:14px;padding:16px}.workspace-rail span{display:grid;place-items:center;min-height:54px;border-radius:8px;background:#fff8ee2e;color:#fff8ee;font-weight:900;text-transform:uppercase}.timeline-preview{align-self:stretch;padding:clamp(18px,3vw,34px)}.preview-top{display:flex;justify-content:space-between;margin-bottom:48px;color:#b9ddd9;font-weight:800}.preview-top strong{color:#7ce0b5}.timeline-preview article,.thread-preview{max-width:720px;margin:0 0 18px;border-radius:8px;background:#fff8ee29;padding:18px}.timeline-preview b,.thread-preview span{color:#ff8a70}.timeline-preview p,.thread-preview p{margin:6px 0 0;color:#fff8ee;font-size:clamp(17px,1.8vw,24px)}.timeline-preview code{border-radius:5px;background:#0c1f2394;padding:2px 5px}.thread-line{margin-left:clamp(0px,8vw,130px)}.thread-preview{align-self:center;min-height:260px}.product-nav{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px clamp(18px,5vw,70px);font-weight:800}.product-nav>div{display:flex;gap:clamp(14px,3vw,34px)}.brand-lockup{display:inline-flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;background:#ff6f55;color:#151716;font-weight:950;text-transform:uppercase}.hero-copy{position:relative;z-index:2;align-self:center;width:min(780px,calc(100vw - 36px));padding:0 clamp(18px,5vw,70px) 16vh}.eyebrow,.section-kicker{margin:0 0 14px;color:#ffb09f;font-size:13px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.hero h1,.product-band h2{margin:0;letter-spacing:0}.hero h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(66px,13vw,152px);font-weight:900;line-height:.9}.lede{width:min(680px,100%);margin:26px 0 0;color:#fff3df;font-size:clamp(20px,2.2vw,31px);line-height:1.18}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.primary-action,.secondary-action{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:8px;padding:0 18px;font-weight:950}.primary-action{background:#ff6f55;color:#151716}.secondary-action{border:1px solid rgba(255,248,238,.42);color:#fff8ee}.product-band{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(280px,1.1fr);gap:clamp(28px,6vw,90px);padding:clamp(58px,8vw,112px) clamp(18px,5vw,70px)}.product-band h2{max-width:720px;font-size:clamp(34px,5vw,74px);line-height:.96}.product-band p{margin:0;color:#3f4743;font-size:clamp(18px,2.1vw,27px);line-height:1.34}.intro-band{padding-top:0}.intro-band .section-kicker,.cli-band .section-kicker,.docs-band .section-kicker{color:#b84632}.feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid #c8c0b2}.feature-grid article{min-height:250px;border-right:1px solid #c8c0b2;padding:clamp(22px,3vw,40px)}.feature-grid article:nth-child(2n){background:#e8f0e9}.feature-grid article:last-child{border-right:0}.feature-grid h3{margin:0 0 44px;font-size:24px}.feature-grid p{margin:0;color:#48504c;line-height:1.45}.cli-band{background:#162a2d;color:#fff8ee}.cli-band p{color:#c9d8d4}.cli-band pre{overflow:auto;align-self:start;margin:0;border:1px solid rgba(255,248,238,.18);border-radius:8px;background:#071314;color:#bdf1dc;padding:clamp(18px,3vw,32px);line-height:1.7}.docs-band{background:#fffaf0}.destination-list{display:grid;gap:12px}.destination-list a{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #cbc2b3;padding:18px 0;font-size:clamp(21px,3vw,40px);font-weight:900}.destination-list span{color:#6f7772;font-size:15px;font-weight:700;text-align:right}@media(prefers-color-scheme:dark){.product-site{background:#101616;color:#fff8ee}.hero:after{background:linear-gradient(0deg,#101616 8%,#10161600)}.product-band p,.feature-grid p,.destination-list span{color:#bac7c3}.feature-grid{border-color:#34413e}.feature-grid article{border-color:#34413e}.feature-grid article:nth-child(2n),.docs-band{background:#182221}}@media(max-width:900px){.hero:before{inset-right:0}.hero-bg{inset:0;grid-template-columns:58px minmax(0,1fr);padding-top:90px;opacity:.38}.thread-preview{display:none}.product-band,.feature-grid{grid-template-columns:1fr}.feature-grid article,.feature-grid article:last-child{min-height:0;border-right:0;border-bottom:1px solid #c8c0b2}}@media(max-width:620px){.product-nav{align-items:flex-start;flex-direction:column}.hero{min-height:760px}.hero-bg{grid-template-columns:1fr;opacity:.42}.workspace-rail{display:none}.hero-copy{padding-bottom:90px}.destination-list a{flex-direction:column}.destination-list span{text-align:left}}:root{color-scheme:light dark;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f1ec;color:#171717;--bg: #f5f1ec;--panel: #fffaf2;--panel-2: #ece4d8;--text: #171717;--muted: #6d655d;--line: #d8cdbf;--accent: #dd5d45;--accent-2: #006d77;--ink: #102027;--shadow: 0 18px 60px rgba(16, 32, 39, .12)}@media(prefers-color-scheme:dark){:root{background:#121416;color:#f5efe7;--bg: #121416;--panel: #1c2022;--panel-2: #242a2c;--text: #f5efe7;--muted: #a59d93;--line: #343b3e;--accent: #ff735c;--accent-2: #6fc7cf;--ink: #f5efe7;--shadow: 0 18px 60px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,rgba(221,93,69,.12),transparent 34%),linear-gradient(315deg,rgba(0,109,119,.12),transparent 32%),var(--bg)}button,input,textarea{font:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:260px minmax(0,1fr) minmax(320px,28vw);height:100vh;min-height:620px}.sidebar,.thread{background:color-mix(in srgb,var(--panel) 88%,transparent);border-color:var(--line);border-style:solid;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.sidebar{border-width:0 1px 0 0;padding:18px 14px;overflow:auto}.brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.mark{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:var(--ink);color:var(--panel);font-weight:900;letter-spacing:0;text-transform:uppercase}.brand strong,.brand span{display:block}.brand span,.section-title,.topbar p,.thread header p,time,.empty span,.thread-empty span{color:var(--muted);font-size:12px}.section-title{margin:18px 8px 8px;text-transform:uppercase;font-weight:800}.nav-list{display:grid;gap:4px}.nav-list button{width:100%;min-height:36px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;padding:8px 10px}.nav-list button:hover,.nav-list button.active{background:var(--panel-2)}.channels button{display:flex;gap:7px}.channels span{color:var(--accent);font-weight:900}.inline-create{margin:10px 0}.inline-create input,textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);outline:0}.inline-create input{height:36px;padding:0 10px}.timeline{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:78px;padding:14px 22px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 82%,transparent)}.topbar h1,.topbar p{margin:0}.topbar h1{font-size:22px}.search{display:flex;align-items:center;gap:8px;min-width:min(360px,42vw)}.search input{width:100%;min-width:120px;height:34px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:0 10px}.search button{height:34px;border:0;border-radius:8px;background:var(--accent-2);color:var(--panel);font-weight:800;padding:0 12px}.connection{border:1px solid var(--line);border-radius:999px;color:var(--muted);padding:5px 10px;font-size:12px}.connection[data-state=live]{border-color:color-mix(in srgb,var(--accent-2) 50%,var(--line));color:var(--accent-2)}.search-results{display:grid;gap:4px;padding:8px 22px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 86%,transparent)}.search-results button{display:grid;gap:2px;border:0;border-radius:8px;background:transparent;color:var(--text);padding:8px;text-align:left}.search-results button:hover{background:var(--panel-2)}.search-results span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messages{overflow:auto;padding:18px 22px 28px}.empty,.thread-empty{display:grid;place-items:center;align-content:center;min-height:220px;text-align:center;gap:6px}.message{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;padding:12px 8px;border-radius:8px}.message:hover,.message.selected{background:color-mix(in srgb,var(--panel-2) 62%,transparent)}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--accent);color:#fff;font-weight:900;text-transform:uppercase}.message header,.reply header{display:flex;align-items:baseline;gap:8px}.markdown{line-height:1.45;overflow-wrap:anywhere}.markdown p{margin:4px 0 0}.markdown code{border-radius:5px;background:var(--panel-2);padding:1px 4px}.thread-button{border:0;background:transparent;color:var(--accent-2);margin-top:5px;padding:0;font-size:12px;font-weight:800}.composer,.reply-composer{display:grid;gap:10px;padding:14px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,transparent)}.composer{grid-template-columns:minmax(0,1fr) minmax(104px,auto);align-items:end}textarea{resize:vertical;min-height:70px;max-height:190px;padding:11px 12px}.composer button,.reply-composer button{min-height:42px;border:0;border-radius:8px;background:var(--ink);color:var(--panel);font-weight:900}.composer-actions{display:grid;gap:8px;min-width:104px}.upload-button{display:grid;place-items:center;min-height:36px;border:1px solid var(--line);border-radius:8px;color:var(--accent-2);font-size:12px;font-weight:900}.upload-button input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.pending-upload{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;border-width:0 0 0 1px;min-width:0}.thread>header{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:14px;border-bottom:1px solid var(--line)}.thread>header p,.thread>header strong{margin:0}.thread>header button{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text)}.thread-root{padding:14px;border-bottom:1px solid var(--line)}.reply-list{overflow:auto;padding:8px 14px}.reply{padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent)}@media(max-width:980px){.shell{grid-template-columns:220px minmax(0,1fr)}.thread{position:fixed;inset:0 0 0 auto;width:min(420px,100vw);box-shadow:var(--shadow);transform:translate(100%);transition:transform .16s ease;z-index:4}.thread.open{transform:translate(0)}}@media(max-width:720px){.shell{grid-template-columns:1fr;min-height:100vh}.sidebar{display:none}.composer{grid-template-columns:1fr}.topbar{align-items:stretch;flex-direction:column}.search{min-width:0;width:100%}} diff --git a/apps/api/internal/webassets/dist/assets/index-DIRqaQC7.js b/apps/api/internal/webassets/dist/assets/index-DIRqaQC7.js new file mode 100644 index 0000000..3cabdaf --- /dev/null +++ b/apps/api/internal/webassets/dist/assets/index-DIRqaQC7.js @@ -0,0 +1,68 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&i(a)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();const wa=!1;var ps=Array.isArray,ya=Array.prototype.indexOf,dn=Array.prototype.includes,Or=Array.from,xa=Object.defineProperty,Yn=Object.getOwnPropertyDescriptor,hs=Object.getOwnPropertyDescriptors,Ta=Object.prototype,Ea=Array.prototype,pi=Object.getPrototypeOf,Mi=Object.isExtensible;const Sa=()=>{};function Aa(e){return e()}function Qr(e){for(var t=0;t{e=i,t=r});return{promise:n,resolve:e,reject:t}}const de=2,gn=4,er=8,gs=1<<24,tt=16,Ze=32,Tt=64,Kr=128,Me=512,ie=1024,pe=2048,Ve=4096,ke=8192,Pe=16384,qt=32768,Pi=1<<25,mn=65536,Jr=1<<17,ms=1<<18,jt=1<<19,_s=1<<20,et=1<<25,Bt=65536,Sr=1<<21,Qn=1<<22,yt=1<<23,Zn=Symbol("$state"),Ra=Symbol(""),ct=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"};function vs(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Ia(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ca(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Oa(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Da(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function La(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Na(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ma(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Pa(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function za(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function $a(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Fa=1,Ua=2,bs=4,Ba=8,Ha=16,Wa=1,Ga=2,oe=Symbol(),ks="http://www.w3.org/1999/xhtml",qa="http://www.w3.org/2000/svg",ja="http://www.w3.org/1998/Math/MathML";function Ya(){console.warn("https://svelte.dev/e/derived_inert")}function Za(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function ws(e){return e===this.v}function Va(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function ys(e){return!Va(e,this.v)}let tr=!1,Xa=!1;function Qa(){tr=!0}let Y=null;function _n(e){Y=e}function hi(e,t=!1,n){Y={p:Y,i:!1,c:null,e:null,s:e,x:null,r:L,l:tr&&!t?{s:null,u:null,$:[]}:null}}function di(e){var t=Y,n=t.e;if(n!==null){t.e=null;for(var i of n)qs(i)}return t.i=!0,Y=t.p,{}}function nr(){return!tr||Y!==null&&Y.l===null}let Pt=[];function xs(){var e=Pt;Pt=[],Qr(e)}function xt(e){if(Pt.length===0&&!Vn){var t=Pt;queueMicrotask(()=>{t===Pt&&xs()})}Pt.push(e)}function Ka(){for(;Pt.length>0;)xs()}function Ts(e){var t=L;if(t===null)return P.f|=yt,e;if((t.f&qt)===0&&(t.f&gn)===0)throw e;kt(e,t)}function kt(e,t){for(;t!==null;){if((t.f&Kr)!==0){if((t.f&qt)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Ja=-7169;function K(e,t){e.f=e.f&Ja|t}function gi(e){(e.f&Me)!==0||e.deps===null?K(e,ie):K(e,Ve)}function Es(e){if(e!==null)for(const t of e)(t.f&de)===0||(t.f&Bt)===0||(t.f^=Bt,Es(t.deps))}function Ss(e,t,n){(e.f&pe)!==0?t.add(e):(e.f&Ve)!==0&&n.add(e),Es(e.deps),K(e,ie)}const Lt=new Set;let O=null,je=null,ei=null,Vn=!1,Br=!1,hn=null,xr=null;var zi=0;let el=1;class Et{id=el++;current=new Map;previous=new Map;#n=new Set;#o=new Set;#e=new Set;#i=new Map;#r=new Map;#s=null;#t=[];#a=[];#c=new Set;#u=new Set;#l=new Map;#p=new Set;is_fork=!1;#d=!1;#h=new Set;#f(){return this.is_fork||this.#r.size>0}#_(){for(const i of this.#h)for(const r of i.#r.keys()){for(var t=!1,n=r;n.parent!==null;){if(this.#l.has(n)){t=!0;break}n=n.parent}if(!t)return!0}return!1}skip_effect(t){this.#l.has(t)||this.#l.set(t,{d:[],m:[]}),this.#p.delete(t)}unskip_effect(t,n=i=>this.schedule(i)){var i=this.#l.get(t);if(i){this.#l.delete(t);for(var r of i.d)K(r,pe),n(r);for(r of i.m)K(r,Ve),n(r)}this.#p.add(t)}#g(){if(zi++>1e3&&(Lt.delete(this),nl()),!this.#f()){for(const o of this.#c)this.#u.delete(o),K(o,pe),this.schedule(o);for(const o of this.#u)K(o,Ve),this.schedule(o)}const t=this.#t;this.#t=[],this.apply();var n=hn=[],i=[],r=xr=[];for(const o of t)try{this.#v(o,n,i)}catch(l){throw Is(o),l}if(O=null,r.length>0){var s=Et.ensure();for(const o of r)s.schedule(o)}if(hn=null,xr=null,this.#f()||this.#_()){this.#m(i),this.#m(n);for(const[o,l]of this.#l)Rs(o,l)}else{this.#i.size===0&&Lt.delete(this),this.#c.clear(),this.#u.clear();for(const o of this.#n)o(this);this.#n.clear(),$i(i),$i(n),this.#s?.resolve()}var a=O;if(this.#t.length>0){const o=a??=this;o.#t.push(...this.#t.filter(l=>!o.#t.includes(l)))}a!==null&&(Lt.add(a),a.#g())}#v(t,n,i){t.f^=ie;for(var r=t.first;r!==null;){var s=r.f,a=(s&(Ze|Tt))!==0,o=a&&(s&ie)!==0,l=o||(s&ke)!==0||this.#l.has(r);if(!l&&r.fn!==null){a?r.f^=ie:(s&gn)!==0?n.push(r):bn(r)&&((s&tt)!==0&&this.#u.add(r),Wt(r));var f=r.first;if(f!==null){r=f;continue}}for(;r!==null;){var u=r.next;if(u!==null){r=u;break}r=r.parent}}}#m(t){for(var n=0;n!this.current.has(h));if(r.length===0)t&&u.discard();else if(n.length>0){if(t)for(const h of this.#p)u.unskip_effect(h,d=>{(d.f&(tt|Qn))!==0?u.schedule(d):u.#m([d])});u.activate();var s=new Set,a=new Map;for(var o of n)As(o,r,s,a);a=new Map;var l=[...u.current.keys()].filter(h=>this.current.has(h)?this.current.get(h)[0]!==h:!0);for(const h of this.#a)(h.f&(Pe|ke|Jr))===0&&mi(h,l,a)&&((h.f&(Qn|tt))!==0?(K(h,pe),u.schedule(h)):u.#c.add(h));if(u.#t.length>0){u.apply();for(var f of u.#t)u.#v(f,[],[]);u.#t=[]}u.deactivate()}}for(const u of Lt)u.#h.has(this)&&(u.#h.delete(this),u.#h.size===0&&!u.#f()&&(u.activate(),u.#g()))}increment(t,n){let i=this.#i.get(n)??0;if(this.#i.set(n,i+1),t){let r=this.#r.get(n)??0;this.#r.set(n,r+1)}}decrement(t,n,i){let r=this.#i.get(n)??0;if(r===1?this.#i.delete(n):this.#i.set(n,r-1),t){let s=this.#r.get(n)??0;s===1?this.#r.delete(n):this.#r.set(n,s-1)}this.#d||i||(this.#d=!0,xt(()=>{this.#d=!1,this.flush()}))}transfer_effects(t,n){for(const i of t)this.#c.add(i);for(const i of n)this.#u.add(i);t.clear(),n.clear()}oncommit(t){this.#n.add(t)}ondiscard(t){this.#o.add(t)}on_fork_commit(t){this.#e.add(t)}run_fork_commit_callbacks(){for(const t of this.#e)t(this);this.#e.clear()}settled(){return(this.#s??=ds()).promise}static ensure(){if(O===null){const t=O=new Et;Br||(Lt.add(O),Vn||xt(()=>{O===t&&t.flush()}))}return O}apply(){{je=null;return}}schedule(t){if(ei=t,t.b?.is_pending&&(t.f&(gn|er|gs))!==0&&(t.f&qt)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var i=n.f;if(hn!==null&&n===L&&(P===null||(P.f&de)===0))return;if((i&(Tt|Ze))!==0){if((i&ie)===0)return;n.f^=ie}}this.#t.push(n)}}function tl(e){var t=Vn;Vn=!0;try{for(var n;;){if(Ka(),O===null)return n;O.flush()}}finally{Vn=t}}function nl(){try{Na()}catch(e){kt(e,ei)}}let ot=null;function $i(e){var t=e.length;if(t!==0){for(var n=0;n0)){$t.clear();for(const r of ot){if((r.f&(Pe|ke))!==0)continue;const s=[r];let a=r.parent;for(;a!==null;)ot.has(a)&&(ot.delete(a),s.push(a)),a=a.parent;for(let o=s.length-1;o>=0;o--){const l=s[o];(l.f&(Pe|ke))===0&&Wt(l)}}ot.clear()}}ot=null}}function As(e,t,n,i){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const r of e.reactions){const s=r.f;(s&de)!==0?As(r,t,n,i):(s&(Qn|tt))!==0&&(s&pe)===0&&mi(r,t,i)&&(K(r,pe),_i(r))}}function mi(e,t,n){const i=n.get(e);if(i!==void 0)return i;if(e.deps!==null)for(const r of e.deps){if(dn.call(t,r))return!0;if((r.f&de)!==0&&mi(r,t,n))return n.set(r,!0),!0}return n.set(e,!1),!1}function _i(e){O.schedule(e)}function Rs(e,t){if(!((e.f&Ze)!==0&&(e.f&ie)!==0)){(e.f&pe)!==0?t.d.push(e):(e.f&Ve)!==0&&t.m.push(e),K(e,ie);for(var n=e.first;n!==null;)Rs(n,t),n=n.next}}function Is(e){K(e,ie);for(var t=e.first;t!==null;)Is(t),t=t.next}function rl(e){let t=0,n=Ht(0),i;return()=>{ki()&&(p(n),Lr(()=>(t===0&&(i=F(()=>e(()=>Xn(n)))),t+=1,()=>{xt(()=>{t-=1,t===0&&(i?.(),i=void 0,Xn(n))})})))}}var il=mn|jt;function sl(e,t,n,i){new al(e,t,n,i)}class al{parent;is_pending=!1;transform_error;#n;#o=null;#e;#i;#r;#s=null;#t=null;#a=null;#c=null;#u=0;#l=0;#p=!1;#d=new Set;#h=new Set;#f=null;#_=rl(()=>(this.#f=Ht(this.#u),()=>{this.#f=null}));constructor(t,n,i,r){this.#n=t,this.#e=n,this.#i=s=>{var a=L;a.b=this,a.f|=Kr,i(s)},this.parent=L.b,this.transform_error=r??this.parent?.transform_error??(s=>s),this.#r=Nr(()=>{this.#b()},il)}#g(){try{this.#s=Ne(()=>this.#i(this.#n))}catch(t){this.error(t)}}#v(t){const n=this.#e.failed;n&&(this.#a=Ne(()=>{n(this.#n,()=>t,()=>()=>{})}))}#m(){const t=this.#e.pending;t&&(this.is_pending=!0,this.#t=Ne(()=>t(this.#n)),xt(()=>{var n=this.#c=document.createDocumentFragment(),i=ut();n.append(i),this.#s=this.#w(()=>Ne(()=>this.#i(i))),this.#l===0&&(this.#n.before(n),this.#c=null,Ft(this.#t,()=>{this.#t=null}),this.#k(O))}))}#b(){try{if(this.is_pending=this.has_pending_snippet(),this.#l=0,this.#u=0,this.#s=Ne(()=>{this.#i(this.#n)}),this.#l>0){var t=this.#c=document.createDocumentFragment();xi(this.#s,t);const n=this.#e.pending;this.#t=Ne(()=>n(this.#n))}else this.#k(O)}catch(n){this.error(n)}}#k(t){this.is_pending=!1,t.transfer_effects(this.#d,this.#h)}defer_effect(t){Ss(t,this.#d,this.#h)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#e.pending}#w(t){var n=L,i=P,r=Y;Fe(this.#r),$e(this.#r),_n(this.#r.ctx);try{return Et.ensure(),t()}catch(s){return Ts(s),null}finally{Fe(n),$e(i),_n(r)}}#y(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#y(t,n);return}this.#l+=t,this.#l===0&&(this.#k(n),this.#t&&Ft(this.#t,()=>{this.#t=null}),this.#c&&(this.#n.before(this.#c),this.#c=null))}update_pending_count(t,n){this.#y(t,n),this.#u+=t,!(!this.#f||this.#p)&&(this.#p=!0,xt(()=>{this.#p=!1,this.#f&&vn(this.#f,this.#u)}))}get_effect_pending(){return this.#_(),p(this.#f)}error(t){if(!this.#e.onerror&&!this.#e.failed)throw t;O?.is_fork?(this.#s&&O.skip_effect(this.#s),this.#t&&O.skip_effect(this.#t),this.#a&&O.skip_effect(this.#a),O.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#s&&(Se(this.#s),this.#s=null),this.#t&&(Se(this.#t),this.#t=null),this.#a&&(Se(this.#a),this.#a=null);var n=this.#e.onerror;let i=this.#e.failed;var r=!1,s=!1;const a=()=>{if(r){Za();return}r=!0,s&&$a(),this.#a!==null&&Ft(this.#a,()=>{this.#a=null}),this.#w(()=>{this.#b()})},o=l=>{try{s=!0,n?.(l,a),s=!1}catch(f){kt(f,this.#r&&this.#r.parent)}i&&(this.#a=this.#w(()=>{try{return Ne(()=>{var f=L;f.b=this,f.f|=Kr,i(this.#n,()=>l,()=>a)})}catch(f){return kt(f,this.#r.parent),null}}))};xt(()=>{var l;try{l=this.transform_error(t)}catch(f){kt(f,this.#r&&this.#r.parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(o,f=>kt(f,this.#r&&this.#r.parent)):o(l)})}}function ll(e,t,n,i){const r=nr()?vi:Os;var s=e.filter(d=>!d.settled);if(n.length===0&&s.length===0){i(t.map(r));return}var a=L,o=ol(),l=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(d=>d.promise)):null;function f(d){o();try{i(d)}catch(v){(a.f&Pe)===0&&kt(v,a)}Ar()}if(n.length===0){l.then(()=>f(t.map(r)));return}var u=Cs();function h(){Promise.all(n.map(d=>cl(d))).then(d=>f([...t.map(r),...d])).catch(d=>kt(d,a)).finally(()=>u())}l?l.then(()=>{o(),h(),Ar()}):h()}function ol(){var e=L,t=P,n=Y,i=O;return function(s=!0){Fe(e),$e(t),_n(n),s&&(e.f&Pe)===0&&(i?.activate(),i?.apply())}}function Ar(e=!0){Fe(null),$e(null),_n(null),e&&O?.deactivate()}function Cs(){var e=L,t=e.b,n=O,i=t.is_rendered();return t.update_pending_count(1,n),n.increment(i,e),(r=!1)=>{t.update_pending_count(-1,n),n.decrement(i,e,r)}}function vi(e){var t=de|pe;return L!==null&&(L.f|=jt),{ctx:Y,deps:null,effects:null,equals:ws,f:t,fn:e,reactions:null,rv:0,v:oe,wv:0,parent:L,ac:null}}function cl(e,t,n){let i=L;i===null&&Ia();var r=void 0,s=Ht(oe),a=!P,o=new Map;return yl(()=>{var l=L,f=ds();r=f.promise;try{Promise.resolve(e()).then(f.resolve,f.reject).finally(Ar)}catch(v){f.reject(v),Ar()}var u=O;if(a){if((l.f&qt)!==0)var h=Cs();if(i.b.is_rendered())o.get(u)?.reject(ct),o.delete(u);else{for(const v of o.values())v.reject(ct);o.clear()}o.set(u,f)}const d=(v,_=void 0)=>{if(h){var S=_===ct;h(S)}if(!(_===ct||(l.f&Pe)!==0)){if(u.activate(),_)s.f|=yt,vn(s,_);else{(s.f&yt)!==0&&(s.f^=yt),vn(s,v);for(const[b,A]of o){if(o.delete(b),b===u)break;A.reject(ct)}}u.deactivate()}};f.promise.then(d,v=>d(null,v||"unknown"))}),Gs(()=>{for(const l of o.values())l.reject(ct)}),new Promise(l=>{function f(u){function h(){u===r?l(s):f(r)}u.then(h,h)}f(r)})}function Os(e){const t=vi(e);return t.equals=ys,t}function ul(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n0&&!Ns&&pl()}return t}function pl(){Ns=!1;for(const e of ti)(e.f&ie)!==0&&K(e,Ve),bn(e)&&Wt(e);ti.clear()}function Xn(e){y(e,e.v+1)}function Ms(e,t,n){var i=e.reactions;if(i!==null)for(var r=nr(),s=i.length,a=0;a{if(Ut===s)return o();var l=P,f=Ut;$e(null),Hi(s);var u=o();return $e(l),Hi(f),u};return i&&n.set("length",_t(e.length)),new Proxy(e,{defineProperty(o,l,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&Ma();var u=n.get(l);return u===void 0?a(()=>{var h=_t(f.value);return n.set(l,h),h}):y(u,f.value,!0),!0},deleteProperty(o,l){var f=n.get(l);if(f===void 0){if(l in o){const u=a(()=>_t(oe));n.set(l,u),Xn(r)}}else y(f,oe),Xn(r);return!0},get(o,l,f){if(l===Zn)return e;var u=n.get(l),h=l in o;if(u===void 0&&(!h||Yn(o,l)?.writable)&&(u=a(()=>{var v=Bn(h?o[l]:oe),_=_t(v);return _}),n.set(l,u)),u!==void 0){var d=p(u);return d===oe?void 0:d}return Reflect.get(o,l,f)},getOwnPropertyDescriptor(o,l){var f=Reflect.getOwnPropertyDescriptor(o,l);if(f&&"value"in f){var u=n.get(l);u&&(f.value=p(u))}else if(f===void 0){var h=n.get(l),d=h?.v;if(h!==void 0&&d!==oe)return{enumerable:!0,configurable:!0,value:d,writable:!0}}return f},has(o,l){if(l===Zn)return!0;var f=n.get(l),u=f!==void 0&&f.v!==oe||Reflect.has(o,l);if(f!==void 0||L!==null&&(!u||Yn(o,l)?.writable)){f===void 0&&(f=a(()=>{var d=u?Bn(o[l]):oe,v=_t(d);return v}),n.set(l,f));var h=p(f);if(h===oe)return!1}return u},set(o,l,f,u){var h=n.get(l),d=l in o;if(i&&l==="length")for(var v=f;v_t(oe)),n.set(v+"",_))}if(h===void 0)(!d||Yn(o,l)?.writable)&&(h=a(()=>_t(void 0)),y(h,Bn(f)),n.set(l,h));else{d=h.v!==oe;var S=a(()=>Bn(f));y(h,S)}var b=Reflect.getOwnPropertyDescriptor(o,l);if(b?.set&&b.set.call(u,f),!d){if(i&&typeof l=="string"){var A=n.get("length"),z=Number(l);Number.isInteger(z)&&z>=A.v&&y(A,z+1)}Xn(r)}return!0},ownKeys(o){p(r);var l=Reflect.ownKeys(o).filter(h=>{var d=n.get(h);return d===void 0||d.v!==oe});for(var[f,u]of n)u.v!==oe&&!(f in o)&&l.push(f);return l},setPrototypeOf(){Pa()}})}var Fi,Ps,zs,$s,Fs;function hl(){if(Fi===void 0){Fi=window,Ps=document,zs=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;$s=Yn(t,"firstChild").get,Fs=Yn(t,"nextSibling").get,Mi(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Mi(n)&&(n.__t=void 0)}}function ut(e=""){return document.createTextNode(e)}function wt(e){return $s.call(e)}function rr(e){return Fs.call(e)}function x(e,t){return wt(e)}function Us(e,t=!1){{var n=wt(e);return n instanceof Comment&&n.data===""?rr(n):n}}function E(e,t=1,n=!1){let i=e;for(;t--;)i=rr(i);return i}function dl(e){e.textContent=""}function Bs(){return!1}function Hs(e,t,n){return document.createElementNS(t??ks,e,void 0)}let Ui=!1;function gl(){Ui||(Ui=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Dr(e){var t=P,n=L;$e(null),Fe(null);try{return e()}finally{$e(t),Fe(n)}}function ml(e,t,n,i=n){e.addEventListener(t,()=>Dr(n));const r=e.__on_r;r?e.__on_r=()=>{r(),i(!0)}:e.__on_r=()=>i(!0),gl()}function Ws(e){L===null&&(P===null&&La(),Da()),St&&Oa()}function _l(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function nt(e,t){var n=L;n!==null&&(n.f&ke)!==0&&(e|=ke);var i={ctx:Y,deps:null,nodes:null,f:e|pe|Me,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};O?.register_created_effect(i);var r=i;if((e&gn)!==0)hn!==null?hn.push(i):Et.ensure().schedule(i);else if(t!==null){try{Wt(i)}catch(a){throw Se(i),a}r.deps===null&&r.teardown===null&&r.nodes===null&&r.first===r.last&&(r.f&jt)===0&&(r=r.first,(e&tt)!==0&&(e&mn)!==0&&r!==null&&(r.f|=mn))}if(r!==null&&(r.parent=n,n!==null&&_l(r,n),P!==null&&(P.f&de)!==0&&(e&Tt)===0)){var s=P;(s.effects??=[]).push(r)}return i}function ki(){return P!==null&&!Ye}function Gs(e){const t=nt(er,null);return K(t,ie),t.teardown=e,t}function ni(e){Ws();var t=L.f,n=!P&&(t&Ze)!==0&&(t&qt)===0;if(n){var i=Y;(i.e??=[]).push(e)}else return qs(e)}function qs(e){return nt(gn|_s,e)}function vl(e){return Ws(),nt(er|_s,e)}function bl(e){Et.ensure();const t=nt(Tt|jt,e);return(n={})=>new Promise(i=>{n.outro?Ft(t,()=>{Se(t),i(void 0)}):(Se(t),i(void 0))})}function kl(e){return nt(gn,e)}function Hr(e,t){var n=Y,i={effect:null,ran:!1,deps:e};n.l.$.push(i),i.effect=Lr(()=>{if(e(),!i.ran){i.ran=!0;var r=L;try{Fe(r.parent),F(t)}finally{Fe(r)}}})}function wl(){var e=Y;Lr(()=>{for(var t of e.l.$){t.deps();var n=t.effect;(n.f&ie)!==0&&n.deps!==null&&K(n,Ve),bn(n)&&Wt(n),t.ran=!1}})}function yl(e){return nt(Qn|jt,e)}function Lr(e,t=0){return nt(er|t,e)}function De(e,t=[],n=[],i=[]){ll(i,t,n,r=>{nt(er,()=>e(...r.map(p)))})}function Nr(e,t=0){var n=nt(tt|t,e);return n}function Ne(e){return nt(Ze|jt,e)}function js(e){var t=e.teardown;if(t!==null){const n=St,i=P;Bi(!0),$e(null);try{t.call(null)}finally{Bi(n),$e(i)}}}function wi(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const r=n.ac;r!==null&&Dr(()=>{r.abort(ct)});var i=n.next;(n.f&Tt)!==0?n.parent=null:Se(n,t),n=i}}function xl(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&Ze)===0&&Se(t),t=n}}function Se(e,t=!0){var n=!1;(t||(e.f&ms)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Ys(e.nodes.start,e.nodes.end),n=!0),K(e,Pi),wi(e,t&&!n),Kn(e,0);var i=e.nodes&&e.nodes.t;if(i!==null)for(const s of i)s.stop();js(e),e.f^=Pi,e.f|=Pe;var r=e.parent;r!==null&&r.first!==null&&Zs(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Ys(e,t){for(;e!==null;){var n=e===t?null:rr(e);e.remove(),e=n}}function Zs(e){var t=e.parent,n=e.prev,i=e.next;n!==null&&(n.next=i),i!==null&&(i.prev=n),t!==null&&(t.first===e&&(t.first=i),t.last===e&&(t.last=n))}function Ft(e,t,n=!0){var i=[];Vs(e,i,!0);var r=()=>{n&&Se(e),t&&t()},s=i.length;if(s>0){var a=()=>--s||r();for(var o of i)o.out(a)}else r()}function Vs(e,t,n){if((e.f&ke)===0){e.f^=ke;var i=e.nodes&&e.nodes.t;if(i!==null)for(const o of i)(o.is_global||n)&&t.push(o);for(var r=e.first;r!==null;){var s=r.next;if((r.f&Tt)===0){var a=(r.f&mn)!==0||(r.f&Ze)!==0&&(e.f&tt)!==0;Vs(r,t,a?n:!1)}r=s}}}function yi(e){Xs(e,!0)}function Xs(e,t){if((e.f&ke)!==0){e.f^=ke,(e.f&ie)===0&&(K(e,pe),Et.ensure().schedule(e));for(var n=e.first;n!==null;){var i=n.next,r=(n.f&mn)!==0||(n.f&Ze)!==0;Xs(n,r?t:!1),n=i}var s=e.nodes&&e.nodes.t;if(s!==null)for(const a of s)(a.is_global||t)&&a.in()}}function xi(e,t){if(e.nodes)for(var n=e.nodes.start,i=e.nodes.end;n!==null;){var r=n===i?null:rr(n);t.append(n),n=r}}let Tr=!1,St=!1;function Bi(e){St=e}let P=null,Ye=!1;function $e(e){P=e}let L=null;function Fe(e){L=e}let ze=null;function Tl(e){P!==null&&(ze===null?ze=[e]:ze.push(e))}let Ee=null,Ce=0,Le=null;function El(e){Le=e}let Qs=1,zt=0,Ut=zt;function Hi(e){Ut=e}function Ks(){return++Qs}function bn(e){var t=e.f;if((t&pe)!==0)return!0;if(t&de&&(e.f&=~Bt),(t&Ve)!==0){for(var n=e.deps,i=n.length,r=0;re.wv)return!0}(t&Me)!==0&&je===null&&K(e,ie)}return!1}function Js(e,t,n=!0){var i=e.reactions;if(i!==null&&!(ze!==null&&dn.call(ze,e)))for(var r=0;r{e.ac.abort(ct)}),e.ac=null);try{e.f|=Sr;var u=e.fn,h=u();e.f|=qt;var d=e.deps,v=O?.is_fork;if(Ee!==null){var _;if(v||Kn(e,Ce),d!==null&&Ce>0)for(d.length=Ce+Ee.length,_=0;_n?.call(this,s))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?xt(()=>{t.addEventListener(e,r,i)}):t.addEventListener(e,r,i),r}function an(e,t,n,i,r){var s={capture:i,passive:r},a=Cl(e,t,n,s);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Gs(()=>{t.removeEventListener(e,a,s)})}function lt(e,t,n){(t[Hn]??={})[e]=n}function Ol(e){for(var t=0;t{throw b});throw d}}finally{e[Hn]=t,delete e.currentTarget,$e(u),Fe(h)}}}const Dl=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Ll(e){return Dl?.createHTML(e)??e}function Nl(e){var t=Hs("template");return t.innerHTML=Ll(e.replaceAll("","")),t.content}function Jn(e,t){var n=L;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function ge(e,t){var n=(t&Wa)!==0,i=(t&Ga)!==0,r,s=!e.startsWith("");return()=>{r===void 0&&(r=Nl(s?e:""+e),n||(r=wt(r)));var a=i||zs?document.importNode(r,!0):r.cloneNode(!0);if(n){var o=wt(a),l=a.lastChild;Jn(o,l)}else Jn(a,a);return a}}function Ml(){var e=document.createDocumentFragment(),t=document.createComment(""),n=ut();return e.append(t,n),Jn(t,n),e}function fe(e,t){e!==null&&e.before(t)}function re(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function Pl(e,t){return zl(e,t)}const vr=new Map;function zl(e,{target:t,anchor:n,props:i={},events:r,context:s,intro:a=!0,transformError:o}){hl();var l=void 0,f=bl(()=>{var u=n??t.appendChild(ut());sl(u,{pending:()=>{}},v=>{hi({});var _=Y;s&&(_.c=s),r&&(i.$$events=r),l=e(v,i)||{},di()},o);var h=new Set,d=v=>{for(var _=0;_{for(var v of h)for(const b of[t,document]){var _=vr.get(b),S=_.get(v);--S==0?(b.removeEventListener(v,si),_.delete(v),_.size===0&&vr.delete(b)):_.set(v,S)}ii.delete(d),u!==n&&u.parentNode?.removeChild(u)}});return $l.set(l,f),l}let $l=new WeakMap;class Fl{anchor;#n=new Map;#o=new Map;#e=new Map;#i=new Set;#r=!0;constructor(t,n=!0){this.anchor=t,this.#r=n}#s=t=>{if(this.#n.has(t)){var n=this.#n.get(t),i=this.#o.get(n);if(i)yi(i),this.#i.delete(n);else{var r=this.#e.get(n);r&&(this.#o.set(n,r.effect),this.#e.delete(n),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),i=r.effect)}for(const[s,a]of this.#n){if(this.#n.delete(s),s===t)break;const o=this.#e.get(a);o&&(Se(o.effect),this.#e.delete(a))}for(const[s,a]of this.#o){if(s===n||this.#i.has(s))continue;const o=()=>{if(Array.from(this.#n.values()).includes(s)){var f=document.createDocumentFragment();xi(a,f),f.append(ut()),this.#e.set(s,{effect:a,fragment:f})}else Se(a);this.#i.delete(s),this.#o.delete(s)};this.#r||!i?(this.#i.add(s),Ft(a,o,!1)):o()}}};#t=t=>{this.#n.delete(t);const n=Array.from(this.#n.values());for(const[i,r]of this.#e)n.includes(i)||(Se(r.effect),this.#e.delete(i))};ensure(t,n){var i=O,r=Bs();if(n&&!this.#o.has(t)&&!this.#e.has(t))if(r){var s=document.createDocumentFragment(),a=ut();s.append(a),this.#e.set(t,{effect:Ne(()=>n(a)),fragment:s})}else this.#o.set(t,Ne(()=>n(this.anchor)));if(this.#n.set(i,t),r){for(const[o,l]of this.#o)o===t?i.unskip_effect(l):i.skip_effect(l);for(const[o,l]of this.#e)o===t?i.unskip_effect(l.effect):i.skip_effect(l.effect);i.oncommit(this.#s),i.ondiscard(this.#t)}else this.#s(i)}}function Wn(e,t,n=!1){var i=new Fl(e),r=n?mn:0;function s(a,o){i.ensure(a,o)}Nr(()=>{var a=!1;t((o,l=0)=>{a=!0,s(l,o)}),a||s(-1,null)},r)}function Er(e,t){return t}function Ul(e,t,n){for(var i=[],r=t.length,s,a=t.length,o=0;o{if(s){if(s.pending.delete(h),s.done.add(h),s.pending.size===0){var d=e.outrogroups;ai(e,Or(s.done)),d.delete(s),d.size===0&&(e.outrogroups=null)}}else a-=1},!1)}if(a===0){var l=i.length===0&&n!==null;if(l){var f=n,u=f.parentNode;dl(u),u.append(f),e.items.clear()}ai(e,t,!l)}else s={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(s)}function ai(e,t,n=!0){var i;if(e.pending.size>0){i=new Set;for(const a of e.pending.values())for(const o of a)i.add(e.items.get(o).e)}for(var r=0;r{var D=n();return ps(D)?D:D==null?[]:Or(D)}),d,v=new Map,_=!0;function S(D){(z.effect.f&Pe)===0&&(z.pending.delete(D),z.fallback=u,Bl(z,d,a,t,i),u!==null&&(d.length===0?(u.f&et)===0?yi(u):(u.f^=et,Gn(u,null,a)):Ft(u,()=>{u=null})))}function b(D){z.pending.delete(D)}var A=Nr(()=>{d=p(h);for(var D=d.length,C=new Set,H=O,W=Bs(),G=0;Gs(a)):(u=Ne(()=>s(Gi??=ut())),u.f|=et)),D>C.size&&Ca(),!_)if(v.set(H,C),W){for(const[j,Be]of o)C.has(j)||H.skip_effect(Be.e);H.oncommit(S),H.ondiscard(b)}else S(H);p(h)}),z={effect:A,items:o,pending:v,outrogroups:null,fallback:u};_=!1}function Ln(e){for(;e!==null&&(e.f&Ze)===0;)e=e.next;return e}function Bl(e,t,n,i,r){var s=(i&Ba)!==0,a=t.length,o=e.items,l=Ln(e.effect.first),f,u=null,h,d=[],v=[],_,S,b,A;if(s)for(A=0;A0){var J=(i&bs)!==0&&a===0?n:null;if(s){for(A=0;A{if(h!==void 0)for(b of h)b.nodes?.a?.apply()})}function Hl(e,t,n,i,r,s,a,o){var l=(a&Fa)!==0?(a&Ha)===0?q(n,!1,!1):Ht(n):null,f=(a&Ua)!==0?Ht(r):null;return{v:l,i:f,e:Ne(()=>(s(t,l??n,f??r,o),()=>{e.delete(i)}))}}function Gn(e,t,n){if(e.nodes)for(var i=e.nodes.start,r=e.nodes.end,s=t&&(t.f&et)===0?t.nodes.start:n;i!==null;){var a=rr(i);if(s.before(i),i===r)return;i=a}}function vt(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Wr(e,t,n=!1,i=!1,r=!1,s=!1){var a=e,o="";if(n)var l=e;De(()=>{var f=L;if(o!==(o=t()??"")){if(n){f.nodes=null,l.innerHTML=o,o!==""&&Jn(wt(l),l.lastChild);return}if(f.nodes!==null&&(Ys(f.nodes.start,f.nodes.end),f.nodes=null),o!==""){var u=i?qa:r?ja:void 0,h=Hs(i?"svg":r?"math":"template",u);h.innerHTML=o;var d=i||r?h:h.content;if(Jn(wt(d),d.lastChild),i||r)for(;wt(d);)a.before(wt(d));else a.before(d)}}})}function ia(e,t){var n;n=document.head.appendChild(ut()),Nr(()=>t(n),ms|jt)}const qi=[...` +\r\f \v\uFEFF`];function Wl(e,t,n){var i=e==null?"":""+e;if(n){for(var r of Object.keys(n))if(n[r])i=i?i+" "+r:r;else if(i.length)for(var s=r.length,a=0;(a=i.indexOf(r,a))>=0;){var o=a+s;(a===0||qi.includes(i[a-1]))&&(o===i.length||qi.includes(i[o]))?i=(a===0?"":i.substring(0,a))+i.substring(o+1):a=o}}return i===""?null:i}function Nn(e,t,n,i,r,s){var a=e.__className;if(a!==n||a===void 0){var o=Wl(n,i,s);o==null?e.removeAttribute("class"):e.className=o,e.__className=n}else if(s&&r!==s)for(var l in s){var f=!!s[l];(r==null||f!==!!r[l])&&e.classList.toggle(l,f)}return s}const Gl=Symbol("is custom element"),ql=Symbol("is html");function bt(e,t,n,i){var r=jl(e);r[t]!==(r[t]=n)&&(t==="loading"&&(e[Ra]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Yl(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function jl(e){return e.__attributes??={[Gl]:e.nodeName.includes("-"),[ql]:e.namespaceURI===ks}}var ji=new Map;function Yl(e){var t=e.getAttribute("is")||e.nodeName,n=ji.get(t);if(n)return n;ji.set(t,n=[]);for(var i,r=e,s=Element.prototype;s!==r;){i=hs(r);for(var a in i)i[a].set&&n.push(a);r=pi(r)}return n}function ln(e,t,n=t){var i=new WeakSet;ml(e,"input",async r=>{var s=r?e.defaultValue:e.value;if(s=Gr(e)?qr(s):s,n(s),O!==null&&i.add(O),await Al(),s!==(s=t())){var a=e.selectionStart,o=e.selectionEnd,l=e.value.length;if(e.value=s??"",o!==null){var f=e.value.length;a===o&&o===l&&f>l?(e.selectionStart=f,e.selectionEnd=f):(e.selectionStart=a,e.selectionEnd=Math.min(o,f))}}}),F(t)==null&&e.value&&(n(Gr(e)?qr(e.value):e.value),O!==null&&i.add(O)),Lr(()=>{var r=t();if(e===document.activeElement){var s=O;if(i.has(s))return}Gr(e)&&r===qr(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function Gr(e){var t=e.type;return t==="number"||t==="range"}function qr(e){return e===""?null:+e}function sa(e=!1){const t=Y,n=t.l.u;if(!n)return;let i=()=>un(t.s);if(e){let r=0,s={};const a=vi(()=>{let o=!1;const l=t.s;for(const f in l)l[f]!==s[f]&&(s[f]=l[f],o=!0);return o&&r++,r});i=()=>p(a)}n.b.length&&vl(()=>{Yi(t,i),Qr(n.b)}),ni(()=>{const r=F(()=>n.m.map(Aa));return()=>{for(const s of r)typeof s=="function"&&s()}}),n.a.length&&ni(()=>{Yi(t,i),Qr(n.a)})}function Yi(e,t){if(e.l.s)for(const n of e.l.s)p(n);t()}function aa(e){Y===null&&vs(),tr&&Y.l!==null?Vl(Y).m.push(e):ni(()=>{const t=F(e);if(typeof t=="function")return t})}function Zl(e){Y===null&&vs(),aa(()=>()=>F(e))}function Vl(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const Xl="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Xl);Qa();async function _e(e,t={}){const n=new Headers(t.headers);n.set("Accept","application/json"),t.body&&!(t.body instanceof FormData)&&n.set("Content-Type","application/json");const i=await fetch(e,{...t,headers:n});if(!i.ok)throw new Error(await i.text());return i.json()}const{entries:la,setPrototypeOf:Zi,isFrozen:Ql,getPrototypeOf:Kl,getOwnPropertyDescriptor:Jl}=Object;let{freeze:we,seal:Ue,create:fn}=Object,{apply:li,construct:oi}=typeof Reflect<"u"&&Reflect;we||(we=function(t){return t});Ue||(Ue=function(t){return t});li||(li=function(t,n){for(var i=arguments.length,r=new Array(i>2?i-2:0),s=2;s1?n-1:0),r=1;r"u"?null:se(BigInt.prototype.toString),Ji=typeof Symbol>"u"?null:se(Symbol.prototype.toString),Q=se(Object.prototype.hasOwnProperty),zn=se(Object.prototype.toString),ue=se(RegExp.prototype.test),br=so(TypeError);function se(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r2&&arguments[2]!==void 0?arguments[2]:qn;if(Zi&&Zi(e,null),!ve(t))return e;let i=t.length;for(;i--;){let r=t[i];if(typeof r=="string"){const s=n(r);s!==r&&(Ql(t)||(t[i]=s),r=s)}e[r]=!0}return e}function ao(e){for(let t=0;t/gm),ho=Ue(/\$\{[\w\W]*/gm),go=Ue(/^data-[\-\w.\u00B7-\uFFFF]+$/),mo=Ue(/^aria-[\-\w]+$/),oa=Ue(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),_o=Ue(/^(?:\w+script|data):/i),vo=Ue(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ca=Ue(/^html$/i),bo=Ue(/^[a-z][.\w]*(-[.\w]+)+$/i);var is=Object.freeze({__proto__:null,ARIA_ATTR:mo,ATTR_WHITESPACE:vo,CUSTOM_ELEMENT:bo,DATA_ATTR:go,DOCTYPE_NAME:ca,ERB_EXPR:po,IS_ALLOWED_URI:oa,IS_SCRIPT_OR_DATA:_o,MUSTACHE_EXPR:fo,TMPLIT_EXPR:ho});const $n={element:1,text:3,progressingInstruction:7,comment:8,document:9},ko=function(){return typeof window>"u"?null:window},wo=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null;const r="data-tt-policy-suffix";n&&n.hasAttribute(r)&&(i=n.getAttribute(r));const s="dompurify"+(i?"#"+i:"");try{return t.createPolicy(s,{createHTML(a){return a},createScriptURL(a){return a}})}catch{return console.warn("TrustedTypes policy "+s+" could not be created."),null}},ss=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function ua(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ko();const t=T=>ua(T);if(t.version="3.4.2",t.removed=[],!e||!e.document||e.document.nodeType!==$n.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e;const i=n,r=i.currentScript,{DocumentFragment:s,HTMLTemplateElement:a,Node:o,Element:l,NodeFilter:f,NamedNodeMap:u=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:h,DOMParser:d,trustedTypes:v}=e,_=l.prototype,S=pn(_,"cloneNode"),b=pn(_,"remove"),A=pn(_,"nextSibling"),z=pn(_,"childNodes"),D=pn(_,"parentNode");if(typeof a=="function"){const T=n.createElement("template");T.content&&T.content.ownerDocument&&(n=T.content.ownerDocument)}let C,H="";const{implementation:W,createNodeIterator:G,createDocumentFragment:ce,getElementsByTagName:J}=n,{importNode:B}=i;let j=ss();t.isSupported=typeof la=="function"&&typeof D=="function"&&W&&W.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:Be,ERB_EXPR:rt,TMPLIT_EXPR:He,DATA_ATTR:wn,ARIA_ATTR:Oe,IS_SCRIPT_OR_DATA:sr,ATTR_WHITESPACE:yn,CUSTOM_ELEMENT:ar}=is;let{IS_ALLOWED_URI:lr}=is,ee=null;const xn=I({},[...es,...Yr,...Zr,...Vr,...ts]);let ae=null;const At=I({},[...ns,...Xr,...rs,...kr]);let Z=Object.seal(fn(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ft=null,Rt=null;const We=Object.seal(fn(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let or=!0,Tn=!0,cr=!1,En=!0,Xe=!1,pt=!0,it=!1,Zt=!1,Vt=!1,st=!1,Xt=!1,Qt=!1,Sn=!0,An=!1;const ur="user-content-";let Kt=!0,ht=!1,at={},Ae=null;const Rn=I({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let fr=null;const pr=I({},["audio","video","img","source","image","track"]);let It=null;const hr=I({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ct="http://www.w3.org/1998/Math/MathML",Jt="http://www.w3.org/2000/svg",Re="http://www.w3.org/1999/xhtml";let dt=Re,en=!1,tn=null;const zr=I({},[Ct,Jt,Re],jr);let In=I({},["mi","mo","mn","ms","mtext"]),nn=I({},["annotation-xml"]);const dr=I({},["title","style","font","a","script"]);let Ot=null;const gr=["application/xhtml+xml","text/html"],$r="text/html";let X=null,gt=null;const Fr=n.createElement("form"),Cn=function(c){return c instanceof RegExp||c instanceof Function},rn=function(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(gt&>===c)return;(!c||typeof c!="object")&&(c={}),c=Te(c),Ot=gr.indexOf(c.PARSER_MEDIA_TYPE)===-1?$r:c.PARSER_MEDIA_TYPE,X=Ot==="application/xhtml+xml"?jr:qn,ee=Q(c,"ALLOWED_TAGS")&&ve(c.ALLOWED_TAGS)?I({},c.ALLOWED_TAGS,X):xn,ae=Q(c,"ALLOWED_ATTR")&&ve(c.ALLOWED_ATTR)?I({},c.ALLOWED_ATTR,X):At,tn=Q(c,"ALLOWED_NAMESPACES")&&ve(c.ALLOWED_NAMESPACES)?I({},c.ALLOWED_NAMESPACES,jr):zr,It=Q(c,"ADD_URI_SAFE_ATTR")&&ve(c.ADD_URI_SAFE_ATTR)?I(Te(hr),c.ADD_URI_SAFE_ATTR,X):hr,fr=Q(c,"ADD_DATA_URI_TAGS")&&ve(c.ADD_DATA_URI_TAGS)?I(Te(pr),c.ADD_DATA_URI_TAGS,X):pr,Ae=Q(c,"FORBID_CONTENTS")&&ve(c.FORBID_CONTENTS)?I({},c.FORBID_CONTENTS,X):Rn,ft=Q(c,"FORBID_TAGS")&&ve(c.FORBID_TAGS)?I({},c.FORBID_TAGS,X):Te({}),Rt=Q(c,"FORBID_ATTR")&&ve(c.FORBID_ATTR)?I({},c.FORBID_ATTR,X):Te({}),at=Q(c,"USE_PROFILES")?c.USE_PROFILES&&typeof c.USE_PROFILES=="object"?Te(c.USE_PROFILES):c.USE_PROFILES:!1,or=c.ALLOW_ARIA_ATTR!==!1,Tn=c.ALLOW_DATA_ATTR!==!1,cr=c.ALLOW_UNKNOWN_PROTOCOLS||!1,En=c.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Xe=c.SAFE_FOR_TEMPLATES||!1,pt=c.SAFE_FOR_XML!==!1,it=c.WHOLE_DOCUMENT||!1,st=c.RETURN_DOM||!1,Xt=c.RETURN_DOM_FRAGMENT||!1,Qt=c.RETURN_TRUSTED_TYPE||!1,Vt=c.FORCE_BODY||!1,Sn=c.SANITIZE_DOM!==!1,An=c.SANITIZE_NAMED_PROPS||!1,Kt=c.KEEP_CONTENT!==!1,ht=c.IN_PLACE||!1,lr=oo(c.ALLOWED_URI_REGEXP)?c.ALLOWED_URI_REGEXP:oa,dt=typeof c.NAMESPACE=="string"?c.NAMESPACE:Re,In=Q(c,"MATHML_TEXT_INTEGRATION_POINTS")&&c.MATHML_TEXT_INTEGRATION_POINTS&&typeof c.MATHML_TEXT_INTEGRATION_POINTS=="object"?Te(c.MATHML_TEXT_INTEGRATION_POINTS):I({},["mi","mo","mn","ms","mtext"]),nn=Q(c,"HTML_INTEGRATION_POINTS")&&c.HTML_INTEGRATION_POINTS&&typeof c.HTML_INTEGRATION_POINTS=="object"?Te(c.HTML_INTEGRATION_POINTS):I({},["annotation-xml"]);const m=Q(c,"CUSTOM_ELEMENT_HANDLING")&&c.CUSTOM_ELEMENT_HANDLING&&typeof c.CUSTOM_ELEMENT_HANDLING=="object"?Te(c.CUSTOM_ELEMENT_HANDLING):fn(null);if(Z=fn(null),Q(m,"tagNameCheck")&&Cn(m.tagNameCheck)&&(Z.tagNameCheck=m.tagNameCheck),Q(m,"attributeNameCheck")&&Cn(m.attributeNameCheck)&&(Z.attributeNameCheck=m.attributeNameCheck),Q(m,"allowCustomizedBuiltInElements")&&typeof m.allowCustomizedBuiltInElements=="boolean"&&(Z.allowCustomizedBuiltInElements=m.allowCustomizedBuiltInElements),Xe&&(Tn=!1),Xt&&(st=!0),at&&(ee=I({},ts),ae=fn(null),at.html===!0&&(I(ee,es),I(ae,ns)),at.svg===!0&&(I(ee,Yr),I(ae,Xr),I(ae,kr)),at.svgFilters===!0&&(I(ee,Zr),I(ae,Xr),I(ae,kr)),at.mathMl===!0&&(I(ee,Vr),I(ae,rs),I(ae,kr))),We.tagCheck=null,We.attributeCheck=null,Q(c,"ADD_TAGS")&&(typeof c.ADD_TAGS=="function"?We.tagCheck=c.ADD_TAGS:ve(c.ADD_TAGS)&&(ee===xn&&(ee=Te(ee)),I(ee,c.ADD_TAGS,X))),Q(c,"ADD_ATTR")&&(typeof c.ADD_ATTR=="function"?We.attributeCheck=c.ADD_ATTR:ve(c.ADD_ATTR)&&(ae===At&&(ae=Te(ae)),I(ae,c.ADD_ATTR,X))),Q(c,"ADD_URI_SAFE_ATTR")&&ve(c.ADD_URI_SAFE_ATTR)&&I(It,c.ADD_URI_SAFE_ATTR,X),Q(c,"FORBID_CONTENTS")&&ve(c.FORBID_CONTENTS)&&(Ae===Rn&&(Ae=Te(Ae)),I(Ae,c.FORBID_CONTENTS,X)),Q(c,"ADD_FORBID_CONTENTS")&&ve(c.ADD_FORBID_CONTENTS)&&(Ae===Rn&&(Ae=Te(Ae)),I(Ae,c.ADD_FORBID_CONTENTS,X)),Kt&&(ee["#text"]=!0),it&&I(ee,["html","head","body"]),ee.table&&(I(ee,["tbody"]),delete ft.tbody),c.TRUSTED_TYPES_POLICY){if(typeof c.TRUSTED_TYPES_POLICY.createHTML!="function")throw br('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof c.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw br('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');C=c.TRUSTED_TYPES_POLICY,H=C.createHTML("")}else C===void 0&&(C=wo(v,r)),C!==null&&typeof H=="string"&&(H=C.createHTML(""));we&&we(c),gt=c},mr=I({},[...Yr,...Zr,...co]),_r=I({},[...Vr,...uo]),Ur=function(c){let m=D(c);(!m||!m.tagName)&&(m={namespaceURI:dt,tagName:"template"});const w=qn(c.tagName),$=qn(m.tagName);return tn[c.namespaceURI]?c.namespaceURI===Jt?m.namespaceURI===Re?w==="svg":m.namespaceURI===Ct?w==="svg"&&($==="annotation-xml"||In[$]):!!mr[w]:c.namespaceURI===Ct?m.namespaceURI===Re?w==="math":m.namespaceURI===Jt?w==="math"&&nn[$]:!!_r[w]:c.namespaceURI===Re?m.namespaceURI===Jt&&!nn[$]||m.namespaceURI===Ct&&!In[$]?!1:!_r[w]&&(dr[w]||!mr[w]):!!(Ot==="application/xhtml+xml"&&tn[c.namespaceURI]):!1},g=function(c){Pn(t.removed,{element:c});try{D(c).removeChild(c)}catch{b(c)}},k=function(c,m){try{Pn(t.removed,{attribute:m.getAttributeNode(c),from:m})}catch{Pn(t.removed,{attribute:null,from:m})}if(m.removeAttribute(c),c==="is")if(st||Xt)try{g(m)}catch{}else try{m.setAttribute(c,"")}catch{}},R=function(c){let m=null,w=null;if(Vt)c=""+c;else{const V=Xi(c,/^[\r\n\t ]+/);w=V&&V[0]}Ot==="application/xhtml+xml"&&dt===Re&&(c=''+c+"");const $=C?C.createHTML(c):c;if(dt===Re)try{m=new d().parseFromString($,Ot)}catch{}if(!m||!m.documentElement){m=W.createDocument(dt,"template",null);try{m.documentElement.innerHTML=en?H:$}catch{}}const le=m.body||m.documentElement;return c&&w&&le.insertBefore(n.createTextNode(w),le.childNodes[0]||null),dt===Re?J.call(m,it?"html":"body")[0]:it?m.documentElement:le},N=function(c){return G.call(c.ownerDocument||c,c,f.SHOW_ELEMENT|f.SHOW_COMMENT|f.SHOW_TEXT|f.SHOW_PROCESSING_INSTRUCTION|f.SHOW_CDATA_SECTION,null)},te=function(c){return c instanceof h&&(typeof c.nodeName!="string"||typeof c.textContent!="string"||typeof c.removeChild!="function"||!(c.attributes instanceof u)||typeof c.removeAttribute!="function"||typeof c.setAttribute!="function"||typeof c.namespaceURI!="string"||typeof c.insertBefore!="function"||typeof c.hasChildNodes!="function")},ye=function(c){return typeof o=="function"&&c instanceof o};function me(T,c,m){Mn(T,w=>{w.call(t,c,m,gt)})}const Qe=function(c){let m=null;if(me(j.beforeSanitizeElements,c,null),te(c))return g(c),!0;const w=X(c.nodeName);if(me(j.uponSanitizeElement,c,{tagName:w,allowedTags:ee}),pt&&c.hasChildNodes()&&!ye(c.firstElementChild)&&ue(/<[/\w!]/g,c.innerHTML)&&ue(/<[/\w!]/g,c.textContent)||pt&&c.namespaceURI===Re&&w==="style"&&ye(c.firstElementChild)||c.nodeType===$n.progressingInstruction||pt&&c.nodeType===$n.comment&&ue(/<[/\w]/g,c.data))return g(c),!0;if(ft[w]||!(We.tagCheck instanceof Function&&We.tagCheck(w))&&!ee[w]){if(!ft[w]&&sn(w)&&(Z.tagNameCheck instanceof RegExp&&ue(Z.tagNameCheck,w)||Z.tagNameCheck instanceof Function&&Z.tagNameCheck(w)))return!1;if(Kt&&!Ae[w]){const $=D(c)||c.parentNode,le=z(c)||c.childNodes;if(le&&$){const V=le.length;for(let he=V-1;he>=0;--he){const xe=S(le[he],!0);$.insertBefore(xe,A(c))}}}return g(c),!0}return c instanceof l&&!Ur(c)||(w==="noscript"||w==="noembed"||w==="noframes")&&ue(/<\/no(script|embed|frames)/i,c.innerHTML)?(g(c),!0):(Xe&&c.nodeType===$n.text&&(m=c.textContent,Mn([Be,rt,He],$=>{m=on(m,$," ")}),c.textContent!==m&&(Pn(t.removed,{element:c.cloneNode()}),c.textContent=m)),me(j.afterSanitizeElements,c,null),!1)},Ke=function(c,m,w){if(Rt[m]||Sn&&(m==="id"||m==="name")&&(w in n||w in Fr))return!1;const $=ae[m]||We.attributeCheck instanceof Function&&We.attributeCheck(m,c);if(!(Tn&&!Rt[m]&&ue(wn,m))){if(!(or&&ue(Oe,m))){if(!$||Rt[m]){if(!(sn(c)&&(Z.tagNameCheck instanceof RegExp&&ue(Z.tagNameCheck,c)||Z.tagNameCheck instanceof Function&&Z.tagNameCheck(c))&&(Z.attributeNameCheck instanceof RegExp&&ue(Z.attributeNameCheck,m)||Z.attributeNameCheck instanceof Function&&Z.attributeNameCheck(m,c))||m==="is"&&Z.allowCustomizedBuiltInElements&&(Z.tagNameCheck instanceof RegExp&&ue(Z.tagNameCheck,w)||Z.tagNameCheck instanceof Function&&Z.tagNameCheck(w))))return!1}else if(!It[m]){if(!ue(lr,on(w,yn,""))){if(!((m==="src"||m==="xlink:href"||m==="href")&&c!=="script"&&Qi(w,"data:")===0&&fr[c])){if(!(cr&&!ue(sr,on(w,yn,"")))){if(w)return!1}}}}}}return!0},On=I({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),sn=function(c){return!On[qn(c)]&&ue(ar,c)},Dt=function(c){me(j.beforeSanitizeAttributes,c,null);const{attributes:m}=c;if(!m||te(c))return;const w={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ae,forceKeepAttr:void 0};let $=m.length;for(;$--;){const le=m[$],{name:V,namespaceURI:he,value:xe}=le,Ie=X(V),Dn=xe;let ne=V==="value"?Dn:no(Dn);if(w.attrName=Ie,w.attrValue=ne,w.keepAttr=!0,w.forceKeepAttr=void 0,me(j.uponSanitizeAttribute,c,w),ne=w.attrValue,An&&(Ie==="id"||Ie==="name")&&Qi(ne,ur)!==0&&(k(V,c),ne=ur+ne),pt&&ue(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,ne)){k(V,c);continue}if(Ie==="attributename"&&Xi(ne,"href")){k(V,c);continue}if(w.forceKeepAttr)continue;if(!w.keepAttr){k(V,c);continue}if(!En&&ue(/\/>/i,ne)){k(V,c);continue}Xe&&Mn([Be,rt,He],Ni=>{ne=on(ne,Ni," ")});const Li=X(c.nodeName);if(!Ke(Li,Ie,ne)){k(V,c);continue}if(C&&typeof v=="object"&&typeof v.getAttributeType=="function"&&!he)switch(v.getAttributeType(Li,Ie)){case"TrustedHTML":{ne=C.createHTML(ne);break}case"TrustedScriptURL":{ne=C.createScriptURL(ne);break}}if(ne!==Dn)try{he?c.setAttributeNS(he,V,ne):c.setAttribute(V,ne),te(c)?g(c):Vi(t.removed)}catch{k(V,c)}}me(j.afterSanitizeAttributes,c,null)},mt=function(c){let m=null;const w=N(c);for(me(j.beforeSanitizeShadowDOM,c,null);m=w.nextNode();)me(j.uponSanitizeShadowNode,m,null),Qe(m),Dt(m),m.content instanceof s&&mt(m.content);me(j.afterSanitizeShadowDOM,c,null)};return t.sanitize=function(T){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=null,w=null,$=null,le=null;if(en=!T,en&&(T=""),typeof T!="string"&&!ye(T)&&(T=lo(T),typeof T!="string"))throw br("dirty is not a string, aborting");if(!t.isSupported)return T;if(Zt||rn(c),t.removed=[],typeof T=="string"&&(ht=!1),ht){const xe=T.nodeName;if(typeof xe=="string"){const Ie=X(xe);if(!ee[Ie]||ft[Ie])throw br("root node is forbidden and cannot be sanitized in-place")}}else if(T instanceof o)m=R(""),w=m.ownerDocument.importNode(T,!0),w.nodeType===$n.element&&w.nodeName==="BODY"||w.nodeName==="HTML"?m=w:m.appendChild(w);else{if(!st&&!Xe&&!it&&T.indexOf("<")===-1)return C&&Qt?C.createHTML(T):T;if(m=R(T),!m)return st?null:Qt?H:""}m&&Vt&&g(m.firstChild);const V=N(ht?T:m);for(;$=V.nextNode();)Qe($),Dt($),$.content instanceof s&&mt($.content);if(ht)return T;if(st){if(Xe){m.normalize();let xe=m.innerHTML;Mn([Be,rt,He],Ie=>{xe=on(xe,Ie," ")}),m.innerHTML=xe}if(Xt)for(le=ce.call(m.ownerDocument);m.firstChild;)le.appendChild(m.firstChild);else le=m;return(ae.shadowroot||ae.shadowrootmode)&&(le=B.call(i,le,!0)),le}let he=it?m.outerHTML:m.innerHTML;return it&&ee["!doctype"]&&m.ownerDocument&&m.ownerDocument.doctype&&m.ownerDocument.doctype.name&&ue(ca,m.ownerDocument.doctype.name)&&(he=" +`+he),Xe&&Mn([Be,rt,He],xe=>{he=on(he,xe," ")}),C&&Qt?C.createHTML(he):he},t.setConfig=function(){let T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};rn(T),Zt=!0},t.clearConfig=function(){gt=null,Zt=!1},t.isValidAttribute=function(T,c,m){gt||rn({});const w=X(T),$=X(c);return Ke(w,$,m)},t.addHook=function(T,c){typeof c=="function"&&Pn(j[T],c)},t.removeHook=function(T,c){if(c!==void 0){const m=eo(j[T],c);return m===-1?void 0:to(j[T],m,1)[0]}return Vi(j[T])},t.removeHooks=function(T){j[T]=[]},t.removeAllHooks=function(){j=ss()},t}var yo=ua();function Ti(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Yt=Ti();function fa(e){Yt=e}var Mt={exec:()=>null};function M(e,t=""){let n=typeof e=="string"?e:e.source,i={replace:(r,s)=>{let a=typeof s=="string"?s:s.source;return a=a.replace(be.caret,"$1"),n=n.replace(r,a),i},getRegex:()=>new RegExp(n,t)};return i}var xo=(()=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^
    /i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},To=/^(?:[ \t]*(?:\n|$))+/,Eo=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,So=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,ir=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Ao=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ei=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,pa=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ha=M(pa).replace(/bull/g,Ei).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Ro=M(pa).replace(/bull/g,Ei).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Si=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Io=/^[^\n]+/,Ai=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Co=M(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ai).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Oo=M(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ei).getRegex(),Mr="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ri=/|$))/,Do=M("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Ri).replace("tag",Mr).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),da=M(Si).replace("hr",ir).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Mr).getRegex(),Lo=M(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",da).getRegex(),Ii={blockquote:Lo,code:Eo,def:Co,fences:So,heading:Ao,hr:ir,html:Do,lheading:ha,list:Oo,newline:To,paragraph:da,table:Mt,text:Io},as=M("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",ir).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Mr).getRegex(),No={...Ii,lheading:Ro,table:as,paragraph:M(Si).replace("hr",ir).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",as).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Mr).getRegex()},Mo={...Ii,html:M(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ri).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Mt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:M(Si).replace("hr",ir).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",ha).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Po=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,zo=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ga=/^( {2,}|\\)\n(?!\s*$)/,$o=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",xo?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),_a=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Wo=M(_a,"u").replace(/punct/g,kn).getRegex(),Go=M(_a,"u").replace(/punct/g,ma).getRegex(),va="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",qo=M(va,"gu").replace(/notPunctSpace/g,Ci).replace(/punctSpace/g,Pr).replace(/punct/g,kn).getRegex(),jo=M(va,"gu").replace(/notPunctSpace/g,Bo).replace(/punctSpace/g,Uo).replace(/punct/g,ma).getRegex(),Yo=M("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Ci).replace(/punctSpace/g,Pr).replace(/punct/g,kn).getRegex(),Zo=M(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,kn).getRegex(),Vo="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Xo=M(Vo,"gu").replace(/notPunctSpace/g,Ci).replace(/punctSpace/g,Pr).replace(/punct/g,kn).getRegex(),Qo=M(/\\(punct)/,"gu").replace(/punct/g,kn).getRegex(),Ko=M(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Jo=M(Ri).replace("(?:-->|$)","-->").getRegex(),ec=M("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",Jo).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Rr=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,tc=M(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Rr).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ba=M(/^!?\[(label)\]\[(ref)\]/).replace("label",Rr).replace("ref",Ai).getRegex(),ka=M(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ai).getRegex(),nc=M("reflink|nolink(?!\\()","g").replace("reflink",ba).replace("nolink",ka).getRegex(),ls=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Oi={_backpedal:Mt,anyPunctuation:Qo,autolink:Ko,blockSkip:Ho,br:ga,code:zo,del:Mt,delLDelim:Mt,delRDelim:Mt,emStrongLDelim:Wo,emStrongRDelimAst:qo,emStrongRDelimUnd:Yo,escape:Po,link:tc,nolink:ka,punctuation:Fo,reflink:ba,reflinkSearch:nc,tag:ec,text:$o,url:Mt},rc={...Oi,link:M(/^!?\[(label)\]\((.*?)\)/).replace("label",Rr).getRegex(),reflink:M(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Rr).getRegex()},ci={...Oi,emStrongRDelimAst:jo,emStrongLDelim:Go,delLDelim:Zo,delRDelim:Xo,url:M(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",ls).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:M(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},os=e=>sc[e];function Je(e,t){if(t){if(be.escapeTest.test(e))return e.replace(be.escapeReplace,os)}else if(be.escapeTestNoEncode.test(e))return e.replace(be.escapeReplaceNoEncode,os);return e}function cs(e){try{e=encodeURI(e).replace(be.percentDecode,"%")}catch{return null}return e}function us(e,t){let n=e.replace(be.findPipe,(s,a,o)=>{let l=!1,f=a;for(;--f>=0&&o[f]==="\\";)l=!l;return l?"|":" |"}),i=n.split(be.splitPipe),r=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),t)if(i.length>t)i.splice(t);else for(;i.length0?-2:-1}function lc(e,t=0){let n=t,i="";for(let r of e)if(r===" "){let s=4-n%4;i+=" ".repeat(s),n+=s}else i+=r,n++;return i}function fs(e,t,n,i,r){let s=t.href,a=t.title||null,o=e[1].replace(r.other.outputLinkReplace,"$1");i.state.inLink=!0;let l={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:s,title:a,text:o,tokens:i.inlineTokens(o)};return i.state.inLink=!1,l}function oc(e,t,n){let i=e.match(n.other.indentCodeCompensation);if(i===null)return t;let r=i[1];return t.split(` +`).map(s=>{let a=s.match(n.other.beginningSpace);if(a===null)return s;let[o]=a;return o.length>=r.length?s.slice(r.length):s}).join(` +`)}var Ir=class{options;rules;lexer;constructor(e){this.options=e||Yt}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:Un(n,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],i=oc(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:i}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let i=Un(n,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(n=i.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:Un(t[0],` +`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=Un(t[0],` +`).split(` +`),i="",r="",s=[];for(;n.length>0;){let a=!1,o=[],l;for(l=0;l1,r={type:"list",raw:"",ordered:i,start:i?+n.slice(0,-1):"",loose:!1,items:[]};n=i?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=i?n:"[*+-]");let s=this.rules.other.listItemRegex(n),a=!1;for(;e;){let l=!1,f="",u="";if(!(t=s.exec(e))||this.rules.block.hr.test(e))break;f=t[0],e=e.substring(f.length);let h=lc(t[2].split(` +`,1)[0],t[1].length),d=e.split(` +`,1)[0],v=!h.trim(),_=0;if(this.options.pedantic?(_=2,u=h.trimStart()):v?_=t[1].length+1:(_=h.search(this.rules.other.nonSpaceChar),_=_>4?1:_,u=h.slice(_),_+=t[1].length),v&&this.rules.other.blankLine.test(d)&&(f+=d+` +`,e=e.substring(d.length+1),l=!0),!l){let S=this.rules.other.nextBulletRegex(_),b=this.rules.other.hrRegex(_),A=this.rules.other.fencesBeginRegex(_),z=this.rules.other.headingBeginRegex(_),D=this.rules.other.htmlBeginRegex(_),C=this.rules.other.blockquoteBeginRegex(_);for(;e;){let H=e.split(` +`,1)[0],W;if(d=H,this.options.pedantic?(d=d.replace(this.rules.other.listReplaceNesting," "),W=d):W=d.replace(this.rules.other.tabCharGlobal," "),A.test(d)||z.test(d)||D.test(d)||C.test(d)||S.test(d)||b.test(d))break;if(W.search(this.rules.other.nonSpaceChar)>=_||!d.trim())u+=` +`+W.slice(_);else{if(v||h.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||A.test(h)||z.test(h)||b.test(h))break;u+=` +`+d}v=!d.trim(),f+=H+` +`,e=e.substring(H.length+1),h=W.slice(_)}}r.loose||(a?r.loose=!0:this.rules.other.doubleBlankLine.test(f)&&(a=!0)),r.items.push({type:"list_item",raw:f,task:!!this.options.gfm&&this.rules.other.listIsTask.test(u),loose:!1,text:u,tokens:[]}),r.raw+=f}let o=r.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let l of r.items){if(this.lexer.state.top=!1,l.tokens=this.lexer.blockTokens(l.text,[]),l.task){if(l.text=l.text.replace(this.rules.other.listReplaceTask,""),l.tokens[0]?.type==="text"||l.tokens[0]?.type==="paragraph"){l.tokens[0].raw=l.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),l.tokens[0].text=l.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let u=this.lexer.inlineQueue.length-1;u>=0;u--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[u].src)){this.lexer.inlineQueue[u].src=this.lexer.inlineQueue[u].src.replace(this.rules.other.listReplaceTask,"");break}}let f=this.rules.other.listTaskCheckbox.exec(l.raw);if(f){let u={type:"checkbox",raw:f[0]+" ",checked:f[0]!=="[ ]"};l.checked=u.checked,r.loose?l.tokens[0]&&["paragraph","text"].includes(l.tokens[0].type)&&"tokens"in l.tokens[0]&&l.tokens[0].tokens?(l.tokens[0].raw=u.raw+l.tokens[0].raw,l.tokens[0].text=u.raw+l.tokens[0].text,l.tokens[0].tokens.unshift(u)):l.tokens.unshift({type:"paragraph",raw:u.raw,text:u.raw,tokens:[u]}):l.tokens.unshift(u)}}if(!r.loose){let f=l.tokens.filter(h=>h.type==="space"),u=f.length>0&&f.some(h=>this.rules.other.anyLine.test(h.raw));r.loose=u}}if(r.loose)for(let l of r.items){l.loose=!0;for(let f of l.tokens)f.type==="text"&&(f.type="paragraph")}return r}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),i=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:t[0],href:i,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=us(t[1]),i=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),r=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(` +`):[],s={type:"table",raw:t[0],header:[],align:[],rows:[]};if(n.length===i.length){for(let a of i)this.rules.other.tableAlignRight.test(a)?s.align.push("right"):this.rules.other.tableAlignCenter.test(a)?s.align.push("center"):this.rules.other.tableAlignLeft.test(a)?s.align.push("left"):s.align.push(null);for(let a=0;a({text:o,tokens:this.lexer.inline(o),header:!1,align:s.align[l]})));return s}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===` +`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=Un(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=ac(t[2],"()");if(s===-2)return;if(s>-1){let a=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,a).trim(),t[3]=""}}let i=t[2],r="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(i);s&&(i=s[1],r=s[3])}else r=t[3]?t[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?i=i.slice(1):i=i.slice(1,-1)),fs(t,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let i=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),r=t[i.toLowerCase()];if(!r){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return fs(n,r,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let i=this.rules.inline.emStrongLDelim.exec(e);if(!(!i||!i[1]&&!i[2]&&!i[3]&&!i[4]||i[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(i[1]||i[3])||!n||this.rules.inline.punctuation.exec(n))){let r=[...i[0]].length-1,s,a,o=r,l=0,f=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(f.lastIndex=0,t=t.slice(-1*e.length+r);(i=f.exec(t))!==null;){if(s=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!s)continue;if(a=[...s].length,i[3]||i[4]){o+=a;continue}else if((i[5]||i[6])&&r%3&&!((r+a)%3)){l+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+l);let u=[...i[0]][0].length,h=e.slice(0,r+i.index+u+a);if(Math.min(r,a)%2){let v=h.slice(1,-1);return{type:"em",raw:h,text:v,tokens:this.lexer.inlineTokens(v)}}let d=h.slice(2,-2);return{type:"strong",raw:h,text:d,tokens:this.lexer.inlineTokens(d)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return i&&r&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let i=this.rules.inline.delLDelim.exec(e);if(i&&(!i[1]||!n||this.rules.inline.punctuation.exec(n))){let r=[...i[0]].length-1,s,a,o=r,l=this.rules.inline.delRDelim;for(l.lastIndex=0,t=t.slice(-1*e.length+r);(i=l.exec(t))!==null;){if(s=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!s||(a=[...s].length,a!==r))continue;if(i[3]||i[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let f=[...i[0]][0].length,u=e.slice(0,r+i.index+f+a),h=u.slice(r,-r);return{type:"del",raw:u,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,i;return t[2]==="@"?(n=t[1],i="mailto:"+n):(n=t[1],i=n),{type:"link",raw:t[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,i;if(t[2]==="@")n=t[0],i="mailto:"+n;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(r!==t[0]);n=t[0],t[1]==="www."?i="http://"+t[0]:i=t[0]}return{type:"link",raw:t[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},Ge=class ui{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Yt,this.options.tokenizer=this.options.tokenizer||new Ir,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:be,block:wr.normal,inline:Fn.normal};this.options.pedantic?(n.block=wr.pedantic,n.inline=Fn.pedantic):this.options.gfm&&(n.block=wr.gfm,this.options.breaks?n.inline=Fn.breaks:n.inline=Fn.gfm),this.tokenizer.rules=n}static get rules(){return{block:wr,inline:Fn}}static lex(t,n){return new ui(n).lex(t)}static lexInline(t,n){return new ui(n).inlineTokens(t)}lex(t){t=t.replace(be.carriageReturn,` +`),this.blockTokens(t,this.tokens);for(let n=0;n(r=a.call({lexer:this},t,n))?(t=t.substring(r.raw.length),n.push(r),!0):!1))continue;if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length);let a=n.at(-1);r.raw.length===1&&a!==void 0?a.raw+=` +`:n.push(r);continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length);let a=n.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=(a.raw.endsWith(` +`)?"":` +`)+r.raw,a.text+=` +`+r.text,this.inlineQueue.at(-1).src=a.text):n.push(r);continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length);let a=n.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=(a.raw.endsWith(` +`)?"":` +`)+r.raw,a.text+=` +`+r.raw,this.inlineQueue.at(-1).src=a.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},n.push(r));continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length),n.push(r);continue}let s=t;if(this.options.extensions?.startBlock){let a=1/0,o=t.slice(1),l;this.options.extensions.startBlock.forEach(f=>{l=f.call({lexer:this},o),typeof l=="number"&&l>=0&&(a=Math.min(a,l))}),a<1/0&&a>=0&&(s=t.substring(0,a+1))}if(this.state.top&&(r=this.tokenizer.paragraph(s))){let a=n.at(-1);i&&a?.type==="paragraph"?(a.raw+=(a.raw.endsWith(` +`)?"":` +`)+r.raw,a.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):n.push(r),i=s.length!==t.length,t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length);let a=n.at(-1);a?.type==="text"?(a.raw+=(a.raw.endsWith(` +`)?"":` +`)+r.raw,a.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):n.push(r);continue}if(t){let a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let i=t,r=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(i))!==null;)l.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(i))!==null;)i=i.slice(0,r.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(i))!==null;)s=r[2]?r[2].length:0,i=i.slice(0,r.index+s)+"["+"a".repeat(r[0].length-s-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);i=this.options.hooks?.emStrongMask?.call({lexer:this},i)??i;let a=!1,o="";for(;t;){a||(o=""),a=!1;let l;if(this.options.extensions?.inline?.some(u=>(l=u.call({lexer:this},t,n))?(t=t.substring(l.raw.length),n.push(l),!0):!1))continue;if(l=this.tokenizer.escape(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.tag(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.link(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(l.raw.length);let u=n.at(-1);l.type==="text"&&u?.type==="text"?(u.raw+=l.raw,u.text+=l.text):n.push(l);continue}if(l=this.tokenizer.emStrong(t,i,o)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.codespan(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.br(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.del(t,i,o)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.autolink(t)){t=t.substring(l.raw.length),n.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(t))){t=t.substring(l.raw.length),n.push(l);continue}let f=t;if(this.options.extensions?.startInline){let u=1/0,h=t.slice(1),d;this.options.extensions.startInline.forEach(v=>{d=v.call({lexer:this},h),typeof d=="number"&&d>=0&&(u=Math.min(u,d))}),u<1/0&&u>=0&&(f=t.substring(0,u+1))}if(l=this.tokenizer.inlineText(f)){t=t.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(o=l.raw.slice(-1)),a=!0;let u=n.at(-1);u?.type==="text"?(u.raw+=l.raw,u.text+=l.text):n.push(l);continue}if(t){let u="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return n}},Cr=class{options;parser;constructor(e){this.options=e||Yt}space(e){return""}code({text:e,lang:t,escaped:n}){let i=(t||"").match(be.notSpaceStart)?.[0],r=e.replace(be.endingNewline,"")+` +`;return i?'
    '+(n?r:Je(r,!0))+`
    +`:"
    "+(n?r:Je(r,!0))+`
    +`}blockquote({tokens:e}){return`
    +${this.parser.parse(e)}
    +`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)} +`}hr(e){return`
    +`}list(e){let t=e.ordered,n=e.start,i="";for(let a=0;a +`+i+" +`}listitem(e){return`
  • ${this.parser.parse(e.tokens)}
  • +`}checkbox({checked:e}){return" '}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    +`}table(e){let t="",n="";for(let r=0;r${i}`),` + +`+t+` +`+i+`
    +`}tablerow({text:e}){return` +${e} +`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+` +`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${Je(e,!0)}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){let i=this.parser.parseInline(n),r=cs(e);if(r===null)return i;e=r;let s='
    ",s}image({href:e,title:t,text:n,tokens:i}){i&&(n=this.parser.parseInline(i,this.parser.textRenderer));let r=cs(e);if(r===null)return Je(n);e=r;let s=`${Je(n)}{let a=r[s].flat(1/0);n=n.concat(this.walkTokens(a,t))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let s=t.renderers[r.name];s?t.renderers[r.name]=function(...a){let o=r.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:t.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[r.level];s?s.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level==="block"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level==="inline"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),i.extensions=t),n.renderer){let r=this.defaults.renderer||new Cr(this.defaults);for(let s in n.renderer){if(!(s in r))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let a=s,o=n.renderer[a],l=r[a];r[a]=(...f)=>{let u=o.apply(r,f);return u===!1&&(u=l.apply(r,f)),u||""}}i.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new Ir(this.defaults);for(let s in n.tokenizer){if(!(s in r))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let a=s,o=n.tokenizer[a],l=r[a];r[a]=(...f)=>{let u=o.apply(r,f);return u===!1&&(u=l.apply(r,f)),u}}i.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new jn;for(let s in n.hooks){if(!(s in r))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let a=s,o=n.hooks[a],l=r[a];jn.passThroughHooks.has(s)?r[a]=f=>{if(this.defaults.async&&jn.passThroughHooksRespectAsync.has(s))return(async()=>{let h=await o.call(r,f);return l.call(r,h)})();let u=o.call(r,f);return l.call(r,u)}:r[a]=(...f)=>{if(this.defaults.async)return(async()=>{let h=await o.apply(r,f);return h===!1&&(h=await l.apply(r,f)),h})();let u=o.apply(r,f);return u===!1&&(u=l.apply(r,f)),u}}i.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,s=n.walkTokens;i.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),r&&(o=o.concat(r.call(this,a))),o}}this.defaults={...this.defaults,...i}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Ge.lex(e,t??this.defaults)}parser(e,t){return qe.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let i={...n},r={...this.defaults,...i},s=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&i.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(r.hooks&&(r.hooks.options=r,r.hooks.block=e),r.async)return(async()=>{let a=r.hooks?await r.hooks.preprocess(t):t,o=await(r.hooks?await r.hooks.provideLexer(e):e?Ge.lex:Ge.lexInline)(a,r),l=r.hooks?await r.hooks.processAllTokens(o):o;r.walkTokens&&await Promise.all(this.walkTokens(l,r.walkTokens));let f=await(r.hooks?await r.hooks.provideParser(e):e?qe.parse:qe.parseInline)(l,r);return r.hooks?await r.hooks.postprocess(f):f})().catch(s);try{r.hooks&&(t=r.hooks.preprocess(t));let a=(r.hooks?r.hooks.provideLexer(e):e?Ge.lex:Ge.lexInline)(t,r);r.hooks&&(a=r.hooks.processAllTokens(a)),r.walkTokens&&this.walkTokens(a,r.walkTokens);let o=(r.hooks?r.hooks.provideParser(e):e?qe.parse:qe.parseInline)(a,r);return r.hooks&&(o=r.hooks.postprocess(o)),o}catch(a){return s(a)}}}onError(e,t){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,e){let i="

    An error occurred:

    "+Je(n.message+"",!0)+"
    ";return t?Promise.resolve(i):i}if(t)return Promise.reject(n);throw n}}},Gt=new cc;function U(e,t){return Gt.parse(e,t)}U.options=U.setOptions=function(e){return Gt.setOptions(e),U.defaults=Gt.defaults,fa(U.defaults),U};U.getDefaults=Ti;U.defaults=Yt;U.use=function(...e){return Gt.use(...e),U.defaults=Gt.defaults,fa(U.defaults),U};U.walkTokens=function(e,t){return Gt.walkTokens(e,t)};U.parseInline=Gt.parseInline;U.Parser=qe;U.parser=qe.parse;U.Renderer=Cr;U.TextRenderer=Di;U.Lexer=Ge;U.lexer=Ge.lex;U.Tokenizer=Ir;U.Hooks=jn;U.parse=U;U.options;U.setOptions;U.use;U.walkTokens;U.parseInline;qe.parse;Ge.lex;function cn(e){return yo.sanitize(U.parse(e,{async:!1}))}function yr(e){return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"}).format(new Date(e))}var uc=ge(''),fc=ge(""),pc=ge(""),hc=ge(""),dc=ge(""),gc=ge('
    '),mc=ge('
    Quiet tide. Start with Markdown. Threads open from any root message.
    '),_c=ge('
    '),vc=ge(' '),bc=ge('
    '),kc=ge('

    Thread

    ',1),wc=ge('
    No thread open Pick a message to keep the side conversation tidy.
    '),yc=ge('

    ');function xc(e,t){hi(t,!1);const n=q(),i=q(),r=q();let s=q(null),a=q([]),o=q([]),l=q([]),f=q([]),u=q([]),h=q(""),d=q(""),v=q(""),_=q(null),S=q(null),b=q(""),A=q(""),z=q(""),D=q(""),C=q(""),H=q(""),W=q([]),G=q(null),ce=q("loading"),J=q(null),B;aa(()=>{j()}),Zl(()=>{p(J)?.close(),B&&window.clearTimeout(B)});async function j(){try{const g=await _e("/api/me");y(s,g.user),await Be(),y(ce,"ready")}catch(g){y(ce,g instanceof Error?g.message:"Could not load ClickClack")}}async function Be(){const g=await _e("/api/workspaces");y(a,g.workspaces),y(h,p(h)||p(a)[0]?.id||""),await He(),await xn(),At()}async function rt(){if(!p(z).trim())return;const g=await _e("/api/workspaces",{method:"POST",body:JSON.stringify({name:p(z)})});y(z,""),y(a,[...p(a),g.workspace]),y(h,g.workspace.id),await He(),await xn(),At()}async function He(){if(!p(h))return;const g=await _e(`/api/workspaces/${p(h)}/channels`);y(o,g.channels),y(d,p(o).find(k=>k.id===p(d))?.id||p(o)[0]?.id||""),y(_,null),y(u,[]),await Oe()}async function wn(){if(!p(h)||!p(D).trim())return;const g=await _e(`/api/workspaces/${p(h)}/channels`,{method:"POST",body:JSON.stringify({name:p(D),kind:"public"})});y(D,""),y(o,[...p(o),g.channel]),y(d,g.channel.id),await Oe()}async function Oe(){if(p(v)){const k=await _e(`/api/dms/${p(v)}/messages`);y(f,k.messages);return}if(!p(d)){y(f,[]);return}const g=await _e(`/api/channels/${p(d)}/messages`);y(f,g.messages)}async function sr(){const g=p(b).trim();if(!g||!p(d)&&!p(v))return;y(b,"");const k=p(v)?`/api/dms/${p(v)}/messages`:`/api/channels/${p(d)}/messages`,R=await _e(k,{method:"POST",body:JSON.stringify({body:g})});p(G)&&(await _e(`/api/messages/${R.message.id}/attachments`,{method:"POST",body:JSON.stringify({upload_id:p(G).id})}),y(G,null)),p(f).some(N=>N.id===R.message.id)||y(f,[...p(f),R.message])}async function yn(g){y(_,g);const k=await _e(`/api/messages/${g.id}/thread`);y(_,k.root),y(u,k.replies),y(S,k.thread_state)}async function ar(){const g=p(A).trim();if(!g||!p(_))return;y(A,"");const k=await _e(`/api/messages/${p(_).id}/thread/replies`,{method:"POST",body:JSON.stringify({body:g})});p(u).some(R=>R.id===k.message.id)||y(u,[...p(u),k.message]),y(S,k.thread_state)}async function lr(){if(!p(h)||!p(H).trim()){y(W,[]);return}const g=await _e(`/api/search?workspace_id=${encodeURIComponent(p(h))}&q=${encodeURIComponent(p(H).trim())}`);y(W,g.results)}async function ee(g){const k=g.currentTarget,R=k.files?.[0];if(!R||!p(h))return;const N=new FormData;N.set("workspace_id",p(h)),N.set("file",R);const te=await _e("/api/uploads",{method:"POST",body:N});y(G,te.upload),k.value=""}async function xn(){if(!p(h))return;const g=await _e(`/api/dms?workspace_id=${p(h)}`);y(l,g.conversations)}async function ae(){if(!p(h)||!p(C).trim())return;const g=await _e("/api/dms",{method:"POST",body:JSON.stringify({workspace_id:p(h),member_ids:[p(C).trim()]})});y(C,""),y(l,[...p(l),g.conversation]),y(v,g.conversation.id),y(d,""),y(_,null),await Oe()}function At(){if(p(J)?.close(),!p(h))return;const g=localStorage.getItem(`clickclack:${p(h)}:cursor`)||"",k=new URL("/api/realtime/ws",window.location.href);k.protocol=window.location.protocol==="https:"?"wss:":"ws:",k.searchParams.set("workspace_id",p(h)),g&&k.searchParams.set("after_cursor",g),y(J,new WebSocket(k)),p(J).addEventListener("message",R=>{const N=JSON.parse(String(R.data));N.cursor&&localStorage.setItem(`clickclack:${p(h)}:cursor`,N.cursor),Z(N)}),p(J).addEventListener("close",()=>{B=window.setTimeout(At,1200)})}async function Z(g){if((g.type==="channel.created"||g.type==="channel.updated")&&g.workspace_id===p(h)){await He();return}(g.channel_id===p(d)||g.payload.direct_conversation_id===p(v))&&(g.type==="message.created"||g.type==="message.updated"||g.type==="message.deleted")&&await Oe();const k=g.payload.root_message_id||g.payload.message_id;p(_)&&k===p(_).id&&await yn(p(_))}Hr(()=>(p(a),p(h)),()=>{y(n,p(a).find(g=>g.id===p(h)))}),Hr(()=>(p(o),p(d)),()=>{y(i,p(o).find(g=>g.id===p(d)))}),Hr(()=>(p(l),p(v)),()=>{y(r,p(l).find(g=>g.id===p(v)))}),wl(),sa();var ft=yc();ia("1oa2eo8",g=>{var k=uc();fe(g,k)});var Rt=x(ft),We=x(Rt),or=E(x(We),2),Tn=E(x(or),2),cr=x(Tn),En=E(We,2),Xe=E(x(En),2);Nt(Xe,5,()=>p(a),Er,(g,k)=>{var R=fc();let N;var te=x(R);De(()=>{N=Nn(R,1,"",null,N,{active:p(k).id===p(h)}),re(te,(p(k),F(()=>p(k).name)))}),lt("click",R,async()=>{y(h,p(k).id),await He(),At()}),fe(g,R)});var pt=E(Xe,2),it=x(pt),Zt=E(En,2),Vt=E(x(Zt),2);Nt(Vt,5,()=>p(o),Er,(g,k)=>{var R=pc();let N;var te=E(x(R),1,!0);De(()=>{N=Nn(R,1,"",null,N,{active:p(k).id===p(d)}),re(te,(p(k),F(()=>p(k).name)))}),lt("click",R,async()=>{y(d,p(k).id),y(_,null),await Oe()}),fe(g,R)});var st=E(Vt,2),Xt=x(st),Qt=E(Zt,2),Sn=E(x(Qt),2);Nt(Sn,5,()=>p(l),Er,(g,k)=>{var R=hc();let N;var te=E(x(R),1,!0);De(ye=>{N=Nn(R,1,"",null,N,{active:p(k).id===p(v)}),re(te,ye)},[()=>(p(k),F(()=>p(k).members.map(ye=>ye.display_name).join(", ")))]),lt("click",R,async()=>{y(v,p(k).id),y(d,""),y(_,null),await Oe()}),fe(g,R)});var An=E(Sn,2),ur=x(An),Kt=E(Rt,2),ht=x(Kt),at=x(ht),Ae=x(at),Rn=x(Ae),fr=E(Ae,2),pr=x(fr),It=E(at,2),hr=x(It),Ct=E(It,2),Jt=x(Ct),Re=E(ht,2);{var dt=g=>{var k=gc();Nt(k,5,()=>p(W),R=>R.message.id,(R,N)=>{var te=dc(),ye=x(te),me=x(ye),Qe=E(ye,2),Ke=x(Qe);De(()=>{re(me,(p(N),F(()=>p(N).message.author?.display_name||"Local User"))),re(Ke,(p(N),F(()=>p(N).message.body)))}),lt("click",te,async()=>{y(W,[]),p(N).message.channel_id&&(y(d,p(N).message.channel_id),y(v,""),await Oe()),p(N).message.direct_conversation_id&&(y(v,p(N).message.direct_conversation_id),y(d,""),await Oe())}),fe(R,te)}),fe(g,k)};Wn(Re,g=>{p(W),F(()=>p(W).length>0)&&g(dt)})}var en=E(Re,2),tn=x(en);{var zr=g=>{var k=mc();fe(g,k)};Wn(tn,g=>{p(f),F(()=>p(f).length===0)&&g(zr)})}var In=E(tn,2);Nt(In,1,()=>p(f),g=>g.id,(g,k)=>{var R=_c();let N;var te=x(R),ye=x(te),me=E(te,2),Qe=x(me),Ke=x(Qe),On=x(Ke),sn=E(Ke,2),Dt=x(sn),mt=E(Qe,2);Wr(mt,()=>(un(cn),p(k),F(()=>cn(p(k).body))),!0);var T=E(mt,2);De((c,m)=>{N=Nn(R,1,"message",null,N,{selected:p(_)?.id===p(k).id}),re(ye,c),re(On,(p(k),F(()=>p(k).author?.display_name||"Local User"))),re(Dt,m)},[()=>(p(k),F(()=>p(k).author?.display_name?.slice(0,1)||"c")),()=>(un(yr),p(k),F(()=>yr(p(k).created_at)))]),lt("click",T,()=>yn(p(k))),fe(g,R)});var nn=E(en,2),dr=x(nn),Ot=E(dr,2),gr=x(Ot),$r=x(gr),X=E(gr,2);{var gt=g=>{var k=vc(),R=x(k);De(()=>re(R,(p(G),F(()=>p(G).filename)))),fe(g,k)};Wn(X,g=>{p(G)&&g(gt)})}var Fr=E(X,2),Cn=E(Kt,2);let rn;var mr=x(Cn);{var _r=g=>{var k=kc(),R=Us(k),N=x(R),te=E(x(N),2),ye=x(te),me=E(N,2),Qe=E(R,2),Ke=x(Qe),On=x(Ke),sn=E(Ke,2);Wr(sn,()=>(un(cn),p(_),F(()=>cn(p(_).body))),!0);var Dt=E(Qe,2);Nt(Dt,5,()=>p(u),m=>m.id,(m,w)=>{var $=bc(),le=x($),V=x(le),he=x(V),xe=E(V,2),Ie=x(xe),Dn=E(le,2);Wr(Dn,()=>(un(cn),p(w),F(()=>cn(p(w).body))),!0),De(ne=>{re(he,(p(w),F(()=>p(w).author?.display_name||"Local User"))),re(Ie,ne)},[()=>(un(yr),p(w),F(()=>yr(p(w).created_at)))]),fe(m,$)});var mt=E(Dt,2),T=x(mt),c=E(T,2);De(()=>{re(ye,`${p(S),p(u),F(()=>p(S)?.reply_count||p(u).length)??""} replies`),re(On,(p(_),F(()=>p(_).author?.display_name||"Local User")))}),lt("click",me,()=>{y(_,null),y(u,[])}),an("submit",mt,m=>{m.preventDefault(),ar()}),ln(T,()=>p(A),m=>y(A,m)),lt("click",c,()=>{ar()}),fe(g,k)},Ur=g=>{var k=wc();fe(g,k)};Wn(mr,g=>{p(_)?g(_r):g(Ur,-1)})}De(g=>{re(cr,(p(s),F(()=>p(s)?.display_name||"local"))),re(Rn,(p(n),F(()=>p(n)?.name||"Workspace"))),re(pr,g),bt(Ct,"data-state",(p(J),F(()=>p(J)?.readyState===WebSocket.OPEN?"live":"idle"))),re(Jt,(p(J),p(ce),F(()=>p(J)?.readyState===WebSocket.OPEN?"live":p(ce)))),rn=Nn(Cn,1,"thread",null,rn,{open:p(_)})},[()=>(p(r),p(i),F(()=>p(r)?"@"+p(r).members.map(g=>g.display_name).join(", "):"#"+(p(i)?.name||"general")))]),an("submit",pt,g=>{g.preventDefault(),rt()}),ln(it,()=>p(z),g=>y(z,g)),an("submit",st,g=>{g.preventDefault(),wn()}),ln(Xt,()=>p(D),g=>y(D,g)),an("submit",An,g=>{g.preventDefault(),ae()}),ln(ur,()=>p(C),g=>y(C,g)),an("submit",It,g=>{g.preventDefault(),lr()}),ln(hr,()=>p(H),g=>y(H,g)),an("submit",nn,g=>{g.preventDefault(),sr()}),ln(dr,()=>p(b),g=>y(b,g)),lt("change",$r,ee),lt("click",Fr,()=>{sr()}),fe(e,ft),di()}Ol(["click","change"]);var Tc=ge(' ',1),Ec=ge("

    "),Sc=ge(`

    Self-hostable chat. Serious tool. Mild brine.

    ClickClack

    A single-binary chat app for teams, communities, bots, and agents: + Slack-style threads, durable realtime, OpenAPI, SQLite, and a CLI that + can drive the whole thing from a shell.

    What it is

    Chat infrastructure that stays boring when the socket drops.

    WebSocket is the pipe. The database is the truth. Every durable message, + thread reply, reaction, and channel update can be recovered over HTTP with + a cursor, so clients and agents can reconnect without drama.

    Agent path

    A friendly CLI, no LLM baked in.

    External agents, CI jobs, and humans use the same public API as the web + app. Tokens and workspace defaults are scoped per server, so switching + hosts does not leak credentials or stale IDs.

     

    Destinations

    Product at the root. Docs and app where people expect them.

    `);function Ac(e,t){hi(t,!1);const n="https://docs.clickclack.chat",i=["localhost","127.0.0.1","::1"].includes(window.location.hostname)?"/app":"https://app.clickclack.chat",r="https://github.com/openclaw/clickclack",s=[["Single binary","Go server, embedded Svelte app, embedded migrations, local SQLite and uploads."],["Threads that recover","Slack-style one-level threads with durable event replay after reconnects."],["Agent-friendly","A CLI, OpenAPI contract, TypeScript SDK, webhooks, and slash-command shapes."],["Self-host first","SQLite is the default, not the demo. Postgres can arrive behind the store layer."]],a=["clickclack serve --data ./data","clickclack login --magic-token mgt_...",'clickclack send --channel general "deploy started"',"clickclack threads reply msg_... --stdin {var j=Tc();kl(()=>{Ps.title="ClickClack - Self-hostable chat with claws"}),fe(B,j)});var l=x(o),f=E(x(l),2),u=E(x(f),2),h=x(u);bt(h,"href",n);var d=E(h,2),v=E(d,2);bt(v,"href",r);var _=E(f,2),S=E(x(_),6),b=x(S),A=E(b,2);bt(A,"href",n);var z=E(l,4);Nt(z,5,()=>s,Er,(B,j)=>{var Be=Ec(),rt=x(Be),He=x(rt),wn=E(rt,2),Oe=x(wn);De(()=>{re(He,p(j)[0]),re(Oe,p(j)[1])}),fe(B,Be)});var D=E(z,2),C=E(x(D),2),H=x(C),W=E(D,2),G=E(x(W),2),ce=E(x(G),2);bt(ce,"href",n);var J=E(ce,2);De(B=>{bt(d,"href",i),bt(b,"href",i),re(H,B),bt(J,"href",i)},[()=>a.join(` +`)]),fe(e,o),di()}function Rc(e){const t=window.location.pathname,i=window.location.hostname.startsWith("app.")||t==="/app"||t.startsWith("/app/");var r=Ml(),s=Us(r);{var a=l=>{xc(l,{})},o=l=>{Ac(l,{})};Wn(s,l=>{i?l(a):l(o,-1)})}fe(e,r)}Pl(Rc,{target:document.getElementById("app")}); diff --git a/apps/api/internal/webassets/dist/assets/index-Du33dVG9.css b/apps/api/internal/webassets/dist/assets/index-Du33dVG9.css deleted file mode 100644 index e4e1075..0000000 --- a/apps/api/internal/webassets/dist/assets/index-Du33dVG9.css +++ /dev/null @@ -1 +0,0 @@ -:root{color-scheme:light dark;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f1ec;color:#171717;--bg: #f5f1ec;--panel: #fffaf2;--panel-2: #ece4d8;--text: #171717;--muted: #6d655d;--line: #d8cdbf;--accent: #dd5d45;--accent-2: #006d77;--ink: #102027;--shadow: 0 18px 60px rgba(16, 32, 39, .12)}@media(prefers-color-scheme:dark){:root{background:#121416;color:#f5efe7;--bg: #121416;--panel: #1c2022;--panel-2: #242a2c;--text: #f5efe7;--muted: #a59d93;--line: #343b3e;--accent: #ff735c;--accent-2: #6fc7cf;--ink: #f5efe7;--shadow: 0 18px 60px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,rgba(221,93,69,.12),transparent 34%),linear-gradient(315deg,rgba(0,109,119,.12),transparent 32%),var(--bg)}button,input,textarea{font:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:260px minmax(0,1fr) minmax(320px,28vw);height:100vh;min-height:620px}.sidebar,.thread{background:color-mix(in srgb,var(--panel) 88%,transparent);border-color:var(--line);border-style:solid;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.sidebar{border-width:0 1px 0 0;padding:18px 14px;overflow:auto}.brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.mark{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:var(--ink);color:var(--panel);font-weight:900;letter-spacing:0;text-transform:uppercase}.brand strong,.brand span{display:block}.brand span,.section-title,.topbar p,.thread header p,time,.empty span,.thread-empty span{color:var(--muted);font-size:12px}.section-title{margin:18px 8px 8px;text-transform:uppercase;font-weight:800}.nav-list{display:grid;gap:4px}.nav-list button{width:100%;min-height:36px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;padding:8px 10px}.nav-list button:hover,.nav-list button.active{background:var(--panel-2)}.channels button{display:flex;gap:7px}.channels span{color:var(--accent);font-weight:900}.inline-create{margin:10px 0}.inline-create input,textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);outline:0}.inline-create input{height:36px;padding:0 10px}.timeline{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:78px;padding:14px 22px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 82%,transparent)}.topbar h1,.topbar p{margin:0}.topbar h1{font-size:22px}.search{display:flex;align-items:center;gap:8px;min-width:min(360px,42vw)}.search input{width:100%;min-width:120px;height:34px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:0 10px}.search button{height:34px;border:0;border-radius:8px;background:var(--accent-2);color:var(--panel);font-weight:800;padding:0 12px}.connection{border:1px solid var(--line);border-radius:999px;color:var(--muted);padding:5px 10px;font-size:12px}.connection[data-state=live]{border-color:color-mix(in srgb,var(--accent-2) 50%,var(--line));color:var(--accent-2)}.search-results{display:grid;gap:4px;padding:8px 22px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 86%,transparent)}.search-results button{display:grid;gap:2px;border:0;border-radius:8px;background:transparent;color:var(--text);padding:8px;text-align:left}.search-results button:hover{background:var(--panel-2)}.search-results span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messages{overflow:auto;padding:18px 22px 28px}.empty,.thread-empty{display:grid;place-items:center;align-content:center;min-height:220px;text-align:center;gap:6px}.message{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;padding:12px 8px;border-radius:8px}.message:hover,.message.selected{background:color-mix(in srgb,var(--panel-2) 62%,transparent)}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--accent);color:#fff;font-weight:900;text-transform:uppercase}.message header,.reply header{display:flex;align-items:baseline;gap:8px}.markdown{line-height:1.45;overflow-wrap:anywhere}.markdown p{margin:4px 0 0}.markdown code{border-radius:5px;background:var(--panel-2);padding:1px 4px}.thread-button{border:0;background:transparent;color:var(--accent-2);margin-top:5px;padding:0;font-size:12px;font-weight:800}.composer,.reply-composer{display:grid;gap:10px;padding:14px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,transparent)}.composer{grid-template-columns:minmax(0,1fr) minmax(104px,auto);align-items:end}textarea{resize:vertical;min-height:70px;max-height:190px;padding:11px 12px}.composer button,.reply-composer button{min-height:42px;border:0;border-radius:8px;background:var(--ink);color:var(--panel);font-weight:900}.composer-actions{display:grid;gap:8px;min-width:104px}.upload-button{display:grid;place-items:center;min-height:36px;border:1px solid var(--line);border-radius:8px;color:var(--accent-2);font-size:12px;font-weight:900}.upload-button input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.pending-upload{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;border-width:0 0 0 1px;min-width:0}.thread>header{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:14px;border-bottom:1px solid var(--line)}.thread>header p,.thread>header strong{margin:0}.thread>header button{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text)}.thread-root{padding:14px;border-bottom:1px solid var(--line)}.reply-list{overflow:auto;padding:8px 14px}.reply{padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent)}@media(max-width:980px){.shell{grid-template-columns:220px minmax(0,1fr)}.thread{position:fixed;inset:0 0 0 auto;width:min(420px,100vw);box-shadow:var(--shadow);transform:translate(100%);transition:transform .16s ease;z-index:4}.thread.open{transform:translate(0)}}@media(max-width:720px){.shell{grid-template-columns:1fr;min-height:100vh}.sidebar{display:none}.composer{grid-template-columns:1fr}.topbar{align-items:stretch;flex-direction:column}.search{min-width:0;width:100%}} diff --git a/apps/api/internal/webassets/dist/index.html b/apps/api/internal/webassets/dist/index.html index 8f1b656..da2155f 100644 --- a/apps/api/internal/webassets/dist/index.html +++ b/apps/api/internal/webassets/dist/index.html @@ -4,8 +4,8 @@ ClickClack - - + +
    diff --git a/apps/web/src/App.svelte b/apps/web/src/App.svelte index 5ea06de..437208c 100644 --- a/apps/web/src/App.svelte +++ b/apps/web/src/App.svelte @@ -1,472 +1,14 @@ - - - - -
    - - -
    -
    -
    -

    {selectedWorkspace?.name || "Workspace"}

    -

    {selectedDirect ? "@" + selectedDirect.members.map((member) => member.display_name).join(", ") : "#" + (selectedChannel?.name || "general")}

    -
    - -
    - {socket?.readyState === WebSocket.OPEN ? "live" : status} -
    -
    - - {#if searchResults.length > 0} -
    - {#each searchResults as result (result.message.id)} - - {/each} -
    - {/if} - -
    - {#if messages.length === 0} -
    - Quiet tide. - Start with Markdown. Threads open from any root message. -
    - {/if} - {#each messages as message (message.id)} -
    -
    {message.author?.display_name?.slice(0, 1) || "c"}
    -
    -
    - {message.author?.display_name || "Local User"} - -
    -
    {@html markdown(message.body)}
    - -
    -
    - {/each} -
    - -
    { - event.preventDefault(); - void sendMessage(); - }} - > - -
    - - {#if pendingUpload} - {pendingUpload.filename} - {/if} - -
    -
    -
    - - -
    +{#if isApp} + +{:else} + +{/if} diff --git a/apps/web/src/ChatApp.svelte b/apps/web/src/ChatApp.svelte new file mode 100644 index 0000000..5ea06de --- /dev/null +++ b/apps/web/src/ChatApp.svelte @@ -0,0 +1,472 @@ + + + + + + +
    + + +
    +
    +
    +

    {selectedWorkspace?.name || "Workspace"}

    +

    {selectedDirect ? "@" + selectedDirect.members.map((member) => member.display_name).join(", ") : "#" + (selectedChannel?.name || "general")}

    +
    + +
    + {socket?.readyState === WebSocket.OPEN ? "live" : status} +
    +
    + + {#if searchResults.length > 0} +
    + {#each searchResults as result (result.message.id)} + + {/each} +
    + {/if} + +
    + {#if messages.length === 0} +
    + Quiet tide. + Start with Markdown. Threads open from any root message. +
    + {/if} + {#each messages as message (message.id)} +
    +
    {message.author?.display_name?.slice(0, 1) || "c"}
    +
    +
    + {message.author?.display_name || "Local User"} + +
    +
    {@html markdown(message.body)}
    + +
    +
    + {/each} +
    + +
    { + event.preventDefault(); + void sendMessage(); + }} + > + +
    + + {#if pendingUpload} + {pendingUpload.filename} + {/if} + +
    +
    +
    + + +
    diff --git a/apps/web/src/ProductSite.svelte b/apps/web/src/ProductSite.svelte new file mode 100644 index 0000000..9ace25f --- /dev/null +++ b/apps/web/src/ProductSite.svelte @@ -0,0 +1,136 @@ + + + + ClickClack - Self-hostable chat with claws + + + + +
    +
    + + + + +
    +

    Self-hostable chat. Serious tool. Mild brine.

    +

    ClickClack

    +

    + A single-binary chat app for teams, communities, bots, and agents: + Slack-style threads, durable realtime, OpenAPI, SQLite, and a CLI that + can drive the whole thing from a shell. +

    + +
    +
    + +
    +
    +

    What it is

    +

    Chat infrastructure that stays boring when the socket drops.

    +
    +

    + WebSocket is the pipe. The database is the truth. Every durable message, + thread reply, reaction, and channel update can be recovered over HTTP with + a cursor, so clients and agents can reconnect without drama. +

    +
    + +
    + {#each features as feature} +
    +

    {feature[0]}

    +

    {feature[1]}

    +
    + {/each} +
    + +
    +
    +

    Agent path

    +

    A friendly CLI, no LLM baked in.

    +

    + External agents, CI jobs, and humans use the same public API as the web + app. Tokens and workspace defaults are scoped per server, so switching + hosts does not leak credentials or stale IDs. +

    +
    +
    {commands.join("\n")}
    +
    + +
    +
    +

    Destinations

    +

    Product at the root. Docs and app where people expect them.

    +
    + +
    +
    diff --git a/apps/web/src/main.ts b/apps/web/src/main.ts index c18af30..34eb1ee 100644 --- a/apps/web/src/main.ts +++ b/apps/web/src/main.ts @@ -1,5 +1,6 @@ import { mount } from "svelte"; import App from "./App.svelte"; +import "./product.css"; import "./styles.css"; const app = mount(App, { diff --git a/apps/web/src/product.css b/apps/web/src/product.css new file mode 100644 index 0000000..84bf60d --- /dev/null +++ b/apps/web/src/product.css @@ -0,0 +1,433 @@ +.product-site { + min-height: 100vh; + background: #f7f3ea; + color: #151716; + font-family: + "Avenir Next", "Segoe UI", ui-sans-serif, system-ui, sans-serif; +} + +.product-site a { + color: inherit; + text-decoration: none; +} + +.hero { + position: relative; + display: grid; + min-height: clamp(680px, 92vh, 920px); + overflow: hidden; + isolation: isolate; + background: + linear-gradient(90deg, rgba(12, 31, 35, 0.78), rgba(12, 31, 35, 0.18) 62%, rgba(12, 31, 35, 0.7)), + #103033; + color: #fff8ee; +} + +.hero::after { + position: absolute; + inset: auto 0 0; + height: 22vh; + min-height: 130px; + background: linear-gradient(0deg, #f7f3ea 8%, rgba(247, 243, 234, 0)); + content: ""; + z-index: -1; +} + +.hero::before { + position: absolute; + inset: 0 38% 0 0; + background: linear-gradient(90deg, rgba(8, 28, 30, 0.98), rgba(8, 28, 30, 0)); + content: ""; + z-index: -1; +} + +.hero-bg { + position: absolute; + inset: 0 0 0 clamp(260px, 28vw, 460px); + display: grid; + grid-template-columns: 92px minmax(360px, 1fr) minmax(260px, 28vw); + gap: 18px; + padding: 102px clamp(18px, 5vw, 70px) 80px; + opacity: 0.36; + z-index: -2; +} + +.workspace-rail, +.timeline-preview, +.thread-preview { + border: 1px solid rgba(255, 248, 238, 0.24); + background: rgba(255, 248, 238, 0.12); + box-shadow: 0 28px 90px rgba(0, 0, 0, 0.24); + backdrop-filter: blur(18px); +} + +.workspace-rail { + display: grid; + align-content: start; + gap: 14px; + padding: 16px; +} + +.workspace-rail span { + display: grid; + place-items: center; + min-height: 54px; + border-radius: 8px; + background: rgba(255, 248, 238, 0.18); + color: #fff8ee; + font-weight: 900; + text-transform: uppercase; +} + +.timeline-preview { + align-self: stretch; + padding: clamp(18px, 3vw, 34px); +} + +.preview-top { + display: flex; + justify-content: space-between; + margin-bottom: 48px; + color: #b9ddd9; + font-weight: 800; +} + +.preview-top strong { + color: #7ce0b5; +} + +.timeline-preview article, +.thread-preview { + max-width: 720px; + margin: 0 0 18px; + border-radius: 8px; + background: rgba(255, 248, 238, 0.16); + padding: 18px; +} + +.timeline-preview b, +.thread-preview span { + color: #ff8a70; +} + +.timeline-preview p, +.thread-preview p { + margin: 6px 0 0; + color: #fff8ee; + font-size: clamp(17px, 1.8vw, 24px); +} + +.timeline-preview code { + border-radius: 5px; + background: rgba(12, 31, 35, 0.58); + padding: 2px 5px; +} + +.thread-line { + margin-left: clamp(0px, 8vw, 130px); +} + +.thread-preview { + align-self: center; + min-height: 260px; +} + +.product-nav { + position: relative; + z-index: 1; + display: flex; + align-items: center; + justify-content: space-between; + gap: 20px; + padding: 24px clamp(18px, 5vw, 70px); + font-weight: 800; +} + +.product-nav > div { + display: flex; + gap: clamp(14px, 3vw, 34px); +} + +.brand-lockup { + display: inline-flex; + align-items: center; + gap: 10px; +} + +.brand-mark { + display: grid; + place-items: center; + width: 40px; + height: 40px; + border-radius: 8px; + background: #ff6f55; + color: #151716; + font-weight: 950; + text-transform: uppercase; +} + +.hero-copy { + position: relative; + z-index: 2; + align-self: center; + width: min(780px, calc(100vw - 36px)); + padding: 0 clamp(18px, 5vw, 70px) 16vh; +} + +.eyebrow, +.section-kicker { + margin: 0 0 14px; + color: #ffb09f; + font-size: 13px; + font-weight: 950; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +.hero h1, +.product-band h2 { + margin: 0; + letter-spacing: 0; +} + +.hero h1 { + font-family: Georgia, "Times New Roman", serif; + font-size: clamp(66px, 13vw, 152px); + font-weight: 900; + line-height: 0.9; +} + +.lede { + width: min(680px, 100%); + margin: 26px 0 0; + color: #fff3df; + font-size: clamp(20px, 2.2vw, 31px); + line-height: 1.18; +} + +.hero-actions { + display: flex; + flex-wrap: wrap; + gap: 12px; + margin-top: 32px; +} + +.primary-action, +.secondary-action { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 48px; + border-radius: 8px; + padding: 0 18px; + font-weight: 950; +} + +.primary-action { + background: #ff6f55; + color: #151716; +} + +.secondary-action { + border: 1px solid rgba(255, 248, 238, 0.42); + color: #fff8ee; +} + +.product-band { + display: grid; + grid-template-columns: minmax(260px, 0.9fr) minmax(280px, 1.1fr); + gap: clamp(28px, 6vw, 90px); + padding: clamp(58px, 8vw, 112px) clamp(18px, 5vw, 70px); +} + +.product-band h2 { + max-width: 720px; + font-size: clamp(34px, 5vw, 74px); + line-height: 0.96; +} + +.product-band p { + margin: 0; + color: #3f4743; + font-size: clamp(18px, 2.1vw, 27px); + line-height: 1.34; +} + +.intro-band { + padding-top: 0; +} + +.intro-band .section-kicker, +.cli-band .section-kicker, +.docs-band .section-kicker { + color: #b84632; +} + +.feature-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + border-block: 1px solid #c8c0b2; +} + +.feature-grid article { + min-height: 250px; + border-right: 1px solid #c8c0b2; + padding: clamp(22px, 3vw, 40px); +} + +.feature-grid article:nth-child(even) { + background: #e8f0e9; +} + +.feature-grid article:last-child { + border-right: 0; +} + +.feature-grid h3 { + margin: 0 0 44px; + font-size: 24px; +} + +.feature-grid p { + margin: 0; + color: #48504c; + line-height: 1.45; +} + +.cli-band { + background: #162a2d; + color: #fff8ee; +} + +.cli-band p { + color: #c9d8d4; +} + +.cli-band pre { + overflow: auto; + align-self: start; + margin: 0; + border: 1px solid rgba(255, 248, 238, 0.18); + border-radius: 8px; + background: #071314; + color: #bdf1dc; + padding: clamp(18px, 3vw, 32px); + line-height: 1.7; +} + +.docs-band { + background: #fffaf0; +} + +.destination-list { + display: grid; + gap: 12px; +} + +.destination-list a { + display: flex; + justify-content: space-between; + gap: 20px; + border-top: 1px solid #cbc2b3; + padding: 18px 0; + font-size: clamp(21px, 3vw, 40px); + font-weight: 900; +} + +.destination-list span { + color: #6f7772; + font-size: 15px; + font-weight: 700; + text-align: right; +} + +@media (prefers-color-scheme: dark) { + .product-site { + background: #101616; + color: #fff8ee; + } + + .hero::after { + background: linear-gradient(0deg, #101616 8%, rgba(16, 22, 22, 0)); + } + + .product-band p, + .feature-grid p, + .destination-list span { + color: #bac7c3; + } + + .feature-grid { + border-color: #34413e; + } + + .feature-grid article { + border-color: #34413e; + } + + .feature-grid article:nth-child(even), + .docs-band { + background: #182221; + } +} + +@media (max-width: 900px) { + .hero::before { + inset-right: 0; + } + + .hero-bg { + inset: 0; + grid-template-columns: 58px minmax(0, 1fr); + padding-top: 90px; + opacity: 0.38; + } + + .thread-preview { + display: none; + } + + .product-band, + .feature-grid { + grid-template-columns: 1fr; + } + + .feature-grid article, + .feature-grid article:last-child { + min-height: 0; + border-right: 0; + border-bottom: 1px solid #c8c0b2; + } +} + +@media (max-width: 620px) { + .product-nav { + align-items: flex-start; + flex-direction: column; + } + + .hero { + min-height: 760px; + } + + .hero-bg { + grid-template-columns: 1fr; + opacity: 0.42; + } + + .workspace-rail { + display: none; + } + + .hero-copy { + padding-bottom: 90px; + } + + .destination-list a { + flex-direction: column; + } + + .destination-list span { + text-align: left; + } +} diff --git a/docs/README.md b/docs/README.md index 095ef3c..b8dc925 100644 --- a/docs/README.md +++ b/docs/README.md @@ -13,8 +13,9 @@ WebSocket pipe, and a framework-neutral TypeScript SDK so the bots feel at home. It's built for small teams, internal tools, communities, and anyone who would rather host their own. -Product domain: [clickclack.chat](https://clickclack.chat). Docs domain: -[docs.clickclack.chat](https://docs.clickclack.chat). +Product domain: [clickclack.chat](https://clickclack.chat). App domain: +[app.clickclack.chat](https://app.clickclack.chat), with `/app` as the local +path. Docs domain: [docs.clickclack.chat](https://docs.clickclack.chat). ## Why ClickClack @@ -40,8 +41,8 @@ go run ./apps/api/cmd/clickclack serve ``` The dev fallback boots a default user, workspace, and channel so the SPA loads -into something useful on first hit. Disable it for anything that isn't a local -clone. +into something useful at `/app`. The root path is the product website. Disable +it for anything that isn't a local clone. [Get the full quickstart →](quickstart.html) diff --git a/docs/deployment.md b/docs/deployment.md index 650cf9a..0bb2237 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -10,6 +10,13 @@ ClickClack ships as one Go binary that embeds the Svelte SPA and the SQL migrations. The deployment story is "drop a binary on a box, point it at a data directory, run it behind a reverse proxy." +Public surfaces: + +- `clickclack.chat` — product website. +- `app.clickclack.chat` — chat app. The same app is also available at `/app` + for local development and simple single-host deployments. +- `docs.clickclack.chat` — documentation site built by `pnpm docs:site`. + ## Single binary ```sh diff --git a/docs/quickstart.md b/docs/quickstart.md index f86bfca..a9f8e69 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -17,9 +17,10 @@ pnpm build go run ./apps/api/cmd/clickclack serve ``` -Open `http://localhost:8080`. You should see the SPA with a `Local Captain` -user already signed in via the dev fallback. That's the empty-dev path — -useful for poking around, not what you want long-term. +Open `http://localhost:8080` for the product website. Open +`http://localhost:8080/app` for the chat app with a `Local Captain` user +already signed in via the dev fallback. That's the empty-dev path — useful for +poking around, not what you want long-term. ## 2. Replace the dev user with a real owner diff --git a/tests/e2e/chat.spec.ts b/tests/e2e/chat.spec.ts index f2c4751..4d1ae0c 100644 --- a/tests/e2e/chat.spec.ts +++ b/tests/e2e/chat.spec.ts @@ -42,6 +42,17 @@ function isolatedHome(): NodeJS.ProcessEnv { }; } +test("product website links to app and docs", async ({ page }) => { + await page.goto("/"); + await expect(page.getByRole("heading", { name: "ClickClack" })).toBeVisible(); + await expect(page.getByRole("link", { name: "Open app" })).toHaveAttribute("href", "/app"); + await expect(page.getByRole("link", { name: "Read docs" })).toHaveAttribute( + "href", + "https://docs.clickclack.chat", + ); + await expect(page.getByText("Self-hostable chat. Serious tool. Mild brine.")).toBeVisible(); +}); + test("sends messages, searches, uploads, opens a thread, and creates a DM", async ({ page }) => { const consoleMessages: string[] = []; page.on("console", (message) => consoleMessages.push(`${message.type()}: ${message.text()}`)); @@ -69,7 +80,7 @@ test("sends messages, searches, uploads, opens a thread, and creates a DM", asyn { cwd: process.cwd(), encoding: "utf8" }, ).trim(); - await page.goto("/"); + await page.goto("/app"); await page.getByRole("button", { name: "# general" }).click(); await expect(page.getByRole("heading", { name: "#general" })).toBeVisible();