chamba 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +7 -1
  2. package/dist/lib/chamba-yaml.js +4 -4
  3. package/package.json +1 -1
  4. package/templates/Dockerfile +3 -3
  5. package/templates/context/baseline.md +2 -2
  6. package/templates/context/web-pane-craft.md +1 -1
  7. package/templates/pane-apps/client/assets/api-BBDf_rzz.js +12 -0
  8. package/templates/pane-apps/client/assets/api-DNLbSBpK.css +1 -0
  9. package/templates/pane-apps/client/assets/bee-B7t97l5B.webp +0 -0
  10. package/templates/pane-apps/client/assets/buzz-CUUsbnXH.mp3 +0 -0
  11. package/templates/pane-apps/client/assets/files-BkmyervY.js +1 -0
  12. package/templates/pane-apps/client/assets/home-3SeGzySM.css +1 -0
  13. package/templates/pane-apps/client/assets/home-Cu9xOd2i.js +1 -0
  14. package/templates/pane-apps/client/assets/pop-D5ZANBC3.mp3 +0 -0
  15. package/templates/pane-apps/client/assets/reviews-DMrGB-kG.js +153 -0
  16. package/templates/pane-apps/client/assets/reviews-nK_yRav9.css +1 -0
  17. package/templates/pane-apps/client/assets/specs-Cabb15F0.js +13 -0
  18. package/templates/pane-apps/client/assets/useNow-BHFKFraS.js +1 -0
  19. package/templates/pane-apps/client/home/index.html +16 -0
  20. package/templates/pane-apps/client/reviews/index.html +6 -4
  21. package/templates/pane-apps/client/specs/index.html +4 -3
  22. package/templates/pane-apps/server/home.mjs +12 -0
  23. package/templates/pane-apps/server/reviews.mjs +19 -18
  24. package/templates/pane-apps/server/specs.mjs +4 -4
  25. package/templates/skills/dx-review/SKILL.md +16 -3
  26. package/templates/skills/dx-review/references/acts.md +86 -15
  27. package/templates/skills/dx-spec/SKILL.md +7 -3
  28. package/templates/skills/dx-spec/references/review-guide.md +2 -2
  29. package/templates/skills/dx-spec/references/spec-guide.md +1 -1
  30. package/templates/skills/dx-spec/references/stages.md +6 -2
  31. package/templates/skills/dx-spec-execute/SKILL.md +73 -7
  32. package/templates/startup.mjs +13 -13
  33. package/templates/tool-helper.sh +4 -2
  34. package/templates/webterm/README.md +34 -13
  35. package/templates/webterm/config.js +20 -0
  36. package/templates/webterm/public/app/alerts.js +92 -11
  37. package/templates/webterm/public/app/composer.js +37 -3
  38. package/templates/webterm/public/app/connection.js +14 -0
  39. package/templates/webterm/public/app/dom.js +1 -0
  40. package/templates/webterm/public/app/frames.js +1 -1
  41. package/templates/webterm/public/app/home-host.js +16 -0
  42. package/templates/webterm/public/app/main.js +4 -2
  43. package/templates/webterm/public/app/pane-shape.js +5 -3
  44. package/templates/webterm/public/app/pane-shell.js +45 -5
  45. package/templates/webterm/public/app/pane.js +8 -2
  46. package/templates/webterm/public/app/reviews-host.js +5 -1
  47. package/templates/webterm/public/app/tool-host.js +19 -3
  48. package/templates/webterm/public/app/workspace-color.js +1 -1
  49. package/templates/webterm/public/index.html +5 -1
  50. package/templates/webterm/public/styles.css +52 -0
  51. package/templates/webterm/tool-document.js +3 -2
  52. package/templates/webterm/tools/home.js +58 -0
  53. package/templates/webterm/tools/index.js +5 -4
  54. package/templates/webterm/tools/reviews.js +7 -3
  55. package/templates/pane-apps/client/assets/files-D0nJgFAA.js +0 -12
  56. package/templates/pane-apps/client/assets/files-h0K1vZyQ.css +0 -1
  57. package/templates/pane-apps/client/assets/reviews-BsoGZ35r.css +0 -1
  58. package/templates/pane-apps/client/assets/reviews-iW0Mbn4e.js +0 -153
  59. package/templates/pane-apps/client/assets/specs-D9z3neR-.js +0 -13
@@ -0,0 +1,153 @@
1
+ import{A as e,D as t,O as n,S as r,c as i,i as a,j as o,n as s,p as c,s as l,t as u,y as d}from"./api-BBDf_rzz.js";import{t as f}from"./useNow-BHFKFraS.js";import{a as p,o as m,r as h,t as g}from"./files-BkmyervY.js";var _=e(),v=n(),y=s(`reviews`);y.receive;var b=y.credentialsReady,x=y.onChange,ee=y.onSession;y.openOutside;var S=y.deliver,C=y.sayWaiting,w=y.listen;function te(e){return y.askTheme(e)}var T=u({prefix:`reviews`,label:`Code Reviews`,credentialsReady:b}),E=T.ask;function ne(e){return{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}}var D=e=>`review/${encodeURIComponent(e)}`;function O(){return E(`list`)}function re(e){return E(D(e))}function ie(e,t,n){return E(`${D(e)}/hunks?from=${t}&count=${n}`)}function k(e,t,n,r){let i=new URLSearchParams({name:t,from:String(n),count:String(r)});return E(`${D(e)}/blob?${i.toString()}`)}function ae(){return E(`options`)}async function oe(e){let t=new URLSearchParams({kind:e.kind});for(let[n,r]of Object.entries(e))n===`kind`||r===void 0||r===``||t.set(n,String(r));let[n]=(await E(`options?${t.toString()}`)).options;if(n===void 0)throw Error(`that selection holds nothing to review`);return n}function se(e){return E(`start`,ne(e))}function ce(e,t,n={}){return E(`${D(e)}/${t}`,ne(n))}T.rawUrl;var le=T.fileUrl;function ue(e){return e.open?e.messages[e.messages.length-1]?.from===`agent`:!1}var A={undo:`Undo the change`,explain:`Explain in a comment`,comment:`Comment`,"group-comment":`Comment on group`,fix:`Fix`};function j(e){return e!==`undo`}function M(e){if(e.length===0)return``;let t=[...e].sort((e,t)=>e-t),n=t[0],r=t[t.length-1];return n===void 0||r===void 0?``:n===r?`L${n}`:`L${n}-${r}`}function de(e,t){return`${e}\n${t}`}var N=`ungrouped`,P=`gone`;function F(e){return e.lines===null||e.lines.length===0?null:Math.min(...e.lines)}function I(e){return e.lines===null||e.lines.length===0?`whole hunk`:M(e.lines)}var fe=[`issue`,`attention`,`info`];function pe(e){return fe.find(t=>e.includes(t))??`info`}function me(e){return[...e].sort((e,t)=>(F(e)??-1)-(F(t)??-1))}function he(e){return e.unseen+e.issues+e.attention+e.threads+e.pending>0}function ge(e){return e.unseen+e.issues+e.attention+e.threads+e.pending}function L(e){let t=[],n=(e,t,n)=>e===1?t:n;if(e.unseen>0&&t.push({kind:`unseen`,count:e.unseen,text:`${n(e.unseen,`hunk`,`hunks`)} not Seen`}),e.attention>0&&t.push({kind:`attention`,count:e.attention,text:`attention ${n(e.attention,`note`,`notes`)} open`}),e.issues>0&&t.push({kind:`issues`,count:e.issues,text:`issue ${n(e.issues,`note`,`notes`)} open`}),e.threads>0){let r=e.unreadReplies>0?`, with ${e.unreadReplies} ${n(e.unreadReplies,`reply`,`replies`)} you have not read`:``;t.push({kind:`threads`,count:e.threads,text:`${n(e.threads,`conversation`,`conversations`)} open${r}`})}return e.pending>0&&t.push({kind:`pending`,count:e.pending,text:`feedback ${n(e.pending,`item`,`items`)} pending, not sent`}),t}function R(e,t){return`${e}\n${t}`}function _e(e,t=new Set){let n=(e.baseline?.entries??[]).map(e=>e.id),r=new Map(n.map((e,t)=>[e,t])),i=new Set(e.marks.marks.map(e=>e.hunk)),a=new Set(e.marks.changed.map(e=>e.hunk).filter(e=>r.has(e))),o=new Set([...e.metadata.groups.map(e=>e.id),N]),s=new Map;for(let t of e.metadata.notes)s.set(t.hunk,[...s.get(t.hunk)??[],t]);let c=new Map;for(let t of e.dismissals.items)c.set(t.hunk,(c.get(t.hunk)??new Set).add(t.key));let l=new Map,u=new Map;for(let[e,t]of s){let n=me(t);l.set(e,n);let r=c.get(e);u.set(e,n.filter(e=>r===void 0||!r.has(e.key)))}let d=new Map,f=new Set,p=[];for(let n of e.threads.threads){let e=n.kind===`hunk`&&n.open&&n.label===`hunk-removed`,i=n.kind===`group`?o.has(n.anchor):r.has(n.anchor)||e;if(e&&p.push(n),!i)continue;let a=R(n.kind,n.anchor);d.set(a,[...d.get(a)??[],n]);for(let e of n.messages)e.from!==`agent`||e.readAt!==null||t.has(e.id)||f.add(e.id)}return{side:e.state.side,order:n,places:r,seen:i,changed:a,open:u,notes:l,aside:c,threads:d,unread:f,gone:p}}function ve(e,t){if(t===null)return[...e.order];let n=new Map;for(let r of t.hunks){let t=e.places.get(r);t!==void 0&&n.set(r,t)}return[...n.keys()].sort((e,t)=>(n.get(e)??0)-(n.get(t)??0))}function ye(e,t){let n=ve(e,t),r=0,i=0,a=0,o=0,s=0;for(let c of n){e.seen.has(c)&&(r+=1),e.changed.has(c)&&(s+=1);for(let t of e.open.get(c)??[])t.kind===`issue`?i+=1:t.kind===`attention`&&(a+=1);t!==null&&(o+=Se(e,R(`hunk`,c)))}return t===null?o=e.unread.size:o+=Se(e,R(`group`,t.id)),{hunks:n.length,seen:r,unseen:n.length-r,issues:i,attention:a,replies:o,changed:s,waiting:be(e,t,n)}}function be(e,t,n){if(e.side===`agent`)return 0;let r=t===null?[...e.threads.keys()]:[...n.map(e=>R(`hunk`,e)),R(`group`,t.id)],i=0;for(let t of r)for(let n of e.threads.get(t)??[])ue(n)&&(i+=1);return i}function xe(e){let t={info:0,attention:0,issue:0};for(let n of e.notes.values())for(let e of n)t[e.kind]+=1;return t}function Se(e,t){let n=0;for(let r of e.threads.get(t)??[])for(let t of r.messages)e.unread.has(t.id)&&(n+=1);return n}var z=`.reviews`,Ce=`archive`,we=`pending.json`,Te=`reader-state.json`,Ee=`signature.png`,De=`baseline`,Oe=`baseline.next`,ke=`baseline.gone`,Ae=`diff.patch`,je=`blobs`,Me=`metadata.json`;`${z}${Oe}`,`${z}${ke}`,`${z}${De}${Ae}`,`${z}${De}${je}`,`${z}${De}${Me}`,`${z}${we}`,`${z}${Te}`,`${Ce}${z}${Oe}`,`${Ce}${z}${ke}`,`${Ce}${z}${De}${Ae}`,`${Ce}${z}${De}${je}`,`${Ce}${z}${De}${Me}`,`${Ce}${z}${we}`,`${Ce}${z}${Te}`;var Ne=12;function Pe(e){let t=e=>e.slice(0,Ne);if(e.followed!==null)return`commit ${t(e.followed)}`;if(e.kind===`branch`||e.kind===`other-branch`){let n=e.baseRef??t(e.base),r=`${e.head} against ${n}`;return e.uncommitted?`${r} - includes uncommitted changes`:r}return e.kind===`range`?`${t(e.base)}..${t(e.head)}`:e.kind===`last-commit`?`last commit ${t(e.head)}`:`commit ${t(e.head)}`}var Fe=2e3;function Ie(e){return e.side===`you`&&e.status===`reviewing`}function Le(e){return e.side===`agent`?`Read-only while the agent works on this review.`:e.status===`reviewing`?``:`Read-only: this review is ${e.status}.`}function Re(e){return e.side===`agent`}var ze=600*1e3;function Be(e,t){if(e===null)return!1;let n=new Date(e).getTime();return!Number.isNaN(n)&&t.getTime()-n>ze}function Ve(e){return e===`agent`?`Not grouped yet`:`Ungrouped`}var He=`Hunks that are gone`;function Ue(e,t){let n=e.place.group;return n===`all`?`all`:n!==null&&t.some(e=>e.id===n)?n:t[0]?.id??`all`}function We(e){let t=e.state.agent.groups;return t===null?0:Math.max(0,t-e.metadata.groups.length)}function Ge(e,t){let n=new Set(e.hunks),r=[],i=new Set;for(let a of t){if(a.id===e.id)continue;let t=a.hunks.filter(e=>n.has(e));if(t.length!==0){r.push(a.name);for(let e of t)i.add(e)}}return{count:i.size,groups:r}}function Ke(e){let t=new Map;for(let n of e)for(let e of n.hunks)t.set(e,[...t.get(e)??[],n.name]);return t}function qe(e){let t=e.metadata.groups.map(e=>({id:e.id,name:e.name,narrative:e.narrative,facts:e.facts,hunks:e.hunks}));return e.ungrouped.length>0&&t.push({id:N,name:Ve(e.state.side),narrative:``,facts:[],hunks:e.ungrouped}),t}var B=t(),Je=2*Math.PI*5.5;function Ye(e){return(0,B.jsxs)(`svg`,{className:`rv-ring`,viewBox:`0 0 14 14`,"aria-hidden":`true`,children:[(0,B.jsx)(`circle`,{className:`rv-ring-bg`,cx:`7`,cy:`7`,r:`5.5`}),(0,B.jsx)(`circle`,{className:`rv-ring-fg`,cx:`7`,cy:`7`,r:`5.5`,strokeDasharray:`${(Je*e.part).toFixed(2)} ${Je.toFixed(2)}`})]})}function Xe(e,t){return`${e} ${t}${e===1?``:`s`}`}var Ze=`The agent's notes on this review, whatever their state: dismissed ones count too.`,Qe=`notes-held`;function $e(e){let t=a({className:`rv-infotip`,side:`bottom`}),n=e.review,r=n.baseline,i=e.index,o=e.sections,s=xe(i),l=s.issue+s.attention,u=We(n),f=t=>{let n=e.summary.of(t.id).counts,r=n.hunks>0&&n.unseen===0,i=n.hunks===0;return(0,B.jsx)(`li`,{children:(0,B.jsxs)(`button`,{type:`button`,className:`nav-entry rv-gi${r?` is-done`:``}${i?` is-empty`:``}`,"aria-current":t.id===e.group?`true`:void 0,onClick:()=>e.onPick(t.id),children:[(0,B.jsx)(`span`,{className:`nav-entry-name rv-gname`,children:t.name}),(0,B.jsxs)(`span`,{className:`rv-gdots`,children:[n.issues>0&&(0,B.jsx)(`i`,{className:`rv-gdot is-issue`}),n.attention>0&&(0,B.jsx)(`i`,{className:`rv-gdot is-attention`}),n.replies>0&&(0,B.jsx)(`i`,{className:`rv-gdot is-reply`})]}),(0,B.jsx)(`span`,{className:`rv-gright`,children:r?(0,B.jsx)(`span`,{className:`rv-gcheck`,role:`img`,"aria-label":`every hunk seen`,children:`✓`}):(0,B.jsxs)(B.Fragment,{children:[n.seen,` of `,n.hunks,(0,B.jsx)(Ye,{part:n.hunks===0?0:n.seen/n.hunks})]})})]})},t.id)};return(0,B.jsxs)(`nav`,{className:`nav`,"aria-label":`The groups of this review`,children:[(0,B.jsxs)(`button`,{type:`button`,className:`nav-back`,onClick:e.onBack,children:[(0,B.jsx)(c,{size:11}),`Reviews`]}),(0,B.jsxs)(`div`,{className:`nav-title`,children:[(0,B.jsx)(`div`,{className:`nav-title-name`,children:n.state.name}),(0,B.jsx)(`div`,{className:`nav-title-note rv-gnote`,children:r===null?`no baseline`:(0,B.jsxs)(B.Fragment,{children:[Xe(r.totals.files,`file`),` ·`,` `,(0,B.jsxs)(`span`,{className:`rv-plus`,children:[`+`,r.totals.added]}),` `,(0,B.jsxs)(`span`,{className:`rv-minus`,children:[`-`,r.totals.deleted]}),` lines`,(0,B.jsx)(`br`,{}),Xe(r.totals.hunks,`hunk`),` ·`,` `,Xe(n.metadata.groups.length,`group`),l>0&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`br`,{}),Xe(s.issue,`issue`),` · `,s.attention,` attention`,` `,(0,B.jsxs)(`button`,{type:`button`,className:`rv-info`,"aria-label":`What the counts hold`,"aria-describedby":Qe,...t.anchor,children:[(0,B.jsx)(d,{size:13}),(0,B.jsx)(`span`,{className:`visually-hidden`,id:Qe,children:Ze}),t.says(Ze)]})]})]})})]}),(0,B.jsxs)(`h2`,{className:`nav-head`,children:[(0,B.jsx)(`span`,{children:`Groups`}),(0,B.jsx)(`span`,{className:`nav-head-count`,children:n.metadata.groups.length})]}),(0,B.jsxs)(`ul`,{className:`nav-list`,children:[o.map(f),Array.from({length:u},(e,t)=>`coming-${t}`).map(e=>(0,B.jsx)(`li`,{className:`rv-gwait`,"aria-hidden":`true`,children:(0,B.jsx)(`span`,{className:`rv-skel is-wide`})},e)),u>0&&(0,B.jsxs)(`li`,{className:`visually-hidden`,children:[Xe(u,`more group`),` `,u===1?`is`:`are`,` still being prepared`]}),(0,B.jsx)(`li`,{className:`rv-gsep`,children:(0,B.jsx)(`button`,{type:`button`,className:`nav-entry rv-gi`,"aria-current":e.group===`all`?`true`:void 0,onClick:()=>e.onPick(`all`),children:(0,B.jsx)(`span`,{className:`nav-entry-name rv-gname`,children:`All groups`})})})]})]})}var et=350,tt={"branch-reflog":`base found from the reflog`,"head-reflog":`base found from the reflog`,upstream:`base found from the upstream`,"merge-base":`base found from the merge base`,chosen:`base you chose`,parent:`base is the commit's parent`,range:`base is the start of the range`,root:`base is the repository's first commit`},nt=e=>e.slice(0,7);function rt(e){if(e===null)return``;let t=e.summary,n=t.commits.length;return[`${t.files} file${t.files===1?``:`s`}`,`${t.hunks} hunk${t.hunks===1?``:`s`}`,`${n} commit${n===1?``:`s`}`].join(` - `)}function it(e){if(e===null)return``;let t=e.selection;if(t.kind===`branch`||t.kind===`other-branch`){let e=(t.head.split(`/`).pop()??t.head).replace(/[-_]+/g,` `).trim();return e.charAt(0).toUpperCase()+e.slice(1)}let n=e.summary.commits[0]?.subject??``;return n===``?e.label:n}function at(e){let t=(0,_.useMemo)(()=>{let t=e.offer.options;return{branch:t.find(e=>e.kind===`branch`)??null,last:t.find(e=>e.kind===`last-commit`)??null,others:t.filter(e=>e.kind===`other-branch`)}},[e.offer]),n=t.branch===null?e.offer.notOffered:null,r=e.draft,[i,a]=(0,_.useState)(r?.picked??null),[o,s]=(0,_.useState)(r?.base??null),[c,l]=(0,_.useState)(r?.commit??``),[u,d]=(0,_.useState)(r?.from??``),[f,p]=(0,_.useState)(r?.to??``),[m,h]=(0,_.useState)(r?.other??``),[g,v]=(0,_.useState)(r?.uncommitted??!0),[y,b]=(0,_.useState)(r?.name??``),[x,ee]=(0,_.useState)(r?.named??!1),S=e.onDraft;(0,_.useEffect)(()=>{S({picked:i,base:o,commit:c,from:u,to:f,other:m,uncommitted:g,name:y,named:x})},[i,o,c,u,f,m,g,y,x,S]);let[C,w]=(0,_.useState)(!1),[te,T]=(0,_.useState)(null),[E,ne]=(0,_.useState)(null),[D,O]=(0,_.useState)(null),re=e=>e===`branch`?t.branch!==null||n!==null:e===`last-commit`?t.last!==null:e!==`other-branch`||t.others.length>0,ie=t.branch===null?`last-commit`:`branch`,k=i!==null&&re(i)?i:ie,ae=t.branch?.selection.head??n?.branch??``,ce=t.branch?.selection.baseRef??t.branch?.selection.base??``,le=o??ce,ue=m===``?t.others[0]??null:t.others.find(e=>e.selection.head===m)??null,A=(0,_.useMemo)(()=>{if(k===`branch`)return o===null||o.trim()===``||o===ce?null:{kind:`branch`,base:o.trim(),uncommitted:g};if(k===`commit`)return c.trim()===``?null:{kind:`commit`,commit:c.trim()};if(k===`range`){let e={from:u.trim(),to:f.trim()};return e.from===``||e.to===``?null:{kind:`range`,...e}}return null},[k,o,ce,g,c,u,f]);(0,_.useEffect)(()=>{if(A===null){ne(null),O(null);return}let e=!0,t=setTimeout(()=>{oe(A).then(t=>{e&&(ne(t),O(null))}).catch(t=>{e&&(ne(null),O(t.message))})},et);return()=>{e=!1,clearTimeout(t)}},[A]);let j=k===`branch`?A===null?t.branch:E:k===`last-commit`?t.last:k===`other-branch`?ue:E,M=it(j),de=x?y:M,N=e=>{a(e),T(null)},P=async()=>{if(j!==null){w(!0),T(null);try{let t=k===`branch`?{kind:`branch`,uncommitted:g,...A===null?{}:{base:le.trim()}}:k===`last-commit`?{kind:`last-commit`}:k===`commit`?{kind:`commit`,commit:c.trim()}:k===`range`?{kind:`range`,from:u.trim(),to:f.trim()}:{kind:`other-branch`,branch:j.selection.head};e.onStarted(await se({name:de,selection:t}))}catch(e){T(e instanceof Error?e.message:`the review was not filed`),w(!1)}}},F=e=>{let t=e?.summary.commits??[],n=t.slice(0,5);return(0,B.jsxs)(`ul`,{className:`rv-commits`,children:[n.map(e=>(0,B.jsxs)(`li`,{children:[(0,B.jsx)(`span`,{className:`rv-mono`,children:nt(e.hash)}),` `,e.subject]},e.hash)),t.length>n.length&&(0,B.jsxs)(`li`,{children:[`+ `,t.length-n.length,` more`]})]})},I=k===`branch`?j:t.branch,fe=()=>I===null?n===null?``:`pick a base`:rt(I),pe=()=>{let e=k===`branch`&&D!==null?D:null;if(I!==null){let t=tt[I.selection.baseFoundBy];return e===null?t:`${t} - ${e}`}return e??n?.reason??``},me=()=>I?.uncommitted.files??t.branch?.uncommitted.files??0,he=(e,t,n,r,i=null)=>(0,B.jsxs)(`label`,{className:`rv-opt${k===e?` is-chosen`:``}`,children:[(0,B.jsx)(`input`,{type:`radio`,className:`rv-radio-input`,name:`rv-what-to-review`,checked:k===e,onChange:()=>N(e)}),(0,B.jsx)(`span`,{className:`rv-radio`,"aria-hidden":`true`}),(0,B.jsxs)(`span`,{className:`rv-opt-title`,children:[(0,B.jsx)(`b`,{children:t}),(0,B.jsx)(`span`,{className:`rv-count`,children:n})]}),r,i]});return(0,B.jsx)(`div`,{className:`rv-screen`,children:(0,B.jsxs)(`div`,{className:`rv-form`,children:[(0,B.jsx)(`h2`,{children:`New review`}),(0,B.jsx)(`p`,{className:`rv-lead`,children:`Pick what to review. The agent in this session prepares it.`}),(0,B.jsxs)(`div`,{className:`rv-form-row`,children:[(0,B.jsx)(`h3`,{children:`What to review`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.reading,onClick:e.onRefresh,children:e.reading?`Reading…`:`Refresh`})]}),(0,B.jsx)(`p`,{className:`rv-lead`,children:`Each option shows what it holds now. The base and the name can be changed before the review starts.`}),(0,B.jsxs)(`div`,{role:`radiogroup`,"aria-label":`What to review`,children:[e.reading&&e.offer.options.length===0&&(0,B.jsxs)(`p`,{className:`rv-opt is-waiting`,"aria-live":`polite`,children:[(0,B.jsx)(`span`,{className:`rv-dot`}),`Reading the repository. The current branch, the last commit and the other branches appear here once they are counted.`]}),(t.branch!==null||n!==null)&&he(`branch`,`Current branch against its base`,fe(),(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`span`,{className:`rv-opt-detail`,children:[(0,B.jsx)(`span`,{className:`rv-mono`,children:ae}),` against`,` `,(0,B.jsx)(`input`,{className:`rv-mono`,"aria-label":`The base of this branch`,placeholder:n===null?void 0:`base`,value:le,onChange:e=>{s(e.target.value),N(`branch`)}}),` `,(0,B.jsx)(`span`,{children:pe()})]}),me()>0&&(0,B.jsxs)(`label`,{className:`rv-check`,children:[(0,B.jsx)(`input`,{type:`checkbox`,checked:g,onChange:e=>v(e.target.checked)}),` `,`Include uncommitted changes (`,me(),` files)`]})]}),F(k===`branch`?j:t.branch)),t.last!==null&&he(`last-commit`,`The last commit`,rt(t.last),null,F(t.last)),he(`commit`,`A specific commit`,k===`commit`&&E!==null?rt(E):`pick one`,(0,B.jsxs)(`span`,{className:`rv-opt-detail`,children:[(0,B.jsx)(`input`,{className:`rv-mono`,placeholder:`commit`,"aria-label":`A commit to review`,value:c,onChange:e=>{l(e.target.value),N(`commit`)}}),` `,(0,B.jsx)(`span`,{children:k===`commit`&&D!==null?D:`files, hunks and the commit line appear once a commit is typed`})]}),k===`commit`?F(E):null),he(`range`,`A commit range`,k===`range`&&E!==null?rt(E):`pick two`,(0,B.jsxs)(`span`,{className:`rv-opt-detail`,children:[(0,B.jsx)(`input`,{className:`rv-mono`,placeholder:`from`,"aria-label":`The start of the range`,value:u,onChange:e=>{d(e.target.value),N(`range`)}}),` `,`..`,` `,(0,B.jsx)(`input`,{className:`rv-mono`,placeholder:`to`,"aria-label":`The end of the range`,value:f,onChange:e=>{p(e.target.value),N(`range`)}}),` `,(0,B.jsx)(`span`,{children:k===`range`&&D!==null?D:`the commits in the range are listed here`})]}),k===`range`?F(E):null),t.others.length>0&&he(`other-branch`,`Another branch against its base`,`${t.others.length} branch${t.others.length===1?``:`es`}`,(0,B.jsxs)(`span`,{className:`rv-opt-detail`,children:[(0,B.jsx)(`select`,{"aria-label":`Which branch to review`,value:ue?.selection.head??``,onChange:e=>{h(e.target.value),N(`other-branch`)},children:t.others.map(e=>(0,B.jsx)(`option`,{value:e.selection.head,children:e.selection.head},e.selection.head))}),` `,`against`,` `,(0,B.jsx)(`span`,{className:`rv-mono`,children:ue?.selection.baseRef??nt(ue?.selection.base??``)}),` `,`- `,rt(ue)]}),k===`other-branch`?F(ue):null)]}),(0,B.jsxs)(`div`,{className:`rv-form-foot`,children:[(0,B.jsx)(`label`,{htmlFor:`rv-name`,children:`Name`}),(0,B.jsx)(`input`,{id:`rv-name`,value:de,onChange:e=>{ee(!0),b(e.target.value)}})]}),(0,B.jsx)(`p`,{className:`rv-form-note`,children:`Name proposed from the selection. The agent in this session prepares the review as soon as it is started.`}),te!==null&&(0,B.jsx)(`p`,{className:`rv-refused`,children:te}),(0,B.jsxs)(`div`,{className:`rv-form-acts`,children:[(0,B.jsx)(`button`,{type:`button`,className:`rv-btn`,onClick:e.onCancel,children:`Cancel`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-primary`,disabled:j===null||de.trim()===``||C,onClick:()=>void P(),children:`Start review`})]})]})})}function ot(e){let t=ge(e);return`Approved with ${t} ${t===1?`thing`:`things`} left as ${t===1?`it was`:`they were`}`}function st(e){let t=e.left,n=a({className:`rv-tip${e.plain?` is-plain`:``}`,side:`right`});if(t===null||!he(t))return null;let r=ot(t);return(0,B.jsxs)(`span`,{className:`rv-left-mark${e.plain?` is-plain`:``}`,...n.anchor,children:[(0,B.jsx)(`span`,{"aria-hidden":`true`,children:`!`}),(0,B.jsx)(`span`,{className:`visually-hidden`,children:r}),n.says((0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`b`,{children:r}),(0,B.jsx)(`ul`,{children:L(t).map(e=>(0,B.jsxs)(`li`,{children:[e.count,` `,e.text]},e.kind))}),(0,B.jsx)(`small`,{children:`Counted at the moment of signing. Acknowledged by the signer.`})]}))]})}function ct(e){if(e===null)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleDateString()}function lt(e){return e.relation===null?null:e.relation.relation===`out-of-sync`?{text:`Out of sync`,kind:``}:e.relation.relation===`merged`?{text:`Merged`,kind:`is-merged`}:null}function ut(e){return e.approved===null?``:`${e.approved?`Approved`:`Closed`} ${ct(e.endedAt)}`.trim()}function dt(e){return[e.name,e.branch??``,e.selection,ct(e.endedAt),ut(e)].join(` `).toLowerCase()}function ft(e){let t=e.now??new Date,[n,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(``),s=(0,_.useMemo)(()=>{let t=a.trim().toLowerCase();return t===``?e.archived:e.archived.filter(e=>dt(e).includes(t))},[e.archived,a]),c=n=>{let r=lt(n),i=n.status===`reviewing`?``:ut(n),a=n.side===`agent`&&n.status===`reviewing`;return(0,B.jsx)(`li`,{children:(0,B.jsxs)(`button`,{type:`button`,className:`rv-row`,"aria-current":n.slug===e.open?`true`:void 0,disabled:n.missing,onClick:()=>e.onOpen(n.slug),children:[(0,B.jsxs)(`span`,{className:`rv-row-top`,children:[(0,B.jsx)(`span`,{className:`rv-row-name`,children:n.name}),r!==null&&(0,B.jsx)(`span`,{className:`rv-row-chip ${r.kind}`.trim(),children:r.text})]}),i===``?(0,B.jsx)(`span`,{className:`rv-bar`,children:(0,B.jsx)(`i`,{style:{width:`${pt(n)}%`}})}):(0,B.jsxs)(`span`,{className:`rv-row-ended`,children:[i,(0,B.jsx)(st,{left:n.leftAsIs,plain:!0})]}),a&&(0,B.jsxs)(`span`,{className:`rv-row-state`,children:[(0,B.jsx)(`span`,{className:`rv-dot`}),n.activity===``?`Awaits agent`:`Awaits agent - ${n.activity}`]}),n.missing&&(0,B.jsx)(`span`,{className:`rv-row-note`,children:`Missing on this branch`}),n.filedBy===`terminal`&&n.status===`reviewing`&&!n.missing&&(0,B.jsxs)(`span`,{className:`rv-row-note`,children:[`Filed from the terminal `,l(n.created,t)]})]})},n.slug)};return(0,B.jsxs)(`nav`,{className:`nav`,"aria-label":`Code reviews`,children:[(0,B.jsxs)(`button`,{type:`button`,className:`nav-new`,"aria-pressed":e.starting,disabled:!e.repository,onClick:e.onStart,children:[(0,B.jsx)(r,{size:12}),`New review`]}),e.error!==null&&(0,B.jsx)(`p`,{className:`nav-note`,children:e.error}),(0,B.jsxs)(`h2`,{className:`nav-head`,children:[(0,B.jsx)(`span`,{children:`Active`}),(0,B.jsx)(`span`,{className:`nav-head-count`,children:e.active.length})]}),e.active.length===0?(0,B.jsx)(`p`,{className:`nav-empty`,children:`none yet`}):(0,B.jsx)(`ul`,{className:`nav-list`,children:e.active.map(c)}),e.archived.length>0&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`h2`,{className:`nav-head`,children:(0,B.jsxs)(`button`,{type:`button`,"aria-expanded":n,onClick:()=>i(e=>!e),children:[(0,B.jsx)(`span`,{children:`Archived`}),(0,B.jsxs)(`span`,{className:`nav-head-count`,children:[e.archived.length,` `,n?`▾`:`▸`]})]})}),n&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:`nav-search`,children:(0,B.jsx)(`input`,{type:`search`,"aria-label":`Search the archive`,placeholder:`Search name, branch or date`,value:a,onChange:e=>o(e.target.value)})}),s.length===0?(0,B.jsx)(`p`,{className:`nav-empty`,children:`nothing by that name`}):(0,B.jsx)(`ul`,{className:`nav-list nav-archived`,children:s.map(c)})]})]})]})}function pt(e){return e.progress.total===0?0:Math.round(e.progress.seen/e.progress.total*100)}function mt(e){let[t,n]=(0,_.useState)(!1),[r,i]=(0,_.useState)(``);return t?(0,B.jsxs)(`div`,{className:`rv-aclose`,children:[(0,B.jsx)(`textarea`,{"aria-label":`Why it is closed without approval`,rows:2,value:r,disabled:e.busy,onChange:e=>i(e.target.value)}),(0,B.jsxs)(`span`,{className:`rv-aclose-acts`,children:[(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.busy||r.trim()===``,onClick:()=>e.onClose(r.trim()),children:`Close without approval`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,onClick:()=>n(!1),children:`Cancel`})]})]}):(0,B.jsxs)(`div`,{className:`rv-aclose`,children:[(0,B.jsx)(`button`,{type:`button`,className:`rv-link`,disabled:e.busy,onClick:()=>n(!0),children:`Close without approval`}),(0,B.jsx)(`span`,{className:`rv-facts`,children:`Opens a box for the reason.`})]})}function ht(e){if(e===null)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}function gt(e){let t=e.indexOf(`:`),n=t===-1?``:e.slice(0,t+1),r=e.slice(t+1);return r.length<=12?e:`${n}${r.slice(0,6)}…${r.slice(-4)}`}function _t(e){let t=e.baseline?.resolved;if(t===void 0)return`no baseline`;let n=t.head.slice(0,7);return t.tree?`${n}, includes uncommitted changes`:`${n}, working copy clean`}function vt(e){let t=e.relation?.relation??null;return t===null?`unknown`:t.replaceAll(`-`,` `)}function yt(e){return e===0?`Sign and approve`:`Sign and approve with ${e} ${e===1?`thing`:`things`} left`}function bt(e){let t=e.review,n=t.leftAsIs,r=ge(n),i=L(n),[a,o]=(0,_.useState)(t.configuredName),[s,c]=(0,_.useState)(!1),[l,u]=(0,_.useState)(!1),d=(0,_.useRef)(null),f=(0,_.useRef)(!1),{onCancel:p}=e;(0,_.useEffect)(()=>{let e=e=>{e.key===`Escape`&&p()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[p]);let m=e=>{let t=d.current;if(t===null)return null;let n=t.getBoundingClientRect();return n.width===0||n.height===0?null:{x:(e.clientX-n.left)/n.width*t.width,y:(e.clientY-n.top)/n.height*t.height}},h=(e,t)=>{let n=d.current?.getContext(`2d`)??null,r=m(e);if(!(n===null||r===null)){if(n.strokeStyle=`#e6edf3`,n.lineWidth=2,n.lineCap=`round`,t){n.beginPath(),n.moveTo(r.x,r.y);return}n.lineTo(r.x,r.y),n.stroke(),u(!0)}},g=()=>{let e=d.current,t=e?.getContext(`2d`)??null;e!==null&&t!==null&&t.clearRect(0,0,e.width,e.height),u(!1)},v=()=>{let e=d.current;if(!l||e===null)return null;let t=e.toDataURL(`image/png`);return t.startsWith(`data:image/png;base64,`)?t:null},y=e.busy||a.trim()===``||r>0&&!s;return(0,B.jsx)(`div`,{className:`dialog-shade`,children:(0,B.jsxs)(`form`,{className:`dialog dialog-wide rv-adialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Approve "${t.state.name}"`,onSubmit:t=>{t.preventDefault(),!y&&e.onApprove(a.trim(),v(),r>0)},children:[(0,B.jsxs)(`h2`,{className:`rail-head rv-adialog-head`,children:[(0,B.jsxs)(`span`,{children:[`Approve "`,t.state.name,`"`]}),(0,B.jsx)(`button`,{type:`button`,className:`rv-icon rv-adialog-x`,"aria-label":`Close the dialog`,onClick:e.onCancel,children:`×`})]}),(0,B.jsxs)(`div`,{className:`dialog-body`,children:[(0,B.jsxs)(`div`,{className:`rv-ameta`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`span`,{className:`rv-k`,children:`Review`}),(0,B.jsx)(`span`,{className:`rv-v`,children:t.state.name})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`span`,{className:`rv-k`,children:`Feedback loops`}),(0,B.jsx)(`span`,{className:`rv-v`,children:t.loops})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`span`,{className:`rv-k`,children:`Hunks Seen`}),(0,B.jsxs)(`span`,{className:`rv-v`,children:[t.progress.seen,` of `,t.progress.total]})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`span`,{className:`rv-k`,children:`Fingerprint`}),(0,B.jsx)(`span`,{className:`rv-v rv-mono`,title:t.baseline?.fingerprint??``,children:gt(t.baseline?.fingerprint??``)})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`span`,{className:`rv-k`,children:`Commit`}),(0,B.jsx)(`span`,{className:`rv-v rv-mono`,children:_t(t)})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`span`,{className:`rv-k`,children:`Tree`}),(0,B.jsx)(`span`,{className:`rv-v`,children:vt(t)})]})]}),he(n)?(0,B.jsxs)(`section`,{className:`rv-left`,"aria-label":`Left as it is`,children:[(0,B.jsxs)(`h3`,{children:[(0,B.jsx)(`span`,{className:`rv-left-mark`,"aria-hidden":`true`,children:`!`}),`This approval leaves the following as it is`]}),(0,B.jsx)(`ul`,{children:i.map(t=>(0,B.jsxs)(`li`,{children:[(0,B.jsx)(`b`,{children:t.count}),(0,B.jsx)(`span`,{children:t.text}),(0,B.jsx)(`button`,{type:`button`,className:`rv-link`,onClick:()=>e.onGoTo(t.kind),children:`Go to the first`})]},t.kind))}),(0,B.jsxs)(`label`,{className:`rv-left-ack`,children:[(0,B.jsx)(`input`,{type:`checkbox`,checked:s,disabled:e.busy,onChange:e=>c(e.target.checked)}),(0,B.jsx)(`span`,{children:`I reviewed this change, in the tool or outside it, and I approve it with these left as they are. The record will say so.`})]})]}):(0,B.jsx)(`p`,{className:`rv-left is-clean`,children:`Every hunk is Seen, every conversation is closed, and nothing awaits the agent.`}),(0,B.jsxs)(`div`,{className:`rv-asign`,children:[(0,B.jsxs)(`p`,{className:`rv-field`,children:[(0,B.jsxs)(`label`,{htmlFor:`rv-signer`,children:[`Your name `,(0,B.jsx)(`small`,{children:`from git`})]}),(0,B.jsx)(`input`,{id:`rv-signer`,value:a,disabled:e.busy,onChange:e=>o(e.target.value)})]}),(0,B.jsxs)(`p`,{className:`rv-field`,children:[(0,B.jsxs)(`span`,{className:`rv-label`,children:[`Signature `,(0,B.jsx)(`small`,{children:`optional`})]}),(0,B.jsxs)(`span`,{className:`rv-sig`,children:[(0,B.jsx)(`canvas`,{ref:d,width:520,height:160,"aria-label":`Signature`,onPointerDown:e=>{f.current=!0,e.currentTarget.setPointerCapture?.(e.pointerId),h(e,!0)},onPointerMove:e=>{f.current&&h(e,!1)},onPointerUp:()=>{f.current=!1},onPointerLeave:()=>{f.current=!1}}),(0,B.jsx)(`button`,{type:`button`,className:`rv-link`,disabled:!l,onClick:g,children:`clear`})]})]})]})]}),(0,B.jsxs)(`div`,{className:`dialog-acts rv-adialog-acts`,children:[(0,B.jsx)(mt,{busy:e.busy,onClose:e.onClose}),(0,B.jsx)(`span`,{className:`rv-grow`}),(0,B.jsxs)(`span`,{className:`rv-facts`,children:[`Approves as of commit `,(t.baseline?.resolved.head??``).slice(0,7)]}),(0,B.jsx)(`button`,{type:`submit`,className:`rv-btn ${r>0?`is-warn`:`is-ok`}`,disabled:y,children:yt(r)})]})]})})}function xt(e){let[t,n]=(0,_.useState)(e.text??``),r=A[e.act],i=M(e.lines),a=t.trim()!==``||!j(e.act);return(0,B.jsxs)(`form`,{className:`rv-compose`,onSubmit:n=>{n.preventDefault(),!(!a||e.busy)&&e.onWrite(t.trim())},children:[(0,B.jsxs)(`p`,{className:`rv-compose-head`,children:[(0,B.jsx)(`b`,{children:r}),i!==``&&(0,B.jsx)(`span`,{className:`rv-facts`,children:i})]}),(0,B.jsx)(`textarea`,{"aria-label":r,rows:3,value:t,disabled:e.busy,onChange:t=>{n(t.target.value),e.onChange?.(t.target.value)}}),(0,B.jsxs)(`p`,{className:`rv-compose-acts`,children:[(0,B.jsx)(`button`,{type:`submit`,className:`rv-btn is-small is-primary`,disabled:!a||e.busy,children:`Add`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,onClick:e.onCancel,children:`Cancel`})]})]})}function St(e){return e.slice(0,10)}function Ct(e){let t=e.approval,[n,r]=(0,_.useState)(null),i=e.slug,a=t.signature;return(0,_.useEffect)(()=>{if(a===null)return;let e=!0;return le(`${i}/${Ee}`).then(t=>{e&&r(t)}),()=>{e=!1}},[a,i]),(0,B.jsxs)(`div`,{className:`rv-ended`,children:[(0,B.jsxs)(`span`,{className:`rv-ended-how`,children:[t.approved?`Approved`:`Closed`,` `,St(t.at),t.name!==``&&(0,B.jsxs)(B.Fragment,{children:[` by `,(0,B.jsx)(`b`,{children:t.name})]})]}),(0,B.jsx)(st,{left:t.leftAsIs}),n!==null&&(0,B.jsx)(`img`,{src:n,alt:`Signed by ${t.name}`}),!t.approved&&t.reason!==``&&(0,B.jsx)(`span`,{className:`rv-reason`,children:t.reason}),(0,B.jsxs)(`span`,{className:`rv-ended-fact`,children:[`fingerprint `,(0,B.jsx)(`span`,{className:`rv-mono`,children:gt(t.fingerprint)})]}),(0,B.jsxs)(`span`,{className:`rv-ended-fact`,children:[`commit `,(0,B.jsx)(`span`,{className:`rv-mono`,children:t.commit.slice(0,7)}),t.uncommitted&&`, with uncommitted changes`]}),(0,B.jsx)(`span`,{className:`rv-grow`}),!e.filed&&(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.busy,onClick:e.onArchive,children:`Archive`})]})}var wt={unseen:{next:`Next unseen`,kind:`Unseen`,spent:`All seen`},issue:{next:`Next issue`,kind:`Issue`,spent:`No issues`},attention:{next:`Next attention`,kind:`Attention`,spent:`No attention`},reply:{next:`Next reply`,kind:`Reply`,spent:`No unread replies`}};function Tt(e){return(0,B.jsx)(`div`,{className:`rv-navrow`,children:e.controls.map(t=>{let n=t.kind,r=wt[n];return t.state===`here`?(0,B.jsxs)(`button`,{type:`button`,className:`rv-nav is-${n}`,onClick:()=>e.onWalk(n),children:[(0,B.jsx)(`span`,{className:`rv-navn`,children:t.count}),r.next]},n):t.state===`across`?(0,B.jsxs)(`button`,{type:`button`,className:`rv-nav is-${n} is-morph`,onClick:()=>e.onWalk(n),children:[(0,B.jsx)(`i`,{className:`rv-navdot`,"aria-hidden":`true`}),r.kind,` in `,(0,B.jsx)(`b`,{children:t.section}),` →`]},n):(0,B.jsxs)(`button`,{type:`button`,className:`rv-nav is-${n} is-done`,disabled:!0,children:[(0,B.jsx)(`span`,{className:`rv-navn`,children:`✓`}),r.spent]},n)})})}function Et(e){let t=[`${e.seen} of ${e.hunks} seen`];return e.issues>0&&t.push(`${e.issues} issue${e.issues===1?``:`s`}`),e.attention>0&&t.push(`${e.attention} attention`),e.replies>0&&t.push(`${e.replies} unread ${e.replies===1?`reply`:`replies`}`),t.join(` · `)}function Dt(e){let t=e.section,n=e.counts,r=n.hunks===0?0:Math.round(n.seen/n.hunks*100),i=e.collapse.collapse>=1,a={"--rv-collapse":e.collapse.collapse,"--rv-fold":`${e.collapse.fold}px`};return(0,B.jsxs)(`div`,{className:`rv-ghead${i?` is-compact`:``}${e.under?` is-under`:``}`,style:a,children:[(0,B.jsxs)(`div`,{className:`rv-gtitle`,children:[(0,B.jsx)(`h3`,{children:t.name}),(0,B.jsx)(`span`,{className:`rv-facts`,children:Et(n)}),(0,B.jsx)(`span`,{className:`rv-grow`}),(0,B.jsxs)(`span`,{className:`rv-gacts`,children:[(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:!e.readable||e.busy||n.unseen===0,onClick:e.onBulk,children:`Mark remaining as Seen`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:!e.readable||e.busy,onClick:e.onComment,children:`Comment`})]})]}),(0,B.jsx)(`div`,{className:`rv-gfold`,children:(0,B.jsxs)(`div`,{className:`rv-gfold-in`,ref:e.fold,children:[t.narrative!==``&&(0,B.jsx)(`p`,{className:`rv-gnarr`,children:t.narrative}),t.facts.length>0&&(0,B.jsx)(`ul`,{className:`rv-gfacts`,children:t.facts.map(e=>(0,B.jsx)(`li`,{children:e},e))}),e.shared.count>0&&(0,B.jsxs)(`p`,{className:`rv-gshared`,children:[e.shared.count,` hunk`,e.shared.count===1?``:`s`,` shared with`,` `,e.shared.groups.join(`, `)]})]})}),e.controls!==null&&(0,B.jsx)(Tt,{controls:e.controls,onWalk:e.onWalk}),(0,B.jsx)(`div`,{className:`rv-gstrip`,children:(0,B.jsx)(`i`,{style:{width:`${r}%`}})})]})}function Ot(e){return(0,B.jsxs)(`div`,{className:`rv-allbar`,children:[(0,B.jsx)(`h3`,{children:`All groups`}),(0,B.jsxs)(`span`,{className:`rv-facts`,children:[e.hunks,` hunk`,e.hunks===1?``:`s`,` in `,e.groups,` group`,e.groups===1?``:`s`]}),(0,B.jsx)(`span`,{className:`rv-grow`}),(0,B.jsx)(Tt,{controls:e.controls,onWalk:e.onWalk})]})}function kt(e){if(e.feedHeight<=0)return null;let t=e.collapse*e.fold,n=e.sectionTop-e.feedTop+e.scrollTop,r=e.underHeader?t:0,i=e.targetTop-e.feedTop+e.scrollTop+r;if(e.block===`start`){let n=e.underHeader?e.headerHeight+t:0;return Math.max(0,i-e.pinned-n)}let a=i-(e.feedHeight-e.targetHeight)/2,o=n-e.pinned;return!e.underHeader||a<=o?Math.max(0,a):a<=o+2*e.fold?Math.max(0,(a+o)/2):Math.max(0,a-e.fold)}function At(e){return e.aside?(0,B.jsx)(`button`,{type:`button`,className:`rv-hdot`,"aria-label":`Show the notes put aside`,onClick:e.onShow}):(0,B.jsx)(`i`,{className:`rv-hdot`,"aria-hidden":`true`})}var jt={info:`Info`,attention:`Attention`,issue:`Issue`};function Mt(e){return(0,B.jsx)(B.Fragment,{children:e.notes.map(t=>(0,B.jsxs)(_.Fragment,{children:[(0,B.jsx)(Nt,{note:t,aside:e.aside.has(t.key),shown:e.shown.has(t.key),readable:e.readable,readOnlySaid:e.readOnlySaid,busy:e.busy,onAsk:e.onAsk===null?null:()=>e.onAsk?.(t),onTalk:()=>e.onTalk(t),onComment:()=>e.onComment(t),onDismiss:n=>e.onDismiss(t,n)}),e.box!==null&&e.box.note===t.key&&(0,B.jsx)(`div`,{className:`rv-inote-box`,children:e.box.element})]},t.key))})}function Nt(e){let t=e.note;return(0,B.jsxs)(`div`,{className:`rv-inote${t.kind===`info`?``:` is-${t.kind}`}${e.aside?e.shown?` is-dismissed is-back`:` is-dismissed`:``}`,"data-note":t.key,children:[(0,B.jsxs)(`div`,{className:`rv-inote-top`,children:[(0,B.jsx)(`span`,{className:`rv-note-kind`,children:jt[t.kind]}),(0,B.jsx)(`span`,{className:`rv-note-ln`,children:I(t)})]}),(0,B.jsx)(`div`,{className:`rv-note-txt`,children:t.text}),!e.readable&&(0,B.jsx)(`div`,{className:`rv-note-acts`,children:(0,B.jsx)(`span`,{className:`rv-note-locked`,children:e.readOnlySaid})}),e.readable&&(0,B.jsx)(`div`,{className:`rv-note-acts`,children:e.aside?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:`rv-note-dismissed`,children:`dismissed`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-link`,disabled:e.busy,onClick:()=>e.onDismiss(!1),children:`Undo`})]}):(0,B.jsxs)(B.Fragment,{children:[t.kind===`issue`&&e.onAsk!==null&&(0,B.jsx)(`button`,{type:`button`,className:`rv-note-act is-fix`,disabled:e.busy,onClick:e.onAsk,children:`Ask to fix`}),t.kind!==`info`&&(0,B.jsx)(`button`,{type:`button`,className:`rv-note-act`,disabled:e.busy,onClick:e.onTalk,children:`Let's talk`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-note-act`,disabled:e.busy,onClick:e.onComment,children:`Comment`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-note-act`,disabled:e.busy,onClick:()=>e.onDismiss(!0),children:`Dismiss`})]})})]})}function Pt(e){return e.from===`agent`?`Agent`:`You`}function Ft(e){let t=e.thread,n=!e.agentHolds&&ue(t);return(0,B.jsxs)(`div`,{className:`rv-thread`,"data-thread":t.id,children:[t.messages.map(t=>{let n=t.from===`agent`&&t.readAt===null,r=Pt(t);return(0,B.jsxs)(`div`,{className:`rv-msg${n?` is-unread`:``}`,"data-message":t.id,children:[(0,B.jsxs)(`span`,{className:`rv-who${t.from===`agent`?` is-agent`:``}`,children:[`${r} - `,ht(t.at),n&&(0,B.jsx)(`span`,{className:`rv-new`,children:`new`})]}),(0,B.jsx)(`div`,{className:`rv-msg-body${t.from===`tool`?` is-tool`:``}`,"data-unread":n?t.id:void 0,ref:n?e.watch:void 0,children:t.text})]},t.id)}),(0,B.jsxs)(`div`,{className:`rv-tf`,children:[t.label===`hunk-removed`&&(0,B.jsx)(`span`,{className:`rv-tag`,children:`hunk removed`}),(0,B.jsx)(`span`,{className:t.open?``:`rv-ok`,children:t.open?n?`Waits on you`:`Waits on the agent`:`Closed${t.closedAt===null?``:` ${ht(t.closedAt)}`}`}),t.open&&(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:!e.readable||e.busy,onClick:e.onClose,children:`Close thread`})]})]})}var It={dockerfile:`docker`,containerfile:`docker`,makefile:`make`,gnumakefile:`make`},Lt={ts:`typescript`,mts:`typescript`,cts:`typescript`,tsx:`tsx`,js:`javascript`,mjs:`javascript`,cjs:`javascript`,jsx:`jsx`,json:`json`,jsonc:`jsonc`,yaml:`yaml`,yml:`yaml`,toml:`toml`,md:`markdown`,markdown:`markdown`,html:`html`,htm:`html`,css:`css`,scss:`scss`,sh:`shellscript`,bash:`shellscript`,zsh:`shellscript`,py:`python`,go:`go`,rs:`rust`,java:`java`,kt:`kotlin`,kts:`kotlin`,c:`c`,h:`c`,cpp:`cpp`,cc:`cpp`,cxx:`cpp`,hpp:`cpp`,hh:`cpp`,cs:`csharp`,rb:`ruby`,php:`php`,sql:`sql`,graphql:`graphql`,gql:`graphql`,xml:`xml`,svg:`xml`,mk:`make`,ini:`ini`,cfg:`ini`,diff:`diff`,patch:`diff`};function Rt(e){let t=(e.split(`/`).pop()??``).toLowerCase(),n=t.split(`.`)[0]??``,r=It[t]??It[n];if(r!==void 0)return r;let i=t.lastIndexOf(`.`);return i<=0?null:Lt[t.slice(i+1)]??null}var V=class extends Error{constructor(e){super(e),this.name=`ShikiError`}};function zt(e){return Bt(e)}function Bt(e){return Array.isArray(e)?Vt(e):e instanceof RegExp?e:typeof e==`object`?Ht(e):e}function Vt(e){let t=[];for(let n=0,r=e.length;n<r;n++)t[n]=Bt(e[n]);return t}function Ht(e){let t={};for(let n in e)t[n]=Bt(e[n]);return t}function Ut(e,...t){return t.forEach(t=>{for(let n in t)e[n]=t[n]}),e}function Wt(e){let t=~e.lastIndexOf(`/`)||~e.lastIndexOf(`\\`);return t===0?e:~t===e.length-1?Wt(e.substring(0,e.length-1)):e.substr(~t+1)}var Gt=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,Kt=class{static hasCaptures(e){return e===null?!1:(Gt.lastIndex=0,Gt.test(e))}static replaceCaptures(e,t,n){return e.replace(Gt,(e,r,i,a)=>{let o=n[parseInt(r||i,10)];if(o){let e=t.substring(o.start,o.end);for(;e[0]===`.`;)e=e.substring(1);switch(a){case`downcase`:return e.toLowerCase();case`upcase`:return e.toUpperCase();default:return e}}else return e})}};function qt(e,t){return e<t?-1:+(e>t)}function Jt(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)return 1;let n=e.length,r=t.length;if(n===r){for(let r=0;r<n;r++){let n=qt(e[r],t[r]);if(n!==0)return n}return 0}return n-r}function Yt(e){return!!(/^#[0-9a-f]{6}$/i.test(e)||/^#[0-9a-f]{8}$/i.test(e)||/^#[0-9a-f]{3}$/i.test(e)||/^#[0-9a-f]{4}$/i.test(e))}function Xt(e){return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,`\\$&`)}var Zt=class{constructor(e){this.fn=e}cache=new Map;get(e){if(this.cache.has(e))return this.cache.get(e);let t=this.fn(e);return this.cache.set(e,t),t}},Qt=class{constructor(e,t,n){this._colorMap=e,this._defaults=t,this._root=n}static createFromRawTheme(e,t){return this.createFromParsedTheme(rn(e),t)}static createFromParsedTheme(e,t){return on(e,t)}_cachedMatchRoot=new Zt(e=>this._root.match(e));getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;let t=e.scopeName,n=this._cachedMatchRoot.get(t).find(t=>en(e.parent,t.parentScopes));return n?new nn(n.fontStyle,n.foreground,n.background):null}},$t=class e{constructor(e,t){this.parent=e,this.scopeName=t}static push(t,n){for(let r of n)t=new e(t,r);return t}static from(...t){let n=null;for(let r=0;r<t.length;r++)n=new e(n,t[r]);return n}push(t){return new e(this,t)}getSegments(){let e=this,t=[];for(;e;)t.push(e.scopeName),e=e.parent;return t.reverse(),t}toString(){return this.getSegments().join(` `)}extends(e){return this===e||this.parent!==null&&this.parent.extends(e)}getExtensionIfDefined(e){let t=[],n=this;for(;n&&n!==e;)t.push(n.scopeName),n=n.parent;return n===e?t.reverse():void 0}};function en(e,t){if(t.length===0)return!0;for(let n=0;n<t.length;n++){let r=t[n],i=!1;if(r===`>`){if(n===t.length-1)return!1;r=t[++n],i=!0}for(;e&&!tn(e.scopeName,r);){if(i)return!1;e=e.parent}if(!e)return!1;e=e.parent}return!0}function tn(e,t){return t===e||e.startsWith(t)&&e[t.length]===`.`}var nn=class{constructor(e,t,n){this.fontStyle=e,this.foregroundId=t,this.backgroundId=n}};function rn(e){if(!e||!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,n=[],r=0;for(let e=0,i=t.length;e<i;e++){let i=t[e];if(!i.settings)continue;let a;if(typeof i.scope==`string`){let e=i.scope;e=e.replace(/^[,]+/,``),e=e.replace(/[,]+$/,``),a=e.split(`,`)}else a=Array.isArray(i.scope)?i.scope:[``];let o=-1;if(typeof i.settings.fontStyle==`string`){o=0;let e=i.settings.fontStyle.split(` `);for(let t=0,n=e.length;t<n;t++)switch(e[t]){case`italic`:o|=1;break;case`bold`:o|=2;break;case`underline`:o|=4;break;case`strikethrough`:o|=8;break}}let s=null;typeof i.settings.foreground==`string`&&Yt(i.settings.foreground)&&(s=i.settings.foreground);let c=null;typeof i.settings.background==`string`&&Yt(i.settings.background)&&(c=i.settings.background);for(let t=0,i=a.length;t<i;t++){let i=a[t].trim().split(` `),l=i[i.length-1],u=null;i.length>1&&(u=i.slice(0,i.length-1),u.reverse()),n[r++]=new an(l,u,e,o,s,c)}}return n}var an=class{constructor(e,t,n,r,i,a){this.scope=e,this.parentScopes=t,this.index=n,this.fontStyle=r,this.foreground=i,this.background=a}},H=(e=>(e[e.NotSet=-1]=`NotSet`,e[e.None=0]=`None`,e[e.Italic=1]=`Italic`,e[e.Bold=2]=`Bold`,e[e.Underline=4]=`Underline`,e[e.Strikethrough=8]=`Strikethrough`,e))(H||{});function on(e,t){e.sort((e,t)=>{let n=qt(e.scope,t.scope);return n!==0||(n=Jt(e.parentScopes,t.parentScopes),n!==0)?n:e.index-t.index});let n=0,r=`#000000`,i=`#ffffff`;for(;e.length>=1&&e[0].scope===``;){let t=e.shift();t.fontStyle!==-1&&(n=t.fontStyle),t.foreground!==null&&(r=t.foreground),t.background!==null&&(i=t.background)}let a=new sn(t),o=new nn(n,a.getId(r),a.getId(i)),s=new un(new ln(0,null,-1,0,0),[]);for(let t=0,n=e.length;t<n;t++){let n=e[t];s.insert(0,n.scope,n.parentScopes,n.fontStyle,a.getId(n.foreground),a.getId(n.background))}return new Qt(a,o,s)}var sn=class{_isFrozen;_lastColorId;_id2color;_color2id;constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,n=e.length;t<n;t++)this._color2id[e[t]]=t,this._id2color[t]=e[t]}else this._isFrozen=!1}getId(e){if(e===null)return 0;e=e.toUpperCase();let t=this._color2id[e];if(t)return t;if(this._isFrozen)throw Error(`Missing color in color map - ${e}`);return t=++this._lastColorId,this._color2id[e]=t,this._id2color[t]=e,t}getColorMap(){return this._id2color.slice(0)}},cn=Object.freeze([]),ln=class e{scopeDepth;parentScopes;fontStyle;foreground;background;constructor(e,t,n,r,i){this.scopeDepth=e,this.parentScopes=t||cn,this.fontStyle=n,this.foreground=r,this.background=i}clone(){return new e(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(e){let t=[];for(let n=0,r=e.length;n<r;n++)t[n]=e[n].clone();return t}acceptOverwrite(e,t,n,r){this.scopeDepth>e?console.log(`how did this happen?`):this.scopeDepth=e,t!==-1&&(this.fontStyle=t),n!==0&&(this.foreground=n),r!==0&&(this.background=r)}},un=class e{constructor(e,t=[],n={}){this._mainRule=e,this._children=n,this._rulesWithParentScopes=t}_rulesWithParentScopes;static _cmpBySpecificity(e,t){if(e.scopeDepth!==t.scopeDepth)return t.scopeDepth-e.scopeDepth;let n=0,r=0;for(;e.parentScopes[n]===`>`&&n++,t.parentScopes[r]===`>`&&r++,!(n>=e.parentScopes.length||r>=t.parentScopes.length);){let i=t.parentScopes[r].length-e.parentScopes[n].length;if(i!==0)return i;n++,r++}return t.parentScopes.length-e.parentScopes.length}match(t){if(t!==``){let e=t.indexOf(`.`),n,r;if(e===-1?(n=t,r=``):(n=t.substring(0,e),r=t.substring(e+1)),this._children.hasOwnProperty(n))return this._children[n].match(r)}let n=this._rulesWithParentScopes.concat(this._mainRule);return n.sort(e._cmpBySpecificity),n}insert(t,n,r,i,a,o){if(n===``){this._doInsertHere(t,r,i,a,o);return}let s=n.indexOf(`.`),c,l;s===-1?(c=n,l=``):(c=n.substring(0,s),l=n.substring(s+1));let u;this._children.hasOwnProperty(c)?u=this._children[c]:(u=new e(this._mainRule.clone(),ln.cloneArr(this._rulesWithParentScopes)),this._children[c]=u),u.insert(t+1,l,r,i,a,o)}_doInsertHere(e,t,n,r,i){if(t===null){this._mainRule.acceptOverwrite(e,n,r,i);return}for(let a=0,o=this._rulesWithParentScopes.length;a<o;a++){let o=this._rulesWithParentScopes[a];if(Jt(o.parentScopes,t)===0){o.acceptOverwrite(e,n,r,i);return}}n===-1&&(n=this._mainRule.fontStyle),r===0&&(r=this._mainRule.foreground),i===0&&(i=this._mainRule.background),this._rulesWithParentScopes.push(new ln(e,t,n,r,i))}},dn=class e{static toBinaryStr(e){return e.toString(2).padStart(32,`0`)}static print(t){let n=e.getLanguageId(t),r=e.getTokenType(t),i=e.getFontStyle(t),a=e.getForeground(t),o=e.getBackground(t);console.log({languageId:n,tokenType:r,fontStyle:i,foreground:a,background:o})}static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!=0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static set(t,n,r,i,a,o,s){let c=e.getLanguageId(t),l=e.getTokenType(t),u=+!!e.containsBalancedBrackets(t),d=e.getFontStyle(t),f=e.getForeground(t),p=e.getBackground(t);return n!==0&&(c=n),r!==8&&(l=pn(r)),i!==null&&(u=+!!i),a!==-1&&(d=a),o!==0&&(f=o),s!==0&&(p=s),(c<<0|l<<8|u<<10|d<<11|f<<15|p<<24)>>>0}};function fn(e){return e}function pn(e){return e}function mn(e,t){let n=[],r=gn(e),i=r.next();for(;i!==null;){let e=0;if(i.length===2&&i.charAt(1)===`:`){switch(i.charAt(0)){case`R`:e=1;break;case`L`:e=-1;break;default:console.log(`Unknown priority ${i} in scope selector`)}i=r.next()}let t=o();if(n.push({matcher:t,priority:e}),i!==`,`)break;i=r.next()}return n;function a(){if(i===`-`){i=r.next();let e=a();return t=>!!e&&!e(t)}if(i===`(`){i=r.next();let e=s();return i===`)`&&(i=r.next()),e}if(hn(i)){let e=[];do e.push(i),i=r.next();while(hn(i));return n=>t(e,n)}return null}function o(){let e=[],t=a();for(;t;)e.push(t),t=a();return t=>e.every(e=>e(t))}function s(){let e=[],t=o();for(;t&&(e.push(t),i===`|`||i===`,`);){do i=r.next();while(i===`|`||i===`,`);t=o()}return t=>e.some(e=>e(t))}}function hn(e){return!!e&&!!e.match(/[\w\.:]+/)}function gn(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=t.exec(e);return{next:()=>{if(!n)return null;let r=n[0];return n=t.exec(e),r}}}function _n(e){typeof e.dispose==`function`&&e.dispose()}var vn=class{constructor(e){this.scopeName=e}toKey(){return this.scopeName}},yn=class{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}},bn=class{_references=[];_seenReferenceKeys=new Set;get references(){return this._references}visitedRule=new Set;add(e){let t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}},xn=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new vn(this.initialScopeName)]}seenFullScopeRequests=new Set;seenPartialScopeRequests=new Set;Q;processQueue(){let e=this.Q;this.Q=[];let t=new bn;for(let n of e)Sn(n,this.initialScopeName,this.repo,t);for(let e of t.references)if(e instanceof vn){if(this.seenFullScopeRequests.has(e.scopeName))continue;this.seenFullScopeRequests.add(e.scopeName),this.Q.push(e)}else{if(this.seenFullScopeRequests.has(e.scopeName)||this.seenPartialScopeRequests.has(e.toKey()))continue;this.seenPartialScopeRequests.add(e.toKey()),this.Q.push(e)}}};function Sn(e,t,n,r){let i=n.lookup(e.scopeName);if(!i){if(e.scopeName===t)throw Error(`No grammar provided for <${t}>`);return}let a=n.lookup(t);e instanceof vn?wn({baseGrammar:a,selfGrammar:i},r):Cn(e.ruleName,{baseGrammar:a,selfGrammar:i,repository:i.repository},r);let o=n.injections(e.scopeName);if(o)for(let e of o)r.add(new vn(e))}function Cn(e,t,n){if(t.repository&&t.repository[e]){let r=t.repository[e];Tn([r],t,n)}}function wn(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&Tn(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&Tn(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function Tn(e,t,n){for(let r of e){if(n.visitedRule.has(r))continue;n.visitedRule.add(r);let e=r.repository?Ut({},t.repository,r.repository):t.repository;Array.isArray(r.patterns)&&Tn(r.patterns,{...t,repository:e},n);let i=r.include;if(!i)continue;let a=jn(i);switch(a.kind){case 0:wn({...t,selfGrammar:t.baseGrammar},n);break;case 1:wn(t,n);break;case 2:Cn(a.ruleName,{...t,repository:e},n);break;case 3:case 4:let r=a.scopeName===t.selfGrammar.scopeName?t.selfGrammar:a.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(r){let i={baseGrammar:t.baseGrammar,selfGrammar:r,repository:e};a.kind===4?Cn(a.ruleName,i,n):wn(i,n)}else a.kind===4?n.add(new yn(a.scopeName,a.ruleName)):n.add(new vn(a.scopeName));break}}}var En=class{kind=0},Dn=class{kind=1},On=class{constructor(e){this.ruleName=e}kind=2},kn=class{constructor(e){this.scopeName=e}kind=3},An=class{constructor(e,t){this.scopeName=e,this.ruleName=t}kind=4};function jn(e){if(e===`$base`)return new En;if(e===`$self`)return new Dn;let t=e.indexOf(`#`);return t===-1?new kn(e):t===0?new On(e.substring(1)):new An(e.substring(0,t),e.substring(t+1))}var Mn=/\\(\d+)/,Nn=/\\(\d+)/g,Pn=-1,Fn=-2;function In(e){return e}function Ln(e){return e}var Rn=class{$location;id;_nameIsCapturing;_name;_contentNameIsCapturing;_contentName;constructor(e,t,n,r){this.$location=e,this.id=t,this._name=n||null,this._nameIsCapturing=Kt.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=Kt.hasCaptures(this._contentName)}get debugName(){let e=this.$location?`${Wt(this.$location.filename)}:${this.$location.line}`:`unknown`;return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||t===null?this._name:Kt.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:Kt.replaceCaptures(this._contentName,e,t)}},zn=class extends Rn{retokenizeCapturedWithRuleId;constructor(e,t,n,r,i){super(e,t,n,r),this.retokenizeCapturedWithRuleId=i}dispose(){}collectPatterns(e,t){throw Error(`Not supported!`)}compile(e,t){throw Error(`Not supported!`)}compileAG(e,t,n,r){throw Error(`Not supported!`)}},Bn=class extends Rn{_match;captures;_cachedCompiledPatterns;constructor(e,t,n,r,i){super(e,t,n,null),this._match=new Gn(r,this.id),this.captures=i,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e).compileAG(e,n,r)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Kn,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Vn=class extends Rn{hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,r,i){super(e,t,n,r),this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null)}collectPatterns(e,t){for(let n of this.patterns)e.getRule(n).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e).compileAG(e,n,r)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Kn,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Hn=class extends Rn{_begin;beginCaptures;_end;endHasBackReferences;endCaptures;applyEndPatternLast;hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,r,i,a,o,s,c,l){super(e,t,n,r),this._begin=new Gn(i,this.id),this.beginCaptures=a,this._end=new Gn(o||`￿`,-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=s,this.applyEndPatternLast=c||!1,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e,t).compileAG(e,n,r)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Kn;for(let t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}},Un=class extends Rn{_begin;beginCaptures;whileCaptures;_while;whileHasBackReferences;hasMissingPatterns;patterns;_cachedCompiledPatterns;_cachedCompiledWhilePatterns;constructor(e,t,n,r,i,a,o,s,c){super(e,t,n,r),this._begin=new Gn(i,this.id),this.beginCaptures=a,this.whileCaptures=s,this._while=new Gn(o,Fn),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=c.patterns,this.hasMissingPatterns=c.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&=(this._cachedCompiledPatterns.dispose(),null),this._cachedCompiledWhilePatterns&&=(this._cachedCompiledWhilePatterns.dispose(),null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,r){return this._getCachedCompiledPatterns(e).compileAG(e,n,r)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Kn;for(let t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,n,r){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,n,r)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new Kn,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||`￿`),this._cachedCompiledWhilePatterns}},Wn=class e{static createCaptureRule(e,t,n,r,i){return e.registerRule(e=>new zn(t,e,n,r,i))}static getCompiledRuleId(t,n,r){return t.id||n.registerRule(i=>{if(t.id=i,t.match)return new Bn(t.$vscodeTextmateLocation,t.id,t.name,t.match,e._compileCaptures(t.captures,n,r));if(t.begin===void 0){t.repository&&(r=Ut({},r,t.repository));let i=t.patterns;return i===void 0&&t.include&&(i=[{include:t.include}]),new Vn(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,e._compilePatterns(i,n,r))}return t.while?new Un(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,e._compileCaptures(t.beginCaptures||t.captures,n,r),t.while,e._compileCaptures(t.whileCaptures||t.captures,n,r),e._compilePatterns(t.patterns,n,r)):new Hn(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,e._compileCaptures(t.beginCaptures||t.captures,n,r),t.end,e._compileCaptures(t.endCaptures||t.captures,n,r),t.applyEndPatternLast,e._compilePatterns(t.patterns,n,r))}),t.id}static _compileCaptures(t,n,r){let i=[];if(t){let a=0;for(let e in t){if(e===`$vscodeTextmateLocation`)continue;let t=parseInt(e,10);t>a&&(a=t)}for(let e=0;e<=a;e++)i[e]=null;for(let a in t){if(a===`$vscodeTextmateLocation`)continue;let o=parseInt(a,10),s=0;t[a].patterns&&(s=e.getCompiledRuleId(t[a],n,r)),i[o]=e.createCaptureRule(n,t[a].$vscodeTextmateLocation,t[a].name,t[a].contentName,s)}}return i}static _compilePatterns(t,n,r){let i=[];if(t)for(let a=0,o=t.length;a<o;a++){let o=t[a],s=-1;if(o.include){let t=jn(o.include);switch(t.kind){case 0:case 1:s=e.getCompiledRuleId(r[o.include],n,r);break;case 2:let i=r[t.ruleName];i&&(s=e.getCompiledRuleId(i,n,r));break;case 3:case 4:let a=t.scopeName,c=t.kind===4?t.ruleName:null,l=n.getExternalGrammar(a,r);if(l)if(c){let t=l.repository[c];t&&(s=e.getCompiledRuleId(t,n,l.repository))}else s=e.getCompiledRuleId(l.repository.$self,n,l.repository);break}}else s=e.getCompiledRuleId(o,n,r);if(s!==-1){let e=n.getRule(s),t=!1;if((e instanceof Vn||e instanceof Hn||e instanceof Un)&&e.hasMissingPatterns&&e.patterns.length===0&&(t=!0),t)continue;i.push(s)}}return{patterns:i,hasMissingPatterns:(t?t.length:0)!==i.length}}},Gn=class e{source;ruleId;hasAnchor;hasBackReferences;_anchorCache;constructor(e,t){if(e&&typeof e==`string`){let t=e.length,n=0,r=[],i=!1;for(let a=0;a<t;a++)if(e.charAt(a)===`\\`&&a+1<t){let t=e.charAt(a+1);t===`z`?(r.push(e.substring(n,a)),r.push(`$(?!\\n)(?<!\\n)`),n=a+2):(t===`A`||t===`G`)&&(i=!0),a++}this.hasAnchor=i,n===0?this.source=e:(r.push(e.substring(n,t)),this.source=r.join(``))}else this.hasAnchor=!1,this.source=e;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=t,typeof this.source==`string`?this.hasBackReferences=Mn.test(this.source):this.hasBackReferences=!1}clone(){return new e(this.source,this.ruleId)}setSource(e){this.source!==e&&(this.source=e,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(e,t){if(typeof this.source!=`string`)throw Error(`This method should only be called if the source is a string`);let n=t.map(t=>e.substring(t.start,t.end));return Nn.lastIndex=0,this.source.replace(Nn,(e,t)=>Xt(n[parseInt(t,10)]||``))}_buildAnchorCache(){if(typeof this.source!=`string`)throw Error(`This method should only be called if the source is a string`);let e=[],t=[],n=[],r=[],i,a,o,s;for(i=0,a=this.source.length;i<a;i++)o=this.source.charAt(i),e[i]=o,t[i]=o,n[i]=o,r[i]=o,o===`\\`&&i+1<a&&(s=this.source.charAt(i+1),s===`A`?(e[i+1]=`￿`,t[i+1]=`￿`,n[i+1]=`A`,r[i+1]=`A`):s===`G`?(e[i+1]=`￿`,t[i+1]=`G`,n[i+1]=`￿`,r[i+1]=`G`):(e[i+1]=s,t[i+1]=s,n[i+1]=s,r[i+1]=s),i++);return{A0_G0:e.join(``),A0_G1:t.join(``),A1_G0:n.join(``),A1_G1:r.join(``)}}resolveAnchors(e,t){return!this.hasAnchor||!this._anchorCache||typeof this.source!=`string`?this.source:e?t?this._anchorCache.A1_G1:this._anchorCache.A1_G0:t?this._anchorCache.A0_G1:this._anchorCache.A0_G0}},Kn=class{_items;_hasAnchors;_cached;_anchorCache;constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&=(this._cached.dispose(),null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(e){this._items.push(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}unshift(e){this._items.unshift(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}length(){return this._items.length}setSource(e,t){this._items[e].source!==t&&(this._disposeCaches(),this._items[e].setSource(t))}compile(e){if(!this._cached){let t=this._items.map(e=>e.source);this._cached=new qn(e,t,this._items.map(e=>e.ruleId))}return this._cached}compileAG(e,t,n){return this._hasAnchors?t?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,n){return new qn(e,this._items.map(e=>e.resolveAnchors(t,n)),this._items.map(e=>e.ruleId))}},qn=class{constructor(e,t,n){this.regExps=t,this.rules=n,this.scanner=e.createOnigScanner(t)}scanner;dispose(){typeof this.scanner.dispose==`function`&&this.scanner.dispose()}toString(){let e=[];for(let t=0,n=this.rules.length;t<n;t++)e.push(` - `+this.rules[t]+`: `+this.regExps[t]);return e.join(`
2
+ `)}findNextMatchSync(e,t,n){let r=this.scanner.findNextMatchSync(e,t,n);return r?{ruleId:this.rules[r.index],captureIndices:r.captureIndices}:null}},Jn=class{constructor(e,t){this.languageId=e,this.tokenType=t}},Yn=class e{_defaultAttributes;_embeddedLanguagesMatcher;constructor(e,t){this._defaultAttributes=new Jn(e,8),this._embeddedLanguagesMatcher=new Xn(Object.entries(t||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(t){return t===null?e._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(t)}static _NULL_SCOPE_METADATA=new Jn(0,0);_getBasicScopeAttributes=new Zt(e=>new Jn(this._scopeToLanguage(e),this._toStandardTokenType(e)));_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(t){let n=t.match(e.STANDARD_TOKEN_TYPE_REGEXP);if(!n)return 8;switch(n[1]){case`comment`:return 1;case`string`:return 2;case`regex`:return 3;case`meta.embedded`:return 0}throw Error(`Unexpected match for standard token type!`)}static STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/},Xn=class{values;scopesRegExp;constructor(e){if(e.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);let t=e.map(([e,t])=>Xt(e));t.sort(),t.reverse(),this.scopesRegExp=RegExp(`^((${t.join(`)|(`)}))($|\\.)`,``)}}match(e){if(!this.scopesRegExp)return;let t=e.match(this.scopesRegExp);if(t)return this.values.get(t[1])}};typeof process<`u`&&{}.VSCODE_TEXTMATE_DEBUG;var Zn=class{constructor(e,t){this.stack=e,this.stoppedEarly=t}};function Qn(e,t,n,r,i,a,o,s){let c=t.content.length,l=!1,u=-1;if(o){let o=$n(e,t,n,r,i,a);i=o.stack,r=o.linePos,n=o.isFirstLine,u=o.anchorPosition}let d=Date.now();for(;!l;){if(s!==0&&Date.now()-d>s)return new Zn(i,!0);f()}return new Zn(i,!1);function f(){let o=er(e,t,n,r,i,u);if(!o){a.produce(i,c),l=!0;return}let s=o.captureIndices,d=o.matchedRuleId,f=s&&s.length>0?s[0].end>r:!1;if(d===Pn){let o=i.getRule(e);a.produce(i,s[0].start),i=i.withContentNameScopesList(i.nameScopesList),ar(e,t,n,i,a,o.endCaptures,s),a.produce(i,s[0].end);let d=i;if(i=i.parent,u=d.getAnchorPos(),!f&&d.getEnterPos()===r){i=d,a.produce(i,c),l=!0;return}}else{let o=e.getRule(d);a.produce(i,s[0].start);let p=i,m=o.getName(t.content,s),h=i.contentNameScopesList.pushAttributed(m,e);if(i=i.push(d,r,u,s[0].end===c,null,h,h),o instanceof Hn){let r=o;ar(e,t,n,i,a,r.beginCaptures,s),a.produce(i,s[0].end),u=s[0].end;let d=r.getContentName(t.content,s),m=h.pushAttributed(d,e);if(i=i.withContentNameScopesList(m),r.endHasBackReferences&&(i=i.withEndRule(r.getEndWithResolvedBackReferences(t.content,s))),!f&&p.hasSameRuleAs(i)){i=i.pop(),a.produce(i,c),l=!0;return}}else if(o instanceof Un){let r=o;ar(e,t,n,i,a,r.beginCaptures,s),a.produce(i,s[0].end),u=s[0].end;let d=r.getContentName(t.content,s),m=h.pushAttributed(d,e);if(i=i.withContentNameScopesList(m),r.whileHasBackReferences&&(i=i.withEndRule(r.getWhileWithResolvedBackReferences(t.content,s))),!f&&p.hasSameRuleAs(i)){i=i.pop(),a.produce(i,c),l=!0;return}}else if(ar(e,t,n,i,a,o.captures,s),a.produce(i,s[0].end),i=i.pop(),!f){i=i.safePop(),a.produce(i,c),l=!0;return}}s[0].end>r&&(r=s[0].end,n=!1)}}function $n(e,t,n,r,i,a){let o=i.beginRuleCapturedEOL?0:-1,s=[];for(let t=i;t;t=t.pop()){let n=t.getRule(e);n instanceof Un&&s.push({rule:n,stack:t})}for(let c=s.pop();c;c=s.pop()){let{ruleScanner:s,findOptions:l}=ir(c.rule,e,c.stack.endRule,n,r===o),u=s.findNextMatchSync(t,r,l);if(u){if(u.ruleId!==Fn){i=c.stack.pop();break}u.captureIndices&&u.captureIndices.length&&(a.produce(c.stack,u.captureIndices[0].start),ar(e,t,n,c.stack,a,c.rule.whileCaptures,u.captureIndices),a.produce(c.stack,u.captureIndices[0].end),o=u.captureIndices[0].end,u.captureIndices[0].end>r&&(r=u.captureIndices[0].end,n=!1))}else{i=c.stack.pop();break}}return{stack:i,linePos:r,anchorPosition:o,isFirstLine:n}}function er(e,t,n,r,i,a){let o=tr(e,t,n,r,i,a),s=e.getInjections();if(s.length===0)return o;let c=nr(s,e,t,n,r,i,a);if(!c)return o;if(!o)return c;let l=o.captureIndices[0].start,u=c.captureIndices[0].start;return u<l||c.priorityMatch&&u===l?c:o}function tr(e,t,n,r,i,a){let{ruleScanner:o,findOptions:s}=rr(i.getRule(e),e,i.endRule,n,r===a),c=o.findNextMatchSync(t,r,s);return c?{captureIndices:c.captureIndices,matchedRuleId:c.ruleId}:null}function nr(e,t,n,r,i,a,o){let s=Number.MAX_VALUE,c=null,l,u=0,d=a.contentNameScopesList.getScopeNames();for(let a=0,f=e.length;a<f;a++){let f=e[a];if(!f.matcher(d))continue;let{ruleScanner:p,findOptions:m}=rr(t.getRule(f.ruleId),t,null,r,i===o),h=p.findNextMatchSync(n,i,m);if(!h)continue;let g=h.captureIndices[0].start;if(!(g>=s)&&(s=g,c=h.captureIndices,l=h.ruleId,u=f.priority,s===i))break}return c?{priorityMatch:u===-1,captureIndices:c,matchedRuleId:l}:null}function rr(e,t,n,r,i){return{ruleScanner:e.compileAG(t,n,r,i),findOptions:0}}function ir(e,t,n,r,i){return{ruleScanner:e.compileWhileAG(t,n,r,i),findOptions:0}}function ar(e,t,n,r,i,a,o){if(a.length===0)return;let s=t.content,c=Math.min(a.length,o.length),l=[],u=o[0].end;for(let t=0;t<c;t++){let c=a[t];if(c===null)continue;let d=o[t];if(d.length===0)continue;if(d.start>u)break;for(;l.length>0&&l[l.length-1].endPos<=d.start;)i.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop();if(l.length>0?i.produceFromScopes(l[l.length-1].scopes,d.start):i.produce(r,d.start),c.retokenizeCapturedWithRuleId){let t=c.getName(s,o),a=r.contentNameScopesList.pushAttributed(t,e),l=c.getContentName(s,o),u=a.pushAttributed(l,e),f=r.push(c.retokenizeCapturedWithRuleId,d.start,-1,!1,null,a,u),p=e.createOnigString(s.substring(0,d.end));Qn(e,p,n&&d.start===0,d.start,f,i,!1,0),_n(p);continue}let f=c.getName(s,o);if(f!==null){let t=(l.length>0?l[l.length-1].scopes:r.contentNameScopesList).pushAttributed(f,e);l.push(new or(t,d.end))}}for(;l.length>0;)i.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop()}var or=class{scopes;endPos;constructor(e,t){this.scopes=e,this.endPos=t}};function sr(e,t,n,r,i,a,o,s){return new dr(e,t,n,r,i,a,o,s)}function cr(e,t,n,r,i){let a=mn(t,lr),o=Wn.getCompiledRuleId(n,r,i.repository);for(let n of a)e.push({debugSelector:t,matcher:n.matcher,ruleId:o,grammar:i,priority:n.priority})}function lr(e,t){if(t.length<e.length)return!1;let n=0;return e.every(e=>{for(let r=n;r<t.length;r++)if(ur(t[r],e))return n=r+1,!0;return!1})}function ur(e,t){if(!e)return!1;if(e===t)return!0;let n=t.length;return e.length>n&&e.substr(0,n)===t&&e[n]===`.`}var dr=class{constructor(e,t,n,r,i,a,o,s){if(this._rootScopeName=e,this.balancedBracketSelectors=a,this._onigLib=s,this._basicScopeAttributesProvider=new Yn(n,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=o,this._grammar=fr(t,null),this._injections=null,this._tokenTypeMatchers=[],i)for(let e of Object.keys(i)){let t=mn(e,lr);for(let n of t)this._tokenTypeMatchers.push({matcher:n.matcher,type:i[e]})}}_rootId;_lastRuleId;_ruleId2desc;_includedGrammars;_grammarRepository;_grammar;_injections;_basicScopeAttributesProvider;_tokenTypeMatchers;get themeProvider(){return this._grammarRepository}dispose(){for(let e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){let e={lookup:e=>e===this._rootScopeName?this._grammar:this.getExternalGrammar(e),injections:e=>this._grammarRepository.injections(e)},t=[],n=this._rootScopeName,r=e.lookup(n);if(r){let e=r.injections;if(e)for(let n in e)cr(t,n,e[n],this,r);let i=this._grammarRepository.injections(n);i&&i.forEach(e=>{let n=this.getExternalGrammar(e);if(n){let e=n.injectionSelector;e&&cr(t,e,n,this,n)}})}return t.sort((e,t)=>e.priority-t.priority),t}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(e){let t=++this._lastRuleId,n=e(In(t));return this._ruleId2desc[t]=n,n}getRule(e){return this._ruleId2desc[Ln(e)]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){let n=this._grammarRepository.lookup(e);if(n)return this._includedGrammars[e]=fr(n,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,n=0){let r=this._tokenize(e,t,!1,n);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(e,t,n=0){let r=this._tokenize(e,t,!0,n);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(e,t,n,r){this._rootId===-1&&(this._rootId=Wn.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let i;if(!t||t===mr.NULL){i=!0;let e=this._basicScopeAttributesProvider.getDefaultAttributes(),n=this.themeProvider.getDefaults(),r=dn.set(0,e.languageId,e.tokenType,null,n.fontStyle,n.foregroundId,n.backgroundId),a=this.getRule(this._rootId).getName(null,null),o;o=a?pr.createRootAndLookUpScopeName(a,r,this):pr.createRoot(`unknown`,r),t=new mr(null,this._rootId,-1,-1,!1,null,o,o)}else i=!1,t.reset();e+=`
3
+ `;let a=this.createOnigString(e),o=a.content.length,s=new gr(n,e,this._tokenTypeMatchers,this.balancedBracketSelectors),c=Qn(this,a,i,0,t,s,!0,r);return _n(a),{lineLength:o,lineTokens:s,ruleStack:c.stack,stoppedEarly:c.stoppedEarly}}};function fr(e,t){return e=zt(e),e.repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}var pr=class e{constructor(e,t,n){this.parent=e,this.scopePath=t,this.tokenAttributes=n}static fromExtension(t,n){let r=t,i=t?.scopePath??null;for(let t of n)i=$t.push(i,t.scopeNames),r=new e(r,i,t.encodedTokenAttributes);return r}static createRoot(t,n){return new e(null,new $t(null,t),n)}static createRootAndLookUpScopeName(t,n,r){let i=r.getMetadataForScope(t),a=new $t(null,t),o=r.themeProvider.themeMatch(a),s=e.mergeAttributes(n,i,o);return new e(null,a,s)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(` `)}equals(t){return e.equals(this,t)}static equals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return!1;e=e.parent,t=t.parent}while(!0)}static mergeAttributes(e,t,n){let r=-1,i=0,a=0;return n!==null&&(r=n.fontStyle,i=n.foregroundId,a=n.backgroundId),dn.set(e,t.languageId,t.tokenType,null,r,i,a)}pushAttributed(t,n){if(t===null)return this;if(t.indexOf(` `)===-1)return e._pushAttributed(this,t,n);let r=t.split(/ /g),i=this;for(let t of r)i=e._pushAttributed(i,t,n);return i}static _pushAttributed(t,n,r){let i=r.getMetadataForScope(n),a=t.scopePath.push(n),o=r.themeProvider.themeMatch(a),s=e.mergeAttributes(t.tokenAttributes,i,o);return new e(t,a,s)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(e){let t=[],n=this;for(;n&&n!==e;)t.push({encodedTokenAttributes:n.tokenAttributes,scopeNames:n.scopePath.getExtensionIfDefined(n.parent?.scopePath??null)}),n=n.parent;return n===e?t.reverse():void 0}},mr=class e{constructor(e,t,n,r,i,a,o,s){this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=i,this.endRule=a,this.nameScopesList=o,this.contentNameScopesList=s,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=n,this._anchorPos=r}_stackElementBrand=void 0;static NULL=new e(null,0,0,0,!1,null,null,null);_enterPos;_anchorPos;depth;equals(t){return t!==null&&e._equals(this,t)}static _equals(e,t){return e===t?!0:this._structuralEquals(e,t)?pr.equals(e.contentNameScopesList,t.contentNameScopesList):!1}static _structuralEquals(e,t){do{if(e===t||!e&&!t)return!0;if(!e||!t||e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}while(!0)}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){e._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(t,n,r,i,a,o,s){return new e(this,t,n,r,i,a,o,s)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){let e=[];return this._writeString(e,0),`[`+e.join(`,`)+`]`}_writeString(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(t){return this.endRule===t?this:new e(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1}toStateStackFrame(){return{ruleId:Ln(this.ruleId),beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(t,n){let r=pr.fromExtension(t?.nameScopesList??null,n.nameScopesList);return new e(t,In(n.ruleId),n.enterPos??-1,n.anchorPos??-1,n.beginRuleCapturedEOL,n.endRule,r,pr.fromExtension(r,n.contentNameScopesList))}},hr=class{balancedBracketScopes;unbalancedBracketScopes;allowAny=!1;constructor(e,t){this.balancedBracketScopes=e.flatMap(e=>e===`*`?(this.allowAny=!0,[]):mn(e,lr).map(e=>e.matcher)),this.unbalancedBracketScopes=t.flatMap(e=>mn(e,lr).map(e=>e.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(e){for(let t of this.unbalancedBracketScopes)if(t(e))return!1;for(let t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}},gr=class{constructor(e,t,n,r){this.balancedBracketSelectors=r,this._emitBinaryTokens=e,this._tokenTypeOverrides=n,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}_emitBinaryTokens;_lineText;_tokens;_binaryTokens;_lastTokenEndIndex;_tokenTypeOverrides;produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let n=e?.tokenAttributes??0,r=!1;if(this.balancedBracketSelectors?.matchesAlways&&(r=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){let t=e?.getScopeNames()??[];for(let e of this._tokenTypeOverrides)e.matcher(t)&&(n=dn.set(n,0,fn(e.type),null,-1,0,0));this.balancedBracketSelectors&&(r=this.balancedBracketSelectors.match(t))}if(r&&(n=dn.set(n,0,8,r,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===n){this._lastTokenEndIndex=t;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(n),this._lastTokenEndIndex=t;return}let n=e?.getScopeNames()??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:n}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);let n=new Uint32Array(this._binaryTokens.length);for(let e=0,t=this._binaryTokens.length;e<t;e++)n[e]=this._binaryTokens[e];return n}},_r=class{constructor(e,t){this._onigLib=t,this._theme=e}_grammars=new Map;_rawGrammars=new Map;_injectionGrammars=new Map;_theme;dispose(){for(let e of this._grammars.values())e.dispose()}setTheme(e){this._theme=e}getColorMap(){return this._theme.getColorMap()}addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionGrammars.set(e.scopeName,t)}lookup(e){return this._rawGrammars.get(e)}injections(e){return this._injectionGrammars.get(e)}getDefaults(){return this._theme.getDefaults()}themeMatch(e){return this._theme.match(e)}grammarForScopeName(e,t,n,r,i){if(!this._grammars.has(e)){let a=this._rawGrammars.get(e);if(!a)return null;this._grammars.set(e,sr(e,a,t,n,r,i,this,this._onigLib))}return this._grammars.get(e)}},vr=class{_options;_syncRegistry;_ensureGrammarCache;constructor(e){this._options=e,this._syncRegistry=new _r(Qt.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(e,t){this._syncRegistry.setTheme(Qt.createFromRawTheme(e,t))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(e,t,n){return this.loadGrammarWithConfiguration(e,t,{embeddedLanguages:n})}loadGrammarWithConfiguration(e,t,n){return this._loadGrammar(e,t,n.embeddedLanguages,n.tokenTypes,new hr(n.balancedBracketSelectors||[],n.unbalancedBracketSelectors||[]))}loadGrammar(e){return this._loadGrammar(e,0,null,null,null)}_loadGrammar(e,t,n,r,i){let a=new xn(this._syncRegistry,e);for(;a.Q.length>0;)a.Q.map(e=>this._loadSingleGrammar(e.scopeName)),a.processQueue();return this._grammarForScopeName(e,t,n,r,i)}_loadSingleGrammar(e){this._ensureGrammarCache.has(e)||(this._doLoadSingleGrammar(e),this._ensureGrammarCache.set(e,!0))}_doLoadSingleGrammar(e){let t=this._options.loadGrammar(e);if(t){let n=typeof this._options.getInjections==`function`?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,n)}}addGrammar(e,t=[],n=0,r=null){return this._syncRegistry.addGrammar(e,t),this._grammarForScopeName(e.scopeName,n,r)}_grammarForScopeName(e,t=0,n=null,r=null,i=null){return this._syncRegistry.grammarForScopeName(e,t,n,r,i)}},yr=mr.NULL;function br(e,t){let n=typeof e==`string`?{}:{...e.colorReplacements},r=typeof e==`string`?e:e.name;for(let[e,i]of Object.entries(t?.colorReplacements||{}))typeof i==`string`?n[e]=i:e===r&&Object.assign(n,i);return n}function xr(e,t){return e&&(t?.[e?.toLowerCase()]||e)}function Sr(e){return Array.isArray(e)?e:[e]}async function Cr(e){return Promise.resolve(typeof e==`function`?e():e).then(e=>e.default||e)}function wr(e){return!e||[`plaintext`,`txt`,`text`,`plain`].includes(e)}function Tr(e){return e===`ansi`||wr(e)}function Er(e){return e===`none`}function Dr(e){return Er(e)}var Or=/(\r?\n)/g;function kr(e,t=!1){if(e.length===0)return[[``,0]];let n=e.split(Or),r=0,i=[];for(let e=0;e<n.length;e+=2){let a=t?n[e]+(n[e+1]||``):n[e];i.push([a,r]),r+=n[e].length,r+=n[e+1]?.length||0}return i}var Ar={light:`#333333`,dark:`#bbbbbb`},jr={light:`#fffffe`,dark:`#1e1e1e`},Mr=`__shiki_resolved`;function Nr(e){if(e?.[Mr])return e;let t={...e};t.tokenColors&&!t.settings&&(t.settings=t.tokenColors,delete t.tokenColors),t.type||=`dark`,t.colorReplacements={...t.colorReplacements},t.settings||=[];let{bg:n,fg:r}=t;if(!n||!r){let e=t.settings?t.settings.find(e=>!e.name&&!e.scope):void 0;e?.settings?.foreground&&(r=e.settings.foreground),e?.settings?.background&&(n=e.settings.background),!r&&t?.colors?.[`editor.foreground`]&&(r=t.colors[`editor.foreground`]),!n&&t?.colors?.[`editor.background`]&&(n=t.colors[`editor.background`]),r||=t.type===`light`?Ar.light:Ar.dark,n||=t.type===`light`?jr.light:jr.dark,t.fg=r,t.bg=n}t.settings[0]&&t.settings[0].settings&&!t.settings[0].scope||t.settings.unshift({settings:{foreground:t.fg,background:t.bg}});let i=0,a=new Map;function o(e){if(a.has(e))return a.get(e);i+=1;let n=`#${i.toString(16).padStart(8,`0`).toLowerCase()}`;return t.colorReplacements?.[`#${n}`]?o(e):(a.set(e,n),n)}t.settings=t.settings.map(e=>{let n=e.settings?.foreground&&!e.settings.foreground.startsWith(`#`),r=e.settings?.background&&!e.settings.background.startsWith(`#`);if(!n&&!r)return e;let i={...e,settings:{...e.settings}};if(n){let n=o(e.settings.foreground);t.colorReplacements[n]=e.settings.foreground,i.settings.foreground=n}if(r){let n=o(e.settings.background);t.colorReplacements[n]=e.settings.background,i.settings.background=n}return i});for(let e of Object.keys(t.colors||{}))if((e===`editor.foreground`||e===`editor.background`||e.startsWith(`terminal.ansi`))&&!t.colors[e]?.startsWith(`#`)){let n=o(t.colors[e]);t.colorReplacements[n]=t.colors[e],t.colors[e]=n}return Object.defineProperty(t,Mr,{enumerable:!1,writable:!1,value:!0}),t}async function Pr(e){return[...new Set((await Promise.all(e.filter(e=>!Tr(e)).map(async e=>await Cr(e).then(e=>Array.isArray(e)?e:[e])))).flat())]}async function Fr(e){return(await Promise.all(e.map(async e=>Dr(e)?null:Nr(await Cr(e))))).filter(e=>!!e)}function Ir(e,t){if(!t)return e;if(t[e]){let n=new Set([e]);for(;t[e];){if(e=t[e],n.has(e))throw new V(`Circular alias \`${[...n].join(` -> `)} -> ${e}\``);n.add(e)}}return e}var Lr=class extends vr{_resolver;_themes;_langs;_alias;_resolvedThemes=new Map;_resolvedGrammars=new Map;_langMap=new Map;_langGraph=new Map;_textmateThemeCache=new WeakMap;_loadedThemesCache=null;_loadedLanguagesCache=null;constructor(e,t,n,r={}){super(e),this._resolver=e,this._themes=t,this._langs=n,this._alias=r,this._themes.map(e=>this.loadTheme(e)),this.loadLanguages(this._langs)}getTheme(e){return typeof e==`string`?this._resolvedThemes.get(e):this.loadTheme(e)}loadTheme(e){let t=Nr(e);return t.name&&(this._resolvedThemes.set(t.name,t),this._loadedThemesCache=null),t}getLoadedThemes(){return this._loadedThemesCache||=[...this._resolvedThemes.keys()],this._loadedThemesCache}setTheme(e){let t=this._textmateThemeCache.get(e);t||(t=Qt.createFromRawTheme(e),this._textmateThemeCache.set(e,t)),this._syncRegistry.setTheme(t)}getGrammar(e){return e=Ir(e,this._alias),this._resolvedGrammars.get(e)}loadLanguage(e){if(this.getGrammar(e.name))return;let t=new Set([...this._langMap.values()].filter(t=>t.embeddedLangsLazy?.includes(e.name)));this._resolver.addLanguage(e);let n={balancedBracketSelectors:e.balancedBracketSelectors||[`*`],unbalancedBracketSelectors:e.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(e.scopeName,e);let r=this.loadGrammarWithConfiguration(e.scopeName,1,n);if(r.name=e.name,this._resolvedGrammars.set(e.name,r),e.aliases&&e.aliases.forEach(t=>{this._alias[t]=e.name}),this._loadedLanguagesCache=null,t.size)for(let e of t)this._resolvedGrammars.delete(e.name),this._loadedLanguagesCache=null,this._syncRegistry?._injectionGrammars?.delete(e.scopeName),this._syncRegistry?._grammars?.delete(e.scopeName),this.loadLanguage(this._langMap.get(e.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(e){for(let t of e)this.resolveEmbeddedLanguages(t);let t=[...this._langGraph.entries()],n=t.filter(([e,t])=>!t);if(n.length){let e=t.filter(([e,t])=>t?(t.embeddedLanguages||t.embeddedLangs)?.some(e=>n.map(([e])=>e).includes(e)):!1).filter(e=>!n.includes(e));throw new V(`Missing languages ${n.map(([e])=>`\`${e}\``).join(`, `)}, required by ${e.map(([e])=>`\`${e}\``).join(`, `)}`)}for(let[e,n]of t)this._resolver.addLanguage(n);for(let[e,n]of t)this.loadLanguage(n)}getLoadedLanguages(){return this._loadedLanguagesCache||=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])],this._loadedLanguagesCache}resolveEmbeddedLanguages(e){this._langMap.set(e.name,e),this._langGraph.set(e.name,e);let t=e.embeddedLanguages??e.embeddedLangs;if(t)for(let e of t)this._langGraph.set(e,this._langMap.get(e))}},Rr=class{_langs=new Map;_scopeToLang=new Map;_injections=new Map;_onigLib;constructor(e,t){this._onigLib={createOnigScanner:t=>e.createScanner(t),createOnigString:t=>e.createString(t)},t.forEach(e=>this.addLanguage(e))}get onigLib(){return this._onigLib}getLangRegistration(e){return this._langs.get(e)}loadGrammar(e){return this._scopeToLang.get(e)}addLanguage(e){this._langs.set(e.name,e),e.aliases&&e.aliases.forEach(t=>{this._langs.set(t,e)}),this._scopeToLang.set(e.scopeName,e),e.injectTo&&e.injectTo.forEach(t=>{this._injections.get(t)||this._injections.set(t,[]),this._injections.get(t).push(e.scopeName)})}getInjections(e){let t=e.split(`.`),n=[];for(let e=1;e<=t.length;e++){let r=t.slice(0,e).join(`.`);n=[...n,...this._injections.get(r)||[]]}return n}},zr=0;function Br(e){zr+=1,e.warnings!==!1&&zr>=10&&zr%10==0&&console.warn(`[Shiki] ${zr} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \`highlighter.dispose()\` to release unused instances.`);let t=!1;if(!e.engine)throw new V("`engine` option is required for synchronous mode");let n=(e.langs||[]).flat(1),r=(e.themes||[]).flat(1).map(Nr),i=new Lr(new Rr(e.engine,n),r,n,e.langAlias),a;function o(t){return Ir(t,e.langAlias)}function s(e){g();let t=i.getGrammar(typeof e==`string`?e:e.name);if(!t)throw new V(`Language \`${e}\` not found, you may need to load it first`);return t}function c(e){if(e===`none`)return{bg:``,fg:``,name:`none`,settings:[],type:`dark`};g();let t=i.getTheme(e);if(!t)throw new V(`Theme \`${e}\` not found, you may need to load it first`);return t}function l(e){g();let t=c(e);return a!==e&&(i.setTheme(t),a=e),{theme:t,colorMap:i.getColorMap()}}function u(){return g(),i.getLoadedThemes()}function d(){return g(),i.getLoadedLanguages()}function f(...e){g(),i.loadLanguages(e.flat(1))}async function p(...e){return f(await Pr(e))}function m(...e){g();for(let t of e.flat(1))i.loadTheme(t)}async function h(...e){return g(),m(await Fr(e))}function g(){if(t)throw new V(`Shiki instance has been disposed`)}function _(){t||(t=!0,i.dispose(),--zr)}return{setTheme:l,getTheme:c,getLanguage:s,getLoadedThemes:u,getLoadedLanguages:d,resolveLangAlias:o,loadLanguage:p,loadLanguageSync:f,loadTheme:h,loadThemeSync:m,dispose:_,[Symbol.dispose]:_}}async function Vr(e){e.engine||console.warn("`engine` option is required. Use `createOnigurumaEngine` or `createJavaScriptRegexEngine` to create an engine.");let[t,n,r]=await Promise.all([Fr(e.themes||[]),Pr(e.langs||[]),e.engine]);return Br({...e,themes:t,langs:n,engine:r})}var Hr=new WeakMap;function Ur(e,t){Hr.set(e,t)}function Wr(e){return Hr.get(e)}var Gr=class e{_stacks={};lang;get themes(){return Object.keys(this._stacks)}get theme(){return this.themes[0]}get _stack(){return this._stacks[this.theme]}static initial(t,n){return new e(Object.fromEntries(Sr(n).map(e=>[e,yr])),t)}constructor(...e){if(e.length===2){let[t,n]=e;this.lang=n,this._stacks=t}else{let[t,n,r]=e;this.lang=n,this._stacks={[r]:t}}}getInternalStack(e=this.theme){return this._stacks[e]}getScopes(e=this.theme){return Kr(this._stacks[e])}toJSON(){return{lang:this.lang,theme:this.theme,themes:this.themes,scopes:this.getScopes()}}};function Kr(e){let t=[],n=new Set;function r(e){if(n.has(e))return;n.add(e);let i=e?.nameScopesList?.scopeName;i&&t.push(i),e.parent&&r(e.parent)}return r(e),t}function qr(e,t){if(!(e instanceof Gr))throw new V(`Invalid grammar state`);return e.getInternalStack(t)}var Jr=/,/,Yr=/ /;function Xr(e,t,n={}){let{theme:r=e.getLoadedThemes()[0]}=n;if(wr(e.resolveLangAlias(n.lang||`text`))||Er(r))return kr(t).map(e=>[{content:e[0],offset:e[1]}]);let{theme:i,colorMap:a}=e.setTheme(r),o=e.getLanguage(n.lang||`text`);if(n.grammarState){if(n.grammarState.lang!==o.name)throw new V(`Grammar state language "${n.grammarState.lang}" does not match highlight language "${o.name}"`);if(!n.grammarState.themes.includes(i.name))throw new V(`Grammar state themes "${n.grammarState.themes}" do not contain highlight theme "${i.name}"`)}return Qr(t,o,i,a,n)}function Zr(...e){if(e.length===2)return Wr(e[1]);let[t,n,r={}]=e,{lang:i=`text`,theme:a=t.getLoadedThemes()[0]}=r;if(wr(i)||Er(a))throw new V(`Plain language does not have grammar state`);if(i===`ansi`)throw new V(`ANSI language does not have grammar state`);let{theme:o,colorMap:s}=t.setTheme(a),c=t.getLanguage(i);return new Gr($r(n,c,o,s,r).stateStack,c.name,o.name)}function Qr(e,t,n,r,i){let a=$r(e,t,n,r,i),o=new Gr(a.stateStack,t.name,n.name);return Ur(a.tokens,o),a.tokens}function $r(e,t,n,r,i){let a=br(n,i),{tokenizeMaxLineLength:o=0,tokenizeTimeLimit:s=500,includeExplanation:c=!1}=i,l=kr(e),u=i.grammarState?qr(i.grammarState,n.name)??yr:i.grammarContextCode==null?yr:$r(i.grammarContextCode,t,n,r,{...i,grammarState:void 0,grammarContextCode:void 0}).stateStack,d=[],f=[];for(let e=0,i=l.length;e<i;e++){let[i,p]=l[e];if(i===``){d=[],f.push([]);continue}if(o>0&&i.length>=o){d=[],f.push([{content:i,offset:p,color:``,fontStyle:0}]);continue}let m,h,g;c&&c!==`tokenType`&&(m=t.tokenizeLine(i,u,s),h=m.tokens,g=0);let _=t.tokenizeLine2(i,u,s),v=_.tokens.length/2;for(let e=0;e<v;e++){let t=_.tokens[2*e],o=e+1<v?_.tokens[2*e+2]:i.length;if(t===o)continue;let s=_.tokens[2*e+1],l=xr(r[dn.getForeground(s)],a),u=dn.getFontStyle(s),f={content:i.substring(t,o),offset:p+t,color:l,fontStyle:u};if(c===`tokenType`)f.type=dn.getTokenType(s);else if(c){let e=[];if(c!==`scopeName`)for(let t of n.settings){let n;switch(typeof t.scope){case`string`:n=t.scope.split(Jr).map(e=>e.trim());break;case`object`:n=t.scope;break;default:continue}e.push({settings:t,selectors:n.map(e=>e.split(Yr))})}f.explanation=[];let r=0;for(;t+r<o;){let t=h[g],n=i.substring(t.startIndex,t.endIndex);r+=n.length,f.explanation.push({content:n,scopes:c===`scopeName`?ei(t.scopes):ti(e,t.scopes)}),g+=1}}d.push(f)}f.push(d),d=[],u=_.ruleStack}return{tokens:f,stateStack:u}}function ei(e){return e.map(e=>({scopeName:e}))}function ti(e,t){let n=[];for(let r=0,i=t.length;r<i;r++){let i=t[r];n[r]={scopeName:i,themeMatches:ii(e,i,t.slice(0,r))}}return n}function ni(e,t){return e===t||t.substring(0,e.length)===e&&t[e.length]===`.`}function ri(e,t,n){if(!ni(e.at(-1),t))return!1;let r=e.length-2,i=n.length-1;for(;r>=0&&i>=0;)ni(e[r],n[i])&&--r,--i;return r===-1}function ii(e,t,n){let r=[];for(let{selectors:i,settings:a}of e)for(let e of i)if(ri(e,t,n)){r.push(a);break}return r}function ai(e,t,n,r=Xr){let i=Object.entries(n.themes).filter(e=>e[1]).map(e=>({color:e[0],theme:e[1]})),a=i.map(i=>{let a=r(e,t,{...n,theme:i.theme});return{tokens:a,state:Wr(a),theme:typeof i.theme==`string`?i.theme:i.theme.name}}),o=oi(...a.map(e=>e.tokens)),s=o[0].map((e,t)=>e.map((e,r)=>{let a={content:e.content,variants:{},offset:e.offset};return`includeExplanation`in n&&n.includeExplanation&&(a.explanation=e.explanation),o.forEach((e,n)=>{let{content:o,explanation:s,offset:c,...l}=e[t][r];a.variants[i[n].color]=l}),a})),c=a[0].state?new Gr(Object.fromEntries(a.map(e=>[e.theme,e.state?.getInternalStack(e.theme)])),a[0].state.lang):void 0;return c&&Ur(s,c),s}function oi(...e){let t=e.map(()=>[]),n=e.length;for(let r=0;r<e[0].length;r++){let i=e.map(e=>e[r]),a=t.map(()=>[]);t.forEach((e,t)=>e.push(a[t]));let o=i.map(()=>0),s=i.map(e=>e[0]);for(;s.every(e=>e);){let e=Math.min(...s.map(e=>e.content.length));for(let t=0;t<n;t++){let n=s[t];n.content.length===e?(a[t].push(n),o[t]+=1,s[t]=i[t][o[t]]):(a[t].push({...n,content:n.content.slice(0,e)}),s[t]={...n,content:n.content.slice(e),offset:n.offset+e})}}}return t}var si=[`area`,`base`,`basefont`,`bgsound`,`br`,`col`,`command`,`embed`,`frame`,`hr`,`image`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`],ci=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};ci.prototype.normal={},ci.prototype.property={},ci.prototype.space=void 0;function li(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new ci(n,r,t)}function ui(e){return e.toLowerCase()}var U=class{constructor(e,t){this.attribute=t,this.property=e}};U.prototype.attribute=``,U.prototype.booleanish=!1,U.prototype.boolean=!1,U.prototype.commaOrSpaceSeparated=!1,U.prototype.commaSeparated=!1,U.prototype.defined=!1,U.prototype.mustUseProperty=!1,U.prototype.number=!1,U.prototype.overloadedBoolean=!1,U.prototype.property=``,U.prototype.spaceSeparated=!1,U.prototype.space=void 0;var di=o({boolean:()=>W,booleanish:()=>G,commaOrSpaceSeparated:()=>J,commaSeparated:()=>mi,number:()=>K,overloadedBoolean:()=>pi,spaceSeparated:()=>q}),fi=0,W=hi(),G=hi(),pi=hi(),K=hi(),q=hi(),mi=hi(),J=hi();function hi(){return 2**++fi}var gi=Object.keys(di),_i=class extends U{constructor(e,t,n,r){let i=-1;if(super(e,t),vi(this,`space`,r),typeof n==`number`)for(;++i<gi.length;){let e=gi[i];vi(this,gi[i],(n&di[e])===di[e])}}};_i.prototype.defined=!0;function vi(e,t,n){n&&(e[t]=n)}function yi(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new _i(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[ui(r)]=r,n[ui(a.attribute)]=r}return new ci(t,n,e.space)}var bi=yi({properties:{ariaActiveDescendant:null,ariaAtomic:G,ariaAutoComplete:null,ariaBusy:G,ariaChecked:G,ariaColCount:K,ariaColIndex:K,ariaColSpan:K,ariaControls:q,ariaCurrent:null,ariaDescribedBy:q,ariaDetails:null,ariaDisabled:G,ariaDropEffect:q,ariaErrorMessage:null,ariaExpanded:G,ariaFlowTo:q,ariaGrabbed:G,ariaHasPopup:null,ariaHidden:G,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:q,ariaLevel:K,ariaLive:null,ariaModal:G,ariaMultiLine:G,ariaMultiSelectable:G,ariaOrientation:null,ariaOwns:q,ariaPlaceholder:null,ariaPosInSet:K,ariaPressed:G,ariaReadOnly:G,ariaRelevant:null,ariaRequired:G,ariaRoleDescription:q,ariaRowCount:K,ariaRowIndex:K,ariaRowSpan:K,ariaSelected:G,ariaSetSize:K,ariaSort:null,ariaValueMax:K,ariaValueMin:K,ariaValueNow:K,ariaValueText:null,role:null},transform(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}});function xi(e,t){return t in e?e[t]:t}function Si(e,t){return xi(e,t.toLowerCase())}var Ci=yi({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:mi,acceptCharset:q,accessKey:q,action:null,allow:null,allowFullScreen:W,allowPaymentRequest:W,allowUserMedia:W,alpha:W,alt:null,as:null,async:W,autoCapitalize:null,autoComplete:q,autoFocus:W,autoPlay:W,blocking:q,capture:null,charSet:null,checked:W,cite:null,className:q,closedBy:null,colorSpace:null,cols:K,colSpan:K,command:null,commandFor:null,content:null,contentEditable:G,controls:W,controlsList:q,coords:K|mi,crossOrigin:null,data:null,dateTime:null,decoding:null,default:W,defer:W,dir:null,dirName:null,disabled:W,download:pi,draggable:G,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:W,formTarget:null,headers:q,height:K,hidden:pi,high:K,href:null,hrefLang:null,htmlFor:q,httpEquiv:q,id:null,imageSizes:null,imageSrcSet:null,inert:W,inputMode:null,integrity:null,is:null,isMap:W,itemId:null,itemProp:q,itemRef:q,itemScope:W,itemType:q,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:W,low:K,manifest:null,max:null,maxLength:K,media:null,method:null,min:null,minLength:K,multiple:W,muted:W,name:null,nonce:null,noModule:W,noValidate:W,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:W,optimum:K,pattern:null,ping:q,placeholder:null,playsInline:W,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:W,referrerPolicy:null,rel:q,required:W,reversed:W,rows:K,rowSpan:K,sandbox:q,scope:null,scoped:W,seamless:W,selected:W,shadowRootClonable:W,shadowRootCustomElementRegistry:W,shadowRootDelegatesFocus:W,shadowRootMode:null,shadowRootSerializable:W,shape:null,size:K,sizes:null,slot:null,span:K,spellCheck:G,src:null,srcDoc:null,srcLang:null,srcSet:null,start:K,step:null,style:null,tabIndex:K,target:null,title:null,translate:null,type:null,typeMustMatch:W,useMap:null,value:G,width:K,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:q,axis:null,background:null,bgColor:null,border:K,borderColor:null,bottomMargin:K,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:W,declare:W,event:null,face:null,frame:null,frameBorder:null,hSpace:K,leftMargin:K,link:null,longDesc:null,lowSrc:null,marginHeight:K,marginWidth:K,noResize:W,noHref:W,noShade:W,noWrap:W,object:null,profile:null,prompt:null,rev:null,rightMargin:K,rules:null,scheme:null,scrolling:G,standby:null,summary:null,text:null,topMargin:K,valueType:null,version:null,vAlign:null,vLink:null,vSpace:K,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:W,disablePictureInPicture:W,disableRemotePlayback:W,exportParts:mi,part:q,prefix:null,property:null,results:K,security:null,unselectable:null},space:`html`,transform:Si}),wi=yi({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,dominantBaseline:`dominant-baseline`,enableBackground:`enable-background`,fillOpacity:`fill-opacity`,fillRule:`fill-rule`,floodColor:`flood-color`,floodOpacity:`flood-opacity`,fontFamily:`font-family`,fontSize:`font-size`,fontSizeAdjust:`font-size-adjust`,fontStretch:`font-stretch`,fontStyle:`font-style`,fontVariant:`font-variant`,fontWeight:`font-weight`,glyphName:`glyph-name`,glyphOrientationHorizontal:`glyph-orientation-horizontal`,glyphOrientationVertical:`glyph-orientation-vertical`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,maskType:`mask-type`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,renderingIntent:`rendering-intent`,shapeRendering:`shape-rendering`,stopColor:`stop-color`,stopOpacity:`stop-opacity`,strikethroughPosition:`strikethrough-position`,strikethroughThickness:`strikethrough-thickness`,strokeDashArray:`stroke-dasharray`,strokeDashOffset:`stroke-dashoffset`,strokeLineCap:`stroke-linecap`,strokeLineJoin:`stroke-linejoin`,strokeMiterLimit:`stroke-miterlimit`,strokeOpacity:`stroke-opacity`,strokeWidth:`stroke-width`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,underlinePosition:`underline-position`,underlineThickness:`underline-thickness`,unicodeBidi:`unicode-bidi`,unicodeRange:`unicode-range`,unitsPerEm:`units-per-em`,vAlphabetic:`v-alphabetic`,vHanging:`v-hanging`,vIdeographic:`v-ideographic`,vMathematical:`v-mathematical`,vectorEffect:`vector-effect`,vertAdvY:`vert-adv-y`,vertOriginX:`vert-origin-x`,vertOriginY:`vert-origin-y`,wordSpacing:`word-spacing`,writingMode:`writing-mode`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:J,accentHeight:K,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:K,amplitude:K,arabicForm:null,ascent:K,attributeName:null,attributeType:null,azimuth:K,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:K,by:null,calcMode:null,capHeight:K,className:q,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:K,diffuseConstant:K,direction:null,display:null,dur:null,divisor:K,dominantBaseline:null,download:W,dx:null,dy:null,edgeMode:null,editable:null,elevation:K,enableBackground:null,end:null,event:null,exponent:K,externalResourcesRequired:null,fill:null,fillOpacity:K,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:mi,g2:mi,glyphName:mi,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:K,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:K,horizOriginX:K,horizOriginY:K,id:null,ideographic:K,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:K,k:K,k1:K,k2:K,k3:K,k4:K,kernelMatrix:J,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:K,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:K,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:K,overlineThickness:K,paintOrder:null,panose1:null,path:null,pathLength:K,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:q,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:K,pointsAtY:K,pointsAtZ:K,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:J,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:J,rev:J,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:J,requiredFeatures:J,requiredFonts:J,requiredFormats:J,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:K,specularExponent:K,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:K,strikethroughThickness:K,string:null,stroke:null,strokeDashArray:J,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:K,strokeOpacity:K,strokeWidth:null,style:null,surfaceScale:K,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:J,tabIndex:K,tableValues:null,target:null,targetX:K,targetY:K,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:J,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:K,underlineThickness:K,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:K,values:null,vAlphabetic:K,vMathematical:K,vectorEffect:null,vHanging:K,vIdeographic:K,version:null,vertAdvY:K,vertOriginX:K,vertOriginY:K,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:K,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:xi}),Ti=yi({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(e,t){return`xlink:`+t.slice(5).toLowerCase()}}),Ei=yi({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:Si}),Di=yi({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),Oi=/[A-Z]/g,ki=/-[a-z]/g,Ai=/^data[-\w.:]+$/i;function ji(e,t){let n=ui(t),r=t,i=U;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&Ai.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(ki,Ni);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!ki.test(e)){let n=e.replace(Oi,Mi);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=_i}return new i(r,t)}function Mi(e){return`-`+e.toLowerCase()}function Ni(e){return e.charAt(1).toUpperCase()}var Pi=li([bi,Ci,Ti,Ei,Di],`html`),Fi=li([bi,wi,Ti,Ei,Di],`svg`),Ii={}.hasOwnProperty;function Li(e,t){let n=t||{};function r(t,...n){let i=r.invalid,a=r.handlers;if(t&&Ii.call(t,e)){let n=String(t[e]);i=Ii.call(a,n)?a[n]:r.unknown}if(i)return i.call(this,t,...n)}return r.handlers=n.handlers||{},r.invalid=n.invalid,r.unknown=n.unknown,r}var Ri=/["&'<>`]/g,zi=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Bi=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,Vi=/[|\\{}()[\]^$+*?.]/g,Hi=new WeakMap;function Ui(e,t){if(e=e.replace(t.subset?Wi(t.subset):Ri,r),t.subset||t.escapeOnly)return e;return e.replace(zi,n).replace(Bi,r);function n(e,n,r){return t.format((e.charCodeAt(0)-55296)*1024+e.charCodeAt(1)-56320+65536,r.charCodeAt(n+2),t)}function r(e,n,r){return t.format(e.charCodeAt(0),r.charCodeAt(n+1),t)}}function Wi(e){let t=Hi.get(e);return t||(t=Gi(e),Hi.set(e,t)),t}function Gi(e){let t=[],n=-1;for(;++n<e.length;)t.push(e[n].replace(Vi,`\\$&`));return RegExp(`(?:`+t.join(`|`)+`)`,`g`)}var Ki=/[\dA-Fa-f]/;function qi(e,t,n){let r=`&#x`+e.toString(16).toUpperCase();return n&&t&&!Ki.test(String.fromCharCode(t))?r:r+`;`}var Ji=/\d/;function Yi(e,t,n){let r=`&#`+String(e);return n&&t&&!Ji.test(String.fromCharCode(t))?r:r+`;`}var Xi=`AElig.AMP.Aacute.Acirc.Agrave.Aring.Atilde.Auml.COPY.Ccedil.ETH.Eacute.Ecirc.Egrave.Euml.GT.Iacute.Icirc.Igrave.Iuml.LT.Ntilde.Oacute.Ocirc.Ograve.Oslash.Otilde.Ouml.QUOT.REG.THORN.Uacute.Ucirc.Ugrave.Uuml.Yacute.aacute.acirc.acute.aelig.agrave.amp.aring.atilde.auml.brvbar.ccedil.cedil.cent.copy.curren.deg.divide.eacute.ecirc.egrave.eth.euml.frac12.frac14.frac34.gt.iacute.icirc.iexcl.igrave.iquest.iuml.laquo.lt.macr.micro.middot.nbsp.not.ntilde.oacute.ocirc.ograve.ordf.ordm.oslash.otilde.ouml.para.plusmn.pound.quot.raquo.reg.sect.shy.sup1.sup2.sup3.szlig.thorn.times.uacute.ucirc.ugrave.uml.uuml.yacute.yen.yuml`.split(`.`),Zi={nbsp:`\xA0`,iexcl:`¡`,cent:`¢`,pound:`£`,curren:`¤`,yen:`¥`,brvbar:`¦`,sect:`§`,uml:`¨`,copy:`©`,ordf:`ª`,laquo:`«`,not:`¬`,shy:`­`,reg:`®`,macr:`¯`,deg:`°`,plusmn:`±`,sup2:`²`,sup3:`³`,acute:`´`,micro:`µ`,para:`¶`,middot:`·`,cedil:`¸`,sup1:`¹`,ordm:`º`,raquo:`»`,frac14:`¼`,frac12:`½`,frac34:`¾`,iquest:`¿`,Agrave:`À`,Aacute:`Á`,Acirc:`Â`,Atilde:`Ã`,Auml:`Ä`,Aring:`Å`,AElig:`Æ`,Ccedil:`Ç`,Egrave:`È`,Eacute:`É`,Ecirc:`Ê`,Euml:`Ë`,Igrave:`Ì`,Iacute:`Í`,Icirc:`Î`,Iuml:`Ï`,ETH:`Ð`,Ntilde:`Ñ`,Ograve:`Ò`,Oacute:`Ó`,Ocirc:`Ô`,Otilde:`Õ`,Ouml:`Ö`,times:`×`,Oslash:`Ø`,Ugrave:`Ù`,Uacute:`Ú`,Ucirc:`Û`,Uuml:`Ü`,Yacute:`Ý`,THORN:`Þ`,szlig:`ß`,agrave:`à`,aacute:`á`,acirc:`â`,atilde:`ã`,auml:`ä`,aring:`å`,aelig:`æ`,ccedil:`ç`,egrave:`è`,eacute:`é`,ecirc:`ê`,euml:`ë`,igrave:`ì`,iacute:`í`,icirc:`î`,iuml:`ï`,eth:`ð`,ntilde:`ñ`,ograve:`ò`,oacute:`ó`,ocirc:`ô`,otilde:`õ`,ouml:`ö`,divide:`÷`,oslash:`ø`,ugrave:`ù`,uacute:`ú`,ucirc:`û`,uuml:`ü`,yacute:`ý`,thorn:`þ`,yuml:`ÿ`,fnof:`ƒ`,Alpha:`Α`,Beta:`Β`,Gamma:`Γ`,Delta:`Δ`,Epsilon:`Ε`,Zeta:`Ζ`,Eta:`Η`,Theta:`Θ`,Iota:`Ι`,Kappa:`Κ`,Lambda:`Λ`,Mu:`Μ`,Nu:`Ν`,Xi:`Ξ`,Omicron:`Ο`,Pi:`Π`,Rho:`Ρ`,Sigma:`Σ`,Tau:`Τ`,Upsilon:`Υ`,Phi:`Φ`,Chi:`Χ`,Psi:`Ψ`,Omega:`Ω`,alpha:`α`,beta:`β`,gamma:`γ`,delta:`δ`,epsilon:`ε`,zeta:`ζ`,eta:`η`,theta:`θ`,iota:`ι`,kappa:`κ`,lambda:`λ`,mu:`μ`,nu:`ν`,xi:`ξ`,omicron:`ο`,pi:`π`,rho:`ρ`,sigmaf:`ς`,sigma:`σ`,tau:`τ`,upsilon:`υ`,phi:`φ`,chi:`χ`,psi:`ψ`,omega:`ω`,thetasym:`ϑ`,upsih:`ϒ`,piv:`ϖ`,bull:`•`,hellip:`…`,prime:`′`,Prime:`″`,oline:`‾`,frasl:`⁄`,weierp:`℘`,image:`ℑ`,real:`ℜ`,trade:`™`,alefsym:`ℵ`,larr:`←`,uarr:`↑`,rarr:`→`,darr:`↓`,harr:`↔`,crarr:`↵`,lArr:`⇐`,uArr:`⇑`,rArr:`⇒`,dArr:`⇓`,hArr:`⇔`,forall:`∀`,part:`∂`,exist:`∃`,empty:`∅`,nabla:`∇`,isin:`∈`,notin:`∉`,ni:`∋`,prod:`∏`,sum:`∑`,minus:`−`,lowast:`∗`,radic:`√`,prop:`∝`,infin:`∞`,ang:`∠`,and:`∧`,or:`∨`,cap:`∩`,cup:`∪`,int:`∫`,there4:`∴`,sim:`∼`,cong:`≅`,asymp:`≈`,ne:`≠`,equiv:`≡`,le:`≤`,ge:`≥`,sub:`⊂`,sup:`⊃`,nsub:`⊄`,sube:`⊆`,supe:`⊇`,oplus:`⊕`,otimes:`⊗`,perp:`⊥`,sdot:`⋅`,lceil:`⌈`,rceil:`⌉`,lfloor:`⌊`,rfloor:`⌋`,lang:`〈`,rang:`〉`,loz:`◊`,spades:`♠`,clubs:`♣`,hearts:`♥`,diams:`♦`,quot:`"`,amp:`&`,lt:`<`,gt:`>`,OElig:`Œ`,oelig:`œ`,Scaron:`Š`,scaron:`š`,Yuml:`Ÿ`,circ:`ˆ`,tilde:`˜`,ensp:` `,emsp:` `,thinsp:` `,zwnj:`‌`,zwj:`‍`,lrm:`‎`,rlm:`‏`,ndash:`–`,mdash:`—`,lsquo:`‘`,rsquo:`’`,sbquo:`‚`,ldquo:`“`,rdquo:`”`,bdquo:`„`,dagger:`†`,Dagger:`‡`,permil:`‰`,lsaquo:`‹`,rsaquo:`›`,euro:`€`},Qi=[`cent`,`copy`,`divide`,`gt`,`lt`,`not`,`para`,`times`],$i={}.hasOwnProperty,ea={},ta;for(ta in Zi)$i.call(Zi,ta)&&(ea[Zi[ta]]=ta);var na=/[^\dA-Za-z]/;function ra(e,t,n,r){let i=String.fromCharCode(e);if($i.call(ea,i)){let e=ea[i],a=`&`+e;return n&&Xi.includes(e)&&!Qi.includes(e)&&(!r||t&&t!==61&&na.test(String.fromCharCode(t)))?a:a+`;`}return``}function ia(e,t,n){let r=qi(e,t,n.omitOptionalSemicolons),i;if((n.useNamedReferences||n.useShortestReferences)&&(i=ra(e,t,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!i)&&n.useShortestReferences){let i=Yi(e,t,n.omitOptionalSemicolons);i.length<r.length&&(r=i)}return i&&(!n.useShortestReferences||i.length<r.length)?i:r}function aa(e,t){return Ui(e,Object.assign({format:ia},t))}var oa=/^>|^->|<!--|-->|--!>|<!-$/g,sa=[`>`],ca=[`<`,`>`];function la(e,t,n,r){return r.settings.bogusComments?`<?`+aa(e.value,Object.assign({},r.settings.characterReferences,{subset:sa}))+`>`:`<!--`+e.value.replace(oa,i)+`-->`;function i(e){return aa(e,Object.assign({},r.settings.characterReferences,{subset:ca}))}}function ua(e,t,n,r){return`<!`+(r.settings.upperDoctype?`DOCTYPE`:`doctype`)+(r.settings.tightDoctype?``:` `)+`html>`}function da(e,t){let n=String(e);if(typeof t!=`string`)throw TypeError(`Expected character`);let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function fa(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}function pa(e){return e.join(` `).trim()}var ma=/[ \t\n\f\r]/g;function ha(e){return typeof e==`object`?e.type===`text`&&ga(e.value):ga(e)}function ga(e){return e.replace(ma,``)===``}var Y=ya(1),_a=ya(-1),va=[];function ya(e){return t;function t(t,n,r){let i=t?t.children:va,a=(n||0)+e,o=i[a];if(!r)for(;o&&ha(o);)a+=e,o=i[a];return o}}var ba={}.hasOwnProperty;function xa(e){return t;function t(t,n,r){return ba.call(e,t.tagName)&&e[t.tagName](t,n,r)}}var Sa=xa({body:Ta,caption:Ca,colgroup:Ca,dd:ka,dt:Oa,head:Ca,html:wa,li:Da,optgroup:ja,option:Ma,p:Ea,rp:Aa,rt:Aa,tbody:Pa,td:La,tfoot:Fa,th:La,thead:Na,tr:Ia});function Ca(e,t,n){let r=Y(n,t,!0);return!r||r.type!==`comment`&&!(r.type===`text`&&ha(r.value.charAt(0)))}function wa(e,t,n){let r=Y(n,t);return!r||r.type!==`comment`}function Ta(e,t,n){let r=Y(n,t);return!r||r.type!==`comment`}function Ea(e,t,n){let r=Y(n,t);return r?r.type===`element`&&(r.tagName===`address`||r.tagName===`article`||r.tagName===`aside`||r.tagName===`blockquote`||r.tagName===`details`||r.tagName===`div`||r.tagName===`dl`||r.tagName===`fieldset`||r.tagName===`figcaption`||r.tagName===`figure`||r.tagName===`footer`||r.tagName===`form`||r.tagName===`h1`||r.tagName===`h2`||r.tagName===`h3`||r.tagName===`h4`||r.tagName===`h5`||r.tagName===`h6`||r.tagName===`header`||r.tagName===`hgroup`||r.tagName===`hr`||r.tagName===`main`||r.tagName===`menu`||r.tagName===`nav`||r.tagName===`ol`||r.tagName===`p`||r.tagName===`pre`||r.tagName===`section`||r.tagName===`table`||r.tagName===`ul`):!n||!(n.type===`element`&&(n.tagName===`a`||n.tagName===`audio`||n.tagName===`del`||n.tagName===`ins`||n.tagName===`map`||n.tagName===`noscript`||n.tagName===`video`))}function Da(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&r.tagName===`li`}function Oa(e,t,n){let r=Y(n,t);return!!(r&&r.type===`element`&&(r.tagName===`dt`||r.tagName===`dd`))}function ka(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&(r.tagName===`dt`||r.tagName===`dd`)}function Aa(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&(r.tagName===`rp`||r.tagName===`rt`)}function ja(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&r.tagName===`optgroup`}function Ma(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&(r.tagName===`option`||r.tagName===`optgroup`)}function Na(e,t,n){let r=Y(n,t);return!!(r&&r.type===`element`&&(r.tagName===`tbody`||r.tagName===`tfoot`))}function Pa(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&(r.tagName===`tbody`||r.tagName===`tfoot`)}function Fa(e,t,n){return!Y(n,t)}function Ia(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&r.tagName===`tr`}function La(e,t,n){let r=Y(n,t);return!r||r.type===`element`&&(r.tagName===`td`||r.tagName===`th`)}var Ra=xa({body:Va,colgroup:Ha,head:Ba,html:za,tbody:Ua});function za(e){let t=Y(e,-1);return!t||t.type!==`comment`}function Ba(e){let t=new Set;for(let n of e.children)if(n.type===`element`&&(n.tagName===`base`||n.tagName===`title`)){if(t.has(n.tagName))return!1;t.add(n.tagName)}let n=e.children[0];return!n||n.type===`element`}function Va(e){let t=Y(e,-1,!0);return!t||t.type!==`comment`&&!(t.type===`text`&&ha(t.value.charAt(0)))&&!(t.type===`element`&&(t.tagName===`meta`||t.tagName===`link`||t.tagName===`script`||t.tagName===`style`||t.tagName===`template`))}function Ha(e,t,n){let r=_a(n,t),i=Y(e,-1,!0);return n&&r&&r.type===`element`&&r.tagName===`colgroup`&&Sa(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`col`)}function Ua(e,t,n){let r=_a(n,t),i=Y(e,-1);return n&&r&&r.type===`element`&&(r.tagName===`thead`||r.tagName===`tbody`)&&Sa(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`tr`)}var Wa={name:[[`
4
+ \f\r &/=>`.split(``),`
5
+ \f\r "&'/=>\``.split(``)],[`\0
6
+ \f\r "&'/<=>`.split(``),`\0
7
+ \f\r "&'/<=>\``.split(``)]],unquoted:[[`
8
+ \f\r &>`.split(``),`\0
9
+ \f\r "&'<=>\``.split(``)],[`\0
10
+ \f\r "&'<=>\``.split(``),`\0
11
+ \f\r "&'<=>\``.split(``)]],single:[[`&'`.split(``),`"&'\``.split(``)],[`\0&'`.split(``),`\0"&'\``.split(``)]],double:[[`"&`.split(``),`"&'\``.split(``)],[`\0"&`.split(``),`\0"&'\``.split(``)]]};function Ga(e,t,n,r){let i=r.schema,a=i.space!==`svg`&&r.settings.omitOptionalTags,o=i.space===`svg`?r.settings.closeEmptyElements:r.settings.voids.includes(e.tagName.toLowerCase()),s=[],c;i.space===`html`&&e.tagName===`svg`&&(r.schema=Fi);let l=Ka(r,e.properties),u=r.all(i.space===`html`&&e.tagName===`template`?e.content:e);return r.schema=i,u&&(o=!1),(l||!a||!Ra(e,t,n))&&(s.push(`<`,e.tagName,l?` `+l:``),o&&(i.space===`svg`||r.settings.closeSelfClosing)&&(c=l.charAt(l.length-1),(!r.settings.tightSelfClosing||c===`/`||c&&c!==`"`&&c!==`'`)&&s.push(` `),s.push(`/`)),s.push(`>`)),s.push(u),!o&&(!a||!Sa(e,t,n))&&s.push(`</`+e.tagName+`>`),s.join(``)}function Ka(e,t){let n=[],r=-1,i;if(t){for(i in t)if(t[i]!==null&&t[i]!==void 0){let r=qa(e,i,t[i]);r&&n.push(r)}}for(;++r<n.length;){let t=e.settings.tightAttributes?n[r].charAt(n[r].length-1):void 0;r!==n.length-1&&t!==`"`&&t!==`'`&&(n[r]+=` `)}return n.join(``)}function qa(e,t,n){let r=ji(e.schema,t),i=e.settings.allowParseErrors&&e.schema.space===`html`?0:1,a=+!e.settings.allowDangerousCharacters,o=e.quote,s;if(r.overloadedBoolean&&(n===r.attribute||n===``)?n=!0:(r.boolean||r.overloadedBoolean)&&(typeof n!=`string`||n===r.attribute||n===``)&&(n=!!n),n==null||n===!1||typeof n==`number`&&Number.isNaN(n))return``;let c=aa(r.attribute,Object.assign({},e.settings.characterReferences,{subset:Wa.name[i][a]}));return n===!0||(n=Array.isArray(n)?(r.commaSeparated?fa:pa)(n,{padLeft:!e.settings.tightCommaSeparatedLists}):String(n),e.settings.collapseEmptyAttributes&&!n)?c:(e.settings.preferUnquoted&&(s=aa(n,Object.assign({},e.settings.characterReferences,{attribute:!0,subset:Wa.unquoted[i][a]}))),s!==n&&(e.settings.quoteSmart&&da(n,o)>da(n,e.alternative)&&(o=e.alternative),s=o+aa(n,Object.assign({},e.settings.characterReferences,{subset:(o===`'`?Wa.single:Wa.double)[i][a],attribute:!0}))+o),c+(s&&`=`+s))}var Ja=[`<`,`&`];function Ya(e,t,n,r){return n&&n.type===`element`&&(n.tagName===`script`||n.tagName===`style`)?e.value:aa(e.value,Object.assign({},r.settings.characterReferences,{subset:Ja}))}function Xa(e,t,n,r){return r.settings.allowDangerousHtml?e.value:Ya(e,t,n,r)}function Za(e,t,n,r){return r.all(e)}var Qa=Li(`type`,{invalid:$a,unknown:eo,handlers:{comment:la,doctype:ua,element:Ga,raw:Xa,root:Za,text:Ya}});function $a(e){throw Error("Expected node, not `"+e+"`")}function eo(e){throw Error("Cannot compile unknown node `"+e.type+"`")}var to={},no={},ro=[];function io(e,t){let n=t||to,r=n.quote||`"`,i=r===`"`?`'`:`"`;if(r!==`"`&&r!==`'`)throw Error("Invalid quote `"+r+"`, expected `'` or `\"`");return{one:ao,all:oo,settings:{omitOptionalTags:n.omitOptionalTags||!1,allowParseErrors:n.allowParseErrors||!1,allowDangerousCharacters:n.allowDangerousCharacters||!1,quoteSmart:n.quoteSmart||!1,preferUnquoted:n.preferUnquoted||!1,tightAttributes:n.tightAttributes||!1,upperDoctype:n.upperDoctype||!1,tightDoctype:n.tightDoctype||!1,bogusComments:n.bogusComments||!1,tightCommaSeparatedLists:n.tightCommaSeparatedLists||!1,tightSelfClosing:n.tightSelfClosing||!1,collapseEmptyAttributes:n.collapseEmptyAttributes||!1,allowDangerousHtml:n.allowDangerousHtml||!1,voids:n.voids||si,characterReferences:n.characterReferences||no,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space===`svg`?Fi:Pi,quote:r,alternative:i}.one(Array.isArray(e)?{type:`root`,children:e}:e,void 0,void 0)}function ao(e,t,n){return Qa(e,t,n,this)}function oo(e){let t=[],n=e&&e.children||ro,r=-1;for(;++r<n.length;)t[r]=this.one(n[r],r,e);return t.join(``)}var so=/\s+/g;function co(e,t){if(!t)return e;e.properties||={},e.properties.class||=[],typeof e.properties.class==`string`&&(e.properties.class=e.properties.class.split(so)),Array.isArray(e.properties.class)||(e.properties.class=[]);let n=Array.isArray(t)?t:t.split(so);for(let t of n)t&&!e.properties.class.includes(t)&&e.properties.class.push(t);return e}function lo(e){let t=kr(e,!0).map(([e])=>e);function n(n){if(n===e.length)return{line:t.length-1,character:t.at(-1).length};let r=n,i=0;for(let e of t){if(r<e.length)break;r-=e.length,i++}return{line:i,character:r}}function r(e,n){let r=0;for(let n=0;n<e;n++)r+=t[n].length;return r+=n,r}return{lines:t,indexToPos:n,posToIndex:r}}var uo=[`color`,`background-color`];function fo(e,t){let n=0,r=[];for(let i of t)i>n&&r.push({...e,content:e.content.slice(n,i),offset:e.offset+n}),n=i;return n<e.content.length&&r.push({...e,content:e.content.slice(n),offset:e.offset+n}),r}function po(e,t){let n=0,r=e.length;for(;n<r;){let i=n+(r-n>>1);e[i]<=t?n=i+1:r=i}return n}function mo(e,t){let n=[...t instanceof Set?t:new Set(t)].sort((e,t)=>e-t);return n.length?e.map(e=>e.flatMap(e=>{let t=e.offset+e.content.length,r=po(n,e.offset),i=r;for(;i<n.length&&n[i]<t;)i++;if(r===i)return e;let a=n.slice(r,i);for(let t=0;t<a.length;t++)a[t]-=e.offset;return fo(e,a)})):e}function ho(e,t,n,r,i=`css-vars`){let a={content:e.content,explanation:e.explanation,offset:e.offset},o=t.map(t=>go(e.variants[t])),s=new Set(o.flatMap(e=>Object.keys(e))),c={},l=(e,r)=>{let i=r===`color`?``:r===`background-color`?`-bg`:`-${r}`;return n+t[e]+(r===`color`?``:i)};return o.forEach((e,n)=>{for(let a of s){let s=e[a]||`inherit`;if(n===0&&r&&uo.includes(a))if(r===`light-dark()`&&o.length>1){let e=t.findIndex(e=>e===`light`),r=t.findIndex(e=>e===`dark`);if(e===-1||r===-1)throw new V('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');let u=o[e][a]||`inherit`,d=o[r][a]||`inherit`;c[a]=`light-dark(${u}, ${d})`,i===`css-vars`&&(c[l(n,a)]=s)}else c[a]=s;else i===`css-vars`&&(c[l(n,a)]=s)}}),a.htmlStyle=c,a}function go(e){let t={};if(e.color&&(t.color=e.color),e.bgColor&&(t[`background-color`]=e.bgColor),e.fontStyle){e.fontStyle&H.Italic&&(t[`font-style`]=`italic`),e.fontStyle&H.Bold&&(t[`font-weight`]=`bold`);let n=[];e.fontStyle&H.Underline&&n.push(`underline`),e.fontStyle&H.Strikethrough&&n.push(`line-through`),n.length&&(t[`text-decoration`]=n.join(` `))}return t}function _o(e){return typeof e==`string`?e:Object.entries(e).map(([e,t])=>`${e}:${t}`).join(`;`)}function vo(){let e=new WeakMap;function t(t){if(!e.has(t.meta)){let n=lo(t.source);function r(e){if(typeof e==`number`){if(e<0||e>t.source.length)throw new V(`Invalid decoration offset: ${e}. Code length: ${t.source.length}`);return{...n.indexToPos(e),offset:e}}else{let t=n.lines[e.line];if(t===void 0)throw new V(`Invalid decoration position ${JSON.stringify(e)}. Lines length: ${n.lines.length}`);let r=e.character;if(r<0&&(r=t.length+r),r<0||r>t.length)throw new V(`Invalid decoration position ${JSON.stringify(e)}. Line ${e.line} length: ${t.length}`);return{...e,character:r,offset:n.posToIndex(e.line,r)}}}let i=(t.options.decorations||[]).map(e=>({...e,start:r(e.start),end:r(e.end)}));yo(i),e.set(t.meta,{decorations:i,converter:n,source:t.source})}return e.get(t.meta)}return{name:`shiki:decorations`,tokens(e){if(this.options.decorations?.length)return mo(e,t(this).decorations.flatMap(e=>[e.start.offset,e.end.offset]))},code(e){if(!this.options.decorations?.length)return;let n=t(this),r=[...e.children].filter(e=>e.type===`element`&&e.tagName===`span`);if(r.length!==n.converter.lines.length)throw new V(`Number of lines in code element (${r.length}) does not match the number of lines in the source (${n.converter.lines.length}). Failed to apply decorations.`);function i(e,t,n,i){let a=r[e],s=``,c=-1,l=-1;if(t===0&&(c=0),n===0&&(l=0),n===1/0&&(l=a.children.length),c===-1||l===-1)for(let e=0;e<a.children.length;e++)s+=bo(a.children[e]),c===-1&&s.length===t&&(c=e+1),l===-1&&s.length===n&&(l=e+1);if(c===-1)throw new V(`Failed to find start index for decoration ${JSON.stringify(i.start)}`);if(l===-1)throw new V(`Failed to find end index for decoration ${JSON.stringify(i.end)}`);let u=a.children.slice(c,l);if(!i.alwaysWrap&&u.length===a.children.length)o(a,i,`line`);else if(!i.alwaysWrap&&u.length===1&&u[0].type===`element`)o(u[0],i,`token`);else{let e={type:`element`,tagName:`span`,properties:{},children:u};o(e,i,`wrapper`),a.children.splice(c,u.length,e)}}function a(e,t){r[e]=o(r[e],t,`line`)}function o(e,t,n){let r=t.properties||{},i=t.transform||(e=>e);return e.tagName=t.tagName||`span`,e.properties={...e.properties,...r,class:e.properties.class},t.properties?.class&&co(e,t.properties.class),e=i(e,n)||e,e}let s=[],c=n.decorations.sort((e,t)=>t.start.offset-e.start.offset||e.end.offset-t.end.offset);for(let e of c){let{start:t,end:n}=e;if(t.line===n.line)i(t.line,t.character,n.character,e);else if(t.line<n.line){i(t.line,t.character,1/0,e);for(let r=t.line+1;r<n.line;r++)s.unshift(()=>a(r,e));i(n.line,0,n.character,e)}}s.forEach(e=>e())}}}function yo(e){for(let t=0;t<e.length;t++){let n=e[t];if(n.start.offset>n.end.offset)throw new V(`Invalid decoration range: ${JSON.stringify(n.start)} - ${JSON.stringify(n.end)}`);for(let r=t+1;r<e.length;r++){let t=e[r],i=n.start.offset<=t.start.offset&&t.start.offset<n.end.offset,a=n.start.offset<t.end.offset&&t.end.offset<=n.end.offset,o=t.start.offset<=n.start.offset&&n.start.offset<t.end.offset,s=t.start.offset<n.end.offset&&n.end.offset<=t.end.offset;if(i||a||o||s){if(i&&a||o&&s||o&&n.start.offset===n.end.offset||a&&t.start.offset===t.end.offset)continue;throw new V(`Decorations ${JSON.stringify(n.start)} and ${JSON.stringify(t.start)} intersect.`)}}}}function bo(e){return e.type===`text`?e.value:e.type===`element`?e.children.map(bo).join(``):``}var xo=[vo()];function So(e){let t=Co(e.transformers||[]);return[...t.pre,...t.normal,...t.post,...xo]}function Co(e){let t=[],n=[],r=[];for(let i of e)switch(i.enforce){case`pre`:t.push(i);break;case`post`:n.push(i);break;default:r.push(i)}return{pre:t,post:n,normal:r}}var wo=[`black`,`red`,`green`,`yellow`,`blue`,`magenta`,`cyan`,`white`,`brightBlack`,`brightRed`,`brightGreen`,`brightYellow`,`brightBlue`,`brightMagenta`,`brightCyan`,`brightWhite`],To={1:`bold`,2:`dim`,3:`italic`,4:`underline`,7:`reverse`,8:`hidden`,9:`strikethrough`};function Eo(e,t){let n=e.indexOf(`\x1B`,t);if(n!==-1&&e[n+1]===`[`){let t=e.indexOf(`m`,n);if(t!==-1)return{sequence:e.substring(n+2,t).split(`;`),startPosition:n,position:t+1}}return{position:e.length}}function Do(e){let t=e.shift();if(t===`2`){let t=e.splice(0,3).map(e=>Number.parseInt(e));return t.length!==3||t.some(e=>Number.isNaN(e))?void 0:{type:`rgb`,rgb:t}}else if(t===`5`){let t=e.shift();if(t)return{type:`table`,index:Number(t)}}}function Oo(e){let t=[];for(;e.length>0;){let n=e.shift();if(!n)continue;let r=Number.parseInt(n);if(!Number.isNaN(r))if(r===0)t.push({type:`resetAll`});else if(r<=9)To[r]&&t.push({type:`setDecoration`,value:To[r]});else if(r<=29){let e=To[r-20];e&&(t.push({type:`resetDecoration`,value:e}),e===`dim`&&t.push({type:`resetDecoration`,value:`bold`}))}else if(r<=37)t.push({type:`setForegroundColor`,value:{type:`named`,name:wo[r-30]}});else if(r===38){let n=Do(e);n&&t.push({type:`setForegroundColor`,value:n})}else if(r===39)t.push({type:`resetForegroundColor`});else if(r<=47)t.push({type:`setBackgroundColor`,value:{type:`named`,name:wo[r-40]}});else if(r===48){let n=Do(e);n&&t.push({type:`setBackgroundColor`,value:n})}else r===49?t.push({type:`resetBackgroundColor`}):r===53?t.push({type:`setDecoration`,value:`overline`}):r===55?t.push({type:`resetDecoration`,value:`overline`}):r>=90&&r<=97?t.push({type:`setForegroundColor`,value:{type:`named`,name:wo[r-90+8]}}):r>=100&&r<=107&&t.push({type:`setBackgroundColor`,value:{type:`named`,name:wo[r-100+8]}})}return t}function ko(){let e=null,t=null,n=new Set;return{parse(r){let i=[],a=0;do{let o=Eo(r,a),s=o.sequence?r.substring(a,o.startPosition):r.substring(a);if(s.length>0&&i.push({value:s,foreground:e,background:t,decorations:new Set(n)}),o.sequence){let r=Oo(o.sequence);for(let i of r)i.type===`resetAll`?(e=null,t=null,n.clear()):i.type===`resetForegroundColor`?e=null:i.type===`resetBackgroundColor`?t=null:i.type===`resetDecoration`&&n.delete(i.value);for(let i of r)i.type===`setForegroundColor`?e=i.value:i.type===`setBackgroundColor`?t=i.value:i.type===`setDecoration`&&n.add(i.value)}a=o.position}while(a<r.length);return i}}}var Ao={black:`#000000`,red:`#bb0000`,green:`#00bb00`,yellow:`#bbbb00`,blue:`#0000bb`,magenta:`#ff00ff`,cyan:`#00bbbb`,white:`#eeeeee`,brightBlack:`#555555`,brightRed:`#ff5555`,brightGreen:`#00ff00`,brightYellow:`#ffff55`,brightBlue:`#5555ff`,brightMagenta:`#ff55ff`,brightCyan:`#55ffff`,brightWhite:`#ffffff`};function jo(e=Ao){function t(t){return e[t]}function n(e){return`#${e.map(e=>Math.max(0,Math.min(e,255)).toString(16).padStart(2,`0`)).join(``)}`}let r;function i(){if(r)return r;r=[];for(let e=0;e<wo.length;e++)r.push(t(wo[e]));let e=[0,95,135,175,215,255];for(let t=0;t<6;t++)for(let i=0;i<6;i++)for(let a=0;a<6;a++)r.push(n([e[t],e[i],e[a]]));let i=8;for(let e=0;e<24;e++,i+=10)r.push(n([i,i,i]));return r}function a(e){return i()[e]}function o(e){switch(e.type){case`named`:return t(e.name);case`rgb`:return n(e.rgb);case`table`:return a(e.index)}}return{value:o}}var Mo=/#([0-9a-f]{3,8})/i,No=/var\((--[\w-]+-ansi-[\w-]+)\)/,Po={black:`#000000`,red:`#cd3131`,green:`#0DBC79`,yellow:`#E5E510`,blue:`#2472C8`,magenta:`#BC3FBC`,cyan:`#11A8CD`,white:`#E5E5E5`,brightBlack:`#666666`,brightRed:`#F14C4C`,brightGreen:`#23D18B`,brightYellow:`#F5F543`,brightBlue:`#3B8EEA`,brightMagenta:`#D670D6`,brightCyan:`#29B8DB`,brightWhite:`#FFFFFF`};function Fo(e,t,n){let r=br(e,n),i=kr(t),a=jo(Object.fromEntries(wo.map(t=>{let n=`terminal.ansi${t[0].toUpperCase()}${t.substring(1)}`;return[t,e.colors?.[n]||Po[t]]}))),o=ko();return i.map(t=>o.parse(t[0]).map(n=>{let i,o;n.decorations.has(`reverse`)?(i=n.background?a.value(n.background):e.bg,o=n.foreground?a.value(n.foreground):e.fg):(i=n.foreground?a.value(n.foreground):e.fg,o=n.background?a.value(n.background):void 0),i=xr(i,r),o=xr(o,r),n.decorations.has(`dim`)&&(i=Io(i));let s=H.None;return n.decorations.has(`bold`)&&(s|=H.Bold),n.decorations.has(`italic`)&&(s|=H.Italic),n.decorations.has(`underline`)&&(s|=H.Underline),n.decorations.has(`strikethrough`)&&(s|=H.Strikethrough),{content:n.value,offset:t[1],color:i,bgColor:o,fontStyle:s}}))}function Io(e){let t=e.match(Mo);if(t){let e=t[1];if(e.length===8){let t=Math.round(Number.parseInt(e.slice(6,8),16)/2).toString(16).padStart(2,`0`);return`#${e.slice(0,6)}${t}`}else if(e.length===6)return`#${e}80`;else if(e.length===4){let t=e[0],n=e[1],r=e[2],i=e[3];return`#${t}${t}${n}${n}${r}${r}${Math.round(Number.parseInt(`${i}${i}`,16)/2).toString(16).padStart(2,`0`)}`}else if(e.length===3){let t=e[0],n=e[1],r=e[2];return`#${t}${t}${n}${n}${r}${r}80`}}let n=e.match(No);return n?`var(${n[1]}-dim)`:e}function Lo(e,t,n={}){let r=e.resolveLangAlias(n.lang||`text`),{theme:i=e.getLoadedThemes()[0]}=n;if(!wr(r)&&!Er(i)&&r===`ansi`){let{theme:r}=e.setTheme(i);return Fo(r,t,n)}return Xr(e,t,n)}function Ro(e,t,n){let r,i,a,o,s,c;if(`themes`in n){let{defaultColor:l=`light`,cssVariablePrefix:u=`--shiki-`,colorsRendering:d=`css-vars`}=n,f=Object.entries(n.themes).filter(e=>e[1]).map(e=>({color:e[0],theme:e[1]})).sort((e,t)=>e.color===l?-1:+(t.color===l));if(f.length===0)throw new V("`themes` option must not be empty");let p=ai(e,t,n,Lo);if(c=Wr(p),l&&l!==`light-dark()`&&!f.some(e=>e.color===l))throw new V(`\`themes\` option must contain the defaultColor key \`${l}\``);let m=f.map(t=>e.getTheme(t.theme)),h=f.map(e=>e.color);a=p.map(e=>e.map(e=>ho(e,h,u,l,d))),c&&Ur(a,c);let g=f.map(e=>br(e.theme,n));i=zo(f,m,g,u,l,`fg`,d),r=zo(f,m,g,u,l,`bg`,d),o=`shiki-themes ${m.map(e=>e.name).join(` `)}`,s=l?void 0:[i,r].join(`;`)}else if(`theme`in n){let s=br(n.theme,n);a=Lo(e,t,n);let l=e.getTheme(n.theme);r=xr(l.bg,s),i=xr(l.fg,s),o=l.name,c=Wr(a)}else throw new V("Invalid options, either `theme` or `themes` must be provided");return{tokens:a,fg:i,bg:r,themeName:o,rootStyle:s,grammarState:c}}function zo(e,t,n,r,i,a,o){return e.map((s,c)=>{let l=xr(t[c][a],n[c])||`inherit`,u=`${r+s.color}${a===`bg`?`-bg`:``}:${l}`;if(c===0&&i){if(i===`light-dark()`&&e.length>1){let r=e.findIndex(e=>e.color===`light`),i=e.findIndex(e=>e.color===`dark`);if(r===-1||i===-1)throw new V('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');return`light-dark(${xr(t[r][a],n[r])||`inherit`}, ${xr(t[i][a],n[i])||`inherit`});${u}`}return l}return o===`css-vars`?u:null}).filter(e=>!!e).join(`;`)}var Bo=/^\s+$/,Vo=/^(\s*)(.*?)(\s*)$/;function Ho(e,t,n,r={meta:{},options:n,codeToHast:(t,n)=>Ho(e,t,n),codeToTokens:(t,n)=>Ro(e,t,n)}){let i=t;for(let e of So(n))i=e.preprocess?.call(r,i,n)||i;let{tokens:a,fg:o,bg:s,themeName:c,rootStyle:l,grammarState:u}=Ro(e,i,n),{mergeWhitespaces:d=!0,mergeSameStyleTokens:f=!1}=n;d===!0?a=Wo(a):d===`never`&&(a=Go(a)),f&&(a=Ko(a));let p={...r,get source(){return i}};for(let e of So(n))a=e.tokens?.call(p,a)||a;return Uo(a,{...n,fg:o,bg:s,themeName:c,rootStyle:n.rootStyle===!1?!1:n.rootStyle??l},p,u)}function Uo(e,t,n,r=Wr(e)){let i=So(t),a=[],o={type:`root`,children:[]},{structure:s=`classic`,tabindex:c=`0`}=t,l={class:`shiki ${t.themeName||``}`};t.rootStyle!==!1&&(t.rootStyle==null?l.style=`background-color:${t.bg};color:${t.fg}`:l.style=t.rootStyle),c!==!1&&c!=null&&(l.tabindex=c.toString());for(let[e,n]of Object.entries(t.meta||{}))e.startsWith(`_`)||(l[e]=n);let u={type:`element`,tagName:`pre`,properties:l,children:[],data:t.data},d={type:`element`,tagName:`code`,properties:{},children:a},f=[],p={...n,structure:s,addClassToHast:co,get source(){return n.source},get tokens(){return e},get options(){return t},get root(){return o},get pre(){return u},get code(){return d},get lines(){return f}};if(e.forEach((e,t)=>{t&&(s===`inline`?o.children.push({type:`element`,tagName:`br`,properties:{},children:[]}):s===`classic`&&a.push({type:`text`,value:`
12
+ `}));let n={type:`element`,tagName:`span`,properties:{class:`line`},children:[]},r=0;for(let a of e){let e={type:`element`,tagName:`span`,properties:{...a.htmlAttrs},children:[{type:`text`,value:a.content}]},c=_o(a.htmlStyle||go(a));c&&(e.properties.style=c);for(let o of i)e=o?.span?.call(p,e,t+1,r,n,a)||e;s===`inline`?o.children.push(e):s===`classic`&&n.children.push(e),r+=a.content.length}if(s===`classic`){for(let e of i)n=e?.line?.call(p,n,t+1)||n;f.push(n),a.push(n)}else s===`inline`&&f.push(n)}),s===`classic`){for(let e of i)d=e?.code?.call(p,d)||d;u.children.push(d);for(let e of i)u=e?.pre?.call(p,u)||u;o.children.push(u)}else if(s===`inline`){let e=[],t={type:`element`,tagName:`span`,properties:{class:`line`},children:[]};for(let n of o.children)n.type===`element`&&n.tagName===`br`?(e.push(t),t={type:`element`,tagName:`span`,properties:{class:`line`},children:[]}):(n.type===`element`||n.type===`text`)&&t.children.push(n);e.push(t);let n={type:`element`,tagName:`code`,properties:{},children:e};for(let e of i)n=e?.code?.call(p,n)||n;o.children=[];for(let e=0;e<n.children.length;e++){e>0&&o.children.push({type:`element`,tagName:`br`,properties:{},children:[]});let t=n.children[e];t.type===`element`&&o.children.push(...t.children)}}let m=o;for(let e of i)m=e?.root?.call(p,m)||m;return r&&Ur(m,r),m}function Wo(e){return e.map(e=>{let t=[],n=``,r;return e.forEach((i,a)=>{let o=!(i.fontStyle&&(i.fontStyle&H.Underline||i.fontStyle&H.Strikethrough));o&&Bo.test(i.content)&&e[a+1]?(r===void 0&&(r=i.offset),n+=i.content):n?(o?t.push({...i,offset:r,content:n+i.content}):t.push({content:n,offset:r},i),r=void 0,n=``):t.push(i)}),t})}function Go(e){return e.map(e=>e.flatMap(e=>{if(Bo.test(e.content))return e;let t=e.content.match(Vo);if(!t)return e;let[,n,r,i]=t;if(!n&&!i)return e;let a=[{...e,offset:e.offset+n.length,content:r}];return n&&a.unshift({content:n,offset:e.offset}),i&&a.push({content:i,offset:e.offset+n.length+r.length}),a}))}function Ko(e){return e.map(e=>{let t=[];for(let n of e){if(t.length===0){t.push({...n});continue}let e=t.at(-1),r=_o(e.htmlStyle||go(e)),i=_o(n.htmlStyle||go(n)),a=e.fontStyle&&(e.fontStyle&H.Underline||e.fontStyle&H.Strikethrough),o=n.fontStyle&&(n.fontStyle&H.Underline||n.fontStyle&H.Strikethrough);!a&&!o&&r===i?e.content+=n.content:t.push({...n})}return t})}var qo=io;function Jo(e,t,n){let r={meta:{},options:n,codeToHast:(t,n)=>Ho(e,t,n),codeToTokens:(t,n)=>Ro(e,t,n)},i=qo(Ho(e,t,n,r));for(let e of So(n))i=e.postprocess?.call(r,i,n)||i;return i}async function Yo(e){let t=await Vr(e);return{getLastGrammarState:(...e)=>Zr(t,...e),codeToTokensBase:(e,n)=>Lo(t,e,n),codeToTokensWithThemes:(e,n)=>ai(t,e,n),codeToTokens:(e,n)=>Ro(t,e,n),codeToHast:(e,n)=>Ho(t,e,n),codeToHtml:(e,n)=>Jo(t,e,n),getBundledLanguages:()=>({}),getBundledThemes:()=>({}),...t,getInternalContext:()=>t}}var Xo=4294967295,Zo=class{patterns;options;regexps;constructor(e,t={}){this.patterns=e,this.options=t;let{forgiving:n=!1,cache:r,regexConstructor:i}=t;if(!i)throw Error("Option `regexConstructor` is not provided");this.regexps=e.map(e=>{if(typeof e!=`string`)return e;let t=r?.get(e);if(t){if(t instanceof RegExp)return t;if(n)return null;throw t}try{let t=i(e);return r?.set(e,t),t}catch(t){if(r?.set(e,t),n)return null;throw t}})}findNextMatchSync(e,t,n){let r=typeof e==`string`?e:e.content,i=[];function a(e,t,n=0){return{index:e,captureIndices:t.indices.map(e=>e==null?{start:Xo,end:Xo,length:0}:{start:e[0]+n,end:e[1]+n,length:e[1]-e[0]})}}for(let e=0;e<this.regexps.length;e++){let n=this.regexps[e];if(n)try{n.lastIndex=t;let o=n.exec(r);if(!o)continue;if(o.index===t)return a(e,o,0);i.push([e,o,0])}catch(e){if(this.options.forgiving)continue;throw e}}if(i.length){let e=Math.min(...i.map(e=>e[1].index));for(let[t,n,r]of i)if(n.index===e)return a(t,n,r)}return null}};function Qo(e){if([...e].length!==1)throw Error(`Expected "${e}" to be a single code point`);return e.codePointAt(0)}function $o(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}var es=new Set([`alnum`,`alpha`,`ascii`,`blank`,`cntrl`,`digit`,`graph`,`lower`,`print`,`punct`,`space`,`upper`,`word`,`xdigit`]),X=String.raw;function ts(e,t){if(e==null)throw Error(t??`Value expected`);return e}var ns=X`\[\^?`,rs=`c.? | C(?:-.?)?|${X`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${X`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${X`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${X`o\{[^\}]*\}?`}|${X`\d{1,3}`}`,is=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,as=new RegExp(X`
13
+ \\ (?:
14
+ ${rs}
15
+ | [gk]<[^>]*>?
16
+ | [gk]'[^']*'?
17
+ | .
18
+ )
19
+ | \( (?:
20
+ \? (?:
21
+ [:=!>({]
22
+ | <[=!]
23
+ | <[^>]*>
24
+ | '[^']*'
25
+ | ~\|?
26
+ | #(?:[^)\\]|\\.?)*
27
+ | [^:)]*[:)]
28
+ )?
29
+ | \*[^\)]*\)?
30
+ )?
31
+ | (?:${is.source})+
32
+ | ${ns}
33
+ | .
34
+ `.replace(/\s+/g,``),`gsu`),os=new RegExp(X`
35
+ \\ (?:
36
+ ${rs}
37
+ | .
38
+ )
39
+ | \[:(?:\^?\p{Alpha}+|\^):\]
40
+ | ${ns}
41
+ | &&
42
+ | .
43
+ `.replace(/\s+/g,``),`gsu`);function ss(e,t={}){let n={flags:``,...t,rules:{captureGroup:!1,singleline:!1,...t.rules}};if(typeof e!=`string`)throw Error(`String expected as pattern`);let r=Ls(n.flags),i=[r.extended],a={captureGroup:n.rules.captureGroup,getCurrentModX(){return i.at(-1)},numOpenGroups:0,popModX(){i.pop()},pushModX(e){i.push(e)},replaceCurrentModX(e){i[i.length-1]=e},singleline:n.rules.singleline},o=[],s;for(as.lastIndex=0;s=as.exec(e);){let t=cs(a,e,s[0],as.lastIndex);t.tokens?o.push(...t.tokens):t.token&&o.push(t.token),t.lastIndex!==void 0&&(as.lastIndex=t.lastIndex)}let c=[],l=0;o.filter(e=>e.type===`GroupOpen`).forEach(e=>{e.kind===`capturing`?e.number=++l:e.raw===`(`&&c.push(e)}),l||c.forEach((e,t)=>{e.kind=`capturing`,e.number=t+1});let u=l||c.length;return{tokens:o.map(e=>e.type===`EscapedNumber`?zs(e,u):e).flat(),flags:r}}function cs(e,t,n,r){let[i,a]=n;if(n===`[`||n===`[^`){let e=ls(t,n,r);return{tokens:e.tokens,lastIndex:e.lastIndex}}if(i===`\\`){if(`AbBGyYzZ`.includes(a))return{token:ps(n,n)};if(/^\\g[<']/.test(n)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(n))throw Error(`Invalid group name "${n}"`);return{token:Ds(n)}}if(/^\\k[<']/.test(n)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(n))throw Error(`Invalid group name "${n}"`);return{token:ms(n)}}if(a===`K`)return{token:xs(`keep`,n)};if(a===`N`||a===`R`)return{token:bs(`newline`,n,{negate:a===`N`})};if(a===`O`)return{token:bs(`any`,n)};if(a===`X`)return{token:bs(`text_segment`,n)};let e=ds(n,{inCharClass:!1});return Array.isArray(e)?{tokens:e}:{token:e}}if(i===`(`){if(a===`*`)return{token:Ms(n)};if(n===`(?{`)throw Error(`Unsupported callout "${n}"`);if(n.startsWith(`(?#`)){if(t[r]!==`)`)throw Error(`Unclosed comment group "(?#"`);return{lastIndex:r+1}}if(/^\(\?[-imx]+[:)]$/.test(n))return{token:js(n,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,n===`(`&&!e.captureGroup||n===`(?:`)return{token:ws(`group`,n)};if(n===`(?>`)return{token:ws(`atomic`,n)};if(n===`(?=`||n===`(?!`||n===`(?<=`||n===`(?<!`)return{token:ws(n[2]===`<`?`lookbehind`:`lookahead`,n,{negate:n.endsWith(`!`)})};if(n===`(`&&e.captureGroup||n.startsWith(`(?<`)&&n.endsWith(`>`)||n.startsWith(`(?'`)&&n.endsWith(`'`))return{token:ws(`capturing`,n,{...n!==`(`&&{name:n.slice(3,-1)}})};if(n.startsWith(`(?~`)){if(n===`(?~|`)throw Error(`Unsupported absence function kind "${n}"`);return{token:ws(`absence_repeater`,n)}}throw Error(n===`(?(`?`Unsupported conditional "${n}"`:`Invalid or unsupported group option "${n}"`)}if(n===`)`){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw Error(`Unmatched ")"`);return{token:Cs(n)}}if(e.getCurrentModX()){if(n===`#`){let e=t.indexOf(`
44
+ `,r);return{lastIndex:e===-1?t.length:e}}if(/^\s$/.test(n)){let e=/\s+/y;return e.lastIndex=r,{lastIndex:e.exec(t)?e.lastIndex:r}}}return n===`.`?{token:bs(`dot`,n)}:n===`^`||n===`$`?{token:ps(e.singleline?{"^":X`\A`,$:X`\Z`}[n]:n,n)}:n===`|`?{token:fs(n)}:is.test(n)?{tokens:Bs(n)}:{token:hs(Qo(n),n)}}function ls(e,t,n){let r=[ys(t[1]===`^`,t)],i=1,a;for(os.lastIndex=n;a=os.exec(e);){let e=a[0];if(e[0]===`[`&&e[1]!==`:`)i++,r.push(ys(e[1]===`^`,e));else if(e===`]`){if(r.at(-1).type===`CharacterClassOpen`)r.push(hs(93,e));else if(i--,r.push(gs(e)),!i)break}else{let t=us(e);Array.isArray(t)?r.push(...t):r.push(t)}}return{tokens:r,lastIndex:os.lastIndex||e.length}}function us(e){if(e[0]===`\\`)return ds(e,{inCharClass:!0});if(e[0]===`[`){let t=/\[:(?<negate>\^?)(?<name>[a-z]+):\]/.exec(e);if(!t||!es.has(t.groups.name))throw Error(`Invalid POSIX class "${e}"`);return bs(`posix`,e,{value:t.groups.name,negate:!!t.groups.negate})}return e===`-`?_s(e):e===`&&`?vs(e):hs(Qo(e),e)}function ds(e,{inCharClass:t}){let n=e[1];if(n===`c`||n===`C`)return As(e);if(`dDhHsSwW`.includes(n))return Ps(e);if(e.startsWith(X`\o{`))throw Error(`Incomplete, invalid, or unsupported octal code point "${e}"`);if(/^\\[pP]\{/.test(e)){if(e.length===3)throw Error(`Incomplete or invalid Unicode property "${e}"`);return Fs(e)}if(/^\\x[89A-Fa-f]\p{AHex}/u.test(e))try{let t=e.split(/\\x/).slice(1).map(e=>parseInt(e,16)),n=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(t)),r=new TextEncoder;return[...n].map(e=>{let t=[...r.encode(e)].map(e=>`\\x${e.toString(16)}`).join(``);return hs(Qo(e),t)})}catch{throw Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(n===`u`||n===`x`)return hs(Rs(e),e);if(ks.has(n))return hs(ks.get(n),e);if(/\d/.test(n))return Ss(t,e);if(e===`\\`)throw Error(X`Incomplete escape "\"`);if(n===`M`)throw Error(`Unsupported meta "${e}"`);if([...e].length===2)return hs(e.codePointAt(1),e);throw Error(`Unexpected escape "${e}"`)}function fs(e){return{type:`Alternator`,raw:e}}function ps(e,t){return{type:`Assertion`,kind:e,raw:t}}function ms(e){return{type:`Backreference`,raw:e}}function hs(e,t){return{type:`Character`,value:e,raw:t}}function gs(e){return{type:`CharacterClassClose`,raw:e}}function _s(e){return{type:`CharacterClassHyphen`,raw:e}}function vs(e){return{type:`CharacterClassIntersector`,raw:e}}function ys(e,t){return{type:`CharacterClassOpen`,negate:e,raw:t}}function bs(e,t,n={}){return{type:`CharacterSet`,kind:e,...n,raw:t}}function xs(e,t,n={}){return e===`keep`?{type:`Directive`,kind:e,raw:t}:{type:`Directive`,kind:e,flags:ts(n.flags),raw:t}}function Ss(e,t){return{type:`EscapedNumber`,inCharClass:e,raw:t}}function Cs(e){return{type:`GroupClose`,raw:e}}function ws(e,t,n={}){return{type:`GroupOpen`,kind:e,...n,raw:t}}function Ts(e,t,n,r){return{type:`NamedCallout`,kind:e,tag:t,arguments:n,raw:r}}function Es(e,t,n,r){return{type:`Quantifier`,kind:e,min:t,max:n,raw:r}}function Ds(e){return{type:`Subroutine`,raw:e}}var Os=new Set([`COUNT`,`CMP`,`ERROR`,`FAIL`,`MAX`,`MISMATCH`,`SKIP`,`TOTAL_COUNT`]),ks=new Map([[`a`,7],[`b`,8],[`e`,27],[`f`,12],[`n`,10],[`r`,13],[`t`,9],[`v`,11]]);function As(e){let t=e[1]===`c`?e[2]:e[3];if(!t||!/[A-Za-z]/.test(t))throw Error(`Unsupported control character "${e}"`);return hs(Qo(t.toUpperCase())-64,e)}function js(e,t){let{on:n,off:r}=/^\(\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(e).groups;r??=``;let i=(t.getCurrentModX()||n.includes(`x`))&&!r.includes(`x`),a=Is(n),o=Is(r),s={};if(a&&(s.enable=a),o&&(s.disable=o),e.endsWith(`)`))return t.replaceCurrentModX(i),xs(`flags`,e,{flags:s});if(e.endsWith(`:`))return t.pushModX(i),t.numOpenGroups++,ws(`group`,e,{...(a||o)&&{flags:s}});throw Error(`Unexpected flag modifier "${e}"`)}function Ms(e){let t=/\(\*(?<name>[A-Za-z_]\w*)?(?:\[(?<tag>(?:[A-Za-z_]\w*)?)\])?(?:\{(?<args>[^}]*)\})?\)/.exec(e);if(!t)throw Error(`Incomplete or invalid named callout "${e}"`);let{name:n,tag:r,args:i}=t.groups;if(!n)throw Error(`Invalid named callout "${e}"`);if(r===``)throw Error(`Named callout tag with empty value not allowed "${e}"`);let a=i?i.split(`,`).filter(e=>e!==``).map(e=>/^[+-]?\d+$/.test(e)?+e:e):[],[o,s,c]=a,l=Os.has(n)?n.toLowerCase():`custom`;switch(l){case`fail`:case`mismatch`:case`skip`:if(a.length>0)throw Error(`Named callout arguments not allowed "${a}"`);break;case`error`:if(a.length>1)throw Error(`Named callout allows only one argument "${a}"`);if(typeof o==`string`)throw Error(`Named callout argument must be a number "${o}"`);break;case`max`:if(!a.length||a.length>2)throw Error(`Named callout must have one or two arguments "${a}"`);if(typeof o==`string`&&!/^[A-Za-z_]\w*$/.test(o))throw Error(`Named callout argument one must be a tag or number "${o}"`);if(a.length===2&&(typeof s==`number`||!/^[<>X]$/.test(s)))throw Error(`Named callout optional argument two must be '<', '>', or 'X' "${s}"`);break;case`count`:case`total_count`:if(a.length>1)throw Error(`Named callout allows only one argument "${a}"`);if(a.length===1&&(typeof o==`number`||!/^[<>X]$/.test(o)))throw Error(`Named callout optional argument must be '<', '>', or 'X' "${o}"`);break;case`cmp`:if(a.length!==3)throw Error(`Named callout must have three arguments "${a}"`);if(typeof o==`string`&&!/^[A-Za-z_]\w*$/.test(o))throw Error(`Named callout argument one must be a tag or number "${o}"`);if(typeof s==`number`||!/^(?:[<>!=]=|[<>])$/.test(s))throw Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' "${s}"`);if(typeof c==`string`&&!/^[A-Za-z_]\w*$/.test(c))throw Error(`Named callout argument three must be a tag or number "${c}"`);break;case`custom`:throw Error(`Undefined callout name "${n}"`);default:throw Error(`Unexpected named callout kind "${l}"`)}return Ts(l,r??null,i?.split(`,`)??null,e)}function Ns(e){let t=null,n,r;if(e[0]===`{`){let{minStr:i,maxStr:a}=/^\{(?<minStr>\d*)(?:,(?<maxStr>\d*))?/.exec(e).groups,o=1e5;if(+i>o||a&&+a>o)throw Error(`Quantifier value unsupported in Oniguruma`);if(n=+i,r=a===void 0?+i:a===``?1/0:+a,n>r&&(t=`possessive`,[n,r]=[r,n]),e.endsWith(`?`)){if(t===`possessive`)throw Error(`Unsupported possessive interval quantifier chain with "?"`);t=`lazy`}else t||=`greedy`}else n=+(e[0]===`+`),r=e[0]===`?`?1:1/0,t=e[1]===`+`?`possessive`:e[1]===`?`?`lazy`:`greedy`;return Es(t,n,r,e)}function Ps(e){let t=e[1].toLowerCase();return bs({d:`digit`,h:`hex`,s:`space`,w:`word`}[t],e,{negate:e[1]!==t})}function Fs(e){let{p:t,neg:n,value:r}=/^\\(?<p>[pP])\{(?<neg>\^?)(?<value>[^}]+)/.exec(e).groups;return bs(`property`,e,{value:r,negate:t===`P`&&!n||t===`p`&&!!n})}function Is(e){let t={};return e.includes(`i`)&&(t.ignoreCase=!0),e.includes(`m`)&&(t.dotAll=!0),e.includes(`x`)&&(t.extended=!0),Object.keys(t).length?t:null}function Ls(e){let t={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii:!1,posixIsAscii:!1,spaceIsAscii:!1,wordIsAscii:!1,textSegmentMode:null};for(let n=0;n<e.length;n++){let r=e[n];if(!`imxDPSWy`.includes(r))throw Error(`Invalid flag "${r}"`);if(r===`y`){if(!/^y{[gw]}/.test(e.slice(n)))throw Error(`Invalid or unspecified flag "y" mode`);t.textSegmentMode=e[n+2]===`g`?`grapheme`:`word`,n+=3;continue}t[{i:`ignoreCase`,m:`dotAll`,x:`extended`,D:`digitIsAscii`,P:`posixIsAscii`,S:`spaceIsAscii`,W:`wordIsAscii`}[r]]=!0}return t}function Rs(e){if(/^(?:\\u(?!\p{AHex}{4})|\\x(?!\p{AHex}{1,2}|\{\p{AHex}{1,8}\}))/u.test(e))throw Error(`Incomplete or invalid escape "${e}"`);let t=e[2]===`{`?/^\\x\{\s*(?<hex>\p{AHex}+)/u.exec(e).groups.hex:e.slice(2);return parseInt(t,16)}function zs(e,t){let{raw:n,inCharClass:r}=e,i=n.slice(1);if(!r&&(i!==`0`&&i.length===1||i[0]!==`0`&&+i<=t))return[ms(n)];let a=[],o=i.match(/^[0-7]+|\d/g);for(let e=0;e<o.length;e++){let t=o[e],r;if(e===0&&t!==`8`&&t!==`9`){if(r=parseInt(t,8),r>127)throw Error(X`Octal encoded byte above 177 unsupported "${n}"`)}else r=Qo(t);a.push(hs(r,(e===0?`\\`:``)+t))}return a}function Bs(e){let t=[],n=new RegExp(is,`gy`),r;for(;r=n.exec(e);){let e=r[0];if(e[0]===`{`){let r=/^\{(?<min>\d+),(?<max>\d+)\}\??$/.exec(e);if(r){let{min:i,max:a}=r.groups;if(+i>+a&&e.endsWith(`?`)){n.lastIndex--,t.push(Ns(e.slice(0,-1)));continue}}}t.push(Ns(e))}return t}function Vs(e,t){if(!Array.isArray(e.body))throw Error(`Expected node with body array`);if(e.body.length!==1)return!1;let n=e.body[0];return!t||Object.keys(t).every(e=>t[e]===n[e])}function Hs(e){return Us.has(e.type)}var Us=new Set([`AbsenceFunction`,`Backreference`,`CapturingGroup`,`Character`,`CharacterClass`,`CharacterSet`,`Group`,`Quantifier`,`Subroutine`]);function Ws(e,t={}){let n={flags:``,normalizeUnknownPropertyNames:!1,skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t,rules:{captureGroup:!1,singleline:!1,...t.rules}},r=ss(e,{flags:n.flags,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline}}),i=(e,t)=>{let n=r.tokens[a.nextIndex];switch(a.parent=e,a.nextIndex++,n.type){case`Alternator`:return ec();case`Assertion`:return Gs(n);case`Backreference`:return Ks(n,a);case`Character`:return ic(n.value,{useLastValid:!!t.isCheckingRangeEnd});case`CharacterClassHyphen`:return qs(n,a,t);case`CharacterClassOpen`:return Js(n,a,t);case`CharacterSet`:return Ys(n,a);case`Directive`:return cc(n.kind,{flags:n.flags});case`GroupOpen`:return Xs(n,a,t);case`NamedCallout`:return fc(n.kind,n.tag,n.arguments);case`Quantifier`:return Zs(n,a);case`Subroutine`:return Qs(n,a);default:throw Error(`Unexpected token type "${n.type}"`)}},a={capturingGroups:[],hasNumberedRef:!1,namedGroupsByName:new Map,nextIndex:0,normalizeUnknownPropertyNames:n.normalizeUnknownPropertyNames,parent:null,skipBackrefValidation:n.skipBackrefValidation,skipLookbehindValidation:n.skipLookbehindValidation,skipPropertyNameValidation:n.skipPropertyNameValidation,subroutines:[],tokens:r.tokens,unicodePropertyMap:n.unicodePropertyMap,walk:i},o=hc(lc(r.flags)),s=o.body[0];for(;a.nextIndex<r.tokens.length;){let e=i(s,{});e.type===`Alternative`?(o.body.push(e),s=e):s.body.push(e)}let{capturingGroups:c,hasNumberedRef:l,namedGroupsByName:u,subroutines:d}=a;if(l&&u.size&&!n.rules.captureGroup)throw Error(`Numbered backref/subroutine not allowed when using named capture`);for(let{ref:e}of d)if(typeof e==`number`){if(e>c.length)throw Error(`Subroutine uses a group number that's not defined`);e&&(c[e-1].isSubroutined=!0)}else if(u.has(e)){if(u.get(e).length>1)throw Error(X`Subroutine uses a duplicate group name "\g<${e}>"`);u.get(e)[0].isSubroutined=!0}else throw Error(X`Subroutine uses a group name that's not defined "\g<${e}>"`);return o}function Gs({kind:e}){return tc(ts({"^":`line_start`,$:`line_end`,"\\A":`string_start`,"\\b":`word_boundary`,"\\B":`word_boundary`,"\\G":`search_start`,"\\y":`text_segment_boundary`,"\\Y":`text_segment_boundary`,"\\z":`string_end`,"\\Z":`string_end_newline`}[e],`Unexpected assertion kind "${e}"`),{negate:e===X`\B`||e===X`\Y`})}function Ks({raw:e},t){let n=/^\\k[<']/.test(e),r=n?e.slice(3,-1):e.slice(1),i=(n,r=!1)=>{let i=t.capturingGroups.length,a=!1;if(n>i)if(t.skipBackrefValidation)a=!0;else throw Error(`Not enough capturing groups defined to the left "${e}"`);return t.hasNumberedRef=!0,nc(r?i+1-n:n,{orphan:a})};if(n){let n=/^(?<sign>-?)0*(?<num>[1-9]\d*)$/.exec(r);if(n)return i(+n.groups.num,!!n.groups.sign);if(/[-+]/.test(r))throw Error(`Invalid backref name "${e}"`);if(!t.namedGroupsByName.has(r))throw Error(`Group name not defined to the left "${e}"`);return nc(r)}return i(+r)}function qs(e,t,n){let{tokens:r,walk:i}=t,a=t.parent,o=a.body.at(-1),s=r[t.nextIndex];if(!n.isCheckingRangeEnd&&o&&o.type!==`CharacterClass`&&o.type!==`CharacterClassRange`&&s&&s.type!==`CharacterClassOpen`&&s.type!==`CharacterClassClose`&&s.type!==`CharacterClassIntersector`){let e=i(a,{...n,isCheckingRangeEnd:!0});if(o.type===`Character`&&e.type===`Character`)return a.body.pop(),oc(o,e);throw Error(`Invalid character class range`)}return ic(Qo(`-`))}function Js({negate:e},t,n){let{tokens:r,walk:i}=t,a=[ac()],o=r[t.nextIndex],s=Ec(o);for(;s.type!==`CharacterClassClose`;){if(s.type===`CharacterClassIntersector`)a.push(ac()),t.nextIndex++;else{let e=a.at(-1);e.body.push(i(e,n))}s=Ec(r[t.nextIndex],o)}let c=ac({negate:e});return a.length===1?c.body=a[0].body:(c.kind=`intersection`,c.body=a.map(e=>e.body.length===1?e.body[0]:e)),t.nextIndex++,c}function Ys({kind:e,negate:t,value:n},r){let{normalizeUnknownPropertyNames:i,skipPropertyNameValidation:a,unicodePropertyMap:o}=r;if(e===`property`){let r=Tc(n);if(es.has(r)&&!o?.has(r))e=`posix`,n=r;else return _c(n,{negate:t,normalizeUnknownPropertyNames:i,skipPropertyNameValidation:a,unicodePropertyMap:o})}return e===`posix`?pc(n,{negate:t}):sc(e,{negate:t})}function Xs(e,t,n){let{tokens:r,capturingGroups:i,namedGroupsByName:a,skipLookbehindValidation:o,walk:s}=t,c=vc(e),l=c.type===`AbsenceFunction`,u=Sc(c),d=u&&c.negate;if(c.type===`CapturingGroup`&&(i.push(c),c.name&&$o(a,c.name,[]).push(c)),l&&n.isInAbsenceFunction)throw Error(`Nested absence function not supported by Oniguruma`);let f=Dc(r[t.nextIndex]);for(;f.type!==`GroupClose`;){if(f.type===`Alternator`)c.body.push(ec()),t.nextIndex++;else{let e=c.body.at(-1),t=s(e,{...n,isInAbsenceFunction:n.isInAbsenceFunction||l,isInLookbehind:n.isInLookbehind||u,isInNegLookbehind:n.isInNegLookbehind||d});if(e.body.push(t),(u||n.isInLookbehind)&&!o){let e=`Lookbehind includes a pattern not allowed by Oniguruma`;if(d||n.isInNegLookbehind){if(xc(t)||t.type===`CapturingGroup`)throw Error(e)}else if(xc(t)||Sc(t)&&t.negate)throw Error(e)}}f=Dc(r[t.nextIndex])}return t.nextIndex++,c}function Zs({kind:e,min:t,max:n},r){let i=r.parent,a=i.body.at(-1);if(!a||!Hs(a))throw Error(`Quantifier requires a repeatable token`);let o=mc(e,t,n,a);return i.body.pop(),o}function Qs({raw:e},t){let{capturingGroups:n,subroutines:r}=t,i=e.slice(3,-1),a=/^(?<sign>[-+]?)0*(?<num>[1-9]\d*)$/.exec(i);if(a){let e=+a.groups.num,r=n.length;if(t.hasNumberedRef=!0,i={"":e,"+":r+e,"-":r+1-e}[a.groups.sign],i<1)throw Error(`Invalid subroutine number`)}else i===`0`&&(i=0);let o=gc(i);return r.push(o),o}function $s(e,t){if(e!==`repeater`)throw Error(`Unexpected absence function kind "${e}"`);return{type:`AbsenceFunction`,kind:e,body:yc(t?.body)}}function ec(e){return{type:`Alternative`,body:bc(e?.body)}}function tc(e,t){let n={type:`Assertion`,kind:e};return(e===`word_boundary`||e===`text_segment_boundary`)&&(n.negate=!!t?.negate),n}function nc(e,t){let n=!!t?.orphan;return{type:`Backreference`,ref:e,...n&&{orphan:n}}}function rc(e,t){let n={name:void 0,isSubroutined:!1,...t};if(n.name!==void 0&&!Cc(n.name))throw Error(`Group name "${n.name}" invalid in Oniguruma`);return{type:`CapturingGroup`,number:e,...n.name&&{name:n.name},...n.isSubroutined&&{isSubroutined:n.isSubroutined},body:yc(t?.body)}}function ic(e,t){let n={useLastValid:!1,...t};if(e>1114111){let t=e.toString(16);if(n.useLastValid)e=1114111;else throw Error(e>1310719?`Invalid code point out of range "\\x{${t}}"`:`Invalid code point out of range in JS "\\x{${t}}"`)}return{type:`Character`,value:e}}function ac(e){let t={kind:`union`,negate:!1,...e};return{type:`CharacterClass`,kind:t.kind,negate:t.negate,body:bc(e?.body)}}function oc(e,t){if(t.value<e.value)throw Error(`Character class range out of order`);return{type:`CharacterClassRange`,min:e,max:t}}function sc(e,t){let n=!!t?.negate,r={type:`CharacterSet`,kind:e};return(e===`digit`||e===`hex`||e===`newline`||e===`space`||e===`word`)&&(r.negate=n),(e===`text_segment`||e===`newline`&&!n)&&(r.variableLength=!0),r}function cc(e,t={}){if(e===`keep`)return{type:`Directive`,kind:e};if(e===`flags`)return{type:`Directive`,kind:e,flags:ts(t.flags)};throw Error(`Unexpected directive kind "${e}"`)}function lc(e){return{type:`Flags`,...e}}function uc(e){let t=e?.atomic,n=e?.flags;if(t&&n)throw Error(`Atomic group cannot have flags`);return{type:`Group`,...t&&{atomic:t},...n&&{flags:n},body:yc(e?.body)}}function dc(e){let t={behind:!1,negate:!1,...e};return{type:`LookaroundAssertion`,kind:t.behind?`lookbehind`:`lookahead`,negate:t.negate,body:yc(e?.body)}}function fc(e,t,n){return{type:`NamedCallout`,kind:e,tag:t,arguments:n}}function pc(e,t){let n=!!t?.negate;if(!es.has(e))throw Error(`Invalid POSIX class "${e}"`);return{type:`CharacterSet`,kind:`posix`,value:e,negate:n}}function mc(e,t,n,r){if(t>n)throw Error(`Invalid reversed quantifier range`);return{type:`Quantifier`,kind:e,min:t,max:n,body:r}}function hc(e,t){return{type:`Regex`,body:yc(t?.body),flags:e}}function gc(e){return{type:`Subroutine`,ref:e}}function _c(e,t){let n={negate:!1,normalizeUnknownPropertyNames:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t},r=n.unicodePropertyMap?.get(Tc(e));if(!r){if(n.normalizeUnknownPropertyNames)r=wc(e);else if(n.unicodePropertyMap&&!n.skipPropertyNameValidation)throw Error(X`Invalid Unicode property "\p{${e}}"`)}return{type:`CharacterSet`,kind:`property`,value:r??e,negate:n.negate}}function vc({flags:e,kind:t,name:n,negate:r,number:i}){switch(t){case`absence_repeater`:return $s(`repeater`);case`atomic`:return uc({atomic:!0});case`capturing`:return rc(i,{name:n});case`group`:return uc({flags:e});case`lookahead`:case`lookbehind`:return dc({behind:t===`lookbehind`,negate:r});default:throw Error(`Unexpected group kind "${t}"`)}}function yc(e){if(e===void 0)e=[ec()];else if(!Array.isArray(e)||!e.length||!e.every(e=>e.type===`Alternative`))throw Error(`Invalid body; expected array of one or more Alternative nodes`);return e}function bc(e){if(e===void 0)e=[];else if(!Array.isArray(e)||!e.every(e=>!!e.type))throw Error(`Invalid body; expected array of nodes`);return e}function xc(e){return e.type===`LookaroundAssertion`&&e.kind===`lookahead`}function Sc(e){return e.type===`LookaroundAssertion`&&e.kind===`lookbehind`}function Cc(e){return/^[\p{Alpha}\p{Pc}][^)]*$/u.test(e)}function wc(e){return e.trim().replace(/[- _]+/g,`_`).replace(/[A-Z][a-z]+(?=[A-Z])/g,`$&_`).replace(/[A-Za-z]+/g,e=>e[0].toUpperCase()+e.slice(1).toLowerCase())}function Tc(e){return e.replace(/[- _]+/g,``).toLowerCase()}function Ec(e,t){let n=t;return ts(e,`Unclosed character class${n?.type===`Character`&&n.value===93&&n.raw===`]`?` (started with "]")`:``}`)}function Dc(e){return ts(e,`Unclosed group`)}function Oc(e,t,n=null){function r(e,t){for(let n=0;n<e.length;n++){let r=i(e[n],t,n,e);n=Math.max(-1,n+r)}}function i(a,o=null,s=null,c=null){let l=0,u=!1,d={node:a,parent:o,key:s,container:c,root:e,remove(){kc(c).splice(Math.max(0,Ac(s)+l),1),l--,u=!0},removeAllNextSiblings(){return kc(c).splice(Ac(s)+1)},removeAllPrevSiblings(){let e=Ac(s)+l;return l-=e,kc(c).splice(0,Math.max(0,e))},replaceWith(e,t={}){let n=!!t.traverse;c?c[Math.max(0,Ac(s)+l)]=e:ts(o,`Can't replace root node`)[s]=e,n&&i(e,o,s,c),u=!0},replaceWithMultiple(e,t={}){let n=!!t.traverse;if(kc(c).splice(Math.max(0,Ac(s)+l),1,...e),l+=e.length-1,n){let t=0;for(let n=0;n<e.length;n++)t+=i(e[n],o,Ac(s)+n+t,c)}u=!0},skip(){u=!0}},{type:f}=a,p=t[`*`],m=t[f],h=typeof p==`function`?p:p?.enter,g=typeof m==`function`?m:m?.enter;if(h?.(d,n),g?.(d,n),!u)switch(f){case`AbsenceFunction`:case`Alternative`:case`CapturingGroup`:case`CharacterClass`:case`Group`:case`LookaroundAssertion`:r(a.body,a);break;case`Assertion`:case`Backreference`:case`Character`:case`CharacterSet`:case`Directive`:case`Flags`:case`NamedCallout`:case`Subroutine`:break;case`CharacterClassRange`:i(a.min,a,`min`),i(a.max,a,`max`);break;case`Quantifier`:i(a.body,a,`body`);break;case`Regex`:r(a.body,a),i(a.flags,a,`flags`);break;default:throw Error(`Unexpected node type "${f}"`)}return m?.exit?.(d,n),p?.exit?.(d,n),l}return i(e),e}function kc(e){if(!Array.isArray(e))throw Error(`Container expected`);return e}function Ac(e){if(typeof e!=`number`)throw Error(`Numeric key expected`);return e}var jc=String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;function Mc(e,t){for(let n=0;n<e.length;n++)e[n]>=t&&e[n]++}function Nc(e,t,n,r){return e.slice(0,t)+r+e.slice(t+n.length)}var Pc=Object.freeze({DEFAULT:`DEFAULT`,CHAR_CLASS:`CHAR_CLASS`});function Fc(e,t,n,r){let i=new RegExp(String.raw`${t}|(?<$skip>\[\^?|\\?.)`,`gsu`),a=[!1],o=0,s=``;for(let t of e.matchAll(i)){let{0:e,groups:{$skip:i}}=t;if(!i&&(!r||r===Pc.DEFAULT==!o)){n instanceof Function?s+=n(t,{context:o?Pc.CHAR_CLASS:Pc.DEFAULT,negated:a[a.length-1]}):s+=n;continue}e[0]===`[`?(o++,a.push(e[1]===`^`)):e===`]`&&o&&(o--,a.pop()),s+=e}return s}function Ic(e,t,n,r){Fc(e,t,n,r)}function Lc(e,t,n=0,r){if(!new RegExp(t,`su`).test(e))return null;let i=RegExp(`${t}|(?<$skip>\\\\?.)`,`gsu`);i.lastIndex=n;let a=0,o;for(;o=i.exec(e);){let{0:e,groups:{$skip:t}}=o;if(!t&&(!r||r===Pc.DEFAULT==!a))return o;e===`[`?a++:e===`]`&&a&&a--,i.lastIndex==o.index&&i.lastIndex++}return null}function Rc(e,t,n){return!!Lc(e,t,0,n)}function zc(e,t){let n=/\\?./gsu;n.lastIndex=t;let r=e.length,i=0,a=1,o;for(;o=n.exec(e);){let[e]=o;if(e===`[`)i++;else if(i)e===`]`&&i--;else if(e===`(`)a++;else if(e===`)`&&(a--,!a)){r=o.index;break}}return e.slice(t,r)}var Bc=new RegExp(String.raw`(?<noncapturingStart>${jc})|(?<capturingStart>\((?:\?<[^>]+>)?)|\\?.`,`gsu`);function Vc(e,t){let n=t?.hiddenCaptures??[],r=t?.captureTransfers??new Map;if(!/\(\?>/.test(e))return{pattern:e,captureTransfers:r,hiddenCaptures:n};let i=[0],a=[],o=0,s=0,c=NaN,l;do{l=!1;let t=0,u=0,d=!1,f;for(Bc.lastIndex=Number.isNaN(c)?0:c+7;f=Bc.exec(e);){let{0:p,index:m,groups:{capturingStart:h,noncapturingStart:g}}=f;if(p===`[`)t++;else if(t)p===`]`&&t--;else if(p===`(?>`&&!d)c=m,d=!0;else if(d&&g)u++;else if(h)d?u++:(o++,i.push(o+s));else if(p===`)`&&d){if(!u){s++;let t=o+s;if(e=`${e.slice(0,c)}(?:(?=(${e.slice(c+3,m)}))<$$${t}>)${e.slice(m+1)}`,l=!0,a.push(t),Mc(n,t),r.size){let e=new Map;r.forEach((n,r)=>{e.set(r>=t?r+1:r,n.map(e=>e>=t?e+1:e))}),r=e}break}u--}}}while(l);return n.push(...a),e=Fc(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:e,groups:{backrefNum:t,wrappedBackrefNum:n}})=>{if(t){let n=+t;if(n>i.length-1)throw Error(`Backref "${e}" greater than number of captures`);return`\\${i[n]}`}return`\\${n}`},Pc.DEFAULT),{pattern:e,captureTransfers:r,hiddenCaptures:n}}var Hc=String.raw`(?:[?*+]|\{\d+(?:,\d*)?\})`,Uc=new RegExp(String.raw`
45
+ \\(?: \d+
46
+ | c[A-Za-z]
47
+ | [gk]<[^>]+>
48
+ | [pPu]\{[^\}]+\}
49
+ | u[A-Fa-f\d]{4}
50
+ | x[A-Fa-f\d]{2}
51
+ )
52
+ | \((?: \? (?: [:=!>]
53
+ | <(?:[=!]|[^>]+>)
54
+ | [A-Za-z\-]+:
55
+ | \(DEFINE\)
56
+ ))?
57
+ | (?<qBase>${Hc})(?<qMod>[?+]?)(?<invalidQ>[?*+\{]?)
58
+ | \\?.
59
+ `.replace(/\s+/g,``),`gsu`);function Wc(e){if(!RegExp(`${Hc}\\+`).test(e))return{pattern:e};let t=[],n=null,r=null,i=``,a=0,o;for(Uc.lastIndex=0;o=Uc.exec(e);){let{0:s,index:c,groups:{qBase:l,qMod:u,invalidQ:d}}=o;if(s===`[`)a||(r=c),a++;else if(s===`]`)a?a--:r=null;else if(!a)if(u===`+`&&i&&!i.startsWith(`(`)){if(d)throw Error(`Invalid quantifier "${s}"`);let t=-1;if(/^\{\d+\}$/.test(l))e=Nc(e,c+l.length,u,``);else{if(i===`)`||i===`]`){let t=i===`)`?n:r;if(t===null)throw Error(`Invalid unmatched "${i}"`);e=`${e.slice(0,t)}(?>${e.slice(t,c)}${l})${e.slice(c+s.length)}`}else e=`${e.slice(0,c-i.length)}(?>${i}${l})${e.slice(c+s.length)}`;t+=4}Uc.lastIndex+=t}else s[0]===`(`?t.push(c):s===`)`&&(n=t.length?t.pop():null);i=s}return{pattern:e}}var Gc=String.raw,Kc=Gc`\(\?R=(?<rDepth>[^\)]+)\)|${Gc`\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`}`,qc=Gc`\(\?<(?![=!])(?<captureName>[^>]+)>`,Jc=Gc`${qc}|(?<unnamed>\()(?!\?)`,Yc=new RegExp(Gc`${qc}|${Kc}|\(\?|\\?.`,`gsu`),Xc=`Cannot use multiple overlapping recursions`;function Zc(e,t){let{hiddenCaptures:n,mode:r}={hiddenCaptures:[],mode:`plugin`,...t},i=t?.captureTransfers??new Map;if(!new RegExp(Kc,`su`).test(e))return{pattern:e,captureTransfers:i,hiddenCaptures:n};if(r===`plugin`&&Rc(e,Gc`\(\?\(DEFINE\)`,Pc.DEFAULT))throw Error(`DEFINE groups cannot be used with recursion`);let a=[],o=Rc(e,Gc`\\[1-9]`,Pc.DEFAULT),s=new Map,c=[],l=!1,u=0,d=0,f;for(Yc.lastIndex=0;f=Yc.exec(e);){let{0:t,groups:{captureName:p,rDepth:m,gRNameOrNum:h,gRDepth:g}}=f;if(t===`[`)u++;else if(u)t===`]`&&u--;else if(m){if(Qc(m),l)throw Error(Xc);if(o)throw Error(`${r===`external`?`Backrefs`:`Numbered backrefs`} cannot be used with global recursion`);let t=e.slice(0,f.index),s=e.slice(Yc.lastIndex);if(Rc(s,Kc,Pc.DEFAULT))throw Error(Xc);let c=m-1;e=$c(t,s,c,!1,n,a,d),i=nl(i,t,c,a.length,0,d);break}else if(h){Qc(g);let u=!1;for(let e of c)if(e.name===h||e.num===+h){if(u=!0,e.hasRecursedWithin)throw Error(Xc);break}if(!u)throw Error(Gc`Recursive \g cannot be used outside the referenced group "${r===`external`?h:Gc`\g<${h}&R=${g}>`}"`);let p=s.get(h),m=zc(e,p);if(o&&Rc(m,Gc`${qc}|\((?!\?)`,Pc.DEFAULT))throw Error(`${r===`external`?`Backrefs`:`Numbered backrefs`} cannot be used with recursion of capturing groups`);let _=e.slice(p,f.index),v=m.slice(_.length+t.length),y=a.length,b=g-1,x=$c(_,v,b,!0,n,a,d);i=nl(i,_,b,a.length-y,y,d),e=`${e.slice(0,p)}${x}${e.slice(p+m.length)}`,Yc.lastIndex+=x.length-t.length-_.length-v.length,c.forEach(e=>e.hasRecursedWithin=!0),l=!0}else if(p)d++,s.set(String(d),Yc.lastIndex),s.set(p,Yc.lastIndex),c.push({num:d,name:p});else if(t[0]===`(`){let e=t===`(`;e&&(d++,s.set(String(d),Yc.lastIndex)),c.push(e?{num:d}:{})}else t===`)`&&c.pop()}return n.push(...a),{pattern:e,captureTransfers:i,hiddenCaptures:n}}function Qc(e){let t=`Max depth must be integer between 2 and 100; used ${e}`;if(!/^[1-9]\d*$/.test(e)||(e=+e,e<2||e>100))throw Error(t)}function $c(e,t,n,r,i,a,o){let s=new Set;r&&Ic(e+t,qc,({groups:{captureName:e}})=>{s.add(e)},Pc.DEFAULT);let c=[n,r?s:null,i,a,o];return`${e}${el(`(?:${e}`,`forward`,...c)}(?:)${el(`${t})`,`backward`,...c)}${t}`}function el(e,t,n,r,i,a,o){let s=e=>t===`forward`?e+2:n-e+2-1,c=``;for(let t=0;t<n;t++){let n=s(t);c+=Fc(e,Gc`${Jc}|\\k<(?<backref>[^>]+)>`,({0:e,groups:{captureName:t,unnamed:s,backref:c}})=>{if(c&&r&&!r.has(c))return e;let l=`_$${n}`;if(s||t){let n=o+a.length+1;return a.push(n),tl(i,n),s?e:`(?<${t}${l}>`}return Gc`\k<${c}${l}>`},Pc.DEFAULT)}return c}function tl(e,t){for(let n=0;n<e.length;n++)e[n]>=t&&e[n]++}function nl(e,t,n,r,i,a){if(e.size&&r){let o=0;Ic(t,Jc,()=>o++,Pc.DEFAULT);let s=a-o+i,c=new Map;return e.forEach((e,t)=>{let i=(r-o*n)/n,a=o*n,l=t>s+o?t+r:t,u=[];for(let t of e)if(t<=s)u.push(t);else if(t>s+o+i)u.push(t+r);else if(t<=s+o)for(let e=0;e<=n;e++)u.push(t+o*e);else for(let e=0;e<=n;e++)u.push(t+a+i*e);c.set(l,u)}),c}return e}var Z=String.fromCodePoint,Q=String.raw,rl={},il=globalThis.RegExp;rl.flagGroups=(()=>{try{new il(`(?i:)`)}catch{return!1}return!0})(),rl.unicodeSets=(()=>{try{new il(`[[]]`,`v`)}catch{return!1}return!0})(),rl.bugFlagVLiteralHyphenIsRange=rl.unicodeSets?(()=>{try{new il(Q`[\d\-a]`,`v`)}catch{return!0}return!1})():!1,rl.bugNestedClassIgnoresNegation=rl.unicodeSets&&new il(`[[^a]]`,`v`).test(`a`);function al(e,{enable:t,disable:n}){return{dotAll:!n?.dotAll&&!!(t?.dotAll||e.dotAll),ignoreCase:!n?.ignoreCase&&!!(t?.ignoreCase||e.ignoreCase)}}function ol(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}function sl(e,t){return ll[e]>=ll[t]}function cl(e,t){if(e==null)throw Error(t??`Value expected`);return e}var ll={ES2025:2025,ES2024:2024,ES2018:2018},ul={auto:`auto`,ES2025:`ES2025`,ES2024:`ES2024`,ES2018:`ES2018`};function dl(e={}){if({}.toString.call(e)!==`[object Object]`)throw Error(`Unexpected options`);if(e.target!==void 0&&!ul[e.target])throw Error(`Unexpected target "${e.target}"`);let t={accuracy:`default`,avoidSubclass:!1,flags:``,global:!1,hasIndices:!1,lazyCompileLength:1/0,target:`auto`,verbose:!1,...e,rules:{allowOrphanBackrefs:!1,asciiWordBoundaries:!1,captureGroup:!1,recursionLimit:20,singleline:!1,...e.rules}};return t.target===`auto`&&(t.target=rl.flagGroups?`ES2025`:rl.unicodeSets?`ES2024`:`ES2018`),t}var fl=`[ -\r ]`,pl=new Set([Z(304),Z(305)]),ml=Q`[\p{L}\p{M}\p{N}\p{Pc}]`;function hl(e){if(pl.has(e))return[e];let t=new Set,n=e.toLowerCase(),r=n.toUpperCase(),i=yl.get(n),a=_l.get(n),o=vl.get(n);return[...r].length===1&&t.add(r),o&&t.add(o),i&&t.add(i),t.add(n),a&&t.add(a),[...t]}var gl=new Map(`C Other
60
+ Cc Control cntrl
61
+ Cf Format
62
+ Cn Unassigned
63
+ Co Private_Use
64
+ Cs Surrogate
65
+ L Letter
66
+ LC Cased_Letter
67
+ Ll Lowercase_Letter
68
+ Lm Modifier_Letter
69
+ Lo Other_Letter
70
+ Lt Titlecase_Letter
71
+ Lu Uppercase_Letter
72
+ M Mark Combining_Mark
73
+ Mc Spacing_Mark
74
+ Me Enclosing_Mark
75
+ Mn Nonspacing_Mark
76
+ N Number
77
+ Nd Decimal_Number digit
78
+ Nl Letter_Number
79
+ No Other_Number
80
+ P Punctuation punct
81
+ Pc Connector_Punctuation
82
+ Pd Dash_Punctuation
83
+ Pe Close_Punctuation
84
+ Pf Final_Punctuation
85
+ Pi Initial_Punctuation
86
+ Po Other_Punctuation
87
+ Ps Open_Punctuation
88
+ S Symbol
89
+ Sc Currency_Symbol
90
+ Sk Modifier_Symbol
91
+ Sm Math_Symbol
92
+ So Other_Symbol
93
+ Z Separator
94
+ Zl Line_Separator
95
+ Zp Paragraph_Separator
96
+ Zs Space_Separator
97
+ ASCII
98
+ ASCII_Hex_Digit AHex
99
+ Alphabetic Alpha
100
+ Any
101
+ Assigned
102
+ Bidi_Control Bidi_C
103
+ Bidi_Mirrored Bidi_M
104
+ Case_Ignorable CI
105
+ Cased
106
+ Changes_When_Casefolded CWCF
107
+ Changes_When_Casemapped CWCM
108
+ Changes_When_Lowercased CWL
109
+ Changes_When_NFKC_Casefolded CWKCF
110
+ Changes_When_Titlecased CWT
111
+ Changes_When_Uppercased CWU
112
+ Dash
113
+ Default_Ignorable_Code_Point DI
114
+ Deprecated Dep
115
+ Diacritic Dia
116
+ Emoji
117
+ Emoji_Component EComp
118
+ Emoji_Modifier EMod
119
+ Emoji_Modifier_Base EBase
120
+ Emoji_Presentation EPres
121
+ Extended_Pictographic ExtPict
122
+ Extender Ext
123
+ Grapheme_Base Gr_Base
124
+ Grapheme_Extend Gr_Ext
125
+ Hex_Digit Hex
126
+ IDS_Binary_Operator IDSB
127
+ IDS_Trinary_Operator IDST
128
+ ID_Continue IDC
129
+ ID_Start IDS
130
+ Ideographic Ideo
131
+ Join_Control Join_C
132
+ Logical_Order_Exception LOE
133
+ Lowercase Lower
134
+ Math
135
+ Noncharacter_Code_Point NChar
136
+ Pattern_Syntax Pat_Syn
137
+ Pattern_White_Space Pat_WS
138
+ Quotation_Mark QMark
139
+ Radical
140
+ Regional_Indicator RI
141
+ Sentence_Terminal STerm
142
+ Soft_Dotted SD
143
+ Terminal_Punctuation Term
144
+ Unified_Ideograph UIdeo
145
+ Uppercase Upper
146
+ Variation_Selector VS
147
+ White_Space space
148
+ XID_Continue XIDC
149
+ XID_Start XIDS`.split(/\s/).map(e=>[Tc(e),e])),_l=new Map([[`s`,Z(383)],[Z(383),`s`]]),vl=new Map([[Z(223),Z(7838)],[Z(107),Z(8490)],[Z(229),Z(8491)],[Z(969),Z(8486)]]),yl=new Map([Sl(453),Sl(456),Sl(459),Sl(498),...Cl(8072,8079),...Cl(8088,8095),...Cl(8104,8111),Sl(8124),Sl(8140),Sl(8188)]),bl=new Map([[`alnum`,Q`[\p{Alpha}\p{Nd}]`],[`alpha`,Q`\p{Alpha}`],[`ascii`,Q`\p{ASCII}`],[`blank`,Q`[\p{Zs}\t]`],[`cntrl`,Q`\p{Cc}`],[`digit`,Q`\p{Nd}`],[`graph`,Q`[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]`],[`lower`,Q`\p{Lower}`],[`print`,Q`[[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],[`punct`,Q`[\p{P}\p{S}]`],[`space`,Q`\p{space}`],[`upper`,Q`\p{Upper}`],[`word`,Q`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],[`xdigit`,Q`\p{AHex}`]]);function xl(e,t){let n=[];for(let r=e;r<=t;r++)n.push(r);return n}function Sl(e){let t=Z(e);return[t.toLowerCase(),t]}function Cl(e,t){return xl(e,t).map(e=>Sl(e))}var wl=new Set([`Lower`,`Lowercase`,`Upper`,`Uppercase`,`Ll`,`Lowercase_Letter`,`Lt`,`Titlecase_Letter`,`Lu`,`Uppercase_Letter`]);function Tl(e,t){let n={accuracy:`default`,asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:`ES2025`,...t};kl(e);let r={accuracy:n.accuracy,asciiWordBoundaries:n.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:sl(n.bestEffortTarget,`ES2024`),passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:e.flags.digitIsAscii,spaceIsAscii:e.flags.spaceIsAscii,wordIsAscii:e.flags.wordIsAscii};Oc(e,El,r);let i={dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},a={currentFlags:i,prevFlags:null,globalFlags:i,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:r.subroutineRefMap};return Oc(e,Dl,a),Oc(e,Ol,{groupsByName:a.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:a.reffedNodesByReferencer}),e._originMap=a.groupOriginByCopy,e._strategy=r.strategy,e}var El={AbsenceFunction({node:e,parent:t,replaceWith:n}){let{body:r,kind:i}=e;if(i===`repeater`){let e=uc();e.body[0].body.push(dc({negate:!0,body:r}),_c(`Any`));let i=uc();i.body[0].body.push(mc(`greedy`,0,1/0,e)),n($(i,t),{traverse:!0})}else throw Error(`Unsupported absence function "(?~|"`)},Alternative:{enter({node:e,parent:t,key:n},{flagDirectivesByAlt:r}){let i=e.body.filter(e=>e.kind===`flags`);for(let e=n+1;e<t.body.length;e++){let n=t.body[e];ol(r,n,[]).push(...i)}},exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){let n=Il(t.get(e));if(n){let t=uc({flags:n});t.body[0].body=e.body,e.body=[$(t,e)]}}}},Assertion({node:e,parent:t,key:n,container:r,root:i,remove:a,replaceWith:o},s){let{kind:c,negate:l}=e,{asciiWordBoundaries:u,avoidSubclass:d,supportedGNodes:f,wordIsAscii:p}=s;if(c===`text_segment_boundary`)throw Error(`Unsupported text segment boundary "\\${l?`Y`:`y`}"`);if(c===`line_end`)o($(dc({body:[ec({body:[tc(`string_end`)]}),ec({body:[ic(10)]})]}),t));else if(c===`line_start`)o($(Gl(Q`(?<=\A|\n(?!\z))`,{skipLookbehindValidation:!0}),t));else if(c===`search_start`)if(f.has(e))i.flags.sticky=!0,a();else{let e=r[n-1];if(e&&Hl(e))o($(dc({negate:!0}),t));else if(d)throw Error(Q`Uses "\G" in a way that requires a subclass`);else o(ql(tc(`string_start`),t)),s.strategy=`clip_search`}else if(!(c===`string_end`||c===`string_start`))if(c===`string_end_newline`)o($(Gl(Q`(?=\n?\z)`),t));else if(c===`word_boundary`){if(!p&&!u){let e=`(?:(?<=${ml})(?!${ml})|(?<!${ml})(?=${ml}))`,n=`(?:(?<=${ml})(?=${ml})|(?<!${ml})(?!${ml}))`;o($(Gl(l?n:e),t))}}else throw Error(`Unexpected assertion kind "${c}"`)},Backreference({node:e},{jsGroupNameMap:t}){let{ref:n}=e;typeof n==`string`&&!Wl(n)&&(n=Fl(n,t),e.ref=n)},CapturingGroup({node:e},{jsGroupNameMap:t,subroutineRefMap:n}){let{name:r}=e;r&&!Wl(r)&&(r=Fl(r,t),e.name=r),n.set(e.number,e),r&&n.set(r,e)},CharacterClassRange({node:e,parent:t,replaceWith:n}){t.kind===`intersection`&&n($(ac({body:[e]}),t),{traverse:!0})},CharacterSet({node:e,parent:t,replaceWith:n},{accuracy:r,minTargetEs2024:i,digitIsAscii:a,spaceIsAscii:o,wordIsAscii:s}){let{kind:c,negate:l,value:u}=e;if(a&&(c===`digit`||u===`digit`)){n(ql(sc(`digit`,{negate:l}),t));return}if(o&&(c===`space`||u===`space`)){n($(Kl(Gl(fl),l),t));return}if(s&&(c===`word`||u===`word`)){n(ql(sc(`word`,{negate:l}),t));return}if(c===`any`)n(ql(_c(`Any`),t));else if(c===`digit`)n(ql(_c(`Nd`,{negate:l}),t));else if(c!==`dot`)if(c===`text_segment`){if(r===`strict`)throw Error(Q`Use of "\X" requires non-strict accuracy`);let e=`\\p{Emoji}(?:\\p{EMod}|\\uFE0F\\u20E3?|[\\x{E0020}-\\x{E007E}]+\\x{E007F})?`,a=Q`\p{RI}{2}|${e}(?:\u200D${e})*`;n($(Gl(Q`(?>\r\n|${i?Q`\p{RGI_Emoji}`:a}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}),t))}else if(c===`hex`)n(ql(_c(`AHex`,{negate:l}),t));else if(c===`newline`)n($(Gl(l?`[^
150
+ ]`:`(?>\r
151
+ ?|[
152
+ \v\f…\u2028\u2029])`),t));else if(c===`posix`)if(!i&&(u===`graph`||u===`print`)){if(r===`strict`)throw Error(`POSIX class "${u}" requires min target ES2024 or non-strict accuracy`);let e={graph:`!-~`,print:` -~`}[u];l&&(e=`\0-${Z(e.codePointAt(0)-1)}${Z(e.codePointAt(2)+1)}-\u{10FFFF}`),n($(Gl(`[${e}]`),t))}else n($(Kl(Gl(bl.get(u)),l),t));else if(c===`property`)gl.has(Tc(u))||(e.key=`sc`);else if(c===`space`)n(ql(_c(`space`,{negate:l}),t));else if(c===`word`)n($(Kl(Gl(ml),l),t));else throw Error(`Unexpected character set kind "${c}"`)},Directive({node:e,parent:t,root:n,remove:r,replaceWith:i,removeAllPrevSiblings:a,removeAllNextSiblings:o}){let{kind:s,flags:c}=e;if(s===`flags`)if(!c.enable&&!c.disable)r();else{let e=uc({flags:c});e.body[0].body=o(),i($(e,t),{traverse:!0})}else if(s===`keep`){let e=n.body[0],r=n.body.length===1&&Vs(e,{type:`Group`})&&e.body[0].body.length===1?e.body[0]:n;if(t.parent!==r||r.body.length>1)throw Error(Q`Uses "\K" in a way that's unsupported`);let o=dc({behind:!0});o.body[0].body=a(),i($(o,t))}else throw Error(`Unexpected directive kind "${s}"`)},Flags({node:e,parent:t}){if(e.posixIsAscii)throw Error(`Unsupported flag "P"`);if(e.textSegmentMode===`word`)throw Error(`Unsupported flag "y{w}"`);[`digitIsAscii`,`extended`,`posixIsAscii`,`spaceIsAscii`,`wordIsAscii`,`textSegmentMode`].forEach(t=>delete e[t]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),t.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;let{enable:t,disable:n}=e.flags;t?.extended&&delete t.extended,n?.extended&&delete n.extended,t?.dotAll&&n?.dotAll&&delete t.dotAll,t?.ignoreCase&&n?.ignoreCase&&delete t.ignoreCase,t&&!Object.keys(t).length&&delete e.flags.enable,n&&!Object.keys(n).length&&delete e.flags.disable,!e.flags.enable&&!e.flags.disable&&delete e.flags},LookaroundAssertion({node:e},t){let{kind:n}=e;n===`lookbehind`&&(t.passedLookbehind=!0)},NamedCallout({node:e,parent:t,replaceWith:n}){let{kind:r}=e;if(r===`fail`)n($(dc({negate:!0}),t));else throw Error(`Unsupported named callout "(*${r.toUpperCase()}"`)},Quantifier({node:e}){if(e.body.type===`Quantifier`){let t=uc();t.body[0].body.push(e.body),e.body=$(t,e)}},Regex:{enter({node:e},{supportedGNodes:t}){let n=[],r=!1,i=!1;for(let t of e.body)if(t.body.length===1&&t.body[0].kind===`search_start`)t.body.pop();else{let e=zl(t.body);e?(r=!0,Array.isArray(e)?n.push(...e):n.push(e)):i=!0}r&&!i&&n.forEach(e=>t.add(e))},exit(e,{accuracy:t,passedLookbehind:n,strategy:r}){if(t===`strict`&&n&&r)throw Error(Q`Uses "\G" in a way that requires non-strict accuracy`)}},Subroutine({node:e},{jsGroupNameMap:t}){let{ref:n}=e;typeof n==`string`&&!Wl(n)&&(n=Fl(n,t),e.ref=n)}},Dl={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:n}){let{orphan:r,ref:i}=e;r||n.set(e,[...t.get(i).map(({node:e})=>e)])},CapturingGroup:{enter({node:e,parent:t,replaceWith:n,skip:r},{groupOriginByCopy:i,groupsByName:a,multiplexCapturesToLeftByRef:o,openRefs:s,reffedNodesByReferencer:c}){let l=i.get(e);if(l&&s.has(e.number)){let r=ql(Nl(e.number),t);c.set(r,s.get(e.number)),n(r);return}s.set(e.number,e),o.set(e.number,[]),e.name&&ol(o,e.name,[]);let u=o.get(e.name??e.number);for(let t=0;t<u.length;t++){let n=u[t];if(l===n.node||l&&l===n.origin||e===n.origin){u.splice(t,1);break}}if(o.get(e.number).push({node:e,origin:l}),e.name&&o.get(e.name).push({node:e,origin:l}),e.name){let t=ol(a,e.name,new Map),n=!1;if(l)n=!0;else for(let e of t.values())if(!e.hasDuplicateNameToRemove){n=!0;break}a.get(e.name).set(e,{node:e,hasDuplicateNameToRemove:n})}},exit({node:e},{openRefs:t}){t.get(e.number)===e&&t.delete(e.number)}},Group:{enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=al(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Subroutine({node:e,parent:t,replaceWith:n},r){let{isRecursive:i,ref:a}=e;if(i){let n=t;for(;(n=n.parent)&&!(n.type===`CapturingGroup`&&(n.name===a||n.number===a)););r.reffedNodesByReferencer.set(e,n);return}let o=r.subroutineRefMap.get(a),s=a===0,c=s?Nl(0):Ml(o,r.groupOriginByCopy,null),l=c;if(!s){let e=Il(Pl(o,e=>e.type===`Group`&&!!e.flags)),t=e?al(r.globalFlags,e):r.globalFlags;Al(t,r.currentFlags)||(l=uc({flags:Ll(t)}),l.body[0].body.push(c))}n($(l,t),{traverse:!s})}},Ol={Backreference({node:e,parent:t,replaceWith:n},r){if(e.orphan){r.highestOrphanBackref=Math.max(r.highestOrphanBackref,e.ref);return}let i=r.reffedNodesByReferencer.get(e).filter(t=>jl(t,e));i.length?i.length>1?n($(uc({atomic:!0,body:i.reverse().map(e=>ec({body:[nc(e.number)]}))}),t)):e.ref=i[0].number:n($(dc({negate:!0}),t))},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,e.name&&t.groupsByName.get(e.name).get(e).hasDuplicateNameToRemove&&delete e.name},Regex:{exit({node:e},t){let n=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let t=0;t<n;t++){let t=rc();e.body.at(-1).body.push(t)}}},Subroutine({node:e},t){!e.isRecursive||e.ref===0||(e.ref=t.reffedNodesByReferencer.get(e).number)}};function kl(e){Oc(e,{"*"({node:e,parent:t}){e.parent=t}})}function Al(e,t){return e.dotAll===t.dotAll&&e.ignoreCase===t.ignoreCase}function jl(e,t){let n=t;do{if(n.type===`Regex`)return!1;if(n.type===`Alternative`)continue;if(n===e)return!1;let t=Rl(n.parent);for(let r of t){if(r===n)break;if(r===e||Bl(r,e))return!0}}while(n=n.parent);throw Error(`Unexpected path`)}function Ml(e,t,n,r){let i=Array.isArray(e)?[]:{};for(let[a,o]of Object.entries(e))a===`parent`?i.parent=Array.isArray(n)?r:n:o&&typeof o==`object`?i[a]=Ml(o,t,i,n):(a===`type`&&o===`CapturingGroup`&&t.set(i,t.get(e)??e),i[a]=o);return i}function Nl(e){let t=gc(e);return t.isRecursive=!0,t}function Pl(e,t){let n=[];for(;e=e.parent;)(!t||t(e))&&n.push(e);return n}function Fl(e,t){if(t.has(e))return t.get(e);let n=`$${t.size}_${e.replace(/^[^$_\p{IDS}]|[^$\u200C\u200D\p{IDC}]/gu,`_`)}`;return t.set(e,n),n}function Il(e){let t=[`dotAll`,`ignoreCase`],n={enable:{},disable:{}};return e.forEach(({flags:e})=>{t.forEach(t=>{e.enable?.[t]&&(delete n.disable[t],n.enable[t]=!0),e.disable?.[t]&&(n.disable[t]=!0)})}),Object.keys(n.enable).length||delete n.enable,Object.keys(n.disable).length||delete n.disable,n.enable||n.disable?n:null}function Ll({dotAll:e,ignoreCase:t}){let n={};return(e||t)&&(n.enable={},e&&(n.enable.dotAll=!0),t&&(n.enable.ignoreCase=!0)),(!e||!t)&&(n.disable={},!e&&(n.disable.dotAll=!0),!t&&(n.disable.ignoreCase=!0)),n}function Rl(e){if(!e)throw Error(`Node expected`);let{body:t}=e;return Array.isArray(t)?t:t?[t]:null}function zl(e){let t=e.find(e=>e.kind===`search_start`||Ul(e,{negate:!1})||!Vl(e));if(!t)return null;if(t.kind===`search_start`)return t;if(t.type===`LookaroundAssertion`)return t.body[0].body[0];if(t.type===`CapturingGroup`||t.type===`Group`){let e=[];for(let n of t.body){let t=zl(n.body);if(!t)return null;Array.isArray(t)?e.push(...t):e.push(t)}return e}return null}function Bl(e,t){let n=Rl(e)??[];for(let e of n)if(e===t||Bl(e,t))return!0;return!1}function Vl({type:e}){return e===`Assertion`||e===`Directive`||e===`LookaroundAssertion`}function Hl(e){let t=[`Character`,`CharacterClass`,`CharacterSet`];return t.includes(e.type)||e.type===`Quantifier`&&e.min&&t.includes(e.body.type)}function Ul(e,t){let n={negate:null,...t};return e.type===`LookaroundAssertion`&&(n.negate===null||e.negate===n.negate)&&e.body.length===1&&Vs(e.body[0],{type:`Assertion`,kind:`search_start`})}function Wl(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function Gl(e,t){let n=Ws(e,{...t,unicodePropertyMap:gl}).body;return n.length>1||n[0].body.length>1?uc({body:n}):n[0].body[0]}function Kl(e,t){return e.negate=t,e}function ql(e,t){return e.parent=t,e}function $(e,t){return kl(e),e.parent=t,e}function Jl(e,t){let n=dl(t),r=sl(n.target,`ES2024`),i=sl(n.target,`ES2025`),a=n.rules.recursionLimit;if(!Number.isInteger(a)||a<2||a>20)throw Error(`Invalid recursionLimit; use 2-20`);let o=null,s=null;if(!i){let t=[e.flags.ignoreCase];Oc(e,Yl,{getCurrentModI:()=>t.at(-1),popModI(){t.pop()},pushModI(e){t.push(e)},setHasCasedChar(){t.at(-1)?o=!0:s=!0}})}let c={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||o)&&!s)},l=e,u={accuracy:n.accuracy,appliedGlobalFlags:c,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:l,originMap:e._originMap,recursionLimit:a,useAppliedIgnoreCase:!!(!i&&o&&s),useFlagMods:i,useFlagV:r,verbose:n.verbose};function d(e){return u.lastNode=l,l=e,cl(Xl[e.type],`Unexpected node type "${e.type}"`)(e,u,d)}let f={pattern:e.body.map(d).join(`|`),flags:d(e.flags),options:{...e.options}};return r||(delete f.options.force.v,f.options.disable.v=!0,f.options.unicodeSetsPlugin=null),f._captureTransfers=new Map,f._hiddenCaptures=[],u.captureMap.forEach((e,t)=>{e.hidden&&f._hiddenCaptures.push(t),e.transferTo&&ol(f._captureTransfers,e.transferTo,[]).push(t)}),f}var Yl={"*":{enter({node:e},t){if(cu(e)){let n=t.getCurrentModI();t.pushModI(e.flags?al({ignoreCase:n},e.flags).ignoreCase:n)}},exit({node:e},t){cu(e)&&t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){nu(Z(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},n){t(),ru(e,{firstOnly:!0}).length&&n.setHasCasedChar()},CharacterSet({node:e},t){e.kind===`property`&&wl.has(e.value)&&t.setHasCasedChar()}},Xl={Alternative({body:e},t,n){return e.map(n).join(``)},Assertion({kind:e,negate:t}){if(e===`string_end`)return`$`;if(e===`string_start`)return`^`;if(e===`word_boundary`)return t?Q`\B`:Q`\b`;throw Error(`Unexpected assertion kind "${e}"`)},Backreference({ref:e},t){if(typeof e!=`number`)throw Error(`Unexpected named backref in transformed AST`);if(!t.useFlagMods&&t.accuracy===`strict`&&t.currentFlags.ignoreCase&&!t.captureMap.get(e).ignoreCase)throw Error(`Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy`);return`\\`+e},CapturingGroup(e,t,n){let{body:r,name:i,number:a}=e,o={ignoreCase:t.currentFlags.ignoreCase},s=t.originMap.get(e);return s&&(o.hidden=!0,a>s.number&&(o.transferTo=s.number)),t.captureMap.set(a,o),`(${i?`?<${i}>`:``}${r.map(n).join(`|`)})`},Character({value:e},t){let n=Z(e),r=iu(e,{escDigit:t.lastNode.type===`Backreference`,inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(r!==n)return r;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&nu(n)){let e=hl(n);return t.inCharClass?e.join(``):e.length>1?`[${e.join(``)}]`:e[0]}return n},CharacterClass(e,t,n){let{kind:r,negate:i,parent:a}=e,{body:o}=e;if(r===`intersection`&&!t.useFlagV)throw Error(`Use of character class intersection requires min target ES2024`);rl.bugFlagVLiteralHyphenIsRange&&t.useFlagV&&o.some(uu)&&(o=[ic(45),...o.filter(e=>!uu(e))]);let s=()=>`[${i?`^`:``}${o.map(n).join(r===`intersection`?`&&`:``)}]`;if(!t.inCharClass){if((!t.useFlagV||rl.bugNestedClassIgnoresNegation)&&!i){let t=o.filter(e=>e.type===`CharacterClass`&&e.kind===`union`&&e.negate);if(t.length){let r=uc(),i=r.body[0];return r.parent=a,i.parent=r,o=o.filter(e=>!t.includes(e)),e.body=o,o.length?(e.parent=i,i.body.push(e)):r.body.pop(),t.forEach(e=>{let t=ec({body:[e]});e.parent=t,t.parent=r,r.body.push(t)}),n(r)}}t.inCharClass=!0;let r=s();return t.inCharClass=!1,r}let c=o[0];if(r===`union`&&!i&&c&&((!t.useFlagV||!t.verbose)&&a.kind===`union`&&!(rl.bugFlagVLiteralHyphenIsRange&&t.useFlagV)||!t.verbose&&a.kind===`intersection`&&o.length===1&&c.type!==`CharacterClassRange`))return o.map(n).join(``);if(!t.useFlagV&&a.type===`CharacterClass`)throw Error(`Uses nested character class in a way that requires min target ES2024`);return s()},CharacterClassRange(e,t){let n=e.min.value,r=e.max.value,i={escDigit:!1,inCharClass:!0,useFlagV:t.useFlagV},a=iu(n,i),o=iu(r,i),s=new Set;return t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&au(ru(e)).forEach(e=>{s.add(Array.isArray(e)?`${iu(e[0],i)}-${iu(e[1],i)}`:iu(e,i))}),`${a}-${o}${[...s].join(``)}`},CharacterSet({kind:e,negate:t,value:n,key:r},i){if(e===`dot`)return i.currentFlags.dotAll?i.appliedGlobalFlags.dotAll||i.useFlagMods?`.`:`[^]`:Q`[^\n]`;if(e===`digit`)return t?Q`\D`:Q`\d`;if(e===`property`){if(i.useAppliedIgnoreCase&&i.currentFlags.ignoreCase&&wl.has(n))throw Error(`Unicode property "${n}" can't be case-insensitive when other chars have specific case`);return`${t?Q`\P`:Q`\p`}{${r?`${r}=`:``}${n}}`}if(e===`word`)return t?Q`\W`:Q`\w`;throw Error(`Unexpected character set kind "${e}"`)},Flags(e,t){return(t.appliedGlobalFlags.ignoreCase?`i`:``)+(e.dotAll?`s`:``)+(e.sticky?`y`:``)},Group({atomic:e,body:t,flags:n,parent:r},i,a){let o=i.currentFlags;n&&(i.currentFlags=al(o,n));let s=t.map(a).join(`|`),c=!i.verbose&&t.length===1&&r.type!==`Quantifier`&&!e&&(!i.useFlagMods||!n)?s:`(?${ou(e,n,i.useFlagMods)}${s})`;return i.currentFlags=o,c},LookaroundAssertion({body:e,kind:t,negate:n},r,i){return`(?${`${t===`lookahead`?``:`<`}${n?`!`:`=`}`}${e.map(i).join(`|`)})`},Quantifier(e,t,n){return n(e.body)+su(e)},Subroutine({isRecursive:e,ref:t},n){if(!e)throw Error(`Unexpected non-recursive subroutine in transformed AST`);let r=n.recursionLimit;return t===0?`(?R=${r})`:Q`\g<${t}&R=${r}>`}},Zl=new Set([`$`,`(`,`)`,`*`,`+`,`.`,`?`,`[`,`\\`,`]`,`^`,`{`,`|`,`}`]),Ql=new Set([`-`,`\\`,`]`,`^`,`[`]),$l=new Set("()-/[\\]^{|}!#$%&*+,.:;<=>?@`~".split(``)),eu=new Map([[9,Q`\t`],[10,Q`\n`],[11,Q`\v`],[12,Q`\f`],[13,Q`\r`],[8232,Q`\u2028`],[8233,Q`\u2029`],[65279,Q`\uFEFF`]]),tu=/^\p{Cased}$/u;function nu(e){return tu.test(e)}function ru(e,t){let n=!!t?.firstOnly,r=e.min.value,i=e.max.value,a=[];if(r<65&&(i===65535||i>=131071)||r===65536&&i>=131071)return a;for(let e=r;e<=i;e++){let t=Z(e);if(!nu(t))continue;let o=hl(t).filter(e=>{let t=e.codePointAt(0);return t<r||t>i});if(o.length&&(a.push(...o),n))break}return a}function iu(e,{escDigit:t,inCharClass:n,useFlagV:r}){if(eu.has(e))return eu.get(e);if(e<32||e>126&&e<160||e>262143||t&&lu(e))return e>255?`\\u{${e.toString(16).toUpperCase()}}`:`\\x${e.toString(16).toUpperCase().padStart(2,`0`)}`;let i=n?r?$l:Ql:Zl,a=Z(e);return(i.has(a)?`\\`:``)+a}function au(e){let t=e.map(e=>e.codePointAt(0)).sort((e,t)=>e-t),n=[],r=null;for(let e=0;e<t.length;e++)t[e+1]===t[e]+1?r??=t[e]:r===null?n.push(t[e]):(n.push([r,t[e]]),r=null);return n}function ou(e,t,n){if(e)return`>`;let r=``;if(t&&n){let{enable:e,disable:n}=t;r=(e?.ignoreCase?`i`:``)+(e?.dotAll?`s`:``)+(n?`-`:``)+(n?.ignoreCase?`i`:``)+(n?.dotAll?`s`:``)}return`${r}:`}function su({kind:e,max:t,min:n}){let r;return r=!n&&t===1?`?`:!n&&t===1/0?`*`:n===1&&t===1/0?`+`:n===t?`{${n}}`:`{${n},${t===1/0?``:t}}`,r+{greedy:``,lazy:`?`,possessive:`+`}[e]}function cu({type:e}){return e===`CapturingGroup`||e===`Group`||e===`LookaroundAssertion`}function lu(e){return e>47&&e<58}function uu({type:e,value:t}){return e===`Character`&&t===45}var du=class e extends RegExp{#e=new Map;#t=null;#n;#r=null;#i=null;rawOptions={};get source(){return this.#n||`(?:)`}constructor(t,n,r){let i=!!r?.lazyCompile;if(t instanceof RegExp){if(r)throw Error(`Cannot provide options when copying a regexp`);let i=t;super(i,n),this.#n=i.source,i instanceof e&&(this.#e=i.#e,this.#r=i.#r,this.#i=i.#i,this.rawOptions=i.rawOptions)}else{let e={hiddenCaptures:[],strategy:null,transfers:[],...r};super(i?``:t,n),this.#n=t,this.#e=pu(e.hiddenCaptures,e.transfers),this.#i=e.strategy,this.rawOptions=r??{}}i||(this.#t=this)}exec(t){if(!this.#t){let{lazyCompile:t,...n}=this.rawOptions;this.#t=new e(this.#n,this.flags,n)}let n=this.global||this.sticky,r=this.lastIndex;if(this.#i===`clip_search`&&n&&r){this.lastIndex=0;let e=this.#a(t.slice(r));return e&&(fu(e,r,t,this.hasIndices),this.lastIndex+=r),e}return this.#a(t)}#a(e){this.#t.lastIndex=this.lastIndex;let t=super.exec.call(this.#t,e);if(this.lastIndex=this.#t.lastIndex,!t||!this.#e.size)return t;let n=[...t];t.length=1;let r;this.hasIndices&&(r=[...t.indices],t.indices.length=1);let i=[0];for(let e=1;e<n.length;e++){let{hidden:a,transferTo:o}=this.#e.get(e)??{};if(a?i.push(null):(i.push(t.length),t.push(n[e]),this.hasIndices&&t.indices.push(r[e])),o&&n[e]!==void 0){let a=i[o];if(!a)throw Error(`Invalid capture transfer to "${a}"`);if(t[a]=n[e],this.hasIndices&&(t.indices[a]=r[e]),t.groups){this.#r||=mu(this.source);let i=this.#r.get(o);i&&(t.groups[i]=n[e],this.hasIndices&&(t.indices.groups[i]=r[e]))}}}return t}};function fu(e,t,n,r){if(e.index+=t,e.input=n,r){let n=e.indices;for(let e=0;e<n.length;e++){let r=n[e];r&&(n[e]=[r[0]+t,r[1]+t])}let r=n.groups;r&&Object.keys(r).forEach(e=>{let n=r[e];n&&(r[e]=[n[0]+t,n[1]+t])})}}function pu(e,t){let n=new Map;for(let t of e)n.set(t,{hidden:!0});for(let[e,r]of t)for(let t of r)ol(n,t,{}).transferTo=e;return n}function mu(e){let t=/(?<capture>\((?:\?<(?![=!])(?<name>[^>]+)>|(?!\?)))|\\?./gsu,n=new Map,r=0,i=0,a;for(;a=t.exec(e);){let{0:e,groups:{capture:t,name:o}}=a;e===`[`?r++:r?e===`]`&&r--:t&&(i++,o&&n.set(i,o))}return n}function hu(e,t){let n=gu(e,t);return n.options?new du(n.pattern,n.flags,n.options):new RegExp(n.pattern,n.flags)}function gu(e,t){let n=dl(t),r=Tl(Ws(e,{flags:n.flags,normalizeUnknownPropertyNames:!0,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline},skipBackrefValidation:n.rules.allowOrphanBackrefs,unicodePropertyMap:gl}),{accuracy:n.accuracy,asciiWordBoundaries:n.rules.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,bestEffortTarget:n.target}),i=Jl(r,n),a=Zc(i.pattern,{captureTransfers:i._captureTransfers,hiddenCaptures:i._hiddenCaptures,mode:`external`}),o=Vc(Wc(a.pattern).pattern,{captureTransfers:a.captureTransfers,hiddenCaptures:a.hiddenCaptures}),s={pattern:o.pattern,flags:`${n.hasIndices?`d`:``}${n.global?`g`:``}${i.flags}${i.options.disable.v?`u`:`v`}`};if(n.avoidSubclass){if(n.lazyCompileLength!==1/0)throw Error(`Lazy compilation requires subclass`)}else{let e=o.hiddenCaptures.sort((e,t)=>e-t),t=Array.from(o.captureTransfers),i=r._strategy,a=s.pattern.length>=n.lazyCompileLength;(e.length||t.length||i||a)&&(s.options={...e.length&&{hiddenCaptures:e},...t.length&&{transfers:t},...i&&{strategy:i},...a&&{lazyCompile:a}})}return s}function _u(e,t){return hu(e,{global:!0,hasIndices:!0,lazyCompileLength:3e3,rules:{allowOrphanBackrefs:!0,asciiWordBoundaries:!0,captureGroup:!0,recursionLimit:5,singleline:!0},...t})}function vu(e={}){let t={target:`auto`,cache:new Map,...e};return t.regexConstructor||=e=>_u(e,{target:t.target}),{createScanner(e){return new Zo(e,t)},createString(e){return{content:e}}}}var yu=``+new URL(`c-BNa-DeUl.json`,import.meta.url).href,bu=``+new URL(`cpp-B-T4NRoH.json`,import.meta.url).href,xu=``+new URL(`csharp-BbxHChhA.json`,import.meta.url).href,Su=``+new URL(`css-CWCxuwmz.json`,import.meta.url).href,Cu=``+new URL(`diff-B-2N89g8.json`,import.meta.url).href,wu=``+new URL(`docker-DWTvYW26.json`,import.meta.url).href,Tu=``+new URL(`go-B2hyYeNg.json`,import.meta.url).href,Eu=``+new URL(`graphql-Z6Id2aNO.json`,import.meta.url).href,Du=``+new URL(`html-BtzvlIfu.json`,import.meta.url).href,Ou=``+new URL(`ini-Bn3Twap1.json`,import.meta.url).href,ku=``+new URL(`java-C7t2dwLO.json`,import.meta.url).href,Au=``+new URL(`javascript-DuC2v0C0.json`,import.meta.url).href,ju=``+new URL(`json-CwdkWeV5.json`,import.meta.url).href,Mu=``+new URL(`jsonc-MYWDbTU3.json`,import.meta.url).href,Nu=``+new URL(`jsx-Cn8EZuIC.json`,import.meta.url).href,Pu=``+new URL(`kotlin-CFNOz1gw.json`,import.meta.url).href,Fu=``+new URL(`make-BVnlFCcl.json`,import.meta.url).href,Iu=``+new URL(`markdown-B4Xk2WM_.json`,import.meta.url).href,Lu=``+new URL(`php-CAQzQmmI.json`,import.meta.url).href,Ru=``+new URL(`python-CYQee8m4.json`,import.meta.url).href,zu=``+new URL(`ruby-D7R58tus.json`,import.meta.url).href,Bu=``+new URL(`rust-BFBbFiei.json`,import.meta.url).href,Vu=``+new URL(`scss-TQRhBkPG.json`,import.meta.url).href,Hu=``+new URL(`shellscript-DieAkC4W.json`,import.meta.url).href,Uu=``+new URL(`sql-Bxd030LV.json`,import.meta.url).href,Wu=``+new URL(`toml-ChrKGzsV.json`,import.meta.url).href,Gu=``+new URL(`tsx-D2e90MFw.json`,import.meta.url).href,Ku=``+new URL(`typescript-DonXQ_n1.json`,import.meta.url).href,qu=``+new URL(`xml-B17r2RXF.json`,import.meta.url).href,Ju={typescript:Ku,tsx:Gu,javascript:Au,jsx:Nu,json:ju,jsonc:Mu,yaml:``+new URL(`yaml-CKn4h1zy.json`,import.meta.url).href,toml:Wu,markdown:Iu,html:Du,css:Su,scss:Vu,shellscript:Hu,docker:wu,python:Ru,go:Tu,rust:Bu,java:ku,kotlin:Pu,c:yu,cpp:bu,csharp:xu,ruby:zu,php:Lu,sql:Uu,graphql:Eu,xml:qu,make:Fu,ini:Ou,diff:Cu};function Yu(e){return[{scope:[`comment`,`punctuation.definition.comment`],settings:{foreground:e.comment}},{scope:[`constant`,`constant.numeric`,`constant.language`,`support.constant`,`variable.other.constant`,`variable.language`],settings:{foreground:e.constant}},{scope:[`entity`,`entity.name.function`,`support.function`,`meta.function-call`],settings:{foreground:e.entity}},{scope:[`keyword`,`storage`,`storage.type`,`keyword.operator`,`punctuation.definition.keyword`],settings:{foreground:e.keyword}},{scope:[`string`,`string.quoted`,`punctuation.definition.string`,`support.type.property-name`],settings:{foreground:e.string}},{scope:[`variable`,`support.type`,`support.class`,`entity.name.type`,`entity.name.class`],settings:{foreground:e.variable}},{scope:[`entity.name.tag`,`entity.other.attribute-name`,`support.type.property-name.json`],settings:{foreground:e.tag}},{scope:[`markup.heading`,`entity.name.section`],settings:{foreground:e.heading}},{scope:[`markup.inserted`,`markup.inserted.diff`],settings:{foreground:e.inserted}},{scope:[`markup.deleted`,`markup.deleted.diff`],settings:{foreground:e.deleted}}]}var Xu={name:`reviews-dark`,type:`dark`,colors:{"editor.foreground":`#e6edf3`,"editor.background":`#0d1117`},tokenColors:Yu({comment:`#8b949e`,constant:`#79c0ff`,entity:`#d2a8ff`,keyword:`#ff7b72`,string:`#a5d6ff`,variable:`#ffa657`,tag:`#7ee787`,heading:`#79c0ff`,inserted:`#7ee787`,deleted:`#ffa198`})},Zu={name:`reviews-light`,type:`light`,colors:{"editor.foreground":`#1f2328`,"editor.background":`#ffffff`},tokenColors:Yu({comment:`#6e7781`,constant:`#0550ae`,entity:`#8250df`,keyword:`#cf222e`,string:`#0a3069`,variable:`#953800`,tag:`#116329`,heading:`#0550ae`,inserted:`#116329`,deleted:`#82071e`})},Qu=null,$u=new Map,ed={dark:`reviews-dark`,light:`reviews-light`};function td(){return Qu??=Yo({themes:[Xu,Zu],langs:[],engine:vu()}),Qu}function nd(e,t){return fetch(Ju[t]).then(e=>{if(!e.ok)throw Error(`${e.status}`);return e.json()}).then(async n=>(await e.loadLanguage({...n,name:t}),!0)).catch(()=>!1)}async function rd(e){let t=await td(),n=$u.get(e);return n===void 0&&(n=nd(t,e),$u.set(e,n)),await n?t:null}function id(e,t,n,r,i){let{tokens:a}=e.codeToTokens(t.join(`
153
+ `),{lang:n,theme:ed[r],grammarState:i});return{rows:a.map(e=>e.map(e=>({text:e.content,color:e.color??``,at:e.offset}))),state:a.length===0?i:e.getLastGrammarState(a)}}function ad(e,t){let n=`${e??``}\n${t}`,[r,i]=(0,_.useState)({of:n,hunks:new Map,failure:null}),a=(0,_.useRef)(new Set),o=(0,_.useRef)(new Set),s=(0,_.useRef)([]);r.of!==n&&(s.current=[...a.current],a.current=new Set,o.current=new Set,i({of:n,hunks:new Map,failure:null}));let c=(0,_.useCallback)(r=>{if(e===null||r<0)return;let s=Math.floor(r/50);if(a.current.has(s))return;let c=a.current,l=o.current;c.add(s),ie(e,s*50,50).then(e=>{if(e.fingerprint!==t){c.delete(s);return}i(t=>{if(t.of!==n)return t;let r=new Map(t.hunks);for(let t of e.hunks)r.set(t.id,t);return{...t,hunks:r}})}).catch(e=>{c.delete(s),l.add(s),i(t=>t.of===n?{...t,failure:e.message}:t)})},[e,t,n]);(0,_.useEffect)(()=>{c(0);for(let e of s.current)c(e*50);s.current=[]},[c]);let l=(0,_.useCallback)(()=>{let e=[...o.current];o.current=new Set,i(e=>e.of===n?{...e,failure:null}:e);for(let t of e)c(t*50)},[c,n]);return{hunks:r.hunks,need:c,failure:r.failure,retry:l}}function od(e,t){let n=(0,_.useRef)(t);n.current=t;let r=(0,_.useRef)(e);r.current=e;let i=(0,_.useRef)(e=>e.dataset[r.current.attribute]),a=(0,_.useRef)(null);return a.current===null&&typeof IntersectionObserver==`function`&&(a.current=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=i.current(t.target);e!==void 0&&n.current(e)}},{rootMargin:e.margin})),(0,_.useEffect)(()=>{let e=a.current;return()=>e?.disconnect()},[]),(0,_.useCallback)(e=>{if(e===null)return;let t=a.current;if(t===null){let t=i.current(e);r.current.atMount&&t!==void 0&&n.current(t);return}return t.observe(e),()=>t.unobserve(e)},[])}function sd(e){return od({attribute:`index`,margin:`400px 0px`,atMount:!0},t=>{let n=Number(t);Number.isFinite(n)&&e(n)})}function cd(e){return od({attribute:`unread`,margin:`0px`,atMount:!1},e)}function ld(e){let t={old:[],new:[]},n=[];for(let r of e)r.on!==`new`&&t.old.push(r.text),r.on!==`old`&&t.new.push(r.text),n.push(r.on===`old`?{side:`old`,at:t.old.length-1}:{side:`new`,at:t.new.length-1});return{lines:t,from:n}}function ud(e,t,n,r){let[i,a]=(0,_.useState)({of:``,rows:[]}),[o,s]=(0,_.useState)(!1),c=Rt(e),l=(0,_.useRef)(t);l.current=t;let u=od({attribute:`hunk`,margin:`200px 0px`,atMount:!0},()=>s(!0));(0,_.useEffect)(()=>{if(c===null||!o)return;let e=l.current,t=ld(e),i=[`old`,`new`].filter(e=>t.from.some(t=>t.side===e)),s=!0,u;return a({of:n,rows:e.map(()=>null)}),rd(c).then(e=>{if(!s||e===null)return;let o=(l,d,f)=>{if(!s)return;let p=i[l];if(p===void 0)return;let m=t.lines[p],h=id(e,m.slice(d,d+100),c,r,f);a(e=>{if(e.of!==n)return e;let r=[...e.rows];return t.from.forEach((e,t)=>{if(e.side!==p)return;let n=h.rows[e.at-d];e.at>=d&&n!==void 0&&(r[t]=n)}),{of:n,rows:r}}),d+100<m.length?u=setTimeout(()=>o(l,d+100,h.state),0):l+1<i.length&&(u=setTimeout(()=>o(l+1,0,void 0),0))};o(0,0,void 0)}),()=>{s=!1,clearTimeout(u)}},[c,n,r,o]);let d=i.of===n?i.rows:[];return(0,_.useMemo)(()=>({ref:u,rows:d}),[u,d])}var dd=[5,10],fd=1e5,pd=[`undo`,`explain`,`talk`,`comment`];function md(e){let t=e.lastIndexOf(`/`);return t===-1?{dir:``,name:e}:{dir:e.slice(0,t+1),name:e.slice(t+1)}}var hd=2;function gd(e){let t=e.filter(e=>e.lines!==null&&e.lines.length>0).map(e=>({kind:e.kind,note:e.key,first:Math.min(...e.lines),last:Math.max(...e.lines)})).sort((e,t)=>e.first-t.first||t.last-e.last),n=Array.from({length:hd},()=>0),r=new Map;for(let e of t){let t=n.findIndex(t=>t<e.first),i=t===-1?0:t;n[i]=Math.max(n[i]??0,e.last);for(let t=e.first;t<=e.last;t+=1){let n=r.get(t)??[];n.push({lane:i,kind:e.kind,note:e.note,first:t===e.first,last:t===e.last}),r.set(t,n)}}return r}function _d(e){return(0,B.jsx)(`span`,{style:{color:e.color},children:e.text},e.at)}function vd(e){return e===`info`?``:` is-${e}`}function yd(e,t){let n=(e.lines??[]).filter(e=>t.has(e));return n.length===0?null:Math.min(...n)}function bd(e,t){let n=Math.min(e,t),r=Math.max(e,t);return Array.from({length:r-n+1},(e,t)=>n+t)}function xd(e){let{file:t,hunk:n}=e,r=e.entry.id,i=t=>e.onAct({act:`mark`,hunk:r,seen:t}),a=t=>e.onAct({act:`comment`,hunk:r,kind:`talk`,text:``,lines:t}),[o,s]=(0,_.useState)([]),[c,l]=(0,_.useState)([]),[u,d]=(0,_.useState)(null),[f,p]=(0,_.useState)(null),[m,h]=(0,_.useState)(!1),[g,v]=(0,_.useState)(new Set),[y,b]=(0,_.useState)(e.draft?.act??null),[x,ee]=(0,_.useState)(e.draft?.note??null),[S,C]=(0,_.useState)(()=>{let t=e.draft?.lines??[];return t.length===0?null:{from:Math.min(...t),to:Math.max(...t)}}),w=e.draft;(0,_.useEffect)(()=>{w===null||y!==null||(b(w.act),ee(w.note),C(w.lines.length===0?null:{from:Math.min(...w.lines),to:Math.max(...w.lines)}))},[w,y]);let te=(t,n,r,i)=>{b(t),ee(i),C(n.length===0?null:{from:Math.min(...n),to:Math.max(...n)}),e.onDraft({act:t,lines:n,text:r,note:i})},T=()=>{b(null),ee(null),e.onDraft(null)},E=e.entry.id,ne=(0,_.useRef)(n?.header??``);n!==null&&ne.current!==n.header&&(ne.current=n.header,s([]),l([]),d(null));let D=t?.newBlob??null,O=S===null?[]:bd(S.from,S.to),re=n===null?[]:[...o.map(e=>({text:e,on:`both`})),...n.lines.map(e=>({text:e.text,on:e.kind===`add`?`new`:e.kind===`remove`?`old`:`both`})),...c.map(e=>({text:e,on:`both`}))],ie=n===null?``:`${E}|${n.header}|${o.length}|${c.length}`,ae=ud(n?.path??``,re,ie,e.theme),oe=(0,_.useCallback)(async(t,r)=>{if(n===null||D===null)return;let i=n.newStart-o.length,a=n.newStart+n.newLines-1+c.length,u=t===`above`?Math.max(1,i-(r??i-1)):a+1,f=t===`above`?i-u:r??fd;if(!(f<=0))try{let n=await k(e.slug,D,u,f);if(d(n.total),n.lines.length===0)return;t===`above`?s(e=>[...n.lines,...e]):l(e=>[...e,...n.lines])}catch(e){p(e instanceof Error?e.message:`that context could not be read`)}},[o.length,c.length,D,n,e.slug]),se=e=>{v(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},ce=e=>{C(t=>t===null?{from:e,to:e}:bd(t.from,t.to).includes(e)?null:{from:t.from,to:e})};if(n===null)return(0,B.jsxs)(`section`,{className:`rv-hunk rv-waiting`,"data-index":e.index,"data-hunk":E,"data-key":e.cardKey,ref:e.watch,"aria-hidden":`true`,children:[(0,B.jsx)(`span`,{className:`rv-skel is-narrow`}),(0,B.jsx)(`span`,{className:`rv-skel is-wide`}),(0,B.jsx)(`span`,{className:`rv-skel is-half`})]});let{dir:le,name:ue}=md(n.path),j=n.header===``?`the whole file`:n.header,M=gd(e.notes),de=vd(pe(e.notes.map(e=>e.kind))),N=new Set;for(let e=n.newStart-o.length;e<n.newStart;e+=1)N.add(e);for(let e of n.lines)e.newLine!==null&&N.add(e.newLine);for(let e=0;e<c.length;e+=1)N.add(n.newStart+n.newLines+e);let P=e.notes.filter(e=>yd(e,N)===null),F=new Map;for(let t of e.notes){let e=yd(t,N);e!==null&&F.set(e,[...F.get(e)??[],t])}let I=P.length>0?` is-note${de}`:``,fe=P.some(t=>e.aside.has(t.key)),me=()=>y===null?null:(0,B.jsx)(xt,{act:y,lines:O,text:e.draft?.text??``,busy:e.busy,onChange:t=>e.onDraft({act:y,lines:O,text:t,note:x}),onWrite:t=>{T(),C(null),e.onAct({act:`comment`,hunk:r,kind:y,text:t,lines:O})},onCancel:T}),he=y!==null&&x!==null&&e.notes.some(e=>e.key===x)?x:null,ge=t=>(0,B.jsx)(Mt,{notes:t,aside:e.aside,shown:g,readable:e.readable,readOnlySaid:e.readOnlySaid,busy:e.busy,onAsk:e=>te(`fix`,e.lines??[],e.text,e.key),onTalk:e=>a(e.lines??[]),onComment:e=>te(`comment`,e.lines??[],``,e.key),onDismiss:(t,n)=>e.onAct({act:`dismiss`,hunk:r,key:t.key,on:n}),box:he!==null&&t.some(e=>e.key===he)?{note:he,element:me()}:null});if(e.seen&&!e.open)return(0,B.jsxs)(`div`,{className:`rv-folded${P.length>0||M.size>0?` is-note${de}`:``}`,"data-hunk":E,"data-key":e.cardKey,children:[(0,B.jsx)(`span`,{className:`rv-ok`,"aria-hidden":`true`,children:`✓`}),(0,B.jsx)(`span`,{children:`Seen`}),(0,B.jsx)(`span`,{className:`rv-mono`,children:n.path}),(0,B.jsx)(`span`,{className:`rv-mono`,children:j}),e.notes.length>0&&(0,B.jsxs)(`span`,{className:`rv-fnotes`,children:[e.notes.length,` note`,e.notes.length===1?``:`s`]}),(0,B.jsx)(`span`,{className:`rv-grow`}),e.changed&&(0,B.jsx)(`span`,{className:`rv-changed`,children:`Changed since you saw it`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-link`,onClick:()=>e.onOpen(!0),children:`Expand`})]});let L=n.newStart-o.length,R=n.newStart+n.newLines-1+c.length,_e=D!==null&&L>1,ve=D!==null&&(u===null||R<u),ye=(t,n,r)=>{let i=t.kind===`add`?` is-add`:t.kind===`remove`?` is-del`:``,a=ae.rows[r]??null,o=t.newLine===null?[]:M.get(t.newLine)??[],s=o.length===0?``:` is-note${vd(pe(o.map(e=>e.kind)))}`,c=t.newLine!==null&&O.includes(t.newLine),l=t.newLine===null?[]:F.get(t.newLine)??[];return(0,B.jsxs)(_.Fragment,{children:[l.length>0&&ge(l),(0,B.jsxs)(`div`,{className:`rv-l${i}${s}${c?` is-picked`:``}`,"data-line":t.newLine??void 0,"data-old":t.oldLine??void 0,children:[o.map(n=>{let r=`rv-nl is-lane${n.lane}${vd(n.kind)}${n.first?` is-first`:``}${n.last?` is-last`:``}`;return e.aside.has(n.note)?(0,B.jsx)(`button`,{type:`button`,className:r,"data-note":n.note,"aria-label":`Show the note put aside on line ${t.newLine}`,onClick:()=>se(n.note)},n.lane):(0,B.jsx)(`i`,{className:r,"data-note":n.note,"aria-hidden":`true`},n.lane)}),(0,B.jsx)(`span`,{className:`rv-ln`,children:t.oldLine??``}),t.newLine===null?(0,B.jsx)(`span`,{className:`rv-ln`}):(0,B.jsx)(`button`,{type:`button`,className:`rv-ln`,"aria-label":`Line ${t.newLine}`,"aria-pressed":c,onClick:()=>ce(t.newLine),children:t.newLine}),(0,B.jsxs)(`span`,{children:[t.kind===`add`?`+`:t.kind===`remove`?`-`:` `,a===null?t.text:a.map(e=>_d(e))]})]})]},n)},be=(e,t,r)=>ye({kind:`context`,text:e,oldLine:t-(n.newStart-n.oldStart),newLine:t,noNewline:!1},`c${t}`,r),xe=e=>(0,B.jsxs)(`div`,{className:`rv-expand`,children:[dd.map(t=>(0,B.jsxs)(`button`,{type:`button`,className:`rv-link`,onClick:()=>void oe(e,t),children:[`+`,t]},t)),(0,B.jsx)(`button`,{type:`button`,className:`rv-link`,onClick:()=>void oe(e,null),children:`whole file`})]});return(0,B.jsxs)(`section`,{className:`rv-hunk${e.readable?``:` is-dim`}`,"data-hunk":E,"data-key":e.cardKey,"data-index":e.index,ref:ae.ref,children:[(0,B.jsxs)(`div`,{className:`rv-fh${I}`,children:[P.length>0&&(0,B.jsx)(At,{aside:fe,onShow:()=>{for(let t of P)e.aside.has(t.key)&&se(t.key)}}),(0,B.jsxs)(`span`,{className:`rv-path rv-mono`,children:[le!==``&&(0,B.jsx)(`i`,{children:le}),ue]}),(0,B.jsx)(`span`,{className:`rv-mono`,children:j}),e.also.length>0&&(0,B.jsxs)(`span`,{className:`rv-also`,children:[`also in `,e.also.map(e=>`"${e}"`).join(`, `)]}),(0,B.jsx)(`span`,{className:`rv-grow`}),e.changed&&(0,B.jsx)(`span`,{className:`rv-changed`,children:`Changed since you saw it`}),(o.length>0||c.length>0)&&(0,B.jsx)(`button`,{type:`button`,className:`rv-link`,onClick:()=>{s([]),l([])},children:`Back to the hunk`}),e.readable&&!e.fileRead&&(0,B.jsx)(`button`,{type:`button`,className:`rv-link`,disabled:e.busy,onClick:()=>e.onAct({act:`bulk`,kind:`file`,id:e.file?.key??``}),children:`Mark file Seen`}),e.seen&&e.readable?(0,B.jsxs)(`button`,{type:`button`,className:`rv-state is-seen`,disabled:e.busy,"aria-label":`Mark as not seen`,onClick:()=>i(!1),children:[(0,B.jsx)(`span`,{className:`rv-state-on`,children:`✓ Seen`}),(0,B.jsx)(`span`,{className:`rv-state-off`,children:`Not seen`})]}):(0,B.jsx)(`span`,{className:`rv-state${e.seen?` is-seen`:``}`,children:e.seen?`✓ Seen`:`pending`}),e.seen&&(0,B.jsx)(`button`,{type:`button`,className:`rv-icon`,"aria-label":`Fold this hunk`,onClick:()=>e.onOpen(!1),children:(0,B.jsx)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,children:(0,B.jsx)(`path`,{d:`M3 10l5-5 5 5`})})})]}),P.length>0&&ge(P),(0,B.jsxs)(`div`,{className:`rv-diff`,children:[_e&&xe(`above`),o.map((e,t)=>be(e,L+t,t)),(0,B.jsx)(`div`,{className:`rv-hd`,children:j}),n.lines.map((e,t)=>ye(e,`${e.oldLine??`x`}-${e.newLine??`x`}`,o.length+t)),c.map((e,t)=>be(e,n.newStart+n.newLines+t,o.length+n.lines.length+t)),ve&&xe(`below`)]}),f!==null&&(0,B.jsx)(`p`,{className:`rv-trouble`,children:f}),he===null&&me(),e.threads.map(t=>(0,B.jsx)(Ft,{thread:t,readable:e.readable,agentHolds:e.agentHolds,busy:e.busy,onClose:()=>e.onAct({act:`close-thread`,thread:t.id}),watch:e.watchReply},t.id)),e.readable&&(0,B.jsxs)(B.Fragment,{children:[m&&(0,B.jsxs)(`div`,{className:`rv-fabmenu`,children:[(0,B.jsx)(`button`,{type:`button`,className:`rv-seen`,disabled:e.busy,onClick:()=>{h(!1),i(!e.seen)},children:e.seen?`Not seen`:`✓ Seen`}),(0,B.jsx)(`hr`,{}),pd.map(t=>t===`talk`?(0,B.jsx)(`button`,{type:`button`,disabled:e.busy,onClick:()=>{h(!1),a(O),C(null)},children:`Let's talk`},t):(0,B.jsx)(`button`,{type:`button`,disabled:e.busy,onClick:()=>{h(!1),te(t,O,``,null)},children:A[t]},t))]}),(0,B.jsx)(`button`,{type:`button`,className:`rv-fab`,"aria-expanded":m,"aria-label":`Act on ${n.path} ${j}`,onClick:()=>h(e=>!e),children:m?`×`:`+`})]})]})}var Sd={binary:`binary`,generated:`generated`,oversize:`too large to read as a diff`,text:`whole file`};function Cd(e,t){let[n,r]=(0,_.useState)({old:null,new:null}),i=t?.oldBlob??null,a=t?.newBlob??null;return(0,_.useEffect)(()=>{let t=!0,n=t=>t===null?Promise.resolve(null):le(`${e}/${je}/${t}`);return Promise.all([n(i),n(a)]).then(([e,n])=>{t&&r({old:e,new:n})}),()=>{t=!1}},[e,i,a]),n}function wd(e){let{file:t,hunk:n}=e,r=e.entry.id,a=Cd(e.slug,t),[o,s]=(0,_.useState)(new Set),c=e=>{s(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[l,u]=(0,_.useState)(e.draft?.act??null),[d,f]=(0,_.useState)(e.draft?.note??null),p=e.draft;(0,_.useEffect)(()=>{p===null||l!==null||(u(p.act),f(p.note))},[p,l]);let m=(t,n,r)=>{u(t),f(n.key),e.onDraft({act:t,lines:n.lines??[],text:r,note:n.key})},v=()=>{u(null),f(null),e.onDraft(null)},y=e.draft?.lines??[],b=n?.path??t?.path??e.entry.id,x=Math.max(t?.oldBytes??0,t?.newBytes??0)>g,ee=h(b)===`image`&&!x;if(n===null)return(0,B.jsx)(`div`,{className:`rv-nt-row rv-waiting`,"data-index":e.index,"data-hunk":e.entry.id,"data-key":e.cardKey,ref:e.watch,children:(0,B.jsx)(`span`,{className:`rv-mono`,children:b})});let S=t===null||t.added===0&&t.deleted===0?``:`+${t.added} -${t.deleted}`,C=[t?.oldBytes??null,t?.newBytes??null].filter(e=>e!==null).map(i).join(` → `);return(0,B.jsxs)(`div`,{className:`rv-nt-row`,"data-hunk":e.entry.id,"data-key":e.cardKey,"data-index":e.index,children:[(0,B.jsxs)(`div`,{className:`rv-nt-head${e.notes.length>0?` is-note`:``}`,children:[e.notes.length>0&&(0,B.jsx)(At,{aside:e.notes.some(t=>e.aside.has(t.key)),onShow:()=>{for(let t of e.notes)e.aside.has(t.key)&&c(t.key)}}),(0,B.jsx)(`span`,{className:`rv-mono`,children:b}),(0,B.jsxs)(`span`,{className:`rv-facts`,children:[Sd[t?.category??`text`],S===``?``:` - ${S}`,C===``?``:` - ${C}`,x?` - too large to show`:``]}),(0,B.jsx)(`span`,{className:`rv-grow`}),e.seen?(0,B.jsx)(`span`,{className:`rv-ok`,children:`✓ Seen`}):e.readable&&(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.busy,onClick:()=>e.onAct({act:`mark`,hunk:r,seen:!0}),children:`Mark Seen`})]}),e.notes.length>0&&(0,B.jsx)(Mt,{notes:e.notes,aside:e.aside,shown:o,readable:e.readable,readOnlySaid:e.readOnlySaid,busy:e.busy,onAsk:e=>m(`fix`,e,e.text),onTalk:t=>e.onAct({act:`comment`,hunk:r,kind:`talk`,text:``,lines:t.lines??[]}),onComment:e=>m(`comment`,e,``),onDismiss:(t,n)=>e.onAct({act:`dismiss`,hunk:r,key:t.key,on:n}),box:l!==null&&d!==null?{note:d,element:(0,B.jsx)(xt,{act:l,lines:y,text:e.draft?.text??``,busy:e.busy,onChange:t=>e.onDraft({act:l,lines:y,text:t,note:d}),onWrite:t=>{v(),e.onAct({act:`comment`,hunk:r,kind:l,text:t,lines:y})},onCancel:v})}:null}),ee&&(0,B.jsxs)(`div`,{className:`rv-nt-images`,children:[a.old!==null&&(0,B.jsxs)(`figure`,{children:[(0,B.jsx)(`img`,{src:a.old,alt:`${b} before`}),(0,B.jsx)(`figcaption`,{children:`before`})]}),a.new!==null&&(0,B.jsxs)(`figure`,{children:[(0,B.jsx)(`img`,{src:a.new,alt:`${b} after`}),(0,B.jsx)(`figcaption`,{children:`after`})]})]})]})}var Td={collapse:0,fold:0};function Ed(e,t,n){let[r,i]=(0,_.useState)(Td),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(0);return(0,_.useEffect)(()=>{if(a===null||typeof ResizeObserver!=`function`)return;let e=new ResizeObserver(e=>{for(let t of e)c(Math.round(t.contentRect.height))});return e.observe(a),()=>e.disconnect()},[a]),(0,_.useEffect)(()=>{let r=e.current;if(r===null||s===0){i(Td);return}let a=0,o=()=>{a=0;let e=t.current;if(e===null)return;let o=r.getBoundingClientRect().top+n-e.getBoundingClientRect().top,c=Math.min(1,Math.max(0,o/s));i(e=>e.fold===s&&Math.abs(e.collapse-c)*s<1?e:{collapse:c,fold:s})},c=()=>{a===0&&(a=requestAnimationFrame(o))};return o(),r.addEventListener(`scroll`,c,{passive:!0}),()=>{r.removeEventListener(`scroll`,c),a!==0&&cancelAnimationFrame(a)}},[e,t,n,s]),[r,o]}var Dd=new Set;function Od(e){let t=e.kit,n=e.section,r=`group:${n.id}`,i=t.drafts.get(r)??null,a=i!==null,o=(0,_.useRef)(null),[s,c]=Ed(t.feed,o,e.pinned),l=t.summary.of(n.id).counts,u=t.index.threads.get(R(`group`,n.id))??[],d=ve(t.index,n).flatMap(e=>{let n=t.entryOf.get(e);return n===void 0?[]:[n]}),f=d.filter(e=>t.files[e.file]?.category===`text`),p=d.filter(e=>t.files[e.file]?.category!==`text`),m=(e,r)=>{let i=`${n.id}-${e.id}`,a=t.seen.has(e.id),o=`hunk:${e.id}`,s=t.opened.has(e.id)||t.drafts.has(o),c={cardKey:i,slug:t.review.slug,entry:e,file:t.files[e.file]??null,hunk:t.pages.get(e.id)??null,seen:a,busy:t.busy,readable:t.readable,readOnlySaid:t.readOnlySaid,agentHolds:t.agentHolds,onAct:t.onAct,index:t.order.get(e.id)??0,watch:t.watch,notes:t.index.notes.get(e.id)??[],aside:t.index.aside.get(e.id)??Dd};return r?(0,B.jsx)(wd,{...c,draft:t.drafts.get(o)??null,onDraft:e=>t.onDraft(o,e)},i):(0,B.jsx)(xd,{...c,theme:t.theme,fileRead:t.entries.every(n=>n.file!==e.file||t.seen.has(n.id)),changed:t.index.changed.has(e.id),also:(t.summary.holders().get(e.id)??[]).filter(e=>e!==n.name),open:s,onOpen:n=>t.onOpen(e.id,n),draft:t.drafts.get(o)??null,onDraft:e=>t.onDraft(o,e),threads:t.index.threads.get(R(`hunk`,e.id))??[],watchReply:t.watchReply},i)};return(0,B.jsxs)(`div`,{className:`rv-section`,"data-section":n.id,ref:o,children:[(0,B.jsx)(Dt,{section:n,counts:l,shared:t.summary.shared(n.id),collapse:s,fold:c,under:e.pinned>0,controls:e.controls,onWalk:e.onWalk,readable:t.readable,busy:t.busy,onBulk:()=>t.onAct({act:`bulk`,kind:`group`,id:n.id}),onComment:()=>t.onDraft(r,{act:`group-comment`,lines:[],text:``,note:null})}),(a||u.length>0)&&(0,B.jsxs)(`div`,{className:`rv-gtalk`,children:[a&&(0,B.jsx)(xt,{act:`group-comment`,lines:[],text:i?.text??``,busy:t.busy,onChange:e=>t.onDraft(r,{act:`group-comment`,lines:[],text:e,note:null}),onWrite:e=>{t.onDraft(r,null),t.onAct({act:`group-comment`,group:n.id,text:e})},onCancel:()=>t.onDraft(r,null)}),u.map(e=>(0,B.jsx)(Ft,{thread:e,readable:t.readable,agentHolds:t.agentHolds,busy:t.busy,onClose:()=>t.onAct({act:`close-thread`,thread:e.id}),watch:t.watchReply},e.id))]}),f.map(e=>m(e,!1)),p.length>0&&(0,B.jsxs)(`details`,{className:`rv-nt`,children:[(0,B.jsxs)(`summary`,{children:[`Non-textual (`,p.length,`)`,(0,B.jsx)(`span`,{className:`rv-nt-names`,children:p.map(e=>t.files[e.file]?.path??``).join(`, `)})]}),p.map(e=>m(e,!0))]})]})}var kd=1200;function Ad(e){return e.replace(/["\\]/g,e=>`\\${e}`)}function jd(e){let t=e.review,n=e.index,r=t.baseline,i=(0,_.useRef)(null),[a,o]=(0,_.useState)(!1),s=(0,_.useRef)(!1),c=(0,_.useRef)(null),l=r?.entries??[],u=n.places,d=(0,_.useMemo)(()=>new Map(l.map(e=>[e.id,e])),[l]),f=r?.files??[],p=e.sections,m=e.group===`all`,h=p.filter(t=>m||t.id===e.group),g=Ie(t.state),v=Le(t.state),y=Re(t.state),b={review:t,index:n,summary:e.summary,entries:l,entryOf:d,files:f,order:u,pages:e.hunks,seen:n.seen,readable:g,readOnlySaid:v,agentHolds:y,busy:e.busy,theme:e.theme,opened:e.opened,drafts:e.drafts,feed:i,watch:e.watch,watchReply:e.watchReply,onAct:e.onAct,onOpen:e.onOpen,onDraft:e.onDraft},x=t=>n.seen.has(t)&&!e.opened.has(t)&&!e.drafts.has(`hunk:${t}`),ee=e=>{let t=i.current;if(t===null)return null;let r=t.querySelector(`[data-section="${Ad(e.section)}"]`)??t;if(e.message!==null)return r.querySelector(`[data-message="${Ad(e.message)}"]`);if(e.hunk===null)return r===t?null:r;let a=r.querySelector(`[data-hunk="${Ad(e.hunk)}"]`);if(a===null||e.note===null)return a;let o=a.querySelector(`[data-note="${Ad(e.note)}"]`);if(o!==null)return o;let s=(n.notes.get(e.hunk)??[]).find(t=>t.key===e.note),c=s===void 0?null:F(s);return(c===null?null:a.querySelector(`[data-line="${c}"]`))??a},S=(e,t)=>{let n=i.current,r=e.closest(`.rv-section`),a=r?.querySelector(`.rv-ghead`)??null;if(n===null||r===null||a===null)return null;let o=n.getBoundingClientRect(),s=e.getBoundingClientRect();return kt({scrollTop:n.scrollTop,feedTop:o.top,feedHeight:o.height,pinned:a.classList.contains(`is-under`)?44:0,sectionTop:r.getBoundingClientRect().top,headerHeight:a.getBoundingClientRect().height,fold:Number.parseFloat(a.style.getPropertyValue(`--rv-fold`))||0,collapse:Number.parseFloat(a.style.getPropertyValue(`--rv-collapse`))||0,targetTop:s.top,targetHeight:s.height,underHeader:e!==r&&!a.contains(e),block:t})},C=e=>{let t=c.current;t!==null&&(clearTimeout(t.timer),t.element.classList.remove(`is-landed`)),e.classList.add(`is-landed`),c.current={element:e,timer:setTimeout(()=>{e.classList.remove(`is-landed`),c.current=null},kd)}},w=t=>{let n=t.hunk;if(n!==null){let t=u.get(n);if(t!==void 0&&e.need(t),!e.hunks.has(n))return!1;if(x(n))return e.onOpen(n,!0),!1}let r=ee(t);if(r===null)return!1;let a=r.closest(`details`);a!==null&&!a.open&&(a.open=!0);let o=t.note===null&&t.message===null,s=S(r,o?`start`:`center`),c=i.current;return s!==null&&c!==null&&typeof c.scrollTo==`function`?c.scrollTo({top:s}):typeof r.scrollIntoView==`function`&&r.scrollIntoView({block:o?`start`:`center`}),C(r),!0},te=(0,_.useRef)(w);te.current=w;let T=e.want,E=e.hunks,ne=e.onLanded,D=e.opened;(0,_.useEffect)(()=>{T!==null&&te.current(T.target)&&ne()},[T,E,D,ne]);let O=e.startAt;(0,_.useEffect)(()=>{s.current||E.size===0||i.current===null||(s.current=!0,i.current.scrollTop=O)},[E.size,O]),(0,_.useEffect)(()=>()=>{let e=c.current;e!==null&&clearTimeout(e.timer)},[]);let re=e.summary.of(e.scope).controls,ie=m?e.coming:0,k=m?n.gone:[],ae=[{kind:`groups`,held:h.length,draw:()=>h.map(t=>(0,B.jsx)(Od,{section:t,kit:b,controls:m?null:re,onWalk:e.onWalk,pinned:m?44:0},t.id))},{kind:`coming`,held:ie,draw:()=>Array.from({length:ie},(e,t)=>`coming-${t}`).map(e=>(0,B.jsx)(`div`,{className:`rv-section`,children:(0,B.jsxs)(`div`,{className:`rv-ghead is-skel`,"aria-hidden":`true`,children:[(0,B.jsx)(`span`,{className:`rv-skel is-narrow`}),(0,B.jsx)(`span`,{className:`rv-skel is-wide`})]})},e))},{kind:`gone`,held:k.length,draw:()=>(0,B.jsxs)(`section`,{className:`rv-gcard`,"data-section":P,children:[(0,B.jsxs)(`div`,{className:`rv-gcard-top`,children:[(0,B.jsx)(`h3`,{children:He}),(0,B.jsxs)(`span`,{className:`rv-facts`,children:[k.length,` thread`,k.length===1?``:`s`]})]}),(0,B.jsx)(`p`,{children:`The hunk each of these was about is no longer in the change. Close it once it is settled.`}),k.map(t=>(0,B.jsx)(Ft,{thread:t,readable:g,agentHolds:y,busy:e.busy,onClose:()=>e.onAct({act:`close-thread`,thread:t.id}),watch:e.watchReply},t.id))]})}],oe=ae.every(e=>e.held===0);return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:`rv-feed`,ref:i,onScroll:t=>{let n=t.currentTarget;o(n.scrollTop>n.clientHeight),e.onScroll(n.scrollTop)},children:(0,B.jsx)(`div`,{className:`rv-fgrid`,children:(0,B.jsxs)(`div`,{className:`rv-fmain${m?` is-all`:``}`,children:[m&&(0,B.jsx)(Ot,{hunks:n.order.length,groups:t.metadata.groups.length,controls:re,onWalk:e.onWalk}),ae.map(e=>(0,B.jsx)(_.Fragment,{children:e.held===0?null:e.draw()},e.kind)),oe&&(0,B.jsx)(`p`,{className:`rv-facts`,children:r===null?`This review has no baseline to draw.`:`Nothing is grouped yet, and nothing is left to read.`})]})})}),a&&(0,B.jsx)(`button`,{type:`button`,className:`rv-totop`,"aria-label":`Scroll to top`,onClick:()=>i.current?.scrollTo({top:0}),children:`↑`})]})}function Md(e){let[t,n]=(0,_.useState)(!1),r=e.openAsked??0;(0,_.useEffect)(()=>{r>0&&n(!0)},[r]);let i=e.items.length;return i===0?null:(0,B.jsxs)(`aside`,{className:`rv-send${t?` is-open`:``}`,"aria-label":`Pending feedback`,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),children:[!t&&(0,B.jsxs)(`button`,{type:`button`,className:`rv-sendpill`,onClick:()=>n(!0),children:[`Send to agent`,(0,B.jsx)(`span`,{className:`rv-n`,children:i})]}),t&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`p`,{className:`rv-send-head`,children:`Pending feedback`}),e.items.map(t=>(0,B.jsxs)(`div`,{className:`rv-si`,children:[(0,B.jsx)(`b`,{children:A[t.act]}),(0,B.jsx)(`span`,{className:`rv-f`,children:e.whereOf(t)}),(0,B.jsx)(`span`,{className:`rv-q`,children:t.text}),(0,B.jsxs)(`span`,{className:`rv-si-ctl`,children:[(0,B.jsx)(`button`,{type:`button`,"aria-label":`Edit ${A[t.act]}`,disabled:!e.readable||e.busy,onClick:()=>e.onEdit(t),children:`✎`}),(0,B.jsx)(`button`,{type:`button`,"aria-label":`Remove ${A[t.act]}`,disabled:!e.readable||e.busy,onClick:()=>e.onRemove(t),children:`×`})]})]},t.id)),(0,B.jsxs)(`p`,{className:`rv-send-foot`,children:[(0,B.jsxs)(`button`,{type:`button`,className:`rv-btn is-primary`,disabled:!e.readable||e.busy,onClick:e.onSend,children:[`Send to agent (`,i,`)`]}),(0,B.jsx)(`small`,{children:`The agent works while you wait, and this review turns read-only`})]})]})]})}function Nd(e){let t=e=>e!==null&&e!==`ungrouped`;return{groups:e.metadata.groups.length,notes:e.metadata.notes.length,aside:e.dismissals.items.length,talk:e.threads.threads.filter(e=>e.kind===`group`&&t(e.anchor)).length,unsent:e.pending.items.filter(e=>t(e.group)).length}}function Pd(e,t){return`${e} ${t}${e===1?``:`s`}`}function Fd(e){let t=[];e.groups>0&&t.push(`The agent's ${Pd(e.groups,`group`)}`),e.notes>0&&t.push(`The agent's ${Pd(e.notes,`note`)}`),e.aside>0&&t.push(`The ${Pd(e.aside,`note`)} you put aside`);let n=[];return e.talk>0&&n.push(Pd(e.talk,`conversation`)),e.unsent>0&&n.push(Pd(e.unsent,`unsent comment`)),n.length>0&&t.push(`Your ${n.join(` and `)} on whole groups`),t.length===0&&t.push(`Nothing yet: the agent has not written anything.`),t}function Id(e){let t=e.review,n=Nd(t),[r,i]=(0,_.useState)(``),{onCancel:a}=e;return(0,_.useEffect)(()=>{let e=e=>{e.key===`Escape`&&a()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),(0,B.jsx)(`div`,{className:`dialog-shade`,children:(0,B.jsxs)(`form`,{className:`dialog rv-rdialog`,role:`dialog`,"aria-modal":`true`,"aria-label":`Reset the review of "${t.state.name}"`,onSubmit:t=>{t.preventDefault(),!e.busy&&e.onReset(r.trim())},children:[(0,B.jsxs)(`h2`,{className:`rail-head rv-adialog-head`,children:[(0,B.jsx)(`span`,{children:`Reset the review`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-icon rv-adialog-x`,"aria-label":`Close the dialog`,onClick:e.onCancel,children:`×`})]}),(0,B.jsxs)(`div`,{className:`dialog-body`,children:[(0,B.jsx)(`p`,{className:`rv-rsays`,children:`The agent reads the change again and groups and notes it from nothing.`}),(0,B.jsxs)(`div`,{className:`rv-rgoes`,children:[(0,B.jsx)(`h4`,{children:`Deleted`}),(0,B.jsx)(`ul`,{children:Fd(n).map(e=>(0,B.jsx)(`li`,{children:e},e))}),(0,B.jsx)(`h4`,{children:`Kept`}),(0,B.jsxs)(`ul`,{children:[(0,B.jsx)(`li`,{children:`Your Seen marks`}),(0,B.jsx)(`li`,{children:`Everything you wrote on a hunk`})]})]}),(0,B.jsxs)(`label`,{htmlFor:`rv-instruction`,children:[`An instruction to the agent `,(0,B.jsx)(`small`,{children:`optional`})]}),(0,B.jsx)(`textarea`,{id:`rv-instruction`,value:r,disabled:e.busy,maxLength:Fe,placeholder:`What to look for this time, if anything`,onChange:e=>i(e.target.value)})]}),(0,B.jsxs)(`div`,{className:`dialog-acts rv-adialog-acts`,children:[(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.busy,onClick:e.onCancel,children:`Cancel`}),(0,B.jsx)(`button`,{type:`submit`,className:`rv-btn is-small is-warn`,disabled:e.busy,children:`Reset`})]})]})})}function Ld(e,t){let n=(0,_.useRef)(t);n.current=t;let r=(0,_.useRef)(null),i=(0,_.useRef)(!1),a=(0,_.useCallback)(()=>{r.current=null,!(!i.current||e===null)&&(i.current=!1,ce(e,`place`,n.current()).catch(()=>{}))},[e]),o=(0,_.useCallback)(()=>{i.current=!0,r.current===null&&(r.current=setTimeout(a,500))},[a]);return(0,_.useEffect)(()=>()=>{r.current!==null&&clearTimeout(r.current),r.current=null,a()},[a]),o}var Rd=[`unseen`,`issue`,`attention`,`reply`];function zd(e){return`${e.section}\n${e.hunk??``}\n${e.note??``}\n${e.message??``}`}function Bd(e,t){return{section:e,hunk:t,note:null,message:null}}function Vd(e,t){let n=[],r=(e,t,r)=>{n.push({key:zd(t),kind:e,target:t,open:r})};for(let n of e.threads.get(R(`group`,t.id))??[])for(let i of n.messages)i.from===`agent`&&r(`reply`,{section:t.id,hunk:null,note:null,message:i.id},e.unread.has(i.id));for(let n of ve(e,t)){r(`unseen`,Bd(t.id,n),!e.seen.has(n));let i=new Set((e.open.get(n)??[]).map(e=>de(e.hunk,e.key)));for(let a of e.notes.get(n)??[])a.kind!==`info`&&r(a.kind,{section:t.id,hunk:n,note:a.key,message:null},i.has(de(a.hunk,a.key)));for(let i of e.threads.get(R(`hunk`,n))??[])for(let a of i.messages)a.from===`agent`&&r(`reply`,{section:t.id,hunk:n,note:null,message:a.id},e.unread.has(a.id))}return n}function Hd(e){let t=[];for(let n of e.gone)for(let r of n.messages){if(r.from!==`agent`)continue;let n={section:P,hunk:null,note:null,message:r.id};t.push({key:zd(n),kind:`reply`,target:n,open:e.unread.has(r.id)})}return t}function Ud(e,t){return[...t.flatMap(t=>e.of(t)),...e.gone()]}function Wd(e,t,n){let r=e.length;if(r===0)return null;let i=n===null?-1:e.findIndex(e=>e.key===n);for(let n=1;n<=r;n+=1){let a=e[(i+n+r)%r];if(a!==void 0&&a.kind===t&&a.open)return a}return null}function Gd(e,t){for(let n of t){if((e.threads.get(R(`group`,n.id))??[]).some(e=>e.open))return{section:n.id,hunk:null,note:null,message:null};for(let t of ve(e,n))if((e.threads.get(R(`hunk`,t))??[]).some(e=>e.open))return Bd(n.id,t)}return e.gone.length===0?null:{section:P,hunk:null,note:null,message:null}}function Kd(e,t,n,r){let i=t.findIndex(e=>e.id===n),a=i===-1?[...t]:[...t.slice(i+1),...t.slice(0,i)];for(let t of a){let n=Wd(e.of(t),r,null);if(n!==null)return{section:t.id,name:t.name,place:n}}let o=Wd(e.gone(),r,null);return o===null?null:{section:P,name:He,place:o}}function qd(e){let t=e.state;return t.status===`approved`||t.status===`archived`&&e.approval?.approved?{text:`Approved`,kind:`is-ended`}:t.status===`closed`||t.status===`archived`?{text:`Closed`,kind:`is-ended`}:t.side===`agent`?null:e.ready?{text:`Ready for approval`,kind:`is-ready`}:{text:`Awaits you`,kind:`is-you`}}function Jd(e,t){let n=e.state,r=[Pe(n.selection)],i=n.selection.kind===`last-commit`||n.selection.kind===`commit`,a=e.baseline?.commits[0]?.subject??``;return i&&a!==``&&r.push(a),n.filedBy===`terminal`&&r.push(`filed from the terminal ${l(n.created,t)}`),r.join(` - `)}function Yd(e,t){return`${(e===``?`Working on the review`:e).replace(/[.;\s]+$/,``)}${t===`prepare`?`; code changes are best avoided meanwhile`:``}.`}function Xd(e,t){let n=new Date(e);return Number.isNaN(n.getTime())||n.toDateString()===t.toDateString()?``:n.toLocaleDateString([],{month:`short`,day:`numeric`})}function Zd(e){let t=e.review,n=t.state,r=t.baseline,[i,a]=(0,_.useState)(0),[o,s]=(0,_.useState)(!1),[c,u]=(0,_.useState)(null),d=e.group,[p,m]=(0,_.useState)(new Set(t.place.expanded)),[h,g]=(0,_.useState)(()=>new Map(t.place.drafts.map(e=>[e.anchor,e]))),[v,y]=(0,_.useState)(()=>{for(let e of t.place.drafts){if(!e.anchor.startsWith(`pending:`))continue;let n=t.pending.items.find(t=>`pending:${t.id}`===e.anchor);if(n!==void 0)return n}return null}),b=n.side===`agent`&&n.status===`reviewing`,x=t.slug.startsWith(`${Ce}/`),ee=f(b,e.now),S=qd(t),C=t.relation,w=C!==null&&C.relation===`out-of-sync`?C:null,te=C!==null&&C.relation===`merged`?C:null,T=(0,_.useRef)(t.place.scroll),E=ad(t.slug,r?.fingerprint??``),ne=sd(E.need),D=e.passed,O=Ld(x?null:t.slug,()=>({scroll:T.current,expanded:[...p],group:d,read:[...D],drafts:[...h.values()]})),re=(e,t)=>{g(n=>{let r=new Map(n);return t===null?r.delete(e):r.set(e,{anchor:e,...t}),r}),O()},ie=cd(t=>{D.has(t)||(e.onPassed(t),O())}),k=(0,_.useRef)(d);(0,_.useEffect)(()=>{k.current!==d&&(k.current=d,O())},[d,O]);let ae=t.pending.items;(0,_.useEffect)(()=>{let e=new Set(ae.map(e=>`pending:${e.id}`)),t=[...h.keys()].filter(t=>t.startsWith(`pending:`)&&!e.has(t));t.length>0&&(g(e=>{let n=new Map(e);for(let e of t)n.delete(e);return n}),O()),y(e=>e===null||ae.some(t=>t.id===e.id)?e:null)},[ae,h,O]);let oe=b&&Be(n.agent.lastPostAt,ee),se=Yd(n.agent.activity,n.agent.act),ce=t.metadata.groups,le=e.index,ue=e.sections,A=d===`all`?null:d,j=(0,_.useRef)({group:d,key:null});j.current.group!==d&&(j.current={group:d,key:null});let M=Ie(n),de=t=>{let n=t.section===`gone`?`all`:t.section,r=d===`all`?d:n;r!==d&&e.onPickGroup(r),j.current={group:r,key:zd(t)},u({target:t})};return(0,B.jsxs)(`div`,{className:`rv-screen`,children:[(0,B.jsxs)(`div`,{className:`rv-head`,children:[(0,B.jsx)(`h2`,{children:n.name}),(0,B.jsx)(`span`,{className:`rv-head-what`,children:Jd(t,ee)}),(0,B.jsx)(`span`,{className:`rv-grow`}),M&&(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small is-quiet`,disabled:e.busy,onClick:()=>s(!0),children:`Reset`}),S!==null&&(0,B.jsx)(`span`,{className:`rv-chip ${S.kind}`,children:S.text})]}),t.approval!==null&&(0,B.jsx)(Ct,{approval:t.approval,slug:t.slug,filed:x,busy:e.busy,onArchive:()=>e.onAct({act:`archive`})}),b&&(0,B.jsxs)(`div`,{className:`rv-agentbar`,children:[(0,B.jsx)(`b`,{children:`Awaits agent`}),(0,B.jsxs)(`span`,{className:`rv-say`,children:[se,n.agent.instruction!==``&&(0,B.jsxs)(`span`,{className:`rv-asked`,children:[` You asked: `,n.agent.instruction]}),n.agent.lastPostAt!==null&&(0,B.jsxs)(B.Fragment,{children:[` Last post ${ht(n.agent.lastPostAt)}, `,(0,B.jsx)(`span`,{className:oe?`rv-late`:void 0,children:l(n.agent.lastPostAt,ee)}),`.`]})]}),(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small is-primary`,disabled:e.busy,onClick:()=>e.onAct({act:`stop`}),children:`Stop the agent and review now`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small is-outline`,disabled:e.busy,onClick:()=>e.onAct({act:`ask`}),children:`Ask the agent to continue`})]}),!b&&w!==null&&(0,B.jsxs)(`div`,{className:`rv-banner`,children:[(0,B.jsx)(`b`,{children:`Out of sync`}),(0,B.jsx)(`span`,{children:`The tree is out of sync with the baseline.`}),(0,B.jsx)(`span`,{className:`rv-grow`}),(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.busy||!M,title:M?void 0:Le(n),onClick:()=>e.onAct({act:`sync`}),children:`Sync`})]}),!b&&te!==null&&(0,B.jsxs)(`div`,{className:`rv-banner is-merged`,children:[(0,B.jsx)(`b`,{children:`Merged`}),(0,B.jsx)(`span`,{children:te.mergedAs===null?`This branch was merged.`:`This branch was merged as ${te.mergedAs}.`}),(0,B.jsx)(`span`,{className:`rv-grow`}),te.mergedAs!==null&&(0,B.jsx)(`button`,{type:`button`,className:`rv-btn is-small`,disabled:e.busy||!M,title:M?void 0:Le(n),onClick:()=>e.onAct({act:`follow`}),children:`Follow the merge`})]}),t.error!==null&&(0,B.jsxs)(`div`,{className:`rv-banner`,children:[(0,B.jsx)(`b`,{children:`Not all there`}),(0,B.jsx)(`span`,{children:t.error}),M&&!t.ready&&(0,B.jsx)(mt,{busy:e.busy,onClose:t=>e.onAct({act:`close`,reason:t})})]}),(0,B.jsxs)(`div`,{className:`rv-body`,children:[(0,B.jsx)(jd,{review:t,index:le,summary:e.summary,sections:ue,group:d,scope:A,hunks:E.hunks,need:E.need,watch:ne,watchReply:ie,want:c,onLanded:()=>u(null),onWalk:t=>{let n=e.summary.of(A),r=Wd(n.places,t,j.current.key);if(r!==null){de(r.target);return}let i=n.crossing(t);i!==null&&de(i.place.target)},opened:p,onOpen:(e,t)=>{m(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r}),O()},drafts:h,onDraft:re,busy:e.busy,onAct:e.onAct,startAt:t.place.scroll,theme:e.theme,onScroll:e=>{T.current=e,O()},coming:We(t)}),(0,B.jsx)(Md,{items:t.pending.items,whereOf:e=>{if(e.group!==null){let t=ce.find(t=>t.id===e.group);return t===void 0?`the group`:t.name}let t=(r?.entries??[]).find(t=>t.id===e.hunk);if(t===void 0)return e.label===`hunk-removed`?`a hunk that is gone`:e.hunk??``;let n=r?.files[t.file]?.path??``,i=/^@@ (-\d+)/.exec(t.header);return i===null?n:`${n} @@ ${i[1]}`},readable:M,busy:e.busy,onEdit:e=>{y(e),re(`pending:${e.id}`,{act:e.act,lines:[],text:e.text,note:null})},onRemove:n=>e.onAct({act:`pending`,items:t.pending.items.filter(e=>e.id!==n.id)}),onSend:()=>e.onAct({act:`send`}),openAsked:i})]}),e.approving&&M&&(0,B.jsx)(bt,{review:t,busy:e.busy,onApprove:(t,n,r)=>{e.onApproving(!1),e.onAct({act:`approve`,name:t,signature:n,acknowledged:r})},onClose:t=>{e.onApproving(!1),e.onAct({act:`close`,reason:t})},onCancel:()=>e.onApproving(!1),onGoTo:t=>{if(e.onApproving(!1),t===`pending`){a(e=>e+1);return}if(t===`threads`){let e=Gd(le,ue);e!==null&&de(e);return}let n={unseen:`unseen`,issues:`issue`,attention:`attention`,unreadReplies:`reply`}[t];if(n===void 0)return;let r=Wd(e.summary.of(null).places,n,null);r!==null&&de(r.target)}}),o&&M&&(0,B.jsx)(Id,{review:t,busy:e.busy,onReset:t=>{s(!1),e.onAct({act:`reset`,instruction:t})},onCancel:()=>s(!1)}),v!==null&&M&&(0,B.jsx)(`div`,{className:`rv-editing`,children:(0,B.jsx)(xt,{act:v.act,lines:[],text:h.get(`pending:${v.id}`)?.text??v.text,busy:e.busy,onChange:e=>re(`pending:${v.id}`,{act:v.act,lines:[],text:e,note:null}),onWrite:n=>{let r=v;y(null),re(`pending:${r.id}`,null),e.onAct({act:`pending`,items:t.pending.items.map(e=>e.id===r.id?{...e,text:n}:e)})},onCancel:()=>{re(`pending:${v.id}`,null),y(null)}})}),E.failure!==null&&(0,B.jsxs)(`p`,{className:`notice notice-failure`,children:[E.failure,` `,(0,B.jsx)(`button`,{type:`button`,className:`rv-link`,onClick:E.retry,children:`Try again`})]}),e.openLog&&(0,B.jsx)(`div`,{className:`rv-log`,children:[...n.log].reverse().map(e=>(0,B.jsxs)(`p`,{children:[(0,B.jsxs)(`b`,{children:[Xd(e.at,ee),` `,ht(e.at)]}),` `,e.said]},`${e.at}-${e.said}`))})]})}var Qd=`approve-left`;function $d(e){let t=e===1;return`${e} thing${t?``:`s`} still need${t?`s`:``} your attention. Open to see ${t?`it`:`them`}.`}function ef(e){let t=[];return e.issues>0&&t.push({kind:`is-issue`,text:`${e.issues} issue${e.issues===1?``:`s`}`}),e.attention>0&&t.push({kind:`is-attention`,text:`${e.attention} attention`}),e.replies>0&&t.push({kind:`is-reply`,text:`${e.replies} unread ${e.replies===1?`reply`:`replies`}`}),e.waiting>0&&t.push({kind:`is-you`,text:`${e.waiting} wait${e.waiting===1?`s`:``} on you`}),e.changed>0&&t.push({kind:`is-changed`,text:`${e.changed} changed since seen`}),t}function tf(e){let t=a({className:`rv-tip`,side:`top`}),n=e.review,r=n.state,i=e.summary.of(null).counts,o=i.hunks===0?0:Math.round(i.seen/i.hunks*100),s=Ie(r),c=ge(n.leftAsIs);return(0,B.jsxs)(`div`,{className:`workspace-foot rv-status`,children:[(0,B.jsxs)(`span`,{className:`rv-loops`,title:`Agent-human feedback loops`,children:[(0,B.jsxs)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,fill:`none`,stroke:`currentColor`,children:[(0,B.jsx)(`path`,{d:`M13 8a5 5 0 0 0-8.5-3.5M3 8a5 5 0 0 0 8.5 3.5`,strokeWidth:`1.5`,strokeLinecap:`round`}),(0,B.jsx)(`path`,{d:`M4.5 1.5v3h3M11.5 14.5v-3h-3`,strokeWidth:`1.5`,strokeLinecap:`round`})]}),n.loops]}),(0,B.jsx)(`span`,{className:`rv-prog`,title:`${i.seen} of ${i.hunks} hunks seen`,children:(0,B.jsx)(`i`,{style:{width:`${o}%`}})}),ef(i).map(e=>(0,B.jsxs)(`span`,{className:`rv-fact ${e.kind}`,children:[(0,B.jsx)(`i`,{"aria-hidden":`true`}),e.text]},e.kind)),(0,B.jsx)(`span`,{className:`rv-grow`}),(0,B.jsxs)(`button`,{type:`button`,className:`rv-log-toggle`,"aria-expanded":e.openLog,onClick:()=>e.onOpenLog(!e.openLog),children:[(0,B.jsx)(`span`,{"aria-hidden":`true`,children:e.openLog?`▾`:`▸`}),`Activity (`,r.log.length,`)`]}),s&&(0,B.jsxs)(`button`,{type:`button`,className:`rv-btn is-small is-ok rv-approve`,disabled:e.busy,"aria-describedby":c>0?Qd:void 0,onClick:e.onApprove,...t.anchor,children:[`Approve...`,c>0&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{className:`rv-abadge is-warn`,"aria-hidden":`true`,children:`!`}),(0,B.jsx)(`span`,{className:`visually-hidden`,id:Qd,"aria-hidden":`true`,children:$d(c)}),t.says($d(c))]})]})]})}var nf={unseen:`unseen`,issue:`issues`,attention:`attention`,reply:`replies`},rf={count:0,groups:[]};function af(e,t){let n=new Map(t.map(e=>[e.id,e])),r=new Map,i=null,a=t=>{let n=r.get(t.id);if(n!==void 0)return n;let i=Vd(e,t);return r.set(t.id,i),i},o={of:a,gone:()=>(i??=Hd(e),i)},s=null,c=()=>(s??=Ud(o,t),s),l=null,u=()=>(l??=e.gone.reduce((t,n)=>t+n.messages.filter(t=>t.from===`agent`&&e.unread.has(t.id)).length,0),l),d=e=>{let n=t.findIndex(t=>t.id===e);return n===-1?t:[...t.slice(n+1),...t.slice(0,n)]},f=(e,t)=>{let n=nf[t];for(let t of d(e))if(h(t.id).counts[n]>0)return t.name;return t===`reply`&&u()>0?He:null},p=(e,t,n)=>{let r=e.counts[nf[n]];if(r>0)return{kind:n,state:`here`,count:r};if(t===null)return{kind:n,state:`nowhere`};let i=f(t,n);return i===null?{kind:n,state:`nowhere`}:{kind:n,state:`across`,section:i}},m=new Map,h=r=>{let i=r===null?``:`group\n${r}`,s=m.get(i);if(s!==void 0)return s;let l=r===null?null:n.get(r)??{id:r,name:r,hunks:[]},u=new Map,d=null,f={counts:ye(e,l),get places(){return l===null?c():a(l)},crossing:e=>l===null?null:(u.has(e)||u.set(e,Kd(o,t,l.id,e)),u.get(e)??null),get controls(){return d??=Rd.map(e=>p(f,r,e)),d}};return m.set(i,f),f},g=null,_=null;return{of:h,holders:()=>(g??=Ke(t),g),shared:e=>(_??=new Map(t.map(e=>[e.id,Ge(e,t)])),_.get(e)??rf)}}var of={open:null,starting:!1,form:null};function sf(){let[e,t]=(0,_.useState)(null),[n,r]=(0,_.useState)(null),[i,a]=(0,_.useState)(null),[o,s]=(0,_.useState)(null),[c,l]=(0,_.useState)(!1),[u,d]=(0,_.useState)({options:[],notOffered:null}),[f,h]=(0,_.useState)(!1),[g,v]=(0,_.useState)(!1),[y,b]=(0,_.useState)(null),[w,T]=(0,_.useState)(null),[E,ne]=(0,_.useState)(new Set),[D,ie]=(0,_.useState)(!1),[k,oe]=(0,_.useState)(!1),se=(0,_.useRef)(null),le=p({onSession:ee,askTheme:te}),ue=(0,_.useRef)(new Map),A=(0,_.useRef)(null),j=(0,_.useRef)(of),M=(0,_.useRef)(null),[de,N]=(0,_.useState)(0),P=(0,_.useCallback)(()=>{O().then(e=>{t(e),r(null)}).catch(e=>r(e.message))},[]),F=(0,_.useCallback)(e=>{if(e===null){s(null);return}re(e).then(s).catch(e=>{s(null),b(e.message)})},[]);(0,_.useEffect)(P,[P]),(0,_.useEffect)(()=>F(i),[i,F]),(0,_.useEffect)(()=>x(()=>{P(),F(i)}),[i,P,F]),(0,_.useEffect)(()=>{let e=()=>{document.visibilityState!==`hidden`&&(P(),F(i))};return window.addEventListener(`focus`,e),document.addEventListener(`visibilitychange`,e),()=>{window.removeEventListener(`focus`,e),document.removeEventListener(`visibilitychange`,e)}},[i,P,F]),(0,_.useEffect)(()=>{e!==null&&C(e.awaitingYou,e.any)},[e]);let I=(0,_.useCallback)(async(e,t,n)=>{for(let t of e){let e=await S({event:t.event,detail:t.detail,path:t.path});e.ok||b(`No agent was told: ${e.error}`)}if(!t)return;let r=await S({event:`review`,detail:n});r.ok||b(`No agent was told: ${r.error}`)},[]),fe=(0,_.useCallback)(async(e,t,n={})=>{v(!0),b(null);try{let r=await ce(e,t,n);r.review!==null&&(s(r.review),r.review.slug!==e&&a(r.review.slug),P(),await I(r.typed,r.command,r.review.state.name))}catch(e){b(e instanceof Error?e.message:`that act was refused`)}finally{v(!1)}},[P,I]),pe=(0,_.useCallback)((e,t)=>{if(t.act===`ask`){I([],!0,e.state.name);return}let{act:n,...r}=t;fe(e.slug,n,r)},[fe,I]),me=(0,_.useCallback)(()=>{h(!0),ae().then(d).catch(e=>b(e.message)).finally(()=>h(!1))},[]),he=(0,_.useCallback)(()=>{M.current=null,l(!0),a(null),b(null),me()},[me]);(0,_.useEffect)(()=>{j.current={open:i,starting:c}},[i,c]);let ge=(0,_.useCallback)(e=>{if(A.current===e)return;let t=j.current,n=e===null?void 0:ue.current.get(e);if(A.current===null&&n===void 0){A.current=e;return}A.current!==null&&ue.current.set(A.current,{...t,form:M.current}),A.current=e;let r=n??of;j.current=r,M.current=r.form,a(r.open),l(r.starting),N(e=>e+1),b(null),r.starting&&me()},[me]);(0,_.useEffect)(()=>ee(e=>ge(e.sid)),[ge]);let L=o!==null&&o.slug===i?o:null,R=(0,_.useMemo)(()=>L===null?null:_e(L,E),[L,E]),ve=(0,_.useMemo)(()=>L===null?[]:qe(L),[L]),ye=(0,_.useMemo)(()=>R===null?null:af(R,ve),[R,ve]);L===null?se.current=null:se.current!==L.slug&&(se.current=L.slug,w!==null&&T(null),E.size>0&&ne(new Set),D&&ie(!1),k&&oe(!1));let be=(w===null||w!==`all`&&!ve.some(e=>e.id===w)?null:w)??(L===null?`all`:Ue(L,ve)),xe=(0,_.useCallback)(e=>{M.current=null,l(!1),a(e.slug),P(),I([],e.command,e.state.name)},[P,I]);return e===null?(0,B.jsx)(`p`,{className:`notice notice-failure`,children:n??`Waiting for the pane to hand over…`}):(0,B.jsxs)(`div`,{className:`workspace is-alone is-review${L!==null&&R!==null&&ye!==null?` has-foot`:``}`,children:[L===null||R===null||ye===null?(0,B.jsx)(ft,{active:e.active,archived:e.archived,open:i,onOpen:e=>{l(!1),a(e)},starting:c,onStart:he,repository:e.repository,error:e.error}):(0,B.jsx)($e,{review:L,index:R,summary:ye,sections:ve,group:be,onPick:T,onBack:()=>a(null)}),(0,B.jsxs)(`div`,{className:`stage${L===null?``:` has-bar`}`,"data-theme":le.theme,children:[(0,B.jsx)(m,{theme:le.theme,kept:le.kept,onToggle:le.toggle}),y!==null&&(0,B.jsx)(`p`,{className:`notice notice-failure`,children:y}),c?(0,B.jsx)(at,{offer:u,reading:f,onRefresh:me,draft:M.current,onDraft:e=>{M.current=e},onCancel:()=>{M.current=null,l(!1)},onStarted:xe},de):L===null||R===null||ye===null?(0,B.jsx)(`div`,{className:`doc`,children:(0,B.jsx)(`p`,{className:`notice`,children:i===null?`Nothing is open. Pick a review on the left.`:`Reading the review…`})}):(0,B.jsx)(Zd,{review:L,index:R,summary:ye,sections:ve,busy:g,theme:le.theme,group:be,onPickGroup:T,passed:E,onPassed:e=>ne(t=>t.has(e)?t:new Set([...t,e])),onAct:e=>pe(L,e),openLog:D,approving:k,onApproving:oe},L.slug)]}),L!==null&&R!==null&&ye!==null&&(0,B.jsx)(tf,{review:L,summary:ye,openLog:D,onOpenLog:ie,onApprove:()=>oe(!0),busy:g})]})}w();var cf=document.getElementById(`root`);cf&&(0,v.createRoot)(cf).render((0,B.jsx)(_.StrictMode,{children:(0,B.jsx)(sf,{})}));